Skip to main content

Player state

Player overview

The player manager is inherited from Player and simply extends it. It includes work with authorization ad synchronization with the server. This part focuses on work with the player state.

Player properties FREE:

// ID
gp.player.id;
// Score
gp.player.score;
// Name
gp.player.name;
// Avatar link
gp.player.avatar;
// Stub – is the player default or the data in its model differs from the default
gp.player.isStub;
// Player fields
gp.player.fields;
Methods for work with the player state FREE:
// Get the value of the key field
gp.player.get('gold');
// Set the value of the key field to value, the value is cast to the type
gp.player.set('class', 'warrior');
// Add the value to the key field
gp.player.add('gold', 50);
// Toggle the value of the key field
gp.player.toggle('vip');
// Check if the key field is present and not empty (not 0, '', false, null, undefined)
gp.player.has('vip');

// Return the player state as an object
gp.player.toJSON();
// Set the state from the object
gp.player.fromJSON({
name: 'test player',
score: 4522,
gold: 100,
vip: false,
class: 'warrior',
});

// Reset the player state to default
gp.player.reset();
// Remove the player – reset fields and clear ID
gp.player.remove();

Player events:

// The player state has changed
gp.player.on('change', () => {});

Player Statistics

FREE

You can retrieve information about the number of days and time spent in the game.

// Number of days in the game
gp.player.stats.activeDays;

// Number of consecutive days in the game
gp.player.stats.activeDaysConsecutive;

// Number of seconds spent in the game today
gp.player.stats.playtimeToday;

// Number of seconds spent in the game overall
gp.player.stats.playtimeAll;

Player fields

Player fields are set in the panel, they describe the player state and store the following properties:

/**
* Field name translated into current language
* @type {string}
*/
field.name;

/**
* Unique field key
* @type {string}
*/
field.key;

/**
* Field type
* @type {'stats' | 'data' | 'flag' | 'service' | 'accounts'}
* stats — numeric fields
* data — string fields
* flags — boolean fields
* service – ID, test, active, remote, etc.
* accounts — vkId, yandexId, okId, etc.
*/
field.type;

/**
* Important field for the player
* If you need to decide who will be left, you can display these fields
* @type {boolean}
*/
field.important;

/**
* Default field value
* @type {string | number | boolean}
*/
field.default;

/**
* Possible variants of values for the fields
* If they are not specified, then the field takes any value
* @type {ModelFieldVariant[]}
*/
field.variants;

Field variants can also be set in the panel. Variant properties:

/**
* Variant name translated into current language
* @type {string}
*/
field.name;

/**
* Unique value of the variant
* @type {string | number | boolean}
*/
field.value;

The list of fields is available directly in the player model FREE:

gp.player.fields;

Methods for work with fields FREE:

// Get the field by key
gp.player.getField('gold');
// Get the translated field name by key
gp.player.getFieldName('score');
// Get the translated name of the field variant by the key and its value
gp.player.getFieldVariantName('rank', 2);

Stay in Touch

Other documents of this chapter available Here. To get started, welcome to the Tutorials chapter.

GamePush Community Telegram: @gs_community.

For your suggestions e-mail: [email protected]

We Wish you Success!