58 lines
7.5 KiB
Markdown
58 lines
7.5 KiB
Markdown
# RPG Map Editor — рисование тайловых карт и расстановка событий
|
||
|
||
RPG Map Editor правит тайловые карты движка RPG прямо во время игры: три слоя тайлов, стены и проходы, точку появления героя, случайные бои и события — персонажей, таблички, двери, подбираемые предметы. Сохранение сразу обновляет карту в запущенной игре, а кнопка **Играть** позволяет по ней пройтись.
|
||
|
||
Открывается редактор из набора инструментов (молоток на панели инструментов) как **Редактор RPG-карт** — для той карты, на которой сейчас стоит игрок.
|
||
|
||
## Правка и её результат в игре
|
||
|
||
Дом старейшины из RPG Plus до правки:
|
||
|
||

|
||
|
||
В редакторе: вкладка **Внешность**, спрайт торговца, кнопка **Разместить NPC**, клик по свободной клетке. Новое событие выбрано на слое **События**, его свойства — справа:
|
||
|
||

|
||
|
||
После **сохранения** (Ctrl+S) торговец стоит в доме:
|
||
|
||

|
||
|
||
Его диалог и поведение задаются в свойствах события: сценарий, условие, способ запуска.
|
||
|
||
## Слои и инструменты
|
||
|
||
- **Фон**, **Основной**, **Передний** — слои тайлов. Фон и Основной могут перекрывать проход непроходимыми тайлами; Передний рисуется поверх персонажей и никогда не блокирует.
|
||
- **Коллизии** — рисуется поверх тайлов: *Стена* (всегда непроходимо), *Проход* (всегда проходимо) или *Авто* (по тайлам).
|
||
- **События** — клик выбирает или тащит событие, двойной клик по пустой клетке добавляет, Del удаляет.
|
||
- **Карандаш**, **Ластик**, **Заливка**; правая кнопка мыши стирает, Alt+клик берёт тайл, клавиши 1–5 переключают слои, B/E/G — кисти.
|
||
- **Отменить**/**Вернуть** (Ctrl+Z / Ctrl+Y), сетка, масштаб (Ctrl+колесо).
|
||
|
||

|
||
|
||
Вкладки слева: **Тайлы** (палитра тайлсета карты; целые объекты вроде дома или дерева можно ставить одним штампом), **Персонажи** (персонажи с боевыми характеристиками, размещаются как враги), **Предметы** (раскладываются как подбираемые предметы с количеством) и **Внешность** (все спрайты загруженных модов, размещаются как NPC).
|
||
|
||
Правый столбец — свойства карты: ключ имени, тайлсет, размер, масштаб, своё освещение и атмосфера, точка появления и направление взгляда, а также случайные бои (примерно раз в N шагов, группы врагов вида `slime; wolf,slime`).
|
||
|
||
## Вид сверху и изометрия
|
||
|
||
Редактор рисует карту так же, как её рисует игра. Переключатель вида на панели инструментов меняет только предпросмотр; данные карты остаются прежними. Дом в изометрическом предпросмотре:
|
||
|
||

|
||
|
||
Сам вид игры задаёт настройка коллекции `tile.renderer` (`topdown` или `isometric`); ключ `--editor-renderer=isometric` открывает редактор сразу в изометрическом предпросмотре.
|
||
|
||
## Какие файлы записываются
|
||
|
||
- Сама карта сохраняется в свой `maps/<id>.json`.
|
||
- События попадают в файл событий этой карты в том же моде (`map_events/<карта>/…`). События, которые добавляют на карту другие файлы или другие моды, показываются приглушённо, с пунктирной рамкой, и никогда не перезаписываются; их id нельзя использовать повторно.
|
||
- **+** рядом со списком файлов создаёт новую карту в выбранном моде; после сохранения игра сразу знает её как сцену.
|
||
- Записывать можно только в моды, установленные папками.
|
||
|
||
## Если что-то пошло не так
|
||
|
||
1. **«Играть» сообщает, что игра не знает сцену.** Карте нужен файл `scenes/<id>.json` в её моде.
|
||
2. **Событие не выбирается.** Оно принадлежит другому файлу или другому моду (пунктирная рамка).
|
||
3. **NPC не разговаривает.** У его события нет сценария, либо запуск у него не по клавише действия.
|
||
4. **Сохранение меняет строки, которые вы не трогали.** Редактор записывает файлы в своём порядке и добавляет значения по умолчанию для полей событий, поэтому diff может показать больше, чем сама правка.
|