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

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

Обзор

info

Вы можете открыть таблицу лидеров или получить список игроков таблицы.

Для работы с таблицами лидеров используются методы:

  • gp.leaderboard.open - открыть лидерборд +1-2 Request
  • gp.leaderboard.fetch - получить список игроков лидерборда +1-2 Request

Открыть таблицу

+1-2 Request

Чтобы не реализовывать на своей стороне отображение таблицы рекордов, её можно просто открыть во внутриигровом оверлее:

gp.leaderboard.open();

По умолчанию выводится топ, отсортированный по очкам игрока, но все поля можно кастомизировать:

gp.leaderboard.open({
// Сортировка по полям слева направо
orderBy: ['level', 'gold'],
// Сортировка DESC — сначала большие значение, ASC — сначала маленькие
order: 'DESC',
// Количество игроков в списке
limit: 10,
// Включить список полей для отображения в таблице, помимо orderBy
includeFields: ['rank'],
// Вывести только нужные поля по очереди
displayFields: ['rank', 'level'],
/**
* Показывать ли текущего игрока в списке, если он не попал в топ
* none — не показывать
* first — показать первым
* last — показать последним
*/
withMe: 'first',
// Показать N ближайших игроков сверху и снизу, максимум 10
showNearest: 5,
});

События оверлея лидербордов

// При открытии
gp.leaderboard.on('open', () => {});

// При закрытии
gp.leaderboard.on('close', () => {});

Получить таблицу

+1-2 Request

Если есть потребность отрисовывать список самому, то можно просто получить список игроков:

const result = await gp.leaderboard.fetch({
// Сортировка по полям слева направо
orderBy: ['level', 'gold'],
// Сортировка DESC — сначала большие значение, ASC — сначала маленькие
order: 'DESC',
// Количество игроков в списке
limit: 10,
// Включить список полей для отображения в таблице, помимо orderBy
includeFields: ['rank'],
/**
* Показывать ли текущего игрока в списке, если он не попал в топ
* none — не показывать
* first — показать первым
* last — показать последним
*/
withMe: 'first',
// Получить N ближайших игроков сверху и снизу, максимум 10
showNearest: 5,
});

// Результат получения
const { players, fields, topPlayers, abovePlayers, belowPlayers, player } = result;

Ответ:

СвойствоТипОписание
playersLeaderboardPlayer[]подготовленный к отрисовке топ игроков с учетом моего игрока и игроков перед и после игрока
topPlayersLeaderboardPlayer[]список лидеров

Если запрос включает withMe: 'first' | 'last' или showNearest: >0, то дополнительно возвращаются поля:

СвойствоТипОписание
playerLeaderboardPlayerданные моего игрока с позицией
abovePlayersLeaderboardPlayer[]список игроков перед моим игроком
belowPlayersLeaderboardPlayer[]список игроков после моего игрока

Подключение Яндекс лидерборда

Для работы с таблицами лидеров Яндекс Игр создайте в консоли разработчика лидерборд с техническим названием score. Для этого:

  • перейдите в приложения консоли Яндекс Игр
  • выберите необходимую игру из списка
  • откройте вкладку Лидерборды
  • создайте лидерборд с техническим названием 💡 score
  • сохраните таблицу
tip

score - это название, которые вы будете использовать для взаимодействия в SDK. При сохранении игрока (см. метод sync) значение переменной score автоматически сохраняется в лидерборд Яндекса.

info

Флажок Является ли основным лидербордом? определяет, какой лидерборд будет отображаться на карточке игры. Такая таблица может быть только одна, и при создании новых таблиц с этим флажком он снимается со всех ранее созданных таблиц.

Типы

LeaderboardPlayer поля

ПолеТипОписаниеПример
idnumberPlayer ID163019491
namestringPlayer nameJhon Doe
avatarstringPlayer avatarhttps://cdn.eponesh.com/static/images/652/5c6/6525c6c910494dadd428f12e-1024x1024.webp
positionnumberPlayer position in leaderboard1522
myVariablestring, number, booleanPlayer custom variableplayer.gold, player.score

Оставайтесь на связи

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

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: [email protected]

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