4.0 KiB
Автоматический импорт mount и pet
Список современных моделей находится в custom-creatures.json. В нём есть две независимые
секции:
{
"mounts": [
"assets/creatures/my_mount"
],
"pets": [
"assets/creatures/my_pet"
]
}
Папка должна быть результатом Raw M2 export из wow.export и содержать:
- один основной
.m2; *.manifest.json;- все упомянутые в manifest текстуры, skin, skeleton, bone и animation-файлы.
Разрешены абсолютные пути, например C:/Users/sindo/wow.export/creature/catslime, но для
воспроизводимой сборки папку лучше скопировать внутрь репозитория и указать относительный путь.
Что делает сборщик
При обычном запуске tool.exe, run.ps1 или deploy.ps1 сборщик:
- читает manifest каждой модели и добавляет все зависимости в
patch-Z.MPQ; - генерирует
WXLFileData.csvдля WarcraftXL; - дописывает модели в
CreatureModelData.dbcиCreatureDisplayInfo.dbc; - сохраняет стабильные ID в
custom-creatures.lock.json; - для
petsсоздаёт companion summon spell и строку skill line778; - кладёт серверные DBC, SQL и таблицу ID в
build/server-dbc.
Полный Spell.dbc в патч не копируется. WarcraftXL читает компактный
WXLSpellOverrides.tsv и при открытии DBC добавляет новые spell-записи к штатному файлу клиента.
Перестановка моделей в списке не меняет уже выданные ID. Lock-файл необходимо хранить в Git.
Дополнительные параметры
Если значений по умолчанию недостаточно, вместо строки используется объект:
{
"folder": "assets/creatures/my_mount",
"key": "my_mount",
"name": "My Mount",
"name_ru": "Мой транспорт",
"archive": "Creature/MyMount",
"model_file": "my_mount.m2",
"template_display_id": 2404,
"display_scale": 1.0,
"model_scale": 1.0,
"collision_width": 0.6111,
"collision_height": 2.031,
"mount_height": 1.8657,
"flags": 0
}
Для mounts по умолчанию клонируется верховая лошадь с display ID 2404, для pets —
компаньон-кот с display ID 5448. Шаблон задаёт физические размеры, звук и прочие поля DBC;
параметры объекта позволяют их переопределить.
Установка на сервер
Для каждого элемента pets сборщик автоматически выдаёт creatureEntry, summonSpellID и
skillLineAbilityID. Значения находятся в build/server-dbc/custom-creatures.csv.
- Скопировать
CreatureModelData.dbcиCreatureDisplayInfo.dbcизbuild/server-dbcв серверный каталогdata/dbc. - Применить
build/server-dbc/custom-creatures.sqlкacore_world. - Перезапустить worldserver: DBC и таблицы
spell_dbcзагружаются только при старте. - Для проверки изучить выданный spell командой
.learn <summonSpellID>.
SQL создаёт creature_template, creature_model_info, creature_template_model, companion spell и строку skill line.
Генерация полноценного mount spell для секции mounts остаётся отдельным этапом: mount требует
другой spell-шаблон с аурами скорости и SPELL_AURA_MOUNTED.