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

Модель истории

Любая история в Stalker PDA устроена как трёхуровневая иерархия. Понимание этой иерархии — ключ ко всей остальной документации.

История (Story)
└─ Глава 1 (Chapter)
├─ Стадия A (Stage)
├─ Стадия B (Stage)
└─ Стадия C (Stage)
└─ Глава 2 (Chapter)
└─ ...
  • История — верхнеуровневая сущность, которую видит игрок в списке заданий (например, «Хабар с Кордона» или «Задание торговца Сидоровича»).
  • Глава — крупный смысловой блок истории (например, «Прибытие» / «Переговоры» / «Развязка»). У главы есть собственный граф стадий, своя музыка, свои точки и отряды на карте.
  • Стадия — минимальный узел сюжета: одна сцена, одна реплика или один диалоговый выбор. Стадии соединены между собой переходами (transfers), образуя ветвящийся граф — именно так выглядит история в редакторе сюжетов: узлы на холсте и связи между ними.

Описание истории (info.json)

Каждая история описывается общим паспортом:

ПолеНазначение
idУникальный идентификатор истории
titleНазвание, которое видит игрок
descКраткое описание/аннотация
iconИконка истории в списке заданий
accessМинимальная роль игрока, которой доступна история: USER, TESTER, MODERATOR, ADMIN

Поле access — удобный способ «выкатывать» историю поэтапно: сначала сделать её видимой только тестерам, а затем опубликовать для всех игроков (USER). Подробнее — в разделе «Публикация и доступ».

Глава (Chapter)

id, title?, music?: string[],
stages: [...], // все стадии главы — сам граф сюжета
points?: { [карта]: [...] }, // точки, которые глава добавляет на карту
spawns?: { [карта]: [...] }, // отряды NPC, которые глава добавляет на карту
missions?: [...] // задания в квестовом журнале, привязанные к главе

Глава — это не только диалоги. Она же может добавлять контент на карту мира: новые точки интереса (квестовые метки, тайники, торговцев, переходы) и отряды NPC на конкретных локациях. Подробнее — в разделах «Точки на карте» и «Отряды и территории».

music — список треков, которые проигрываются во время главы (фоновая музыка сцены).

Стадия (Stage)

Стадия — «атом» истории. У неё есть тип, текст (или несколько вариантов текста в зависимости от условий), переходы к другим стадиям и действия, которые выполняются при входе на неё.

id, type_stage, title?, background?,
message?, type_message?,
texts?: [{ text, condition }],
transfers?: [{ text, stage, condition }],
actions?: { command: [аргументы] },
data?: { map, pos }, // для стадий-переходов на карту
editor?: { x, y } // позиция узла на холсте редактора — не влияет на геймплей

Типы стадий (type_stage)

ЗначениеЧто означает
0Обычная сцена — показывает текст/сообщение
1Сцена разговора (диалог) — оформляется как реплика персонажа
4Переход на карту — открывает игровую карту в указанной точке (data.map, data.pos)
5Загрузка другой главы — техническая стадия, передающая ход другой главе истории
6Переход к продавцу — открывает торговое окно

Типы сообщений (type_message)

ЗначениеЧто означает
0Обычное сообщение (нейтральное системное)
1Диалоговое сообщение — визуально оформляется как реплика персонажа в диалоге

Подробный разбор texts, transfers и условной видимости реплик — в разделе «Стадии и диалоги».

Куда идти дальше