Files
moonwell-editor/docs/install.md
T
sindoring e2ccb3462e Document quest workflows and the full editor roadmap
Record item and chain acceptance evidence, remaining manual checks, isolated scenario requirements and creator deployment milestones. Keep the implementation status and publication preparation explicit.

Co-Authored-By: Codex <noreply@openai.com>
2026-11-10 21:35:43 +04:00

138 lines
16 KiB
Markdown

# Установка MoonWell Editor
Распакуйте архив в отдельную папку и откройте `benilla-editor.exe`. Rust, исходники Benilla
и исходники редактора для запуска не нужны. Требуются Windows x64, современный видеодрайвер
с поддержкой Vulkan, Microsoft Visual C++ Runtime x64 (`VCRUNTIME140.dll`) и собственная
установка WoW 1.12.1.
Это инструкция для текущего пакета. Установщик с мастером проекта, автоматическая подготовка
тестового сервера/клиента и обновления запланированы в [ROADMAP.md](ROADMAP.md), направление D.
Сейчас для Play требуется отдельно подготовленное окружение, описанное ниже.
## Первый запуск
1. Откройте общий репозиторий контента проекта в отдельной папке и выберите его JSON-проект
в стартовом окне. Либо создайте новый проект: commit ядра и отдельный диапазон GUID
нужно получить у владельца сервера. У разных проектов диапазоны не должны пересекаться.
2. Выберите папку WoW или её `Data`. Данные игры используются только для чтения.
3. Укажите подключение к world-базе в формате `mysql://user:password@host:port/mangos`.
Оно нужно для каталога NPC, отображения существующих спавнов и проверки экспорта.
Для просмотра мира без подключения можно открыть проект с уже заданными моделями.
4. Выберите папку миграций. По умолчанию это `migrations` рядом с JSON-проектом.
5. Нажмите «Сохранить настройки», затем «Открыть редактор».
Для Play нужен отдельно установленный совместимый клиент Benilla / MoonWell, подготовленный
локальный сервер vMaNGOS, выделенный GM-аккаунт и созданный персонаж. В настройках Play
укажите клиент, адрес сервера, Realm ID, аккаунт и персонажа. Скрипт `scripts/prepare-play.ps1`
предназначен для WSL с `deploy/local/compose.sh` и `apply-content.sh` нашего ядра: укажите
фактический Linux-путь ядра и порт мира. Для другого окружения используйте собственный скрипт
или применяйте миграции и перезапускайте мир вручную до Play.
Выбранный в каталоге NPC остаётся кистью для нескольких размещений. **Esc** или кнопка
**«Режим выбора (Esc)»** в каталоге отменяет размещение. После этого щёлкните по кольцу
у ног NPC, чтобы открыть его в инспекторе; щелчок по свободному месту новых NPC не создаёт.
Мир занимает свободную область между панелями и подстраивается под их размер. Обзор ПКМ,
колесо скорости и выбор поверхности работают внутри этой области.
## Где хранятся данные
- **Папка программы:** исполняемые файлы, скрипты и лицензии. Здесь нет проектов и паролей.
- **Репозиторий контента:** JSON-проекты, SQL-миграции и прочие общие файлы проекта.
Сохраняйте их в Git этого репозитория. Файл `camp.json` из исходников редактора — локальный пример.
- **Профиль пользователя:** `settings.json`, список последних проектов и состояние Play.
Настройки содержат локальные пароли; не добавляйте профиль в Git и не передавайте другим.
Точный путь покажет `benilla-editor-cli.exe config-path`; он также указан в стартовом окне.
Логи клиента и подготовки находятся в `state/play` внутри профиля данных пользователя.
Для отдельного профиля задайте абсолютный `EDITOR_HOME`: тогда используются
`<EDITOR_HOME>/config/settings.json`, `state/` и `cache/`. Относительные пути в настройках
считаются от папки `settings.json`.
Старый `.env` можно явно импортировать кнопкой стартового окна либо командой
`benilla-editor-cli.exe config-import "полный-путь-к-.env"`. Автоматического чтения `.env`
из папки программы или текущей папки больше нет. Явно заданные переменные окружения
`WOW_DATA` и `EDITOR_*` имеют приоритет над профилем при запуске.
## Создание простого квеста
Откройте «Квесты…» в верхней панели. При первом создании укажите диапазон ID квестов,
выделенный владельцем сервера для общего проекта. Нажмите «Новый квест», заполните название,
описание, цель в журнале и текст завершения. Выберите уровень и награду (опыт и медь).
Выберите роль «NPC выдачи» или «NPC сдачи», найдите NPC по имени и нажмите его в результатах.
Можно использовать выбранного в мире NPC, в том числе обычную лошадь. Ниже формы выберите
режим назначения и включите флаг «Квестодатель»:
- «Все NPC этого типа» добавляет флаг всем спавнам выбранного entry во всех патчах Vanilla,
сохраняя остальные флаги.
- «Только выбранный NPC»: сначала выберите нужный спавн в мире, затем нажмите
«Назначить квест только выбранному…» или включите флаг. Редактор создаст отдельный шаблон
и переведёт на него только этот спавн. Остальные лошади останутся прежними. Для новых
шаблонов владелец проекта один раз задаёт свободный диапазон entry в раскрывающемся блоке.
Переключатель задаёт режим следующего назначения; текущая привязка показана отдельно.
Изменения попадут в SQL-миграцию вместе с квестом и применятся при подготовке Play.
Отдельная копия сохраняет поля исходного шаблона и его существующие связи с квестами.
Пока копирование доступно для простых NPC без специальных ролей, AI/ScriptName и других
опубликованных квестов проекта. Для торговцев, тренеров и таких NPC используйте общий режим.
Новый шаблон принадлежит проекту: если впоследствии поставить ещё один спавн с его entry,
он тоже получит эти квесты. После экспорта флаг и копия сохраняются как опубликованный контент;
автоматического удаления копии или отключения опубликованного флага пока нет.
Для цели убийства переключите роль поиска, выберите существо и количество (не больше 63).
В блоке «Предметные цели и награды» выберите роль предмета и найдите его по имени (русскому
или английскому) либо entry. Поддерживаются до 4 целей сбора, до 4 фиксированных наград
и до 6 вариантов награды, из которых игрок выбирает один. Количество меняется в строке;
«Убрать» удаляет предмет из списка. При сдаче предметы цели забираются. Можно сочетать сбор
с убийствами. Без целей сбора и убийства квест завершается разговором с NPC сдачи.
Редактор проверяет наличие предметов на патче квеста и лимиты уникальности. Если один
уникальный предмет нужен для сдачи и одновременно выдаётся в награду, экспорт может быть
заблокирован: ядро проверяет возможность получить награду ещё до изъятия предметов цели.
Источники добычи и торговцы автоматически не меняются: для цели используйте предмет,
который игрок сможет получить в мире. Проверка доступности по фракции/классу и вместимости
сумок остаётся за ядром.
В блоке «Цепочка квестов» выберите предыдущий квест проекта: новый станет доступен после
его сдачи и получения награды. Можно создать несколько продолжений с одним предыдущим
квестом; это независимые доступные квесты, а не взаимоисключающие ветки.
Опция «Сразу предложить после сдачи предыдущего» включает переход к диалогу продолжения,
с учётом обычных условий ядра (например, уровня). Для неё NPC сдачи предыдущего должен
выдавать следующий квест, и патчи должны совпадать. Автоматически предлагаться может только
одно продолжение. Без этой опции продолжение выдаётся обычным способом у назначенного NPC.
Редактор показывает путь до текущего квеста и кнопки перехода к продолжениям. Циклы
и ссылки на отсутствующие квесты запрещены. Предыдущий квест с более позднего патча
блокирует экспорт и Play.
Пока цепочка связывает только собственные квесты проекта. Чтобы удалить неопубликованный
черновик, сначала уберите ссылки из его продолжений. Снятие связи и автопредложения после
экспорта создаёт новую миграцию; история прохождения персонажей при этом не сбрасывается.
Постановочные сценарии (сопровождение NPC, реплики, эмоции, волны противников) пока не
реализованы. Они выделены в ближайший этап с отдельными запусками для игрока/группы:
[архитектура сценариев](quest-scenarios.md). Связь квестов в цепочку сама по себе не запускает
такое поведение.
«Сохранить проект» сохраняет и незаконченные черновики, в том числе цепочку, в которой
вы ещё меняете NPC или патчи. Предупреждение «Цепочка» показывает, что нужно согласовать
перед проверкой сервера, экспортом и Play. «Экспорт» в панели «Изменения»
проверяет данные и создаёт общую SQL-миграцию NPC и квестов. Play использует обычный цикл
применения миграций и перезапуска локального сервера. Проверка боевого прохождения — вручную.
При обновлении текста опубликованного квеста учитывайте клиентский кеш; новый процесс Play
не равен очистке кеша у всех игроков. Для повторного прохождения используйте другого
тестового персонажа: редактор не сбрасывает историю выполненных квестов.
Пока поддержаны собственные новые квесты, разговор, убийства и сбор предметов, награды опытом,
деньгами и предметами, цепочки внутри проекта. Отдельные языковые версии запланированы в
[общем плане](ROADMAP.md); ближайший предметный этап — сценарии квестов. Опубликованный квест можно
обновлять новой миграцией; удаление доступно только неопубликованному черновику.
Проекты с квестами используют формат 2 и требуют новой версии редактора.
## Обновление
Закройте редактор и запущенный им клиент Play. Распакуйте новую версию в новую папку и
запустите её. Профиль и последние проекты сохранятся. Для Play, использующего скрипт из
старой папки программы, выберите скрипт новой версии в настройках. Общий репозиторий
контента обновляется отдельно обычным Git-процессом команды.
Автоматическая загрузка обновлений пока не реализована. Артефакты DBC/S3 относятся к
релизам игрового контента и не входят в пакет редактора.