BasilYes / godot-yandex-games-sdk

Yandex games SDK implementation for godot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ENG RU

Yandex games SDK для Godot 4.3+

Godot и Yandex Игры

Неофициальная реализация Yandex games SDK для Godot. Делаю для себя и своих игр, по этому тут реализованны не все методы и не всегда до конца (буду потихоньку доделывать). Если не хватает каких либо функций или я что-то криво сделал, можете создать ошибку (может быть я до неё дойду) или исправить и залить сюда, буду очень признателен.

Протестировано на Godot 4.3dev6

Начало работы

Просто установите плагин и добавьте "yandex" в feature (не знаю как в переводе) к вашему экспорту (см. скрин ниже)

Пример экспорта

Методы

Все методы находятся в синглтоне YandexSDK

Инициализация Yandex SDK

YandexSDK.init_game() -> void

Самый первый метод, который необходимо вызвать. Он инициализирует YandexSDK, без его вызова не будет работать ни один другой метод sdk. Это просто реализация метода начала игры из документации.

Показ рекламы

YandexSDK.show_ad() -> void

Просто показывает пользователю полноэкранную рекламу. Закрытие рекламы или ошибка показа вызовет сигнал ad(result), переменная result содержит значение 'closed', 'error', 'opened'.

Показ рекламы за вознаграждение

YandexSDK.show_rewarded_ad() -> void

Показывает пользователю рекламу с наградой. Вызывает сигнал rewarded_ad(result), переменная result содержит одно из строковых значений 'rewarded', 'closed', 'opened' или 'error'.

Инициализация данных игрока

YandexSDK.init_player() -> void

Инициализация данных игрока, необходимых для сохранения и других действий, связанных с игроком. Приведенные ниже методы не будут работать без вызова этого метода.

Сохранение данных игрока

YandexSDK.save_data(data: Dictionary, flush: bool = false) -> void

Сохраняет данные игрока. Максимальный размер данных не должен превышать 200 KБ. Внимание словарь перезаписывает ВСЕ данные уже находящиеся на серверах яндекса. (т.е. то, что там было заменятеся на то, что вы отправили)

  • data: Dictionary, содержащий пары ключ-значение.
  • flush: Boolean, определяет очередность отправки данных. При значении «true» данные будут отправлены на сервер немедленно; «false» (значение по умолчанию) — запрос на отправку данных будет поставлен в очередь.

Сохранение численных данных игрока

YandexSDK.save_stats(stats: Dictionary) -> void

Сохраняет численные данные игрока. Максимальный размер данных не должен превышать 10 КБ. Внимание словарь перезаписывает ВСЕ данные уже находящиеся на серверах яндекса. (т.е. то, что там было заменятеся на то, что вы отправили)

  • stats: Dictionary, содержащий пары ключ-значение, где каждое значение должно быть числом.

Загрузка данных игрока

YandexSDK.load_data(keys: Array) -> void

Отправляет запрос на получение внутриигровых данных игрока, после получения вызывает сигнал data_loaded(data), data - Dictionary с полученными данными

  • keys: список ключей, которые необходимо вернуть.

Загрузка численных данных игрока

YandexSDK.load_stats(keys: Array) -> void

Отправляет запрос на получение численных данных пользователя, после получения вызывает сигнал stats_loaded(data), data - Dictionary с полученными данными

  • keys: список ключей, которые необходимо вернуть.

Инициализация лидербордов

YandexSDK.init_leaderboard() -> void

Инициализирует лидерборды игры. Этот метод должен быть вызван перед использованием других функций, связанных с лидербордами. После успешной инициализации вызывается сигнал leaderboard_initialized, который указывает, что лидерборды готовы к использованию.

Сохранение значения в лидерборд

YandexSDK.save_leaderboard_score(leaderboard_name: String, score: int, extra_data: String = "") -> void

Сохраняет значение в указанный лидерборд.

  • leaderboard_name: Строка, представляющая имя лидерборда, в который необходимо сохранить значение.
  • score: Целое число, представляющее собой результат, который необходимо сохранить в лидерборд.
  • extra_data: Дополнительные данные, которые могут быть связаны с этой записью в лидерборде (по умолчанию пустая строка).

Загрузить запись игрока из лидерборда

YandexSDK.load_leaderboard_player_entry(leaderboard_name: String) -> void

Загружает запись игрока из указанного лидерборда. После загрузки вызывается сигнал leaderboard_player_entry_loaded(data), где data - Dictionary с информацией о записи игрока в лидерборде.

  • leaderboard_name: Строка, представляющая имя лидерборда, из которого необходимо загрузить запись игрока.

Загрузить записи игроков

YandexSDK.load_leaderboard_entries(leaderboard_name: String, include_user: bool, quantity_around: int, quantity_top: int) -> void

Загружает записи игроков из указанного лидерборда с возможностью настройки количества загружаемых записей и включения информации об авторизованном пользователе. После загрузки вызывается сигнал leaderboard_entries_loaded(data), где data - Dictionary с информацией о записях игроков в лидерборде.

  • leaderboard_name: Строка, представляющая имя лидерборда, из которого необходимо загрузить записи игроков.
  • include_user: Булево значение, указывающее, нужно ли включать информацию об авторизованном пользователе в результаты загрузки.
  • quantity_around: Количество записей ниже и выше пользователя по лидерборду, которое необходимо загрузить.
  • quantity_top: Количество записей из топа лидерборда, которое необходимо загрузить.
Проверка авторизации игрока
`YandexSDK.check_is_authorized() -> void`

Проверяет, авторизован ли текущий игрок. После проверки вызывает сигнал check_auth(answer), где answer - булево значение, указывающее, авторизован ли игрок.

Открыть окно авторизации

YandexSDK.open_auth_dialog() -> void`

Открывает окно авторизации игрока. Перед открытием окна выполняет проверку авторизации.

Больше информации можно найти на официальном сайте.

About

Yandex games SDK implementation for godot

License:MIT License


Languages

Language:GDScript 65.2%Language:JavaScript 34.8%