Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
admin_api_json [2021/10/17 21:50] phaust замена слова метаданные на настройки |
— (текущий) | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ======Структура JSON ====== | ||
| - | ====== Игра ====== | ||
| - | Глобально, JSON игры состоит из нескольких больших секций: | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "game": {} /* Настройки игры, вроде времени начала и последовательности прохождения */, | ||
| - | "tasks": [] /* Список уровней игры*/, | ||
| - | "gbonuses": [] /* Список глобальных бонусов в игре */, | ||
| - | "lines": [] /* Список линеек прохождения */, | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ===== Настройки игры ===== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "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", | ||
| - | /* Cтарт */ | ||
| - | "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" | ||
| - | "RUB" | ||
| - | */ | ||
| - | "kind": "0", | ||
| - | /* Тип игры: | ||
| - | "0": other | ||
| - | "1": green | ||
| - | "2": yellow | ||
| - | "3": red | ||
| - | "4": vitual | ||
| - | */ | ||
| - | "scenario": "0", | ||
| - | /* Сценарий: | ||
| - | "0": Закрыт | ||
| - | "1": Открыт в архиве | ||
| - | "2": Открыт в архиве, но только игравшим | ||
| - | "3": Открыт командам, закончившим игру | ||
| - | */ | ||
| - | "answer_prefix": "фф", | ||
| - | /* Префикс кодов */ | ||
| - | "default_line": "" | ||
| - | /* Линейка по умолчанию (название) */ | ||
| - | } | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ===== Глобальные бонусы ===== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "gbonuses": [ | ||
| - | /* Список глобальных бонусов в игре. Их может быть не один, через запятую */ | ||
| - | { | ||
| - | "code": "cc, dd", | ||
| - | /* Ответы */ | ||
| - | "time": 0, | ||
| - | /* Бонус за выполнение кода */ | ||
| - | "description": "", | ||
| - | /* Задание */ | ||
| - | "hint": "", | ||
| - | /* Текст после решения */ | ||
| - | "first_task_n": 1, | ||
| - | /* Доступен с задания */ | ||
| - | "last_task_n": 2 | ||
| - | /* Доступен по задание */ | ||
| - | } | ||
| - | ] | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ===== Линейки ===== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "lines": [ | ||
| - | /* Список линеек в игре. Их может быть не одна, через запятую */ | ||
| - | { | ||
| - | "title": "Линейка 2", | ||
| - | /* Название линейки*/ | ||
| - | "task_order": "1,2,3+4,5-7" | ||
| - | /* Порядок */ | ||
| - | } | ||
| - | ] | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ===== Уровень ===== | ||
| - | |||
| - | Уровень в игре также имеет составную структуру: | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "task": {}, /* Настройки уровня, вроде названия или времени автоперехода */ | ||
| - | "codes": [], /* Список секторов или кодов в уровне. Их может быть не один, через запятую */ | ||
| - | bonuses": [], /* Список бонусов в уровне */ | ||
| - | "hints": [], /* Список подсказок в уровне */ | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ==== Настройки уровня ==== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "task": { | ||
| - | "number": 1, | ||
| - | /* № */ | ||
| - | "max_time": 3600, | ||
| - | /* Автопереход(секунд) */ | ||
| - | "score": 10, | ||
| - | /* Бонус за не ап */ | ||
| - | "time_k": 1.0, | ||
| - | /* Время x */ | ||
| - | "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": По порядку | ||
| - | */ | ||
| - | } | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ==== Секторы ==== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "codes": [ | ||
| - | /* Список секторов или кодов в уровне. Их может быть не один, через запятую */ | ||
| - | { | ||
| - | "name": "Сектор 1", | ||
| - | "code": "a, b" | ||
| - | /* Коды-синонимы через запятую*/ | ||
| - | }, | ||
| - | { | ||
| - | "name": "Сектор 2", | ||
| - | "code": "c, d" | ||
| - | /* Коды-синонимы через запятую*/ | ||
| - | } | ||
| - | ], | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ==== Бонусы ==== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "bonuses": [ | ||
| - | /* Список бонусов в уровне. Их может быть не один, через запятую */ | ||
| - | { | ||
| - | "number": 1, | ||
| - | /* Порядковый номер бонуса */ | ||
| - | "code": "c, d", | ||
| - | /* Ответы */ | ||
| - | "time": 0, | ||
| - | /* Бонус за выполнение кода */ | ||
| - | "description": "", | ||
| - | /* Задание бонуса */ | ||
| - | "hint": "", | ||
| - | /* Текст после решения */ | ||
| - | "delay": 0, | ||
| - | /* Задержка появления бонуса */ | ||
| - | "duration": 0, | ||
| - | /* Длительность */ | ||
| - | "duration_k": 0 | ||
| - | /* Остаток в бонус x */ | ||
| - | } | ||
| - | ] | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ==== Подсказки ==== | ||
| - | |||
| - | <code JavaScript [enable_line_numbers="false"]> | ||
| - | { | ||
| - | "hints": [ | ||
| - | /* Список подсказок в уровне. Их может быть не одна, через запятую */ | ||
| - | { | ||
| - | "number": 1, | ||
| - | /* Порядковый номер подсказки */ | ||
| - | "info": "", | ||
| - | /* Описание подсказки */ | ||
| - | "hint": "", | ||
| - | /* Текст подсказки */ | ||
| - | "delay": 0, | ||
| - | /* Время */ | ||
| - | "penalty": 0 | ||
| - | /* Штраф */ | ||
| - | } | ||
| - | ] | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ====== Пример всей игры целиком ====== | ||
| - | |||
| - | <code JavaScript game_example.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, | ||
| - | "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" | ||
| - | } | ||
| - | ] | ||
| - | } | ||
| - | </code> | ||