Начало работы¶
Для начала неплохо было бы понимать общую логику работы и базовые сущности.
Всё происходит внутри квеста. В квесте есть задания. Задание имеет название, контент (который можно форматировать), ответ(ы) (необязательно), кнопки-переходы на другие задания, ограничения времени, предметы для выдачи и прохождения задания. Есть ещё условия и всякие настройки, но о них подробнее в соответствующем разделе. Также есть предметы инвентаря - это то, что автор квеста заполняет на этапе создания квеста, а затем в ходе квеста эти предметы могут выдаваться пользователям или забираться в некоторых заданиях для прохождения дальше.
Если схематично изобразить сущности и связи между ними, получится что-то такое:
graph RL
task[Задания] --> quest[Квест];
inventory[Предметы инвентаря] --> task;
answer[Ответы] --> task;
buttons[Кнопки-переходы] --> task;
scripts[Скрипты] --> buttons;
sharedCode[Общий код] --> quest;
scripts --> sharedCode;
scripts --> conditions;
conditions[Условия] --> task;
conditions --> buttons;
maps[Карта] --> task;
maps --> quest;
users[Участники] --> quest;
stats[Статистика] --> quest;
api[API] --> quest;
webhooks[WebHooks] --> sharedCode;
Несмотря на то, что эта схема точно передаёт суть, вам, скорее всего, не всё понятно. Поэтому давайте вместе разбираться с каждым элементом системы 🐧
Продолжение следует...