{{indexmenu_n>3}}
======Структура JSON ======
====== Гра ======
Глобально, JSON гри складається з декількох великих секцій:
{
"game": {} /* Налаштування гри, на кшталт часу початку та послідовності проходження */,
"gbonuses": [] /* Список наскрізних бонусів у грі */,
"lines": [] /* Список лінійок проходження */,
"tasks": [] /* Список рівнів гри*/,
}
===== Налаштування гри =====
{
"game": {
"type": "1",
/* Переможець визначається:
"0": Бали
"1": Час
*/
"stat": "5",
/* Статистика:
"0": Відкрита
"1": Відкрита без бонусів
"2": Закрита під час гри
"4": Тільки коротка
"5": Закрита завжди
"6": Пройдені завдання
*/
"team_limit": 0,
/* Обмеження гравців у команді */
"name": "#New Unnamed Game",
/* Назва */
"description": "",
/* Опис */
"finish_text": "",
/* Фінішний текст */
"html_header": "",
/* Загальний HTML заголовок */
"image": "",
/* Картинка */
"start_time": "2021-10-17 12:00:00",
/* Старт */
"end_time": "2022-10-17 12:00:00",
/* Фініш */
"status": "3",
/* Прийом у гру:
"0": Автоматично всіх
"1": Автоматично тих, хто сплатили
"2": Автоматично всіх тестерами
"3": Вручну
*/
"start_type": "0",
/* Старт гри:
"0": Одночасний
"1": Кожен у свій час
*/
"price": 0,
/* Ціна */
"currency": "UAH",
/* Валюта ціни:
"UAH"
"USD"
"EUR"
*/
"kind": "0",
/* Тип гри:
"0": other
"1": green
"2": yellow
"3": red
"4": virtual
*/
"scenario": "0",
/* Сценарій:
"0": Закритий
"1": Відкритий в архіві
"2": Відкритий в архіві, але тільки тим, хто грав
"3": Відкритий командам, які закінчили гру
*/
"answer_prefix": "фф",
/* Префікс кодів */
"default_line": ""
/* Лінійка за замовчуванням (назва) */
}
}
===== Наскрізні бонуси =====
{
"gbonuses": [
/* Список наскрізних бонусів у грі. Їх може бути не один, через кому */
{
"code": "cc, dd",
/* Відповіді */
"time": 0,
/* Бонус за виконання*/
"description": "",
/* Завдання */
"hint": "",
/* Текст після рішення */
"first_task_n": 1,
/* Доступний починаючи від завдання */
"last_task_n": 2
/* Доступний до завдання */
}
]
}
===== Лінійки =====
{
"lines": [
/ * Список лінійок у грі. Їх може бути не одна, через кому */
{
"title": "Лінійка 2",
/* Назва лінійки*/
"task_order": "1,2,3+4,5-7"
/* Порядок */
}
]
}
===== Рівень =====
Рівень гри також має блокову структуру:
{
"task": {}, /* Налаштування рівня, на кшалт назви або часу автопереходу */
"codes": [], /* Список секторів чи кодів у рівні. Їх може бути не один, через кому */
"bonuses": [], /* Список бонусів у рівні */
"hints": [], /* Список підказок у рівні */
}
==== Налаштування рівня ====
{
"task": {
"number": 1,
/* № */
"max_time": 3600,
/* Автоперехід (секунд) */
"score": 10,
/* Бонус за не АП */
"time_k": 1.0,
/* Час x */
"delay": 0,
/* Затримка (для штурмових рівнів)*/
"working_name": "Назва",
/* Назва у грі */
"name": "У статі",
/* Назва у статистиці */
"surrender_code": "Слива",
/* Зливний Код */
"Task": "Тест",
/* Текст завдання */
"script": "alert(1)",
/* Скрипт завдання */
"answer": "Слово українською",
/* Формат відповіді */
"answers_limit": 10,
/* Обмеження на введення */
"answers_per_time": 60,
/* за проміжок часу */
"answers_limit_penalty": 10,
/* штраф за кожен зайвий */
"codes": 0,
/* Для проходження треба кодів */
"code_bonus_time": 0,
/* Зменшення АП (секунд) */
"code_bonus": 0,
/* Бонус (у секундах) */
"finish_confirmation": "1",
/* Закрити завдання:
"0": Примусово
"1": Розумно
*/
"hidden_bonuses": "0",
/* Бонуси: Відображати у завданні:
"0": Списком
"1": Компактно одним рядком
*/
"bonuses_kind": "0"
/* Бонуси: Порядок відкриття:
"0": Будь-який
"1": По порядку
*/
}
}
==== Сектори ====
{
"codes": [
/* Список секторів або кодів у рівні. Їх може бути не один, через кому */
{
"name": "Сектор 1",
"code": "a, b"
/* Коди-синоніми через кому*/
},
{
"name": "Сектор 2",
"code": "c, d"
/* Коди-синоніми через кому*/
}
],
}
==== Бонуси ====
{
"bonuses": [
/* Список бонусів у рівні. Їх може бути не один, через кому */
{
"number": 1,
/* Порядковий номер бонусу */
"code": "c, d",
/* Відповіді */
"time": 0,
/* Бонус за виконання */
"description": "",
/* Завдання бонусу */
"hint": "",
/* Текст після рішення */
"delay": 0,
/* Затримка появи бонусу */
"duration": 0,
/* Тривалість */
"duration_k": 0
/* Залишок у бонус x */
}
]
}
==== Підказки ====
{
"hints": [
/* Список підказок у рівні. Їх може бути не одна, через кому */
{
"number": 1,
/* Порядковий номер підказки */
"info": "",
/* Опис підказки */
"hint": "",
/* Текст підказки */
"delay": 0,
/* Час */
"penalty": 0
/* Штраф */
}
]
}
====== Приклад усієї гри повністю ======
Опис полів [[ua:authors_main:admin_api:admin_api_json#Гра|тут]].
Приклад без опису:
{
"game": {
"type": "1",
"stat": "5",
"team_limit": 0,
"name": "#New Unnamed Game",
"description": "",
"finish_text": "",
"html_header": "",
"image": "",
"start_time": "2021-10-17 12:00:00",
"end_time": "2022-10-17 12:00:00",
"status": "3",
"start_type": "0",
"price": 0,
"currency": "UAH",
"kind": "0",
"scenario": "0",
"answer_prefix": "фф",
"default_line": ""
},
"tasks": [
{
"task": {
"number": 1,
"max_time": 3600,
"score": 10,
"time_k": 1.0,
"delay": 0,
"working_name": "Назва",
"name": "В статі",
"surrender_code": "Слива",
"task": "Тест",
"script": "alert(1)",
"answer": "Слово українською",
"answers_limit": 10,
"answers_per_time": 60,
"answers_limit_penalty": 10,
"codes": 0,
"code_bonus_time": 0,
"code_bonus": 0,
"finish_confirmation": "1",
"hidden_bonuses": "0",
"bonuses_kind": "0"
},
"codes": [
{
"name": "Сектор 1",
"code": "a, b"
}
],
"bonuses": [
{
"number": 1,
"code": "c, d",
"time": 0,
"description": "",
"hint": "",
"delay": 0,
"duration": 0,
"duration_k": 0
}
],
"hints": [
{
"number": 1,
"info": "",
"hint": "",
"delay": 0,
"penalty": 0
}
]
}
],
"gbonuses": [
{
"code": "cc, dd",
"time": 0,
"description": "",
"hint": "",
"first_task_n": 1,
"last_task_n": 2
}
],
"lines": [
{
"title": "Лінійка 2",
"task_order": "1,2,3+4,5-7"
}
]
}
====== Приклад рівня повністю ======
Опис полів [[ua:authors_main:admin_api:admin_api_json#Рівень|тут]].
Приклад без опису нижче:
[
{
"task": {
"number": 1,
"max_time": 3600,
"score": 10,
"time_k": 1.0,
"delay": 0,
"working_name": "Назва",
"name": "В статі",
"surrender_code": "Слива",
"task": "Тест",
"script": "alert(1)",
"answer": "Слово українською",
"answers_limit": 10,
"answers_per_time": 60,
"answers_limit_penalty": 10,
"codes": 0,
"code_bonus_time": 0,
"code_bonus": 0,
"finish_confirmation": "1",
"hidden_bonuses": "0",
"bonuses_kind": "0"
},
"codes": [
{
"name": "Сектор 1",
"code": "a, b"
}
],
"bonuses": [
{
"number": 1,
"code": "c, d",
"time": 0,
"description": "",
"hint": "",
"delay": 0,
"duration": 0,
"duration_k": 0
}
],
"hints": [
{
"number": 1,
"info": "",
"hint": "",
"delay": 0,
"penalty": 0
}
]
}
]