Перейти к основному содержимому

Менеджер игрока

Обзор

Менеджер управляет состоянием игрока и его синхронизацией с сервером. После инициализации SDK запускается процесс синхронизации игрока с сервером. По завершении будет вызвано событие ready.

Свойства менеджера игрока FREE:

// Игрок авторизован
gp.player.isLoggedIn;
// Игрок использует один из способов входа (кука, авторизация, секретный код)
gp.player.hasAnyCredentials;
// Промис ожидания игрока
gp.player.ready;

Инициализация игрока проходит автоматически, вы можете дождаться готовности:

await gp.player.ready;
// Игрок готов

// Игрок готов
gp.player.on('ready', () => {});

Синхронизация

+1 Request

После изменений в игроке их можно отправить на сервер и сохранить локально на устройстве. Рекомендуется синхронизировать игрока после завершения уровня и получения наград, а также сразу после важного действия, например покупки предмета.

// Синхронизовать, возвращает промис
gp.player.sync();
// Перезаписать персонажа на сервере (локальный в приоритете)
gp.player.sync({ override: true });

// Игрок синхронизирован (success === true)
gp.player.on('sync', (success) => {});
tip

Ограничение на сохраняемые данные: не более 1 МБ на игрока.

Загрузка

+1 Request

Вы можете принудительно загрузить игрока с сервера (перезаписав локального).

// Загрузить, возвращает промис
gp.player.load();

// Игрок загружен (success === true)
gp.player.on('load', (success) => {});

Вход

FREE

Показать оверлей с возможностями входа. Сейчас это платформенный вход, если поддерживается, и вход по секретному коду.

// Войти, возвращает промис
gp.player.login();

// Игрок вошел (success === true)
gp.player.on('login', (success) => {});

Получение полей

+1 Request

Что такое поля игрока смотрите в разделе cостояние игрока. Получить поля игрока можно следующим методом:

// Получить список полей, возвращает промис
gp.player.fetchFields();

// Поля получены (success === true)
gp.player.on('fetchFields', (success) => {});

Уведомление о других окнах

+1 Request

Если игрок откроет другое окно с игрой одновременно с другими открытыми окнами игры - все другие окна получат event:connect. Вы можете подписаться на него следующим образом:

// срабатывает, когда игрок открывает другое окно с игрой
gp.on('event:connect', () => {});

Оставайтесь на связи

С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: [email protected]

Желаем вам успехов!