FOnline Engine
Current master GitHub
Документация Docs/ru/reference/map-format/syntax.md

Синтаксис файла карты

Сгенерированный справочник. Не редактируйте напрямую. Обновите BuildTools/MapFormatInterface.json или владеющие метаданные движка, затем запустите python BuildTools/docs_map_format.py --write.

Индекс Синтаксис Свойства Запекание Валидация Каноническая JSON-модель Руководство по авторингу

Контейнер карт является настроенным файлом прототипов с одним или несколькими якорями [ProtoMap]. Каждый якорь владеет вложенными секциями [$Name/Critter] и [$Name/Item]; вместо $Name можно использовать явный ID карты.

Формы секций

Стабильный ID Синтаксис Получатель Кардинальность Значение
map-format.section.proto-map [ProtoMap] Map одна или несколько на контейнер Объявляет свойства уровня карты и начинает контекст для следующих секций [$Name/Critter] и [$Name/Item].
map-format.section.critter [$Name/Critter] or [<MapId>/Critter] Critter ноль или больше на объявленную карту Размещает прототип криттера и применяет переопределения свойств Critter для размещения.
map-format.section.item [$Name/Item] or [<MapId>/Item] Item ноль или больше на объявленную карту Размещает предмет карты, инвентаря или контейнера и применяет переопределения свойств Item для размещения.

Управляющие директивы

Директива Секции Синтаксис Обязательна По умолчанию Значение
$Name ProtoMap $Name = <MapId> нет базовое имя исходного файла Выбирает ID прототипа Map и базовые имена обоих запечённых ресурсов. Без $Name якорь разрешается в базовое имя исходника; в контейнере с несколькими картами каждый якорь следует именовать явно.
$Parent ProtoMap $Parent = <ParentMapId> [<ParentMapId> ...] нет без родителей Использует обычное наследование прототипов Map при запекании прототипов. Сохранение в Mapper выпускает развёрнутый результат и не сохраняет эту директиву.
$Text <language> ProtoMap $Text <language> = <localized text> нет без текста карты Добавляет локализованный текст прототипа и сохраняется циклом загрузки и сохранения Mapper как дополнительное поле ProtoMap.
$Id Critter, Item $Id = <positive integer> нет следующий свободный положительный ID Задаёт общую идентичность размещения для ссылок владения. Отсутствующие, неположительные и повторяющиеся ID исправляются при загрузке; авторские карты не должны полагаться на исправление.
$Proto Critter, Item $Proto = <PrototypeId> да отсутствует Разрешает базовый прототип Critter или Item до применения переопределений размещения.

Минимальная карта

[ProtoMap]
$Name = SmallRoom
Size = 80 80
WorkHex = 40 40

[$Name/Critter]
$Id = 1
$Proto = Guard
Hex = 38 40
Dir = 3

[$Name/Item]
$Id = 2
$Proto = MetalDoor
Hex = 42 40

В пределах одной выбранной карты порядок размещений не имеет семантики: загрузчик обрабатывает всех криттеров, затем все предметы. Используйте явные уникальные ID для стабильных ссылок владения и понятных diff.

Введите запрос.