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

Открытые вопросы

Эта документация собрана по исходному коду и данным трёх репозиториев (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.