Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
api_engine_main [2021/08/08 13:06] admin [Данные задания] |
api_engine_main [2021/10/21 07:35] (текущий) phaust |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== API для написания своей версии фронтенда ====== | + | {{indexmenu_n>30}} |
| + | ===== Игровая API ===== | ||
| + | Игровая API - это API для написания своей версии фронтенда, либо взаимодействия с информацией про игру изнутри игры. | ||
| Можно использовать для телеграмм ботов, нативных приложений или браузерных расширений | Можно использовать для телеграмм ботов, нативных приложений или браузерных расширений | ||
| Строка 15: | Строка 17: | ||
| ===== Авторизация ===== | ===== Авторизация ===== | ||
| - | Используется **game.php** | + | Используется **login.php** |
| - | + | ||
| - | **GET параметры:** | + | |
| - | + | ||
| - | **gid** надо задать ID игры. | + | |
| **POST параметры:** | **POST параметры:** | ||
| Строка 47: | Строка 45: | ||
| <code> | <code> | ||
| class PublicContext { | class PublicContext { | ||
| - | int version = 1; // Версия протокола | + | int version = 1; // Версия протокола |
| - | ?string error; // Ошибка. | + | ?string error ; // Ошибка. |
| - | ?string login_error; // Ошибка при логине | + | ?string login_error; // Ошибка при логине |
| - | ?int game_id; // ID игры | + | string domain_time_zone; // Временная зона текущего домена |
| - | ?int task_id; // ID текущего уровня | + | ?int game_id; // ID игры |
| - | ?int user_id; // ID залогиненого игрока | + | ?int task_id; // ID текущего уровня |
| - | ?string user_name; // login игрока | + | ?int user_id; // ID залогиненого игрока |
| - | ?int team_id; // ID команды игрока, в одиночных играх может совпадать с ID текущего игрока | + | ?string user_name; // login игрока |
| - | ?int refresh_time_ms; // Время последнего обновления страницы unix_time миллисекундах | + | ?int team_id; // ID команды игрока, в одиночных играх может совпадать с ID текущего игрока |
| - | ?int refresh_check_limit_ms; // Промежуток времени в миллисекундах, в течении которого не надо без причины дергать сервер. | + | ?int refresh_time_ms; // Время последнего обновления страницы unix_time миллисекундах |
| + | ?int refresh_check_limit_ms; // Промежуток времени в миллисекундах, в течении которого не надо без причины дергать сервер. | ||
| - | PublicGame game; // Данные об игре | + | PublicGame game; // Данные об игре |
| - | /*?PublicGamep[]*/ available_games; // Данные об активных/ближайших играх домена. Доступно, если вызвать без gid | + | /*?PublicGamep[]*/ available_games; // Данные об активных/ближайших играх домена. Доступно, если вызвать без gid |
| | | ||
| - | PublicTask task; // Данные о текущем задании | + | PublicTask task; // Данные о текущем задании |
| - | PublicLastAnswers last_answers; // Мониторинг недавно вбитых ответов | + | PublicLastAnswers last_answers; // Мониторинг недавно вбитых ответов |
| - | ?PublicAnswerResult answer_result; // Результат последнего вбития ответов | + | ?PublicAnswerResult answer_result; // Результат последнего вбития ответов |
| - | ?PublicAnswerForm answer_form; // Данные о форме ответов | + | ?PublicAnswerForm answer_form; // Данные о форме ответов |
| - | /* ?[n => PublicCode] */ codes; // Данные о кодах | + | /* ?[n => PublicCode] */ codes; // Данные о кодах |
| - | /* ?PublicHint[] */ hints; // Подсказки | + | /* ?PublicHint[] */ hints; // Подсказки |
| - | ?int n_bonuses; // Общее число бонусов, если они есть в задании | + | ?int n_bonuses; // Общее число бонусов, если они есть в задании |
| - | ?int compact_n_bonuses; // Общее число бонусов, если автор выбрал компактный режим бонусов | + | ?int compact_n_bonuses; // Общее число бонусов, если автор выбрал компактный режим бонусов |
| - | ?int compact_bonus; // Суммарный полученный бонус/штраф, если автор выбрал компактный режим бонусов | + | ?int compact_bonus; // Суммарный полученный бонус/штраф, если автор выбрал компактный режим бонусов |
| - | /* ?string[] */ compact_bonus_answers; // Известные ответы на бонусы, если автор выбрал компактный режим бонусов | + | /* ?string[] */ compact_bonus_answers; // Известные ответы на бонусы, если автор выбрал компактный режим бонусов |
| - | /* ?string[] */ compact_bonus_hints; // Подсказки на вбитые бонусы, если автор выбрал компактный режим бонусов | + | /* ?string[] */ compact_bonus_hints; // Подсказки на вбитые бонусы, если автор выбрал компактный режим бонусов |
| - | /* ? PublicBonus[] */ bonuses; // Бонусы | + | /* ? PublicBonus[] */ bonuses; // Бонусы |
| - | /* ? PublicBonus[] */ global_bonuses; // Сквозные бонусы | + | /* ? PublicBonus[] */ global_bonuses; // Сквозные бонусы |
| /* ?PublicTaskButton[] */ active_tasks; // Доступные сейчас задания | /* ?PublicTaskButton[] */ active_tasks; // Доступные сейчас задания | ||
| /* ?PublicTaskButton[] */ closed_tasks; // Уже закрытые задания - только в штурме | /* ?PublicTaskButton[] */ closed_tasks; // Уже закрытые задания - только в штурме | ||
| Строка 90: | Строка 89: | ||
| class PublicTask { | class PublicTask { | ||
| - | int n; // Номер задания | + | int n; // Номер задания |
| - | string name; // Название задания | + | string name; // Название задания |
| - | string task; // Текст задания | + | ?string task; // Текст задания |
| - | string answer_format; // Формат ответа | + | ?string answer_format; // Формат ответа |
| - | int n_codes; // Сколько всего кодов в задании | + | ?int n_codes; // Сколько всего кодов в задании |
| - | int need_n_codes; // Сколько надо кодов для прохождения задания | + | ?int need_n_codes; // Сколько надо кодов для прохождения задания |
| - | ?int start_time_ms; // Время начала задания в unix_time миллисекундах | + | ?int start_time_ms; // Время начала задания в unix_time миллисекундах |
| - | ?int time_left_ms; // Сколько осталось времени в миллисекундах до автоперехода | + | ?int time_left_ms; // Сколько осталось времени в миллисекундах до автоперехода |
| - | ?int delay_left_ms; // Задержка в миллисекундах до появления задания | + | ?int delay_left_ms; // Задержка в миллисекундах до появления задания |
| - | int is_complete; // Задание уже закончено | + | int is_complete; // Задание уже закончено |
| } | } | ||
| Строка 141: | Строка 140: | ||
| class PublicCode { | class PublicCode { | ||
| - | ?string name; // Название кода | + | ?string name; // Название кода |
| - | ?string answer; // Ответ на код | + | ?string answer; // Ответ на код |
| + | ?string user_name; // Кто вбил первый | ||
| + | ?int user_id; // Кто вбил первый | ||
| + | ?int answered_ms; // Когда вбил первый | ||
| } | } | ||
| class PublicBonus { | class PublicBonus { | ||
| - | int n; // Номер бонуса | + | ?int n; // Номер бонуса |
| - | int bonus; // Получаемый бонус или штраф, если значение отрицательное. В секундах или баллах | + | ?int bonus; // Получаемый бонус или штраф, если значение отрицательное. В секундах или баллах |
| - | ?string answer; // Ответ на бонус | + | ?string answer; // Ответ на бонус |
| - | ?string description; // Описание бонуса (загадка) | + | ?string description; // Описание бонуса (загадка) |
| - | ?string hint; // Подсказка, если бонус решен | + | ?string hint; // Подсказка, если бонус решен |
| ?int time_to_open_ms; // Время в миллисекундах до открытия бонуса | ?int time_to_open_ms; // Время в миллисекундах до открытия бонуса | ||
| ?int time_to_close_ms;// Время в миллисекундах секундах до закрытия бонуса | ?int time_to_close_ms;// Время в миллисекундах секундах до закрытия бонуса | ||
| - | ?bool is_closed; // Время на ввод бонуса истекло - больше для ввода ответов он недоступен | + | ?bool is_closed; // Время на ввод бонуса истекло - больше для ввода ответов он недоступен |
| + | ?string user_name; // Кто вбил первый | ||
| + | ?int user_id; // Кто вбил первый | ||
| + | ?int answered_ms; // Когда вбил первый | ||
| } | } | ||
| Строка 242: | Строка 246: | ||
| <code> | <code> | ||
| class PublicAutoUpdateResult { | class PublicAutoUpdateResult { | ||
| - | ?string $error; // Ошибка | + | ?string error; // Ошибка |
| - | ?bool $refresh; // Надо обновить страницу, кто-то вбил правильный код или взял штрафную подсказку | + | ?bool refresh; // Надо обновить страницу, кто-то вбил правильный код или взял штрафную подсказку |
| - | ?bool $reload; // Кто-то прошел уровень | + | ?bool reload; // Кто-то прошел уровень |
| - | ?bool $refersh_monitoring; // Есть новые неправильные ответы в мониторинге. Можно их загрузить, если надо. | + | ?bool refersh_monitoring; // Есть новые неправильные ответы в мониторинге. Можно их загрузить, если надо. |
| - | ?int $next_check_ms; // Сколько ждать(в миллисекундах) до следующей проверки - вычисляется сервером в зависимости от нагрузки | + | ?int next_check_ms; // Сколько ждать(в миллисекундах) до следующей проверки - вычисляется сервером в зависимости от нагрузки |
| } | } | ||
| </code> | </code> | ||