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

Состояние игрока

Обзор игрока

Менеджер игрока наследован от Player и просто расширяет его — включает в себя работу с авторизацией и синхронизацией с сервером. Эта часть посвящена работе с состоянием игрока.

Свойства игрока FREE:

// ID
gp.player.id;
// Очки
gp.player.score;
// Имя
gp.player.name;
// Ссылка на аватар
gp.player.avatar;
// Заглушка — пустой ли игрок или данные в нём отличаются умолчательных
gp.player.isStub;
// Поля игрока
gp.player.fields;

Методы работы с состоянием игрока FREE:

// Получить значение поля 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', () => {});

Статистика игрока

FREE

Вы можете получить информацию о количестве дней и времени, проведенных в игре.

// Количество дней в игре
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;

Список полей доступен напрямую в игроке FREE:

gp.player.fields;

Методы работы с полями FREE:

// Получить поле по ключу 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]

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