api_engine_main

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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>​
  • api_engine_main.1628428015.txt.gz
  • Последние изменения: 2021/08/08 13:06
  • admin