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

События API

Интеграция событий через SDK. Методы работы.

Список методов

Действия:

Свойства:

  • gp.events.list - список событий. FREE
  • gp.events.activeList - список событий игрока, в которых он зарегистрирован. FREE
  • gp.events.getEvent() - получить информацию о событии по ID или тегу. FREE

Проверки:

  • gp.events.has() - проверить активно ли событие. FREE
  • gp.events.isJoined() - проверить участвует ли игрок в событии. FREE

События:

Типы:

  • 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

Если у события выключено автовступление, то вы можете в нужный момент игроком вступить событие:

// По ID
gp.events.join({ id: 123 });
// По Тегу
gp.events.join({ tag: 'HALLOWEEN' });

Метод возвращает событие и событие игрока:

const { event, playerEvent } = await gp.events.join({ id: 123 });

Свойства

Список событий

FREE

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

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
});

Список активных событий игрока

FREE

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

gp.events.activeList.forEach((playerEvent) => {
// playerEvent.eventId
// playerEvent.stats.activeDays
// playerEvent.stats.activeDaysConsecutive
});

Получение информации о событии

FREE

Метод возвращает событие, а так же дополнительные поля:

  • isJoined - Присоединился ли игрок к событию;
  • stats - Статистика активности игрока в событии: количество дней и количество дней подряд, пока активно событие;
  • rewards - Список наград, которые можно получить за событие (вычисляются из списка триггеров);
  • achievements - Список достижений, которые можно получить за событие (вычисляются из списка триггеров);
  • products - Список внутриигровых покупок, которые можно получить за событие (вычисляются из списка триггеров);
// По ID или тегу
const eventInfo = gp.events.getEvent('HALLOWEEN');

const { event, isJoined, stats, rewards, achievements, products } = eventInfo;

// События может не существовать, убедитесь, что оно есть
if (event) {
console.info(event.id, isJoined, stats.activeDays);
}

Проверки

Событие активно

gp.events.has(idOrTag) FREE

// По ID
const hasEvent = gp.events.has(123);
// По Тегу
const hasEvent = gp.events.has('HALLOWEEN');

// Проверка
if (hasEvent) {
// есть событие HALLOWEEN
}

Игрок участвует в событии

gp.events.isJoined(idOrTag) FREE

// По ID
const isJoinedEvent = gp.events.isJoined(123);
// По Тегу
const isJoinedEvent = gp.events.isJoined('HALLOWEEN');

// Проверка
if (isJoinedEvent) {
// Игрок участвует в событии HALLOWEEN
}

События

Игрок присоединился к событию

Коллбек возвращает событие и событие игрока:

gp.events.on('join', ({ event, playerEvent }) => {
// доступны событие и событие игрока
});

Не удалось вступить в событие

Коллбек возвращает ошибку. См. коды ошибок:

gp.events.on('error:join', (err) => {
// обработать ошибки
});

Типы

Поля события

ПолеТипОписаниеПример
idnumberID события115
tagstringТег для помощи при выборе. Вы можете использовать его вместо IDHALLOWEEN
namestringНазвание, переведенное на язык пользователяХэллоуин
descriptionstringОписание, переведенное на язык пользователяПрисоединяйтесь к ужасно-веселому мероприятию!
iconstringСсылка на иконку размером 256x256Пример ссылки
iconSmallstringСсылка на иконку размером 64x64Пример ссылки
dateStartstringДата начала события, ISO 86012023-10-31T00:00:00-0400
dateEndstringДата конца события2023-11-05T23:59:00-0400
isActivebooleanСобытие запущеноtrue
timeLeftnumberКоличество секунд до конца события3600
isAutoJoinbooleanАвтовступление в событиеtrue
triggersTrigger[]Список триггеров события[]

Поля события игрока

ПолеТипОписаниеПример
eventIdnumberID События115
statsPlayerStatsСтатистика игрока в событии{ 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]

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