authors_main:admin_api:admin_api_json

Структура 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",
        /* 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": 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
                    /* Штраф */
                }
            ]
}

Пример всей игры целиком

Описание полей тут.

Пример без описания:

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,
                "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"
        }
    ]
}

Пример уровня целиком

Описание полей тут.

Пример без описания ниже:

level_example.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
                }
            ]
        }
]
  • authors_main/admin_api/admin_api_json.txt
  • Последние изменения: 2021/10/21 06:23
  • phaust