Skip to content

megalanthus/defold-gamepush

Repository files navigation

GamePush Logo

GamePush for Defold

GamePush (ранее GameScore) расширение для движка Defold (для версии Defold >= 1.8.0). GamePush это сервис для удобной публикации HTML5 игр на разных платформах с одним SDK. Сервисом поддерживается локальная отладка игры.

Внимание! Если используется версия Defold >= 1.4.0 и < 1.8.0 используйте версию плагина v1.1.5

Установка

Вы можете использовать его в своем собственном проекте, добавив этот проект в качестве зависимости библиотеки Defold.

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

В файл game.project необходимо добавить раздел gamepush и указать id и token игры, остальные параметры можно опустить:

[gamepush]
id = идентификатор игры
token = токен
description = There are not enough words to describe the awesomeness of the game
image = /img/ogimage.png

Дополнительные параметры: (doc)

Для начала необходимо инициализировать SDK с помощью метода init:

local gamepush = require("gamepush.gamepush")

gamepush.init(function(success)
    if success then
        -- инициализация прошла успешно
    else
        -- ошибка инициализации
    end
end)

Для подписки на событие необходимо определить соответсвующий метод таблицы callbacks:

local gamepush = require("gamepush.gamepush")

local function ads_start()
    -- выключаем звук
end

local function ads_close(success)
    -- включаем звук
end

local function ads_reward()
    -- подкидываем золотишка игроку
end

-- функции событий можно назначить до инициализации SDK
gamepush.ads.callbacks.start = ads_start
gamepush.ads.callbacks.close = ads_close
gamepush.ads.callbacks.rewarded_reward = ads_reward
-- инициализация SDK
gamepush.init(function(success)
    if success then
        -- показываем прелоадер
        gamepush.ads.show_preloader(function(result)
            -- реклама закрыта, можно что-то делать
        end)
        -- что то делаем еще

        -- показываем рекламу за вознаграждение 
        gamepush.ads.show_rewarded_video()

        -- показываем рекламу за вознаграждение с использованием колбека
        gamepush.ads.show_rewarded_video(function(result)
            if result then
                -- подкидываем игроку кристаллов
            end
        end)
    else
        -- ошибка инициализации
    end
end)

API

GamePush JS SDK GamePush Lua API
Инициализация (doc)
window.onGPInit init(callback)
Инициализация модуля
callback(result): функция обратного вызова
Общие возможности (doc)
Язык (doc)
gp.language language()
Выбранный язык в формате ISO 639-1
gp.changeLanguage(languagecode) changelanguage(languagecode)
Устанавливает язык в формате ISO 639-1
languagecode: код языка
Константы языков: languages
ENGLISH
RUSSIAN
FRENCH
ITALIAN
GERMAN
SPANISH
CHINESE
PORTUGUESE
KOREAN
JAPANESE
TURKISH
ARAB
HINDI
INDONESIAN
Системная информация (doc)
gp.isMobile is_mobile()
Мобильное устройство?
gp.isPortrait is_portrait()
Режим экрана: портретный/альбомный?
gp.isDev is_dev()
В разработке?
gp.isAllowedOrigin is_allowed_origin()
Хост игры в доверенных источниках?
--- get_plugin_version()
Возвращает версию плагина
Серверное время (doc)
gp.serverTime get_server_time()
Возвращает серверное время в формате ISO 8601
Пауза (doc)
gp.isPaused is_paused()
На паузе?
gp.pause() pause()
Поставить на паузу
gp.resume() resume()
Возобновить
События:
gp.on('change:orientation', (isPortrait) => {}) callbacks.change_orientation(isPortrait)
Событие смены ориентации экрана
gp.on('pause', () => {}) callbacks.pause()
Поставили на паузу
gp.on('resume', () => {}) callbacks.resume()
Возобновили игру
gp.on('event:connect', () => {}) callbacks.event_connect()
Уведомление о других окнах
Фоновое изображение игры (doc)
gp.setBackground(parameters) set_background(parameters)
Установить фоновое изображение игры
parameters: таблица с параметрами
Старт игры (doc)
gp.gameStart() game_start()
Старт игры
gp.isGameStarted() is_game_started()
Запущена ли игра (загрузка завершена)
Геймплей (doc)
gp.gameplayStart() gameplay_start()
Запуск геймплея
gp.gameplayStop() gameplay_stop()
Завершение геймплея
gp.isGameplay() is_game_play()
Геймплей запущен?
Приложение (doc)
gp.app.title app.title()
Название игры
gp.app.description app.description()
Описание
gp.app.image app.image()
Изображение
gp.app.url app.url()
Адрес
Отзывы (doc)
gp.app.requestReview() app.request_review()
Предложить игроку оставить отзыв на игру
gp.app.canRequestReview app.can_request_review()
Проверить поддержку возможности оставить отзыв на игру
gp.app.isAlreadyReviewed app.is_already_reviewed()
Проверить был ли оставлен отзыв
Ярлык / Избранное (doc)
gp.app.addShortcut() app.add_shortcut()
Предложить игроку создать ярлык или добавить игру в избранное
gp.app.canAddShortcut app.can_add_shortcut()
Проверить поддержку возможности создать ярлык или добавить игру в избранное
Платформа (doc)
gp.platform.type platform.type()
Тип платформы
gp.platform.hasIntegratedAuth platform.has_integrated_auth()
Возможность авторизации
gp.platform.isExternalLinksAllowed platform.is_external_links_allowed()
Возможность размещать внешние ссылки
gp.platform.isSecretCodeAuthAvailable platform.is_secret_code_auth_available()
Доступен секретный код авторизации
gp.platform.getNativeSDK() platform.call_native_sdk(method, parameters, callback)
Вызывает нативный метод для платформы подобнее
method: метод или поле объекта нативной платформы
parameters: параметры вызываемого метода
callback: функция обратного вызова
Константы платформ: NONE
CRAZY_GAMES
GAME_DISTRIBUTION
GAME_MONETIZE
OK
SMARTMARKET
VK
YANDEX
GAMEPIX
POKI
VK_PLAY
WG_PLAYGROUND
Игрок (doc)
Менеджер игрока (doc)
gp.player.isLoggedIn player.is_logged_in()
Игрок авторизован
gp.player.hasAnyCredentials player.has_any_credentials()
Игрок использует один из способов входа (кука, авторизация, секретный код)
gp.player.isLoggedInByPlatform player.is_logged_in_by_platform()
Игрок авторизован на платформе
gp.player.sync()
gp.player.sync({ override: true })
player.sync(parameters, callback)
Синхронизирует игрока
parameters = {override = boolean или nil, silent = boolean или nil} или nil
callback(): функция обратного вызова или nil
gp.player.load() player.load(callback)
Принудительная загрузка игрока, с перезаписью локального
callback(): функция обратного вызова или nil
gp.player.login() player.login(callback)
Вход игрока
callback(result): функция обратного вызова или nil
gp.player.fetchFields() player.fetch_fields(callback)
Получить список полей игрока
callback(): функция обратного вызова или nil
Состояние игрока (doc)
gp.player.id player.id()
ID игрока
gp.player.score player.score()
Очки игрока
gp.player.name player.name()
Имя игрока
gp.player.avatar player.avatar()
Ссылка на аватар игрока
gp.player.isStub player.is_stub()
Заглушка - пустой ли игрок или данные в нём отличаются умолчательных
gp.player.fields player.fields()
Поля игрока
gp.player.get(key) player.get(key)
Получить значение поля key
key = string
gp.player.set(key, value) player.set(key, value)
Установить значение поля key
key = string
value = string, number или boolean
gp.player.add(key, value) player.add(key, value)
Добавить значение к полю key
key = string
value = string, number или boolean
gp.player.toggle(key) player.toggle(key)
Инвертировать состояние поля key
key = string
value = string, number или boolean
gp.player.has(key) player.has(key)
Проверить есть ли поле key и оно не пустое (не 0, '', false, null, undefined)
key = string
gp.player.toJSON() player.to_json()
Возвращает состояние игрока объектом (таблицей)
gp.player.fromJSON(parameters) player.from_json(parameters)
Устанавливает состояние игрока из объекта (таблицы)
parameters = {key = value, key2 = value2}
gp.player.reset() player.reset()
Сбрасывает состояние игрока на умолчательное
gp.player.remove() player.remove()
Удаляет игрока — сбрасывает поля и очищает ID
gp.player.getField(key) player.get_field(key)
Получить поле по ключу key
key = string
gp.player.getFieldName(key) player.get_field_name(key)
Получить переведенное имя поля по ключу key
key = string
gp.player.getFieldVariantName(key, value) player.get_field_variant_name(key, value)
Получить переведенное имя варианта поля (enum) по ключу key и его значению value
key = string
value = string
Статистика игрока (doc)
gp.player.stats.activeDays player.stats.active_days()
Количество дней в игре
gp.player.stats.activeDaysConsecutive player.stats.active_days_consecutive()
Количество дней в игре подряд
gp.player.stats.playtimeToday player.stats.playtime_today()
Количество секунд, проведенных в игре сегодня
gp.player.stats.playtimeAll player.stats.playtime_all()
Количество секунд, проведенных в игре за все время
Данные игрока (doc)
gp.players.fetch(parameters) players.fetch(parameters, callback)
Получить данные игроков
parameters = таблица с идентификаторами игроков
callback(result): функция обратного вызова
События:
gp.player.on('sync', (success) => {}) player.callbacks.sync(success)
Синхронизация игрока
gp.player.on('load', (success) => {}) player.callbacks.load(success)
Загрузка игрока
gp.player.on('login', (success) => {}) player.callbacks.login(success)
Вход игрока
gp.player.on('fetchFields', (success) => {}) player.callbacks.fetch_fields(success)
Получение полей игрока
gp.player.on('change', () => {}) player.callbacks.change()
Изменение полей игрока
Покупки (doc)
Платежи (doc)
gp.payments.isAvailable payments.is_available()
Проверка поддержки платежей на платформе
gp.payments.products payments.products()
Список продуктов
возвращает таблицу с продуктами
gp.payments.purchases payments.purchases()
Список покупок
возвращает таблицу с покупками
gp.payments.purchase(parameters) payments.purchase(parameters, callback)
Покупка продукта
parameters: таблица параметров
callback(result): функция обратного вызова или nil
gp.payments.consume(parameters) payments.consume(parameters, callback)
Использование продукта
parameters: таблица параметров
callback(result): функция обратного вызова или nil
gp.payments.has(product) payments.has(product)
Проверка наличия покупки
product: id или tag продукта
gp.payments.fetchProducts() payments.fetch_products(callback)
Получение списка продуктов
callback(result): функция обратного вызова
События:
gp.payments.on('purchase', (result) => {}) payments.callbacks.purchase(result)
Покупка продукта
gp.payments.on('error:purchase', (error) => {}) payments.callbacks.error_purchase(error)
Ошибка покупки продукта
gp.payments.on('consume', (result) => {}) payments.callbacks.consume(result)
Использование продукта
gp.payments.on('error:consume', (error) => {}) payments.callbacks.error_consume(error)
Ошибка использования продукта
gp.payments.on('fetchProducts', (result) => {}) payments.callbacks.fetch_products(result)
Получение списка продуктов
gp.payments.on('error:fetchProducts', (error) => {}) payments.callbacks.error_fetch_products(error)
Ошибка получения списка продуктов
Подписки (doc)
gp.payments.isSubscriptionsAvailable payments.is_subscriptions_available()
Проверка поддержки подписки на платформе
gp.payments.subscribe(parameters) payments.subscribe(parameters, callback)
Подписка
parameters: таблица параметров
callback(result): функция обратного вызова или nil
gp.payments.unsubscribe(parameters) payments.unsubscribe(parameters, callback)
Отмена подписки
parameters: таблица параметров
callback(result): функция обратного вызова или nil
События:
gp.payments.on('subscribe', (result) => {}) payments.callbacks.subscribe(result)
Подписка
gp.payments.on('error:subscribe', (error) => {}) payments.callbacks.error_subscribe(error)
Ошибка подписки
gp.payments.on('unsubscribe', (result) => {}) payments.callbacks.unsubscribe(result)
Отмена подписки
gp.payments.on('error:unsubscribe', (error) => {}) payments.callbacks.error_unsubscribe(error)
Ошибка отмены подписки
Таблицы лидеров (doc)
Таблица лидеров (doc)
gp.leaderboard.open()
gp.leaderboard.open(parameters)
leaderboard.open(parameters)
Показать таблицу лидеров во внутриигровом оверлее, parameters: таблица параметров вывода или nil
gp.leaderboard.fetch()
gp.leaderboard.fetch(parameters)
leaderboard.fetch(parameters, callback)
Получить таблицу лидеров
parameters: таблица параметров вывода или nil
callback(leaders): функция обратного вызова
Рейтинг игрока (doc)
gp.leaderboard.fetchPlayerRating()
gp.leaderboard.fetchPlayerRating(parameters)
leaderboard.fetch_player_rating(parameters, callback)
Получить рейтинг игрока
parameters: таблица параметров вывода или nil
callback(leaders): функция обратного вызова
Изолированная таблица лидеров (doc)
gp.leaderboard.openScoped(parameters) leaderboard.open_scoped(parameters, callback)
Показать изолированную таблицу лидеров во внутриигровом оверлее, parameters: таблица параметров вывода или nil
callback(result): функция обратного вызова
gp.leaderboard.fetchScoped(parameters) leaderboard.fetch_scoped(parameters, callback)
Получить изолированную таблицу лидеров
parameters: таблица параметров вывода или nil
callback(leaders): функция обратного вызова
gp.leaderboard.publishRecord(parameters) leaderboard.publish_record(parameters, callback)
Публикация рекорда игрока в изолированную таблицу
parameters: таблица с параметрами и рекордом для записи
callback(result): функция обратного вызова
Получение рейтинга игрока (doc)
gp.leaderboard.fetchPlayerRatingScoped(parameters) leaderboard.fetch_player_rating_scoped(parameters, callback)
Получить рейтинг игрока в изолированной таблице
parameters: таблица параметров вывода
callback(leaders): функция обратного вызова
Каналы (doc)
Управление каналами (doc)
gp.channels.createChannel(parameters, callback) channels.create_channel(parameters, callback)
Создать канал
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.updateChannel(parameters, callback) channels.update_channel(parameters, callback)
Обновить канал
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.deleteChannel(parameters, callback) channels.delete_channel(parameters, callback)
Удалить канал
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchChannel(parameters, callback) channels.fetch_channel(parameters, callback)
Получить информацию о канале по ID
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchChannels(parameters, callback) channels.fetch_channels(parameters, callback)
Получить список каналов
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreChannels(parameters, callback) channels.fetch_channels(parameters, callback)
Подгрузить список каналов
parameters: таблица параметров
callback(result): функция обратного вызова
События:
gp.channels.on('createChannel', (channel) => {}) channels.callbacks.create_channel(channel)
Канал создан
gp.channels.on('error:createChannel', (error) => {}) channels.callbacks.error_create_channel(error)
Ошибка создания канала
gp.channels.on('updateChannel', (channel) => {}) channels.callbacks.update_channel(channel)
Канал обновлен
gp.channels.on('error:updateChannel', (error) => {}) channels.callbacks.error_update_channel(error)
Ошибка обновления канала
gp.channels.on('event:updateChannel', (channel) => {}) channels.callbacks.event_update_channel(channel)
Уведомление об изменении канала
gp.channels.on('deleteChannel', () => {}) channels.callbacks.delete_channel()
Канал удален
gp.channels.on('error:deleteChannel', (error) => {}) channels.callbacks.error_delete_channel(error)
Ошибка удаления канала
gp.channels.on('event:deleteChannel', (channel) => {}) channels.callbacks.event_delete_channel(channel)
Уведомление об удаления канала
gp.channels.on('fetchChannel', (channel) => {}) channels.callbacks.fetch_channel(channel)
Получена информация о канале
gp.channels.on('error:fetchChannel', (error) => {}) channels.callbacks.error_fetch_channel(error)
Ошибка получения информации о канале
gp.channels.on('fetchChannels', (result) => {}) channels.callbacks.fetch_channels(result)
Получен список каналов
gp.channels.on('error:fetchChannels', (error) => {}) channels.callbacks.error_fetch_channels(error)
Ошибка получения списка каналов
gp.channels.on('fetchMoreChannels', (result) => {}) channels.callbacks.fetch_more_channel(result)
Подгружен список каналов
gp.channels.on('error:fetchMoreChannels', (error) => {}) channels.callbacks.error_fetch_more_channel(error)
Ошибка подгрузки списка каналов
Готовые чаты (doc)
gp.channels.openChat(parameters) channels.open_chat(parameters)
Вызов окна чата
parameters: таблица параметров
gp.channels.isMainChatEnabled payments.is_main_chat_enabled()
Проверка возможности показать главный чат
gp.channels.mainChatId payments.main_chat_id()
Получить ID главного чата
События:
gp.channels.on('openChat', () => {}) channels.callbacks.open_chat()
Открыли чат
gp.channels.on('closeChat', () => {}) channels.callbacks.close_chat()
Закрыли чат
gp.channels.on('error:openChat', (error) => {}) channels.callbacks.error_open_chat(result)
Не удалось открыть чат
Участники (doc)
gp.channels.join(parameters, callback) channels.join(parameters, callback)
Запрос на вступление в публичный канал
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.cancelJoin(parameters, callback) channels.cancel_join(parameters, callback)
Отмена запроса на вступление
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.leave(parameters, callback) channels.leave(parameters, callback)
Выход из канала
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.kick(parameters, callback) channels.kick(parameters, callback)
Исключение участника из канала
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMembers(parameters, callback) channels.fetch_members(parameters, callback)
Получить участников
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreMembers(parameters, callback) channels.fetch_more_members(parameters, callback)
Подгрузить участников
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.mute(parameters, callback) channels.mute(parameters, callback)
Мьют игрока в канале
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.unmute(parameters, callback) channels.unmute(parameters, callback)
Отменить мьют игрока
parameters: таблица параметров
callback(result): функция обратного вызова
События:
gp.channels.on('join', (result) => {}) channels.callbacks.join(result)
Успешно вступил или подал заявку на вступление
gp.channels.on('error:join', (error) => {}) channels.callbacks.error_join(error)
Ошибка вступления в канал
gp.channels.on('event:join', (result) => {}) channels.callbacks.event_join(result)
Уведомление о вступлении в канал
gp.channels.on('event:joinRequest', (result) => {}) channels.callbacks.event_join_request(result)
Уведомление о том, что новый игрок пытается вступить в канал
gp.channels.on('cancelJoin', (result) => {}) channels.callbacks.cancel_join(result)
Отмена заявки на вступление
gp.channels.on('error:cancelJoin', (error) => {}) channels.callbacks.error_cancel_join(error)
Ошибка отмены заявки на вступление
gp.channels.on('event:cancelJoin', (result) => {}) channels.callbacks.event_cancel_join(result)
Уведомление об отмене заявки на вступление
gp.channels.on('leave', (result) => {}) channels.callbacks.leave(result)
Успешно покинул канал
gp.channels.on('error:leave', (error) => {}) channels.callbacks.error_leave(error)
Ошибка при попытке покинуть канал
gp.channels.on('event:leave', (result) => {}) channels.callbacks.event_leave(result)
Уведомление о том, что игрок покинул канал
gp.channels.on('kick', (result) => {}) channels.callbacks.kick(result)
Успешно исключен
gp.channels.on('error:kick', (error) => {}) channels.callbacks.error_kick(error)
Ошибка при исключении участника из канала
gp.channels.on('fetchMembers', (result) => {}) channels.callbacks.fetch_members(result)
Получен список участников
gp.channels.on('error:fetchMembers', (error) => {}) channels.callbacks.error_fetch_members(error)
Ошибка получения списка участников
gp.channels.on('fetchMoreMembers', (result) => {}) channels.callbacks.fetch_more_members(result)
Подгружен список участников
gp.channels.on('error:fetchMoreMembers', (error) => {}) channels.callbacks.error_fetch_more_members(error)
Ошибка подгрузки списка участников
gp.channels.on('mute', (result) => {}) channels.callbacks.mute(result)
Успешный мьют игрока
gp.channels.on('error:mute', (error) => {}) channels.callbacks.error_mute(error)
Ошибка мьюта игрока
gp.channels.on('event:mute', (error) => {}) channels.callbacks.event_mute(error)
Уведомление о мьюте игрока
gp.channels.on('unmute', (result) => {}) channels.callbacks.unmute(result)
Успешная отмена мьюта игрока
gp.channels.on('error:unmute', (error) => {}) channels.callbacks.error_unmute(error)
Ошибка отмены мьюта игрока
gp.channels.on('event:unmute', (error) => {}) channels.callbacks.event_unmute(error)
Уведомление об отмене мьюта игрока
Приглашения (doc)
gp.channels.sendInvite(parameters, callback) channels.send_invite(parameters, callback)
Отправка приглашения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.cancelInvite(parameters, callback) channels.cancel_invite(parameters, callback)
Отмена приглашения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.acceptInvite(parameters, callback) channels.accept_invite(parameters, callback)
Принять приглашение
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.rejectInvite(parameters, callback) channels.reject_invite(parameters, callback)
Отклонить приглашение
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchInvites(parameters, callback) channels.fetch_invites(parameters, callback)
Получить список приглашений игрока в каналы
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreInvites(parameters, callback) channels.fetch_more_invites(parameters, callback)
Подгрузить список приглашений игрока в каналы
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchChannelInvites(parameters, callback) channels.fetch_channel_invites(parameters, callback)
Получить список отправленных приглашений из канала
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreChannelInvites(parameters, callback) channels.fetch_more_channel_invites(parameters, callback)
Подгрузить список отправленных приглашений из канала
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchSentInvites(parameters, callback) channels.fetch_sent_invites(parameters, callback)
Получить список разосланных приглашений игрокам в каналы
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreSentInvites(parameters, callback) channels.fetch_more_sent_invites(parameters, callback)
Подгрузить список разосланных приглашений игрокам в каналы
parameters: таблица параметров
callback(result): функция обратного вызова
События:
gp.channels.on('sendInvite', (result) => {}) channels.callbacks.send_invite(result)
Приглашение отправлено
gp.channels.on('error:sendInvite', (error) => {}) channels.callbacks.error_send_invite(error)
Ошибка отправки приглашения
gp.channels.on('event:invite', (result) => {}) channels.callbacks.event_invite(result)
Уведомление о приглашении игрока
gp.channels.on('cancelInvite', (result) => {}) channels.callbacks.cancel_invite(result)
Отмена приглашения
gp.channels.on('error:cancelInvite', (error) => {}) channels.callbacks.error_cancel_invite(error)
Ошибка отмены приглашения
gp.channels.on('event:cancelInvite', (result) => {}) channels.callbacks.event_cancel_invite(result)
Уведомление об отмене приглашения
gp.channels.on('acceptInvite', (result) => {}) channels.callbacks.accept_invite(result)
Успешно принято приглашение
gp.channels.on('error:acceptInvite', (error) => {}) channels.callbacks.error_accept_invite(error)
Ошибка принятия приглашения
gp.channels.on('rejectInvite', (result) => {}) channels.callbacks.reject_invite(result)
Приглашение отклонено
gp.channels.on('error:rejectInvite', (error) => {}) channels.callbacks.error_reject_invite(error)
Ошибка отклонения приглашения
gp.channels.on('event:rejectInvite', (result) => {}) channels.callbacks.event_reject_invite(result)
Уведомление об отклонении приглашения
gp.channels.on('fetchInvites', (result) => {}) channels.callbacks.fetch_invites(result)
Получен список приглашений
gp.channels.on('error:fetchInvites', (error) => {}) channels.callbacks.error_fetch_invites(error)
Ошибка получения списка приглашений
gp.channels.on('fetchMoreInvites', (result) => {}) channels.callbacks.fetch_more_invites(result)
Подгружен список приглашений
gp.channels.on('error:fetchMoreInvites', (error) => {}) channels.callbacks.error_fetch_more_invites(error)
Ошибка подгрузки списка приглашений
gp.channels.on('fetchChannelInvites', (result) => {}) channels.callbacks.fetch_channel_invites(result)
Получен список отправленных приглашений
gp.channels.on('error:fetchChannelInvites', (error) => {}) channels.callbacks.error_fetch_channel_invites(error)
Ошибка получения списка отправленных приглашений
gp.channels.on('fetchMoreChannelInvites', (result) => {}) channels.callbacks.fetch_more_channel_invites(result)
Подгружен список отправленных приглашений
gp.channels.on('error:fetchMoreChannelInvites', (error) => {}) channels.callbacks.error_fetch_more_channel_invites(error)
Ошибка подгрузки списка отправленных приглашений
gp.channels.on('fetchSentInvites', (result) => {}) channels.callbacks.fetch_sent_invites(result)
Получен список разосланных приглашений
gp.channels.on('error:fetchSentInvites', (error) => {}) channels.callbacks.error_fetch_sent_invites(error)
Ошибка получения списка разосланных приглашений
gp.channels.on('fetchMoreSentInvites', (result) => {}) channels.callbacks.fetch_more_sent_invites(result)
Подгружен список разосланных приглашений
gp.channels.on('error:fetchMoreSentInvites', (error) => {}) channels.callbacks.error_fetch_more_sent_invites(error)
Ошибка подгрузки списка разосланных приглашений
Запросы (doc)
gp.channels.acceptJoinRequest(parameters, callback) channels.accept_join_request(parameters, callback)
Принять запрос на вступление
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.rejectJoinRequest(parameters, callback) channels.reject_join_request(parameters, callback)
Отклонить запрос на вступление
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchJoinRequests(parameters, callback) channels.fetch_join_requests(parameters, callback)
Получить список входящих запросов на вступление в выбранном канале
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreJoinRequests(parameters, callback) channels.fetch_more_join_requests(parameters, callback)
Подгрузить список входящих запросов на вступление в выбранном канале
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchSentJoinRequests(parameters, callback) channels.fetch_sent_join_requests(parameters, callback)
Получить список разосланных запросов игроком на вступление
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreSentJoinRequests(parameters, callback) channels.fetch_more_sent_join_requests(parameters, callback)
Подгрузить список разосланных запросов игроком на вступление
parameters: таблица параметров
callback(result): функция обратного вызова
События:
gp.channels.on('acceptJoinRequest', (result) => {}) channels.callbacks.accept_join_request(result)
Успешно принят запрос на вступление
gp.channels.on('error:acceptJoinRequest', (error) => {}) channels.callbacks.error_accept_join_request(error)
Ошибка принятия запроса на вступление
gp.channels.on('rejectJoinRequest', (result) => {}) channels.callbacks.reject_join_request(result)
Успешно отклонен запрос на вступление
gp.channels.on('error:rejectJoinRequest', (error) => {}) channels.callbacks.error_reject_join_request(error)
Ошибка отклонения запроса на вступление
gp.channels.on('event:rejectJoinRequest', (result) => {}) channels.callbacks.event_reject_join_request(result)
Уведомление об отклонении запроса на вступление
gp.channels.on('fetchJoinRequests', (result) => {}) channels.callbacks.fetch_join_requests(result)
Успешно получен список входящих запросов на вступление
gp.channels.on('error:fetchJoinRequests', (error) => {}) channels.callbacks.error_fetch_join_requests(error)
Ошибка получения списка входящих запросов на вступление
gp.channels.on('fetchMoreJoinRequests', (result) => {}) channels.callbacks.fetch_more_join_requests(result)
Успешно подгружен список входящих запросов на вступление
gp.channels.on('error:fetchMoreJoinRequests', (error) => {}) channels.callbacks.error_fetch_more_join_requests(error)
Ошибка подгрузки списка входящих запросов на вступление
gp.channels.on('fetchSentJoinRequests', (result) => {}) channels.callbacks.fetch_sent_join_requests(result)
Успешно получен список разосланных запросов игроком на вступление
gp.channels.on('error:fetchSentJoinRequests', (error) => {}) channels.callbacks.error_fetch_sent_join_requests(error)
Ошибка получения списка разосланных запросов игроком на вступление
gp.channels.on('fetchMoreSentJoinRequests', (result) => {}) channels.callbacks.fetch_more_sent_join_requests(result)
Успешно подгружен список разосланных запросов игроком на вступление
gp.channels.on('error:fetchMoreSentJoinRequests', (error) => {}) channels.callbacks.error_fetch_more_sent_join_requests(error)
Ошибка подгрузки списка разосланных запросов игроком на вступление
Сообщения (doc)
gp.channels.sendMessage(parameters, callback) channels.send_message(parameters, callback)
Отправка сообщения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.sendPersonalMessage(parameters, callback) channels.send_personal_message(parameters, callback)
Отправка личного сообщения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.sendFeedMessage(parameters, callback) channels.send_feed_message(parameters, callback)
Отправка сообщения в фид
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.editMessage(parameters, callback) channels.edit_message(parameters, callback)
Изменение сообщения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.deleteMessage(parameters, callback) channels.delete_message(parameters, callback)
Удаление сообщения
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMessages(parameters, callback) channels.fetch_messages(parameters, callback)
Получить список сообщений в выбранном канале
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchPersonalMessages(parameters, callback) channels.fetch_personal_messages(parameters, callback)
Получить список личных сообщений с другим игроком
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchFeedMessages(parameters, callback) channels.fetch_feed_messages(parameters, callback)
Получить список сообщений в фиде игрока
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreMessages(parameters, callback) channels.fetch_more_messages(parameters, callback)
Подгрузить список сообщений в выбранном канале
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMorePersonalMessages(parameters, callback) channels.fetch_more_personal_messages(parameters, callback)
Подгрузить список личных сообщений с другим игроком
parameters: таблица параметров
callback(result): функция обратного вызова
gp.channels.fetchMoreFeedMessages(parameters, callback) channels.fetch_more_feed_messages(parameters, callback)
Подгрузить список сообщений в фиде игрока
parameters: таблица параметров
callback(result): функция обратного вызова
События:
gp.channels.on('sendMessage', (result) => {}) channels.callbacks.send_message(result)
Успешная отправка сообщения
gp.channels.on('error:sendMessage', (error) => {}) channels.callbacks.error_send_message(error)
Ошибка отправки сообщения
gp.channels.on('event:message', (result) => {}) channels.callbacks.event_messaget(result)
Уведомление о новом сообщении
gp.channels.on('editMessage', (result) => {}) channels.callbacks.edit_message(result)
Успешное изменение сообщения
gp.channels.on('error:editMessage', (error) => {}) channels.callbacks.error_edit_message(error)
Ошибка изменения сообщения
gp.channels.on('event:editMessage', (result) => {}) channels.callbacks.event_edit_message(result)
Уведомление об изменении сообщения
gp.channels.on('deleteMessage', (result) => {}) channels.callbacks.delete_message(result)
Успешное удаление сообщения
gp.channels.on('error:deleteMessage', (error) => {}) channels.callbacks.error_delete_message(error)
Ошибка удаления сообщения
gp.channels.on('event:deleteMessage', (result) => {}) channels.callbacks.event_delete_message(result)
Уведомление об удалении сообщения
gp.channels.on('fetchMessages', (result) => {}) channels.callbacks.fetch_messages(result)
Успешное получение списка сообщений
gp.channels.on('error:fetchMessages', (error) => {}) channels.callbacks.error_fetch_messages(error)
Ошибка получения списка сообщений
gp.channels.on('fetchMoreMessages', (result) => {}) channels.callbacks.fetch_more_messages(result)
Успешная подгрузка списка сообщений
gp.channels.on('error:fetchMoreMessages', (error) => {}) channels.callbacks.error_fetch_more_messages(error)
Ошибка подгрузки списка сообщений
Реклама (doc)
gp.ads.isAdblockEnabled ads.is_adblock_enabled()
Проверка включенного AdBlock
gp.ads.isStickyAvailable ads.is_sticky_available()
Проверка доступности баннера
gp.ads.isFullscreenAvailable ads.is_fullscreen_available()
Проверка доступности полноэкранной рекламы
gp.ads.isRewardedAvailable ads.is_rewarded_available()
Проверка доступности рекламы за вознаграждение
gp.ads.isPreloaderAvailable ads.is_preloader_available()
Проверка доступности preload рекламы
gp.ads.isStickyPlaying ads.is_sticky_playing()
Проверка воспроизведения баннера
gp.ads.isFullscreenPlaying ads.is_fullscreen_playing()
Проверка воспроизведения полноэкранной рекламы
gp.ads.isRewardedPlaying ads.is_rewarded_playing()
Проверка воспроизведения рекламы за вознаграждение
gp.ads.isPreloaderPlaying ads.is_preloader_playing()
Проверка воспроизведения preload рекламы
gp.ads.isCountdownOverlayEnabled ads.is_countdown_overlay_enabled()
Включен оверлей обратного отсчета перед показом фулскрин рекламы
gp.ads.isRewardedFailedOverlayEnabled ads.is_rewarded_failed_overlay_enabled()
Включен оверлей при неудачном показе rewarded video
gp.ads.canShowFullscreenBeforeGamePlay ads.can_show_fullscreen_before_gameplay()
Можно ли на площадке показывать фулскрин рекламу перед началом геймплея
gp.ads.showFullscreen(parameters) ads.show_fullscreen(callback, parameters)
Показывает полноэкранную рекламу
callback(result) функция обратного вызова или nil
parameters: таблица параметров или nil
gp.ads.showPreloader() ads.show_preloader(callback)
Показывает баннерную рекламу (preloader)
callback(result) функция обратного вызова или nil
gp.ads.showRewardedVideo(parameters) ads.show_rewarded_video(callback, parameters)
Показывает рекламу за вознаграждение
callback(result) функция обратного вызова или nil
parameters: таблица параметров или nil
gp.ads.showSticky() ads.show_sticky(callback)
Показывает баннер
callback(result) функция обратного вызова или nil
gp.ads.refreshSticky() ads.refresh_sticky(callback)
Принудительное обновление баннера
callback(result) функция обратного вызова или nil
gp.ads.closeSticky() ads.close_sticky(callback)
Закрывает баннер
callback() функция обратного вызова или nil
События:
gp.ads.on('start', () => {}) ads.callbacks.start()
Показ рекламы
gp.ads.on('close', (success) => {}) ads.callbacks.close(success)
Закрытие рекламы
gp.ads.on('fullscreen:start', () => {}) ads.callbacks.fullscreen_start()
Показ полноэкранной рекламы
gp.ads.on('fullscreen:close', (success) => {}) ads.callbacks.fullscreen_close(success)
Закрытие полноэкранной рекламы
gp.ads.on('preloader:start', () => {}) ads.callbacks.preloader_start()
Показ preloader рекламы
gp.ads.on('preloader:close', (success) => {}) ads.callbacks.preloader_close(success)
Закрытие preloader рекламы
gp.ads.on('rewarded:start', () => {}) ads.callbacks.rewarded_start()
Показ рекламы за вознаграждение
gp.ads.on('rewarded:close', (success) => {}) ads.callbacks.rewarded_close(success)
Закрытие рекламы за вознаграждение
gp.ads.on('rewarded:reward', () => {}) ads.callbacks.rewarded_reward()
Получение награды за просмотр рекламы
gp.ads.on('sticky:start', () => {}) ads.callbacks.sticky_start()
Показ sticky баннера
gp.ads.on('sticky:render', () => {}) ads.callbacks.sticky_render()
Рендер sticky баннера
gp.ads.on('sticky:refresh', () => {}) ads.callbacks.sticky_refresh()
Обновление sticky баннера
gp.ads.on('sticky:close', () => {}) ads.callbacks.sticky_close()
Закрытие sticky баннера
События (doc)
gp.events.join(parameters) events.join(parameters, callback)
Принять участие в событии
parameters: таблица параметров
callback(result): функция обратного вызова
gp.events.list events.list()
Список событий
возвращает таблицу с событиями
gp.events.activeList events.active_list()
Список активных событий игрока
возвращает таблицу с событиями
gp.events.getEvent() events.get_event()
Получение информации о событии
возвращает таблицу с информацией о событии
gp.events.has(id_or_tag) events.has(id_or_tag)
Событие активно
id_or_tag: тег или идентификатор события
gp.events.isJoined(id_or_tag) events.is_joined(id_or_tag)
Игрок участвует в событии
id_or_tag: тег или идентификатор события
События:
gp.events.on('join', (event) => {}) events.callbacks.join(event)
Игрок присоединился к событию
gp.events.on('error:join', (error) => {}) events.callbacks.error_join(error)
Не удалось вступить в событие
Награды (doc)
gp.rewards.give(parameters) rewards.give(parameters, callback)
Выдать награду
parameters: таблица параметров
callback(result): функция обратного вызова
gp.rewards.accept(parameters) rewards.accept(parameters, callback)
Принять награду
parameters: таблица параметров
callback(result): функция обратного вызова
gp.rewards.list rewards.list()
Список наград
возвращает таблицу с наградами
gp.rewards.givenList rewards.given_list()
Список выданных наград
возвращает таблицу с выданными наградами
gp.rewards.getReward() rewards.get_reward()
Получение информации о награде
возвращает таблицу с информацией о награде
gp.rewards.has(id_or_tag) rewards.has(id_or_tag)
Проверка выдачи награды
id_or_tag: тег или идентификатор награды
gp.rewards.hasAccepted(id_or_tag) rewards.has_accepted(id_or_tag)
Проверка принятия награды
id_or_tag: тег или идентификатор награды
gp.rewards.hasUnaccepted(id_or_tag) rewards.has_unaccepted(id_or_tag)
Награда выдана, но не получена
id_or_tag: тег или идентификатор награды
События:
gp.rewards.on('give', (reward) => {}) rewards.callbacks.give(reward)
Награда выдана
gp.rewards.on('error:give', (error) => {}) rewards.callbacks.error_give(error)
Не удалось выдать награду
gp.rewards.on('accept', (reward) => {}) rewards.callbacks.accept(reward)
Награда принята
gp.rewards.on('error:accept', (error) => {}) rewards.callbacks.error_accept(error)
Не удалось принять наград
Планировщики наград (doc)
gp.schedulers.claimDay(idOrTag, day) schedulers.claim_day(id_or_tag, day, callback)
Принять награду за день
id_or_tag: тег или идентификатор планировщика
day: день
callback(result): функция обратного вызова
gp.schedulers.claimDayAdditional(idOrTag, day, triggerIdOrTag) schedulers.claim_day(id_or_tag, day, trigger_id_or_tag, callback)
Принять награду за день
id_or_tag: тег или идентификатор планировщика
day: день
trigger_id_or_tag: тег или идентификатор триггера
callback(result): функция обратного вызова
gp.schedulers.claimAllDay(idOrTag, day) schedulers.claim_all_day(id_or_tag, day, callback)
Принять награду за день за все активности
id_or_tag: тег или идентификатор планировщика
day: день
callback(result): функция обратного вызова
gp.schedulers.claimAllDays(idOrTag) schedulers.claim_all_days(id_or_tag, callback)
Принять награду за все выполненные дни
id_or_tag: тег или идентификатор планировщика
callback(result): функция обратного вызова
gp.schedulers.list schedulers.list()
Список планировщиков
возвращает таблицу с планировщиками
gp.schedulers.activeList schedulers.active_list()
Список активных планировщиков игрока
возвращает таблицу с планировщиками
gp.schedulers.getScheduler(idOrTag) schedulers.get_scheduler(id_or_tag)
Получение информации о планировщике
id_or_tag: тег или идентификатор планировщика
gp.schedulers.getSchedulerDay(idOrTag, day) schedulers.get_scheduler_day(id_or_tag, day)
Получение информации о дне планировщика
id_or_tag: тег или идентификатор планировщика
day: день
gp.schedulers.getSchedulerCurrentDay(idOrTag) schedulers.get_scheduler_current_day(id_or_tag)
Получение информации о текущем дне планировщика
id_or_tag: тег или идентификатор планировщика
gp.schedulers.isRegistered(idOrTag) schedulers.is_registered(id_or_tag)
Игрок участвует в планировщике
id_or_tag: тег или идентификатор планировщика
gp.schedulers.isTodayRewardClaimed(idOrTag) schedulers.is_today_reward_claimed(id_or_tag)
Сегодня принята награда
id_or_tag: тег или идентификатор планировщика
gp.schedulers.canClaimDay(idOrTag, day) schedulers.can_claim_day(id_or_tag, day)
Можно забрать награду за день
id_or_tag: тег или идентификатор планировщика
day: день
gp.schedulers.canClaimDayAdditional(idOrTag, day, triggerIdOrTag) schedulers.can_claim_day_additional(id_or_tag, day, trigger_id_or_tag)
Можно забрать награду за дополнительную активность за день
id_or_tag: тег или идентификатор планировщика
day: день
trigger_id_or_tag: тег или идентификатор триггера
gp.schedulers.canClaimAllDay(idOrTag, day) schedulers.can_claim_all_day(id_or_tag, day)
Можно забрать награду за все активности за день
id_or_tag: тег или идентификатор планировщика
day: день
События:
gp.schedulers.on('claimDay', (scheduler) => {}) schedulers.callbacks.claim_day(scheduler)
Награда за день принята
gp.schedulers.on('error:claimDay', (error) => {}) schedulers.callbacks.error_claim_day(error)
Не удалось принять награду за день
gp.schedulers.on('claimDayAdditional', (scheduler) => {}) schedulers.callbacks.claim_day_additional(scheduler)
Награда за день за дополнительную активность принята
gp.schedulers.on('error:claimDayAdditional', (error) => {}) schedulers.callbacks.error_claim_day_additional(error)
Не удалось принять награду за день за дополнительную активность
gp.schedulers.on('claimAllDay', (scheduler) => {}) schedulers.callbacks.claim_all_day(scheduler)
Награда за день за все активности принята
gp.schedulers.on('error:claimAllDay', (error) => {}) schedulers.callbacks.error_claim_all_day(error)
Не удалось принять награду за день за все активности
gp.schedulers.on('claimAllDays', (scheduler) => {}) schedulers.callbacks.claim_all_days(scheduler)
Награда за все дни принята
gp.schedulers.on('error:claimAllDays', (error) => {}) schedulers.callbacks.error_claim_all_days(error)
Не удалось принять награду за все дни
gp.schedulers.on('join', (scheduler) => {}) schedulers.callbacks.join(scheduler)
Игрок присоединился к событию
gp.schedulers.on('error:join', (error) => {}) schedulers.callbacks.error_join(error)
Не удалось вступить в событие
Триггеры (doc)
gp.triggers.claim(parameters) triggers.claim(parameters, callback)
Получить награду за триггер
parameters: таблица параметров
callback(result): функция обратного вызова
gp.triggers.list triggers.list()
Список триггеров
возвращает таблицу с триггерами
gp.triggers.activatedList triggers.activated_list()
Список активированных триггеров
возвращает таблицу с триггерами
gp.triggers.getTrigger(id_or_tag) triggers.get_trigger(id_or_tag)
Получение информации о награде
id_or_tag: тег или идентификатор триггера
gp.triggers.isActivated(id_or_tag) triggers.is_activated(id_or_tag)
Триггер активирован
id_or_tag: тег или идентификатор триггера
gp.triggers.isClaimed(id_or_tag) triggers.is_claimed(id_or_tag)
Награда начислена
id_or_tag: тег или идентификатор триггера
События:
gp.triggers.on('activate', (trigger) => {}) triggers.callbacks.activate(trigger)
Триггер активирован
gp.triggers.on('claim', (trigger) => {}) triggers.callbacks.claim(trigger)
Награда начислена
gp.triggers.on('error:claim', (error) => {}) triggers.callbacks.error_claim(error)
Ошибка начисления награды
Достижения (doc)
gp.achievements.groupsList achievements.groups_list()
Список групп достижений
возвращает таблицу с достижениями
gp.achievements.list achievements.list()
Список достижений
возвращает таблицу с достижениями
gp.achievements.unlockedList achievements.unlocked_list()
Список разблокированных достижений
возвращает таблицу с достижениями
gp.achievements.unlock(parameters) achievements.unlock(parameters, callback)
Разблокировать достижение
parameters: таблица параметров
callback(result): функция обратного вызова
gp.achievements.setProgress(parameters) achievements.set_progress(parameters, callback)
Установить прогресс в достижении
parameters: таблица параметров
callback(result): функция обратного вызова
gp.achievements.has(id_or_tag) achievements.has(id_or_tag)
Проверить есть ли у игрока достижение
id_or_tag: тег или идентификатор достижения
gp.achievements.getProgress(id_or_tag) achievements.get_progress(id_or_tag)
Получить прогресс достижения
id_or_tag: тег или идентификатор достижения
gp.achievements.open() achievements.open(callback)
Открыть достижения в оверлее
callback: функция обратного вызова при открытии окна достижений
gp.achievements.fetch() achievements.fetch(callback)
Запросить достижения
callback(achievements): функция обратного вызова
Константы редкости достижений: achievements.rare
COMMON
UNCOMMON
RARE
EPIC
LEGENDARY
MYTHIC
События:
gp.achievements.on('unlock', (achievement) => {}) achievements.callbacks.unlock(achievement)
Разблокировка достижения
gp.achievements.on('error:unlock', (error) => {}) achievements.callbacks.error_unlock(error)
Ошибка разблокировки достижения
gp.achievements.on('progress', (achievement) => {}) achievements.callbacks.progress(achievement)
Изменен прогресс в достижении
gp.achievements.on('error:progress', (error) => {}) achievements.callbacks.error_progress(error)
Ошибка при изменении прогресса
gp.achievements.on('open', () => {}) achievements.callbacks.open()
Открытие списка достижений в оверлее
gp.achievements.on('close', () => {}) achievements.callbacks.close()
Закрытие списка достижений
gp.achievements.on('fetch', (result) => {}) achievements.callbacks.fetch(result)
Получение списка достижений
gp.achievements.on('error:fetch', (error) => {}) achievements.callbacks.error_fetch(error)
Ошибка получения списка достижений
Социальные действия (doc)
gp.socials.isSupportsShare socials.is_supports_share()
Поддерживается ли шаринг
gp.socials.isSupportsNativeShare socials.is_supports_native_share()
Проверка поддержки нативного шаринга
gp.socials.share(parameters) socials.share(parameters)
Поделиться
parameters: таблица с параметрами или nil
gp.socials.isSupportsNativePosts socials.is_supports_native_posts()
Поддерживается ли нативный постинг
gp.socials.post(parameters) socials.post(parameters)
Опубликовать пост
parameters: таблица с параметрами или nil
gp.socials.isSupportsNativeInvite socials.is_supports_native_invite()
Проверка поддержки нативных инвайтов
gp.socials.invite(parameters) socials.invite(parameters)
Пригласить друзей
parameters: таблица с параметрами или nil
gp.socials.canJoinCommunity socials.can_join_community()
Можно ли приглашать в сообщество на текущей платформе
gp.socials.isSupportsNativeCommunityJoin socials.is_supports_native_community_join()
Поддерживается ли нативное вступление в сообщество
gp.socials.joinCommunity() socials.join_community()
Вступить в сообщество
gp.socials.makeShareUrl(parameters) socials.make_share_url(parameters)
Создать ссылку для шаринга
parameters: таблица параметров
gp.socials.getShareParam(parameter) socials.get_share_param(parameter)
Считать параметры при заходе по ссылке
parameter: параметр
Игровые переменные (doc)
gp.variables.fetch() variables.fetch(callback)
Запросить переменные
callback(): функция обратного вызова или nil
gp.variables.get(variable) variables.get(variable)
Получить значение переменной
variable: название запрашиваемой переменной
gp.variables.has(variable) variables.has(variable)
Проверить существование переменной
variable: название переменной
gp.variables.type(variable) variables.type(variable)
Получить тип переменной
variable: название переменной
Константы типов переменной: variables.types
DATA
STATS
FLAG
DOC_HTML
IMAGE
FILE
События:
gp.variables.on('fetch', () => {}) variables.callbacks.fetch()
Получение переменных
gp.variables.on('error:fetch', (error) => {}) variables.callbacks.error_fetch(error)
Ошибка получения переменных
Подборки игр (doc)
gp.gamesCollections.open(parameters) games_collections.open(parameters, callback)
Открыть оверлей с играми
parameters: таблица параметров
callback(): Функция обратного вызова или nil
gp.gamesCollections.fetch(parameters) games_collections.fetch(parameters, callback)
Получить коллекцию игр
parameters: таблица параметров
callback(result): Функция обратного вызова или nil
События:
gp.gamesCollections.on('open', () => {}) games_collections.callbacks.open()
Открыт оверлей с играми
gp.gamesCollections.on('close', () => {}) games_collections.callbacks.close()
Закрыт оверлей с играми
gp.gamesCollections.on('fetch', (result) => {}) games_collections.callbacks.fetch(result)
Получение коллекции игр
gp.gamesCollections.on('error:fetch', (error) => {}) games_collections.callbacks.error_fetch(error)
Ошибка получения коллекции игр
Изображения (doc)
gp.images.upload(parameters) images.upload(parameters, callback)
Загрузить изображение
parameters: таблица с параметрами
callback(image): функция обратного вызова или nil
gp.images.uploadUrl(parameters) images.upload_url(parameters, callback)
Загрузить изображение по URL
parameters: таблица с параметрами
callback(image): функция обратного вызова или nil
gp.images.chooseFile() images.choice_file(callback)
Выбрать файл
callback(image): функция обратного вызова или nil
gp.images.fetch(parameters) images.fetch(parameters, callback)
Получить изображения<
parameters: таблица с параметрами
callback(image): функция обратного вызова или nil
gp.images.fetchMore(parameters) images.fetch_more(parameters, callback)
Получить еще изображений<
parameters: таблица с параметрами
callback(image): функция обратного вызова или nil
gp.images.resize(url, width, height, crop) images.resize(uri, width, height, crop)
Изменить размер изображения<
uri: адрес изображения
width: требуемая ширина изображения
height: требуемая высота изображения
crop: обрезка изображения
Функция возвращает ссылку на обрезанное изображение.
gp.images.canUpload() images.can_upload()
Проверяет, можно ли загружать изображения
События:
gp.images.on('upload', (image) => {}) images.callbacks.upload(image)
Загрузка изображения
gp.images.on('error:upload', (error) => {}) images.callbacks.error_upload(error)
Ошибка загрузки изображения
gp.images.on('choose', (result) => {}) images.callbacks.choose(result)
Выбор изображения
gp.images.on('error:choose', (error) => {}) images.callbacks.error_choose(error)
Ошибка выбора изображения
gp.images.on('fetch', (result) => {}) images.callbacks.fetch(result)
Получение изображения
gp.images.on('error:fetch', (error) => {}) images.callbacks.error_fetch(error)
Ошибка получения изображения
gp.images.on('fetchMore', (result) => {}) images.callbacks.fetch_more(result)
Получение следующей партии изображений
gp.images.on('error:fetchMore', (error) => {}) images.callbacks.error_fetch_more(error)
Ошибка получения следующей партии изображении
Файлы (doc)
gp.files.upload(parameters) files.upload(parameters, callback)
Загрузить файл
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
gp.files.uploadUrl(parameters) files.upload_url(parameters, callback)
Загрузить файл по URL
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
gp.files.uploadContent(parameters) files.upload_content(parameters, callback)
Загрузить контент
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
gp.files.loadContent(url) files.load_content(url, callback)
Получить контент
url: адрес файла
callback(result): функция обратного вызова или nil
gp.files.chooseFile(accept) files.choose_file(accept, callback)
Выбрать файл
accept: тип файла
callback(result): функция обратного вызова или nil
gp.files.fetch(parameters) files.fetch(parameters, callback)
Получить файлы
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
gp.files.fetchMore(parameters) files.fetch_more(parameters, callback)
Получить файлы
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
gp.files.canUpload() files.can_upload()
Проверяет, можно ли загружать файлы
События:
gp.files.on('upload', (result) => {}) files.callbacks.upload(result)
Загрузка файла
gp.files.on('error:upload', (error) => {}) files.callbacks.error_upload(result)
Ошибка загрузки файла
gp.files.on('loadContent', (result) => {}) files.callbacks.load_content(result)
Контент получен
gp.files.on('error:loadContent', (error) => {}) files.callbacks.error_load_content(result)
Ошибка получения контента
gp.files.on('choose', (result) => {}) files.callbacks.choose(result)
Файл выбран
gp.files.on('error:choose', (error) => {}) files.callbacks.error_choose(result)
Ошибка выбора файла
gp.files.on('fetch', (result) => {}) files.callbacks.fetch(result)
Успешное получение файлов
gp.files.on('error:fetch', (error) => {}) files.callbacks.error_fetch(result)
Ошибка при получении файлов
gp.files.on('fetchMore', (result) => {}) files.callbacks.fetch_more(result)
Успешная подгрузка файлов
gp.files.on('error:fetchMore', (error) => {}) files.callbacks.error_fetch_more(result)
Ошибка при подгрузке файлов
Документы (doc)
gp.documents.open(parameters) documents.open(parameters)
Открыть политику конфиденциальности
parameters: таблица с параметрами
gp.documents.fetch(parameters) documents.fetch(parameters, callback)
Получить политику конфиденциальности
parameters: таблица с параметрами
callback(result): функция обратного вызова или nil
События:
gp.documents.on('open', () => {}) documents.callbacks.open()
Открыта политика конфиденциальности
gp.documents.on('close', () => {}) documents.callbacks.close()
Закрыта политика конфиденциальности
gp.documents.on('fetch', (document) => {}) documents.callbacks.fetch(document)
Получение политики конфиденциальности
gp.documents.on('error:fetch', (error) => {}) documents.callbacks.error_fetch(error)
Ошибка получения политики конфиденциальности
Аналитика (doc)
gp.analytics.hit(url) analytics.hit(url)
Посещение или просмотр страницы
gp.analytics.goal(event, value) analytics.goal(event, value)
Отправка достижения цели
Полный экран (doc)
gp.fullscreen.open() fullscreen.open()
Войти в полноэкранный режим
gp.fullscreen.close() fullscreen.close()
Выйти из полноэкранного режима
gp.fullscreen.toggle() fullscreen.toggle()
Переключить полноэкранный режим
События:
gp.fullscreen.on('open', () => {}) fullscreen.callbacks.open()
Вход в полноэкранный режим
gp.fullscreen.on('close', () => {}) fullscreen.callbacks.close()
Выход из полноэкранного режима
gp.fullscreen.on('change', () => {}) fullscreen.callbacks.change()
Переключение полноэкранного режима
Логи (doc)
gp.logger.info() logger.info(...)
Тост с информацией
gp.logger.warn() logger.warn(...)
Тост с предупреждением
gp.logger.error() logger.error(...)
Тост с ошибкой
gp.logger.log() logger.log(...)
Лог в консоль

Вызов нативных методов платформы

Для вызова нативного метода, получения объекта или поля предназначена функция call_native_sdk(method, parameters, callback).

  • method: строка, путь до метода, объекта или поля разделенного точками. Если указан путь до объекта или поля объекта, то parameters и callback будет проигнорирован.
  • parameters: параметр вызываемого метода (string, number, boolean, table). Если необходимо передать несколько параметров, то параметры необходимо поместить в массив (таблицу). Порядок параметров определяется индексом массива. Не поддерживается передача функций в качестве параметров!
  • callback: функция обратного вызова, необходимо указывать, если нативный метод возвращает промис. Если callback == nil, то функция возвращает результат, иначе nil.

Результат возвращаемый функцией формируется по правилам:

  1. Параметр method ссылается на объект или поле объекта:
  • Если результат string, number, boolean или объект, то возвращаются полученные данные.
  • В случае если произошло исключение, то данные об ошибке возвращаются в виде таблицы {error = "error description"}.
  1. Параметр method ссылается на функцию:
  • Если результат string, number, boolean или объект, то возвращаются полученные данные.
  • В случае если произошло исключение, или промис завершился ошибкой, то данные об ошибке возвращаются в виде таблицы {error = "error description"}.

callback(result): result - результат выполнения промиса, если промис завершился ошибкой, то result = {error = "error description"}.

Расширенные действия с промисами

Бывают ситуации, когда промис возвращает объект с функциями, которые может потребоваться выполнить позже. Для этих ситуаций предусмотрен механизм сохранения объекта на уровне JS и дальнейшего его использования при следующих вызовах API.

В этих случаях формат параметра method для функции call_native_sdk может принимать вид:

  • var=path1.path2.path3: объект path1.path2.path3 будет сохранен в переменную var
  • var:method: вызов метода из ранее сохраненного объекта
  • var2=var:method2: вызов метода (необходимо что-бы он был промисом) из ранее сохраненного объекта и сохранение результата в переменной var2

Примеры различных вариантов вызова

Запрос к СДК Тип Вызов функции и результат
environment object call_native_sdk("environment")
table
environment.i18n.lang string call_native_sdk("environment.i18n.lang")
string
env undefined call_native_sdk("env")
{error = 'Field or function "env" not found!'}
player.getUniqueID() function call_native_sdk("player.getUniqueID")
string
feedback.canReview() function call_native_sdk("feedback.canReview", nil, callback)
nil
После завершения промиса будет вызван callback.
getLeaderboards().then(lb => {}) function call_native_sdk("lb=getLeaderboards", nil, callback)
nil
После завершения промиса будет вызван callback.
Результат будет сохранен в переменной JS.
lb.setLeaderboardScore() function call_native_sdk("lb:setLeaderboardScore")
После завершения промиса будет вызван callback.
При вызове функции будет обращение к ранее сохраненной переменной JS, если она не найдена функция вернет {error = "The 'lb' object has not been previously saved!"}

Пример нативной работы с платформой Yandex:

local gamepush = require("gamepush.gamepush")

gamepush.init(function(result)
    if result then
        -- Получить переменные окружения Яндекса, эквивалент ysdk.environment
        local environment = gamepush.platform.call_native_sdk("environment")

        -- Получить язык интерфейса Яндекс.Игр в формате ISO 639-1, эквивалент ysdk.environment.i18n.lang
        local language = gamepush.platform.call_native_sdk("environment.i18n.lang")

        -- Получить таблицы лидеров, эквивалент ysdk.getLeaderboards()
        -- промис возвращает объект, сохраним его в переменную lb
        gamepush.platform.call_native_sdk("lb=getLeaderboards", nil, function(leaderboards)
            pprint(leaderboards)
            -- Запись нового рекорда, эквивалент lb.setLeaderboardScore('leaderboard2021', 120);
            -- будем обращаться к переменной lb
            gamepush.platform.call_native_sdk("lb:setLeaderboardScore", { "leaderboard2021", 120 })
            -- Получить данные таблицы лидеров, эквивалент lb.getLeaderboardEntries('leaderboard2021')
            gamepush.platform.call_native_sdk("lb:getLeaderboardEntries", "leaderboard2021", nil, function(result)
                pprint(result)
            end)

            -- Получить данные таблицы лидеров с параметрами
            -- эквивалент lb.getLeaderboardEntries('leaderboard2021', {quantityTop: 10, includeUser: true, quantityAround: 3})
            local parameters = {
                "leaderboard2021",
                { quantityTop = 10, includeUser = true, quantityAround = 3 }
            }
            gamepush.platform.call_native_sdk("lb:getLeaderboardEntries", parameters, function(result)
                pprint(result)
            end)
        end)
    end
end)

Представленный выше код эквивалентен коду JS:

YaGames
    .init()
    .then(ysdk => {
        // Получить переменные окружения Яндекса
        let environment = ysdk.environment;

        // Получить язык интерфейса Яндекс.Игр в формате ISO 639-1
        let language = ysdk.environment.i18n.lang;

        // Получить таблицы лидеров
        ysdk.getLeaderboards().then(function (lb) {
            console.log(lb);
            // Запись нового рекорда
            lb.setLeaderboardScore('leaderboard2021', 120);
            // Получить данные таблицы лидеров
            lb.getLeaderboardEntries('leaderboard2021').then(function (result) {
                console.log(result);
            });

            // Получить данные таблицы лидеров с параметрами
            let parameters = {quantityTop: 10, includeUser: true, quantityAround: 3};
            lb.getLeaderboardEntries('leaderboard2021', parameters).then(function (result) {
                console.log(result);
            });
        });
    });

Заглушка для других платформ, отличных от html

Для платформ отличных от html предусмотрены заглушки для удобства отладки.

При использовании функций:

  • player.get(key)
  • player.set(key, value)
  • player.add(key, value)
  • player.toggle(key)
  • player.has(key)
  • player.to_json()
  • player.from_json(player)

данные будут сохраняться/считываться с помощью sys.save()/sys.load() локально в/из файла "gamepush.dat" (можно поменять)

local mock_api = require("gamepush.mock_api")

-- установим имя для файла локального хранилища данных
mock_api.file_storage = "my_storage.dat"

-- установка параметров "заглушек"
mock_api["player.name"] = "my player name"
mock_api["player.id"] = 625
mock_api["player.score"] = 500

Каждая функция-заглушка GamePush API может быть представлена данными или функцией выполняющее действие и/или возвращающая данные. Любые функции/данные можно переопределять для удобства работы/отладки.

Заглушка для нативных вызовов

Заглушки для нативных вызовов выделены в отдельный модуль, чтобы его подключить используйте функцию set_native_api

--native_api.lua
local M = {}

M["environment"] = {
    app = {
        id = "app_id"
    },
    browser = {
        lang = "ru"
    },
    i18n = {
        lang = "ru",
        tld = "ru"
    }
}

return M
local mock = require("gamepush.mock")
local native_api = require("native_api")
local gamepush = require("gamepush.gamepush")

-- Устанавливаем заглушку для нативных функций
mock.set_native_api(native_api)
-- Обращаемся к нативной функции
local result = gamepush.platform.call_native_sdk("environment")
pprint(result)