Данные игрока
Вы можете сохранять данные состояния игры (пройденные уровни, опыт, инап-покупки и т. д.) на сервере Яндекса или передавать их на свой сервер. Также вы можете персонализировать игру, используя некоторые данные из профиля пользователя на Яндексе, например, имя.
Информация об игроке
1ysdk.player.get_info(
2 callback: function,
3 options: {
4 scopes: boolean|nil,
5 signed: boolean|nil
6 }
7)
callback: function — callback вызванного метода. Имеет вид:
function(self, player: table|nil, signature: string|nil): nil
player: table— информация об игроке. Содержит свойства:
1player = {
2 logged_in: boolean,
3 unique_id: string,
4 name: string,
5 photo: {
6 small: string,
7 medium: string,
8 large: string
9 }
10}
Пример
1function init_player()
2 ysdk.player.get_info(function(self, player)
3 if player then
4 display_player(self, player)
5 else
6 ysdk.player.open_auth_dialog(function(self, authorized)
7 ysdk.player.get_info(display_player, {})
8 end)
9 end
10 end,
11 {})
12end
13
14function display_player(player)
15 if player then
16 print(player.name, signature)
17 end
18end
Авторизация пользователя
Если игрок не авторизован, вы можете использовать метод ysdk.player.open_auth_dialog(), чтобы вызвать окно авторизации.
ysdk.player.open_auth_dialog(callback: function)
callback: function — callback вызванного метода. Имеет вид:
function(self, authorized: boolean): nil
authorized: boolean— игрок авторизовался или нет.
Внутриигровые данные
Для работы с внутриигровыми данными пользователя используйте методы объекта Player:
-
ysdk.player.set_data(data, flush)— сохраняет данные пользователя. Максимальный размер данных не должен превышать 200 KБ.data: table— содержит пары «ключ — значение».flush: boolean— определяет очередность отправки данных. При значенииtrueданные будут отправлены на сервер немедленно;false(значение по умолчанию) — запрос на отправку данных будет поставлен в очередь.
Метод возвращает Promise, который показывает, удалось сохранить данные или нет.
При значении параметра flush: false возвращаемый результат показывает только валидность данных (сама отправка поставлена в очередь и будет осуществлена позже). При этом метод ysdk.player.get_data() вернет данные, установленные последним вызовом ysdk.player.set_data(), даже если они еще не были отправлены.
-
ysdk.player.get_data(callback, keys)— запрашивает внутриигровые данные пользователя, сохраненные в базе данных Яндекса.callback: fun(self, data: table<string, any>)— функция-обработчик для работы с полученными внутриигровыми данными пользователя.keys: table<number, string>— список ключей, которые необходимо вернуть. Если параметрkeysотсутствует, то метод возвращает все внутриигровые данные пользователя.
-
ysdk.player.set_stats(stats)— сохраняет численные данные пользователя. Максимальный размер данных не должен превышать 10 КБ.stats: table<string, number>— содержит пары «ключ — значение», где каждое значение должно быть числом.
Примечание
Используйте данный метод для часто изменяемых числовых значений (баллы, очки опыта, внутриигровая валюта) вместо ysdk.player.set_data().
ysdk.player.increment_stats(increments)— изменяет внутриигровые данные пользователя. Максимальный размер данных не должен превышать 10 КБ.increments: table<string, number>— объект, который содержит пары «ключ — значение», где каждое значение должно быть числом.
ysdk.player.get_stats(callback, keys)— получить численные данные пользователя, сохраненные в базе данных Яндекса.callback: fun(self, data: table<string, number>|nil)— функция-обработчик для работы с полученными численные данными пользователя.keys: string[]— список ключей, которые необходимо вернуть. Если параметр keys отсутствует, то метод возвращает все внутриигровые данные пользователя.
Идентификаторы пользователя
ysdk.player.get_ids_per_game(callback: function)
callback: function — callback вызванного метода. Имеет вид:
function(self, ids: {appID: number, userID: string}[]): nil
ids— идентификаторы пользователя во всех играх разработчика, в которых от пользователя было получено явное согласие на передачу персональных данных. Содержит свойства:app_id: string— идентификатор приложения.user_id: string— идентификатор пользователя.
Пример
1function log_ids()
2 ysdk.player.get_ids_per_game(function(self, ids)
3 for _, value in ipairs(ids) do
4 print(value.app_id, value.user_id)
5 end
6 end)
7end
Примечание
Если при работе с плагином вы столкнулись с проблемой или у вас появился вопрос, обратитесь в сообщество в Телеграме.