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

Игровые переменные

Обзор

Глобальные переменные игры позволяют управлять контентом игры без обновления самой игры. Каждой переменной можно указать значение на любом доступном языке. Она будет загружена на предпочитаемом игроком языке или по умолчанию взята с английского, если в другом языке значение пустое. Чтобы добавить новую переменную, перейдите в панели управления в раздел Игровые переменные - Добавить переменную.

Несколько примеров использования переменных:

  • Динамические значения. Любые значение в игре, которые хотелось бы изменить в любой момент. Например ради эксперимента или коррекции баланса игры.
  • Загружаемый контент. Добавляйте уровни в игру, изменяйте карты, добавляйте героев, экипировку, сюжетные главы.
  • Переводы. Загружайте файлы с переводами в разные языки переменной и обеспечивайте мгновенные исправления и дополнения по переводам. Это касается не только текста, а также и изображений, видео и аудио.
  • Ивенты. Вы сможете контролировать ивенты и, с помощью языков, включать нужные ивенты в нужном переводе. Например новый год на русском, рождество на английском. А так же локальные праздники.

Получить переменные

+0-1 Request

По-умолчанию переменные проекта загружаются автоматически при первом запросе к сервису. Однако, если в них много данных и вы хотите самостоятельно контролировать загрузку, то можно выключить свойство Load variables on game boot и вызвать метод загрузки самостоятельно.

// Дожидаемся получения переменных
await gp.variables.fetch();

События:

// Событие при загрузке
gp.variables.on('fetch', () => console.info('variables available'));
// Событие при ошибке
gp.variables.on('error:fetch', (error) => console.error(error));

Получение значения переменной FREE:

// Считываем переменную
const dialogs = gp.variables.get("dialogs");

Проверка на существование FREE:

// Проверяем есть ли переменная или содержит значение
if (gp.variables.has("newYearEvent")) {
// mygame.enableNewYearEvent();
}

Проверка типа переменной FREE:

// Проверяем тип переменной
// data - строковый
// stats - числовой
// flag - булевый
// doc_html - текст в формате html
// image - ссылка на изображение
// file - ссылка на файл
if (gp.variables.type("lastNews") === "doc_html") {
$newsContainer.innerHtml = gp.variables.get("lastNews");
}

Пример с получением файла из переменной FREE:

const levelsUrl = gp.variables.get("levels");
// Достаем контент файла через модуль файлов
const levels = await gp.files.loadContent(levelsUrl);
// myGame.setLevels(JSON.parse(levels));

Получить переменные площадки

FREE

Площадки могут предоставлять свои LiveOps инструменты. Вы можете проверить поддерживаются ли удаленные переменные на стороне площадки.

  • Yandex Games
  • Площадки без поддержки
  • CrazyGames
  • GamePix
  • GameDistribution
  • GameMonetize
  • OK Games
  • SmartMarket
  • VK Games
  • VK Play
  • WG Playground
  • Kongregate
  • Проверка поддержки:

    if (gp.variables.isPlatformVariablesAvailable) {
    // На площадке поддерживаются переменные
    }

    Получение:

    // Дожидаемся получения переменных
    const variables = await gp.variables.fetchPlatformVariables();

    // Объект вида ключ-значение, например
    {
    myVariable: 'myValue',
    AB_Test1: 'B'
    }

    Получение с передачей дополнительных клиентских параметров как дополнительной информации для получения переменных по условию:

    // Дожидаемся получения переменных
    const variables = await gp.variables.fetchPlatformVariables({
    clientParams: {
    gold: 1000,
    class: 'warrior'
    }
    });

    События:

    // Событие при загрузке
    gp.variables.on('fetchPlatformVariables', (variables) => {});
    // Событие при ошибке
    gp.variables.on('error:fetchPlatformVariables', (error) => console.error(error));

    Оставайтесь на связи

    С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

    Сообщество GamePush в Telegram: @gs_community.

    Для ваших обращений e-mail: [email protected]

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