Files
moonwell-client/CUSTOM_CREATURES.md
T

2.9 KiB
Raw Blame History

Автоматический импорт 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 сборщик:

  1. читает manifest каждой модели и добавляет все зависимости в patch-Z.MPQ;
  2. генерирует WXLFileData.csv для WarcraftXL;
  3. дописывает модели в CreatureModelData.dbc и CreatureDisplayInfo.dbc;
  4. сохраняет стабильные ID в custom-creatures.lock.json;
  5. кладёт серверные копии DBC и таблицу ID в build/server-dbc.

Перестановка моделей в списке не меняет уже выданные ID. Lock-файл необходимо хранить в Git.

Дополнительные параметры

Если значений по умолчанию недостаточно, вместо строки используется объект:

{
  "folder": "assets/creatures/my_mount",
  "key": "my_mount",
  "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; параметры объекта позволяют их переопределить.

Сгенерированные DBC сами по себе не создают серверное существо или заклинание. Сервер должен загрузить DBC из build/server-dbc, а полученный displayInfoID нужно назначить записи питомца, транспорта или соответствующему spell.