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

Общая таблица лидеров

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

Обзор

info

Общие таблицы лидеров создаются автоматически при из запросе из SDK по нужным полям.

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

  • 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]

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