Состояние игрока
Обзор игрока
Менеджер игрока наследован от Player и просто расширяет его — включает в себя работу с авторизацией и синхронизацией с сервером. Эта часть посвящена работе с состоянием игрока.
Свойства игрока:
// ID
gp.player.id;
// Очки
gp.player.score;
// Имя
gp.player.name;
// Ссылка на аватар
gp.player.avatar;
// Заглушка — пустой ли игрок или данные в нём отличаются умолчательных
gp.player.isStub;
// Поля игрока
gp.player.fields;
Методы работы с состоянием игрока
// Получить значение поля key
gp.player.get('gold');
// Установить значение поля key на value, значение приводится к типу
gp.player.set('class', 'warrior');
// Добавить значение value к полю key
gp.player.add('gold', 50);
// Инвертировать состояние поля key
gp.player.toggle('vip');
// Проверить есть ли поле key и оно не пустое (не 0, '', false, null, undefined)
gp.player.has('vip');
// Вернуть состояние игрока объектом
gp.player.toJSON();
// Установить состояние из объекта
gp.player.fromJSON({
name: 'test player',
score: 4522,
gold: 100,
vip: false,
class: 'warrior',
});
// Сбросить состояние игрока на умолчательное
gp.player.reset();
// Удалить игрока — сбросить поля и очистить ID
gp.player.remove();
События игрока
// Состояние игрока изменилось
gp.player.on('change', () => {});
Статистика игрока
Вы можете получить информацию о количестве дней и времени, проведенных в игре.
// Количество дней в игре
gp.player.stats.activeDays;
// Количество дней в игре подряд
gp.player.stats.activeDaysConsecutive;
// Количество секунд, проведенных в игре сегодня
gp.player.stats.playtimeToday;
// Количество секунд, проведенных в игре за все время
gp.player.stats.playtimeAll;
Поля игрока
Поля игрока задаются в панели, они описывают состояние игрока и хранят в себе следующие свойства:
/**
* Имя поля, переведенное на текущий язык
* @type {string}
*/
field.name;
/**
* Уникальный ключ поля
* @type {string}
*/
field.key;
/**
* Тип поля
* @type {'stats' | 'data' | 'flag' | 'service' | 'accounts'}
* stats — Числовые поля — показатели игрока
* data — Строковые поля — данные игрока
* flags — Булевые поля — флаги игрока
* service — Служебные поля — ID, тестовый, активный, удаленный и т.п.
* accounts — Аккаунты — vkId, yandexId, okId и т.п.
*/
field.type;
/**
* Важное поле для игрока
* если нужно решить кого оставить, можно показать эти поля
* @type {boolean}
*/
field.important;
/**
* Умолчательное значение поля
* @type {string | number | boolean}
*/
field.default;
/**
* Возможные варианты значений для поля,
* если не указаны, то поле принимает любое значение
* @type {ModelFieldVariant[]}
*/
field.variants;
Варианты полей тоже можно задать в панели. Свойства варианта:
/**
* Имя варианта, переведенное на текущий язык
* @type {string}
*/
field.name;
/**
* Уникальное значение варианта
* @type {string | number | boolean}
*/
field.value;
Список полей доступен напрямую в игроке.
gp.player.fields;
Методы работы с полями:
// Получить поле по ключу key
gp.player.getField('gold');
// Получить переведенное имя поля по ключу key
gp.player.getFieldName('score');
// Получить переведенное имя варианта поля по ключу key и его значению value
gp.player.getFieldVariantName('rank', 2);
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram
: @gs_community.
Для ваших обращений e-mail
: [email protected]
Желаем вам успехов!