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

Таблицы лидеров

Вы можете показывать на странице игры персонализированные таблицы лидеров с результатами лучших игроков и местом в рейтинге авторизованного пользователя.

Чтобы у вас заработали описанные ниже запросы, проверьте, что выполнены условия:

к сведению

Если в консоли нет таблицы лидеров с соответствующим именем в поле Техническое название таблицы лидеров, запросы будут выдавать ошибку 404.

Описание таблицы лидеров

Чтобы получить описание таблицы лидеров по его имени, используйте метод ysdk.leaderboards.get_description():

ysdk.leaderboards.get_description(
leaderboard_name: string,
callback: function
)

callback — function — обработчик вызванного метода. Имеет вид:

function(self, description: table|nil): nil
  • description: table — описание таблицы лидеров. Содержит свойства:
    description: {
    app_id: string,
    dеfault: boolean,
    invert_sort_order: boolean,
    decimal_offset: integer,
    type: string,
    name: string,
    title: {
    en: string,
    ru: string
    }
    }

Пример

function display_leaderboard()
ysdk.leaderboards.get_description("highscores",
function (self, description)
if description then
print(
description.name,
description.title.en
)
end
end)
end

Новый результат

к сведению

Запрос доступен только для авторизованных пользователей. При необходимости воспользуйтесь авторизацией.

Чтобы установить игроку новый результат, используйте метод ysdk.leaderboards.set_score():

ysdk.leaderboards.set_score(
leaderboard_name: string,
score: integer,
extraData: string|nil
)
к сведению

Запрос можно отправлять не чаще, чем раз в секунду. В противном случае он будет отклонен с ошибкой.

Получение рейтинга

к сведению

Запрос доступен только для авторизованных пользователей. При необходимости воспользуйтесь авторизацией.

Чтобы получить рейтинг пользователя, используйте метод ysdk.leaderboards.get_player_entry():

ysdk.leaderboards.get_player_entry(
leaderboard_name: string,
callback: function
)

callback: function — обработчик вызванного метода. Имеет вид:

function(self, player_entry: table|nil): nil
  • player_entry: table — рейтинг пользователя. Содержит свойства:
    player_entry: {
    score: integer,
    extraData: string,
    rank: integer,
    avatar_src: {
    small: string,
    medium: string,
    large: string,
    },
    avatar_srcset: {
    small: string,
    medium: string,
    large: string,
    },
    lang: string,
    public_name: string,
    unique_id: string,
    formatted_score: string
    }

Пример

function display_high_score()
ysdk.leaderboards.get_player_entry("highscores",
function (self, player_entry)
if player_entry then
print("highscore: " .. player_entry.score)
end
end)
end

Записи таблицы лидеров

Чтобы вывести рейтинг пользователей, используйте метод ysdk.leaderboards.get_entries():

ysdk.leaderboards.get_entries(
leaderboardName: string,
callback: function,
options: {
include_user: boolean|nil,
quantity_around: number|nil,
quantity_top: number|nil
}
)

callback: function — обработчик вызванного метода. Имеет вид:

function(self, entries: table|nil): nil
  • entries: table — рейтинг пользователей. Содержит свойства:
    entries: {
    leaderboard: {
    ...
    },
    ranges: [
    {
    start: integer,
    size: integer
    }
    ],
    userRank: integer,
    entries: [
    {
    score: integer,
    extraData: string,
    rank: integer,
    avatar_src: {
    small: string,
    medium: string,
    large: string,
    },
    avatar_srcset: {
    small: string,
    medium: string,
    large: string,
    },
    lang: string,
    public_name: string,
    unique_id: string,
    formatted_score: string
    },
    ...
    ]
    }