События API
Интеграция событий через SDK. Методы работы.
Список методов
Действия:
gp.events.join()
- принять участие в событии. +1 Request
Свойства:
gp.events.list
- список событий. FREEgp.events.activeList
- список событий игрока, в которых он зарегистрирован. FREEgp.events.getEvent()
- получить информацию о событии по ID или тегу. FREE
Проверки:
gp.events.has()
- проверить активно ли событие. FREEgp.events.isJoined()
- проверить участвует ли игрок в событии. FREE
События:
gp.events.on('join')
- подписаться на регистрацию игрока в событии.gp.events.on('error:join')
- подписаться на ошибку при регистрации в событии.
Типы:
Event
- поля события.PlayerEvent
- поля события игрока. Персональная информация о событии.
Советы при работе с событиями
Отслеживайте события
FREEИспользуйте проверку gp.events.has()
, чтобы узнать, проводится ли сейчас событие.
Вы можете стилизовать свою игру под событие, достаточно при старте игры проверить активно ли оно.
if (gp.events.has('HALLOWEEN') {
gp.setBackground({ url: '/halloween-bg.png' });
}
Присоединяйтесь к событию
Игрок может присоединиться к событию автоматически, если у события указано автовступление или через метод gp.events.join()
.
Используйте ручную регистрацию в событии, если вам нужно интерактивно пригласить игрока принять участие в событии.
// Сейчас проводится Хэллоуин
if (gp.events.has('HALLOWEEN') {
// Игрок еще не принял участие в событии
if (!gp.events.isJoined('HALLOWEEN')) {
myGame.showDialog({
name: 'Праздник Хэллоуин',
description: 'Отправляйтесь в прошлое и узнайте как появился Хэллоуин!',
buttonText: 'Отправиться в приключение',
onAccept: () => gp.events.join({ tag: 'HALLOWEEN' });
});
}
}
Действия
Принять участие в событии
+1 RequestЕсли у события выключено автовступление, то вы можете в нужный момент игроком вступить событие:
- JavaScript
- Unity
// По ID
gp.events.join({ id: 123 });
// По Тегу
gp.events.join({ tag: 'HALLOWEEN' });
// По ID
GP_Events.Join("123");
// По Тегу
GP_Events.Join("HALLOWEEN");
Метод возвращает событие и событие игрока:
- JavaScript
- Unity
const { event, playerEvent } = await gp.events.join({ id: 123 });
Не реализовано в Unity
Свойства
Список событий
FREEВам доступен весь список событий сразу при запуске игры. См. поля события.
- JavaScript
- Unity
gp.events.list.forEach((event) => {
// event.id
// event.tag
// event.name
// event.description
// event.icon
// event.isAutoJoin
// event.dateStart
// event.dateEnd
// event.timeLeft
// event.triggers
});
EventData[] eventsData = GP_Events.List();
foreach (EventData data in eventsData)
{
Debug.Log("ID: " + data.id);
Debug.Log("Tag: " + data.tag);
Debug.Log("Name: " + data.name);
Debug.Log("Description: " + data.description);
Debug.Log("Icon: " + data.icon);
Debug.Log("Icon small: " + data.iconSmall);
Debug.Log("Date Start: " + data.dateStart);
Debug.Log("Date End: " + data.dateEnd);
Debug.Log("Is Active: " + data.isActive);
Debug.Log("Time left: " + data.timeLeft);
Debug.Log("Is Auto join: " + data.isAutoJoin);
foreach (TriggerData trigger in data.triggers)
{
Debug.Log("Trigger: " + JsonUtility.ToJson(trigger));
}
}
Список активных событий игрока
FREEВам доступен весь список событий, в которых игрок принимает участие, сразу при готовности игрока. См. поля события игрока.
- JavaScript
- Unity
gp.events.activeList.forEach((playerEvent) => {
// playerEvent.eventId
// playerEvent.stats.activeDays
// playerEvent.stats.activeDaysConsecutive
});
PlayerEvents[] playerEvents = GP_Events.ActiveList();
foreach (PlayerEvents playerEvent in playerEvents)
{
Debug.Log("ID: " + playerEvent.eventId);
Debug.Log("Active Days: " + playerEvent.stats.activeDays);
Debug.Log("Active Days Consecutive: " + playerEvent.stats.activeDaysConsecutive);
}
Получение информации о событии
FREEМетод возвращает событие, а так же дополнительные поля:
isJoined
- Присоединился ли игрок к событию;stats
- Статистика активности игрока в событии: количество дней и количество дней подряд, пока активно событие;rewards
- Список наград, которые можно получить за событие (вычисляются из списка триггеров);achievements
- Список достижений, которые можно получить за событие (вычисляются из списка триггеров);products
- Список внутриигровых покупок, которые можно получить за событие (вычисляются из списка триггеров);
- JavaScript
- Unity
// По ID или тегу
const eventInfo = gp.events.getEvent('HALLOWEEN');
const { event, isJoined, stats, rewards, achievements, products } = eventInfo;
// События может не существовать, убедитесь, что оно есть
if (event) {
console.info(event.id, isJoined, stats.activeDays);
}
// По ID или тегу
EventData data = GP_Events.GetEvent("HALLOWEEN");
// Если событие существует, можно получить информацию о нём
Debug.Log("ID: " + data.id);
Debug.Log("Tag: " + data.tag);
Debug.Log("Name: " + data.name);
Debug.Log("Description: " + data.description);
Debug.Log("Icon: " + data.icon);
Debug.Log("Icon small: " + data.iconSmall);
Debug.Log("Date Start: " + data.dateStart);
Debug.Log("Date End: " + data.dateEnd);
Debug.Log("Is Active: " + data.isActive);
Debug.Log("Time left: " + data.timeLeft);
Debug.Log("Is Auto join: " + data.isAutoJoin);
foreach (TriggerData trigger in data.triggers)
{
Debug.Log("Trigger: " + JsonUtility.ToJson(trigger));
}
Проверки
Событие активно
gp.events.has(idOrTag)
FREE
- JavaScript
- Unity
// По ID
const hasEvent = gp.events.has(123);
// По Тегу
const hasEvent = gp.events.has('HALLOWEEN');
// Проверка
if (hasEvent) {
// есть событие HALLOWEEN
}
// По ID или тегу
bool isActive = GP_Events.IsActive("HALLOWEEN");
// Проверка
if (isActive) {
// есть событие HALLOWEEN
}
Игрок участвует в событии
gp.events.isJoined(idOrTag)
FREE
- JavaScript
- Unity
// По ID
const isJoinedEvent = gp.events.isJoined(123);
// По Тегу
const isJoinedEvent = gp.events.isJoined('HALLOWEEN');
// Проверка
if (isJoinedEvent) {
// Игрок участвует в событии HALLOWEEN
}
// По ID или тегу
bool isJoined = GP_Events.IsJoined("HALLOWEEN");
// Проверка
if (isJoined) {
// Игрок участвует в событии HALLOWEEN
}
События
Игрок присоединился к событию
Коллбек возвращает событие и событие игрока:
- JavaScript
- Unity
gp.events.on('join', ({ event, playerEvent }) => {
// доступны событие и событие игрока
});
// Подписаться на событие
private void OnEnable()
{
GP_Events.OnEventJoin += OnJoin;
}
// Отписаться от события
private void OnDisable()
{
GP_Events.OnEventJoin -= OnJoin;
}
// Успешное присоединение к событию
public void OnJoin(PlayerEvents Event)
{
Debug.Log("Join event: " + JsonUtility.ToJson(Event));
}
Не удалось вступить в событие
Коллбек возвращает ошибку. См. коды ошибок:
- JavaScript
- Unity
gp.events.on('error:join', (err) => {
// обработать ошибки
});
// Подписаться на событие
private void OnEnable()
{
GP_Events.OnEventJoinError += OnJoinError;
}
// Отписаться от события
private void OnDisable()
{
GP_Events.OnEventJoinError -= OnJoinError;
}
// Обработать ошибки
public void OnJoinError(string error)
{
Debug.Log("Join error: " + error);
}
Типы
Поля события
Поле | Тип | Описание | Пример |
---|---|---|---|
id | number | ID события | 115 |
tag | string | Тег для помощи при выборе. Вы можете использовать его вместо ID | HALLOWEEN |
name | string | Название, переведенное на язык пользователя | Хэллоуин |
description | string | Описание, переведенное на язык пользователя | Присоединяйтесь к ужасно-веселому мероприятию! |
icon | string | Ссылка на иконку размером 256x256 | Пример ссылки |
iconSmall | string | Ссылка на иконку размером 64x64 | Пример ссылки |
dateStart | string | Дата начала события, ISO 8601 | 2023-10-31T00:00:00-0400 |
dateEnd | string | Дата конца события | 2023-11-05T23:59:00-0400 |
isActive | boolean | Событие запущено | true |
timeLeft | number | Количество секунд до конца события | 3600 |
isAutoJoin | boolean | Автовступление в событие | true |
triggers | Trigger[] | Список триггеров события | [] |
Поля события игрока
Поле | Тип | Описание | Пример |
---|---|---|---|
eventId | number | ID События | 115 |
stats | PlayerStats | Статистика игрока в событии | { activeDays: 4, activeDaysConsecutive: 3} |
Коды ошибок
Ошибка | Описание ошибки |
---|---|
player_not_found | Игрок не найден |
empty_id_or_tag | Передан пустой ID или тег события |
event_not_found | Событие с таким ID или тегом не найдено |
event_not_published | Событие не активно |
event_not_published_on_platform | Событие не активно на площадке игрока |
event_not_started | Событие еще не началось |
already_joined | Игрок уже вступил в событие |
undefined | Непредвиденная ошибка (смотрите консоль) |
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram
: @gs_community.
Для ваших обращений e-mail
: [email protected]
Желаем вам успехов!