Найти в Дзене

Как добавить Лидерборд Яндекс.Игры. Таблица лидеров для своего проекта в Gdevelop

Установите расширение Playgama Bridge, если вы этого еще не сделали, можете прочитать начало данной статьи, чтобы понять, как это сделать. Еее, ты уже на втором шаге. Ладно, теперь тебе нужно создать сам лидерборд в консоли разработчика Яндекс.Игр. Для этого перейди в черновик своего проекта в консоли и в левом меню выбери «Лидерборды«: Так, теперь придумай название, например Score. Далее можно добавить английскую локализацию: Затем придумай название на выбранных языках для лидерборда, например «Лучшие игроки» и «Best Players». Не уверен, что именно они будут отображаться, вроде Яндекс юзает стандартные названия или его нужно самому настраивать в проекте (но это не точно). Далее оставь галочку в покое, не трогай ее, ведь это твой основной лидерборд) Потом укажи тип лидерборда, числовой или по времени. Смотря что у тебя там будет отображаться, если очки или баблишки, то выбирай numeric, если в игре нужно ставить рекорды по самому быстрому забегу бегущей колбаски до финиша, выбирай time
Оглавление

Шаг первый.

Установите расширение Playgama Bridge, если вы этого еще не сделали, можете прочитать начало данной статьи, чтобы понять, как это сделать.

Шаг второй.

Еее, ты уже на втором шаге. Ладно, теперь тебе нужно создать сам лидерборд в консоли разработчика Яндекс.Игр. Для этого перейди в черновик своего проекта в консоли и в левом меню выбери «Лидерборды«:

-2

Так, теперь придумай название, например Score. Далее можно добавить английскую локализацию:

-3

Затем придумай название на выбранных языках для лидерборда, например «Лучшие игроки» и «Best Players». Не уверен, что именно они будут отображаться, вроде Яндекс юзает стандартные названия или его нужно самому настраивать в проекте (но это не точно).

-4

Далее оставь галочку в покое, не трогай ее, ведь это твой основной лидерборд)

-5

Потом укажи тип лидерборда, числовой или по времени. Смотря что у тебя там будет отображаться, если очки или баблишки, то выбирай numeric, если в игре нужно ставить рекорды по самому быстрому забегу бегущей колбаски до финиша, выбирай time.

Сделал? Нормально делай, нормально будет. Так-с, теперь выбери направление сортировки и размер десятичной дроби, если не понимаешь, что выбирать и что писать наведи курсор на знак вопроса, там всё подробно объяснили.

После всех этих манипуляций жми на кнопку «Сохранить«.

Шаг третий.

Ты устал? Я тоже… Но не время отдыхать, доведём дело до конца!

Переходим в события сцены, где творится вся магия твоего проекта и сделаем следующее:

Создаём условие, при котором у нас должны сохраняться очки в наш лидерборд. Для примера это будет кнопка, давайте представим, что типа у нас конец уровня и там появляется кнопка «End», которая вернёт нас в сцену с уровнями. Будем использовать её. Назову ее «HomeBut«.

Но условие может быть любым, если что. Это просто пример.

Вот вам код с движка, чтобы вы вставили его в свой проект:

{"000kind":"GDEVELOP_EventsAndInstructions_CLIPBOARD_KIND-jsBdHbLy912y8Rc","content":{"eventsList":[{"type":"BuiltinCommonInstructions::Standard","conditions":[{"type":{"value":"PanelSpriteButton::PanelSpriteButton::IsClicked"},"parameters":["HomeBut",""]},{"type":{"value":"BuiltinCommonInstructions::Once"},"parameters":[]}],"actions":[],"events":[{"type":"BuiltinCommonInstructions::Standard","conditions":[{"type":{"value":"BuiltinCommonInstructions::CompareStrings"},"parameters":["PlaygamaBridge::PlatformId()","=","\"yandex\""]}],"actions":[{"type":{"value":"PlaygamaBridge::AddActionParameter"},"parameters":["","\"leaderboardName\"","\"ИМЯ_ВАШЕГО_ЛИДЕРБОРДА\"",""]},{"type":{"value":"PlaygamaBridge::AddActionParameter"},"parameters":["","\"score\"","Points",""]}]},{"type":"BuiltinCommonInstructions::Standard","conditions":[],"actions":[{"type":{"value":"PlaygamaBridge::LeaderboardSetScore"},"parameters":["",""]}]}]}],"eventsCount":1,"actionsList":[],"actionsCount":0,"conditionsList":[],"conditionsCount":0}}

Просто скопируйте весь текст, затем кликните на любое событие и вставьте (CTRL+V). Должно получится следующее:

-6

Теперь проведём разбор полётов:

И так, мы добавляем условия:

  • Если кликнули на кнопку «HomeBut»
  • Срабатывать один раз
Хочу сразу же отметить, что у меня сейчас в движке установлен русский язык и местами перевод очень корявый и при создании условий и действий могут попасться разные функции с одинаковым переводом или же вовсе не понятным и глупым, но я уже привык, т.к могу отличить их.Например по правому окну, когда выбираешь условие или действие, сверху на английском пишется описание. Если же вы на английской локализации движка и вам не понятно, где что, то напишите в комментариях или мне в личку и я начну делать уроки на английском. Чтобы не было вопросов.
-7

К примеру вот тут мы видим две функции «Нажата«, но в правом окне есть описание, и по нему можно понять, за что отвечает условие/действие. В моем случае за клик по кнопке.

Продолжим, нам нужно создать подосбытие, с помощью сочетания клавиш Shift+D (перед этим не забудьте кликнуть на событие, под которым мы создаем это самое подсобытие (взрыв мозга да xD).

Добавляем условие, переходим в раздел «Другие условия», затем ищем «События и управляющая логика» и выбираем «Сравнить две строки».

Далее в правом окне настраиваем всё вот так:

-8

Вот вам значение выражения для копирки: PlaygamaBridge::PlatformId()

Тут мы проверяем, что платформа, на которую мы залили игру (пока еще нет) это Яндекс.Игры и пишем в кавычках «yandex».

Далее справа в действиях нажимаем на текст «ИМЯ_ВАШЕГО_ЛИДЕРБОРДА» и в кавычках пишем название созданного лидерборда, т.е Score (или какой там у вас). Далее нажимаем на значение «Points» и пишем название переменной вашего золота, очков, печенек и т.д (т.е указываем переменную, которая сохраняет ваши очки, которые вы хотите отобразить в лидерборде). У меня это — Points.

-9

Можете так же открыть двойным щелчком эти действия и настроить всё в окне, если так не удобно.

Далее под первым подсобытием, где PlaygamaBridge::PlatformId() = «yandex» создаём снизу событие (SHIFT+A), оно будет пустым. И справа добавляем действие «Задать балл в лидерборде» ( но вам ничего добавлять не надо, вы уже скопировали событие и там всё есть, можете копировать и перемещать куда хотите).

Это действие отправляет очки в ваш лидерборд.

-10
-11

Т.к порядок работы событий (нашего кода) устроен таким образом, что всё выполняется сверху вниз, то получается у нас такая схема:

  1. Нажимаем на кнопку.
  2. PGB (Playgama) проверяет — это платформа Яндекс.Игры или нет. Если условия верны, то отправляет в лидерборд наши данные.
  3. Устанавливает значение в лидерборде

Усё! В принципе готово. Осталось затестить в черновике работоспособность.

Ну, а если у вас что-то ничего не заработало, вы всегда можете написать мне в Телегу.

Удачи в разработке игр!