# Автоматический импорт mount и pet Список современных моделей находится в `custom-creatures.json`. В нём есть две независимые секции: ```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` сборщик: 1. читает manifest каждой модели и размещает retail M2 со всеми зависимостями в loose-каталоге `Data/Patch-WXL.MPQ`, создавая рядом `.mdx`-алиас для загрузчика WoW 3.3.5, чтобы WarcraftXL всегда преобразовывал MD21 до загрузки клиентом; 2. генерирует `WXLFileData.csv` для WarcraftXL; 3. дописывает модели в `CreatureModelData.dbc` и `CreatureDisplayInfo.dbc`; 4. сохраняет стабильные ID в `custom-creatures.lock.json`; 5. для `pets` создаёт companion summon spell и строку skill line `778`; 6. кладёт серверные DBC, SQL и таблицу ID в `build/server-dbc`. Полный `Spell.dbc` в патч не копируется. WarcraftXL читает компактный `WXLSpellOverrides.tsv` и при открытии DBC добавляет новые spell-записи к штатному файлу клиента. Перестановка моделей в списке не меняет уже выданные ID. Lock-файл необходимо хранить в Git. ## Дополнительные параметры Если значений по умолчанию недостаточно, вместо строки используется объект: ```json { "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`. 1. Скопировать `CreatureModelData.dbc` и `CreatureDisplayInfo.dbc` из `build/server-dbc` в серверный каталог `data/dbc`. 2. Применить `build/server-dbc/custom-creatures.sql` к `acore_world`. 3. Перезапустить worldserver: DBC и таблицы `spell_dbc` загружаются только при старте. 4. Для проверки изучить выданный spell командой `.learn `. SQL создаёт `creature_template`, `creature_model_info`, `creature_template_model`, companion spell и строку skill line. Генерация полноценного mount spell для секции `mounts` остаётся отдельным этапом: mount требует другой spell-шаблон с аурами скорости и `SPELL_AURA_MOUNTED`.