Данные игрока

Вы можете сохранять данные состояния игры (пройденные уровни, опыт, инап-покупки и т. д.) на сервере Яндекса или передавать их на свой сервер. Также вы можете персонализировать игру, используя некоторые данные из профиля пользователя на Яндексе, например, имя.

Информация об игроке

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

Примечание

Если при работе с плагином вы столкнулись с проблемой или у вас появился вопрос, обратитесь в сообщество в Телеграме.

Репозиторий
Предыдущая
Следующая