Это старая версия документа!
Импорт игры из JSON
Инструменты импорта
Импорт игры или её частей из её JSON можно провести двумя способами:
- Вставить нужный JSON объект на страницу https://qeng.org/import_tasks.php, указав айди игры, и нажав Импортировать. Эта же ссылка доступна из пункта меню «Импорт заданий» на странице редактирования игры.
- (вариант для программистов) Отправить POST запрос на https://qeng.org/import_tasks.php?gid=<ваш айди игры>&json=1, в котором в body будет корректно сформированный JSON объект. Для аутентификации необходимо удержать cookie с запроса на авторизацию, о чём детально написано тут: Встраивание движка в другие сервисы
Варианты объектов для импорта
Заливка нового уровня
Если необходимо добавить НОВЫЕ уровни в игру, то JSON будет списком из одного или нескольких уровней, разделённых запятыми. Чтобы уровень добавился, а не обновился существующий, он должен НЕ иметь поля number внутри секции настроек task. Описание структуры уровня тут.
Редактирование существующих уровней
Если необходимо обновить СУЩЕСТВУЮЩИЕ уровни в игре, то JSON будет списком из одного или нескольких уровней, разделённых запятыми. Если в секции настроек task уровня есть поле number - то уровень с этим номером будет отредактирован, используя предоставленный JSON. Описание структуры уровня тут.
Настройки игры из секции task, если они присутствуют в JSON - значения в движке будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было.
Для остальных секций (codes, bonuses, hints), если секция присутствует в 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_levels": 1, }