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

Игрок

Взаимодействие с игроками в GamePush происходит с помощью Менеджера игрока gp.player. Менеджер управляет состоянием игрока и его синхронизацией с сервером. Менеджер игрока наследуется от Player и расширяет его, позволяет работать с состоянием, полями и данными игроков.

Управление данными

Менеджер игрока позволяет управлять данными игрока - устанавливать и сохранять прогресс игрока. Прогресс игрока представлен в виде полей, которые явно задаются в панели управления. Явное указание полей нужно, чтобы можно было создавать лидерборды и не хранить случайно добавленные / не нужные в текущей версии данные.

Поля можно задать в панели управления проектом в разделе Игроки.

У игрока есть основные поля и настраиваемые поля:

Типы полей:

  • Service - Служебное поле, доступно только для чтения.
  • Number - Числовое поле (float).
  • String - Строковое поле с поддержкой JSON.
  • Flag - Булевое поле.

Основные поля

КлючТипОписание
idnumberИдентификатор игрока в рамках сервиса
credentialsstringИдентификатор игрока на площадке
secretCodestringУникальный код, по которому можно авторизовать игрока
activebooleanАктивный игрок - доступ игроку не заблокирован / не забанен.
removedbooleanАккаунт удален на сервисе (в SDK не доступен).
testbooleanИгрок находится на тестовом сайте.
scorenumberОчки игрока. По-умолчанию 0.
namestringИмя игрока. По-умолчанию пустое.
avatarstringИмя игрока. По-умолчанию пустой.

Настраиваемые поля

Вы можете расширить модель игрока, добавив любое поле в панели управления.

В форме добавления вы можете указать:

  • Название. Вы можете указать название для нескольких языков, изменяя язык в селекте "Язык".
  • Ключ для обращения к полю в SDK. Вы не можете:
    • Вы не можете использовать служебные поля;
    • Разрешена только латиница A-aZ-Z и цифры, доступны спецсимволы _,-;
  • Тип. Доступны: число, строка, булевое.
  • Умолчательное значение. При первом входе в профиль игрока будет записано именно это значение.
  • Ограничивать диапазоном (только число) . Можно указать минимальное и максимальное значение поля.
  • Автоначисляемая переменная (только число) . Можно указать интервал начислений и значение, которое нужно начислять каждый период.
  • Перечисляемые значения (только число/строка) . Всем игрокам или только в режиме тестирования.
  • Публичное поле. Поле будет доступно остальным игрокам при поиске. Например для создания арен вы можете включить инвентарь и характеристики игрока в публичный доступ, чтобы экипировать соперника. При этом не показывать валюту или прогресс игрока.
  • Важное поле. При конфликте сохранений это поле будет показано игроку, чтобы он решил с каким профилем продолжить игру.

Ограничение диапазона поля

Доступно только для числовых полей.

Вы можете на уровне схемы ограничить минимальное и максимальное значение поля.

Если включен тумблер, то поле будет огранчено указанными пределами.

  • Минимальное значение. Ниже этой отметки нельзя установить значение игрока. При попытке установить значение меньше - автоматически установится указанное минимальное значение.
  • Максимальное значение. Выше этой отметки нельзя установить значение игрока. При попытке установить значение больше - автоматически установится указанное максимальное значение.
  • Можно установить значение выше максимального. В таком случае при установке поля вручную ограничение будет проигнорировано, но при автоматическом начислении ограничение работает.

Автоначисляемая переменная

Доступно только для числовых полей.

Вы можете на уровне схемы указать логику обновления переменной, которая привязана к серверному времени.

Если включен тумблер, то поле будет автоматически увеличиваться в указанный интервал времени на указанное значение, пока не достигнет максимального / минимального значения.

  • Интервал начислений (сек.). Как часто нужно добавлять значение к переменной игрока.
  • Количество. Насколько нужно увеличить значение переменной игрока за одну итерацию.

Перечисляемые значения

Вы можете на уровне схемы строго обозначить возможные варианты значений поля. Остальные значения будут проигнорированы.

Это так же полезно при указании перевода поля в таблице лидеров.

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

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

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

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

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