Открытые вопросы
Эта документация собрана по исходному коду и данным трёх репозиториев (pda, pdanetwork, pda-assets,
pda-quests) и редактора сюжетов. Часть механик в открытом коде видна только «с одной стороны» (например, факт
вызова серверной команды без её реализации) — такие места честно перечислены здесь, чтобы новый сюжетописатель
не тратил время на угадывание, а прямо шёл с вопросом к разработчикам.
Карта и переходы
- Точный механизм перехода между локациями (точка типа
7— «Переход»). В клиентском коде игры не нашлась явная команда видаtravel/setMap; возможно, переход обрабатывается через полеdataточки напрямую в части кода вне зоны исследования, либо целиком триггерится Lua-скриптом. Перед тем как проектировать сложную сеть переходов между новыми локациями — уточните у разработчиковpda. - Реестр локаций (полный список
GameMap: какие карты существуют, в каком порядке, как физически связаны между собой) не был найден единым файлом ни вpda, ни вpda-assets— вероятно, он либо генерируется, либо хранится в части кода/backend'а, оставшейся вне периметра исследования. - Содержимое реальных
points/spawnsдля существующих локаций (какие точки уже расставлены на Кордоне, Баре и т.д.) не разбиралось построчно — при работе над конкретной историей сверяйтесь с актуальным экспортом из редактора.
Отношения фракций
- Обнаружены два потенциально разных масштаба чисел для отношений: базовая конфигурация фракция↔фракция
(значения вплоть до ±100) и классификация «враг/нейтрал/друг» для игрока (пороги в единицах,
< -2/< 3). Не до конца ясно, единая ли это шкала с разной интерпретацией, или два независимых слоя данных. См. «Система отношений». - Не найдено явной клиентской команды для программного изменения отношений (
changeRelationи подобные) — похоже, что действия+/-/reset, доступные в редакторе, обрабатываются либо целиком на сервере при синхронизации, либо особым образом, не обнаруженным в клиентском репозитории напрямую. Практический вывод: пользуйтесь действиями+/-/resetкак задокументированным публичным интерфейсом — они точно поддерживаются редактором и каталогом действий, даже если их внутренняя реализация не была прослежена до конца.
Язык истории
- Приоритет условий в списках
texts/transfersпри нескольких потенциально подходящих вариантах — судя по коду, побеждает первый подходящий по порядку элемент массива, пустойcondition: {}работает как вариант по умолчанию. Это наблюдение, а не гарантированно задокументированное поведение — тестируйте неочевидные комбинации условий в игре. - Типы чекпоинтов
KILLиTRAVEL(см. «Задания и чекпоинты») присутствуют в структурах данных, но не встречаются в изученном реальном контенте историй — их точное поведение не подтверждено практикой, используйте с осторожностью и тестируйте отдельно. - Серверные команды
item,item_condition,state,set, встречающиеся в коде backend'а, не имеют представления в UI редактора и не задокументированы — не используйте их напрямую в «сыром» JSON, пока не уточните семантику у разработчиков; для стандартных сценариев достаточноadd/remove/money/xp. - Lua-скрипты (
script/asyncScript) технически поддерживаются и доступны в редакторе, но публичного описания доступного внутри скрипта API нет — см. «Lua-скрипты».
Редактор
- Правила встроенного валидатора стадий (
StageValidator) не были разобраны построчно — полагайтесь на сообщения об ошибках, которые показывает сам редактор при сохранении. - В открытых источниках встречаются два адреса редактора —
story.artux.netиpda-quest-editor.pages.dev. Эта документация ссылается наstory.artux.net(домен, указанный как основной backend'омpdanetwork); если у вас нет доступа по этому адресу, уточните актуальный URL у команды.
Как помочь улучшить документацию
Если вы — разработчик или сюжетописатель и знаете точный ответ на один из вопросов выше, пожалуйста, обновите
соответствующую страницу и уберите пометку отсюда. Документация живёт в репозитории
artux-net/pda-site.