Содержание

Импорт игры из JSON

Инструменты импорта

Импорт игры или её частей из её JSON можно провести двумя способами:

  1. Вставить нужный JSON объект на страницу https://qeng.org/import_tasks.php, указав айди игры, и нажав Импортировать. Эта же ссылка доступна из пункта меню «Импорт заданий» на странице редактирования игры.
  2. (вариант для программистов) Отправить POST запрос на https://qeng.org/import_tasks.php?gid=<ваш айди игры>&json=1, в котором в body будет корректно сформированный JSON объект. Для аутентификации необходимо удержать cookie с запроса на авторизацию, о чём детально написано тут: Встраивание движка в другие сервисы

Варианты объектов для импорта

Каждый объект, который можно импортировать, можно экспортировать для получения его структуры в текущей игре, как описано в секции инструкций экспорта.

Заливка новых уровней

Если необходимо добавить НОВЫЕ уровни в игру, то JSON будет списком из одного или нескольких уровней, разделённых запятыми. Чтобы уровень добавился, а не обновился существующий, он должен НЕ иметь поля number внутри секции настроек task. Описание структуры уровня тут.

Редактирование существующих уровней

Если необходимо обновить СУЩЕСТВУЮЩИЕ уровни в игре, то JSON будет списком из одного или нескольких уровней, разделённых запятыми, причём поле number в секции настроек task должно быть передано (отвечает номер уровня, который редактируется). Описание структуры уровня тут.

Настройки игры из секции task, если присутствуют в JSON - значения в движке будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было.

Для остальных секций (codes, bonuses, hints), если секция присутствует в JSON - то она полностью заменит существующую. Если отсутствует - то секция остаётся, как была.

Заливка всей игры

Есть возможность залить всю игру из JSON целиком. Для этого JSON должен быть полным JSON игры, как описано на странице описания структуры JSON. Также в JSON необходимо добавить поле "delete_all_tasks": 1, чтобы удалить все существующие уровни и перезалить игру заново, например:

{
    "game": {
        "name": "#New Unnamed Game 2",
    },
    "tasks": [{"task": {"number": 1, "working_name": "Название"}, "codes": [], "bonuses": [], "hints": []}],
    "gbonuses": [],
    "lines": [],
    "delete_all_tasks": 1,
}

Настройки игры из секции game, если присутствуют в JSON - значения в движке будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было в игре раньше.

Для остальных секций (gbonuses, lines), если секция присутствует в JSON - то она полностью заменит существующую. Если отсутствует - то секция остаётся, как была.

Заливка настроек игры

В JSON нужно передать только структуру настроек игры, как описано на странице структуры JSON.

Заливка сквозных бонусов

В JSON нужно передать только структуру глобальных бонусов, как описано на странице структуры JSON.

Заливка линеек

В JSON нужно передать только структуру глобальных бонусов, как описано на странице структуры JSON.