Перейти к основному содержимому

Квестовый журнал: задания и чекпоинты

Диалоги (стадии) — это то, что игрок видит и на что кликает. Но у главы истории есть ещё один слой — квестовый журнал (missions), который показывает игроку текущие задачи независимо от того, на какой стадии диалога он находится. Это удобно для заданий вида «принеси 5 шкур кровососа», которые выполняются не диалогом, а действиями в открытом мире.

Структура

"missions": [
{
"title": "Хабар с Кордона",
"name": "quest_sidorovich_hunt",
"checkpoints": [
{
"title": "Найти схрон возле блокпоста",
"parameter": "схрон_кордон_найден",
"type": "FIND_ITEM",
"condition": { "has": ["схрон_кордон_найден"] },
"actions": { "openNotification": ["Задание", "Схрон найден!"] }
}
]
}
]
  • title — название задания, которое видит игрок в журнале.
  • name — служебный идентификатор (slug) задания.
  • checkpoints — упорядоченный список этапов; каждый закрывается, когда выполняется его condition.

Типы чекпоинтов

ТипСмыслСтатус
FIND_ITEMЭтап закрывается, когда у игрока появляется флаг/предмет, указанный в parameterПодтверждённо используется в реальном контенте — основной рабочий тип
KILLПредполагает отслеживание убийствПрисутствует в типах данных, но не встречается в изученном контенте — считайте экспериментальным, уточните поведение у разработчиков перед использованием
TRAVELПредполагает отслеживание перемещения/посещения локацииТак же, как KILL, не встречен в реальных историях — уточняйте перед использованием

Практический совет

Самый надёжный и проверенный паттерн — вести чекпоинты через тот же флаг, что и диалоги:

  1. Действие где-то в мире (например, точка на карте или отряд) выдаёт флаг через add при выполнении условия.
  2. Чекпоинт типа FIND_ITEM с тем же именем в parameter автоматически закрывается.
  3. Диалог в другой стадии проверяет тот же флаг через has, чтобы показать реакцию NPC.

Так один флаг одновременно двигает и диалог, и журнал заданий — не нужно дублировать логику.

Далее

  • Действия — какими командами выдавать флаги/предметы для чекпоинтов.
  • Точки на карте — как связать чекпоинт с конкретным местом в мире.