Creature template

Материал из World of WarCraft Developers Wiki
Перейти к навигации Перейти к поиску

Таблица creature_template

Таблица creature_template из базы данных world хранит **описание шаблонов существ (NPC/мобов)**. Каждый спавн существа в мире (таблица creature) ссылается на шаблон по полю id/id1 (entry). Шаблон определяет базовые свойства: имя, флаги NPC, скорость, класс, тип, поведение ИИ, дополнительные флаги, привязку к транспорту/vehicle и т. п.

PRIMARY KEY: entry.

Field Type Attributes Key Null Default Extra
entry int UNSIGNED PRIMARY NO 0
KillCredit1 int UNSIGNED NO 0
KillCredit2 int UNSIGNED NO 0
name mediumtext utf8mb4_unicode_ci YES NULL
femaleName mediumtext utf8mb4_unicode_ci YES NULL
subname mediumtext utf8mb4_unicode_ci YES NULL
TitleAlt mediumtext utf8mb4_unicode_ci YES NULL
IconName varchar(64) utf8mb4_unicode_ci YES NULL
RequiredExpansion int NO 0
VignetteID int NO 0
faction smallint UNSIGNED NO 0
npcflag bigint UNSIGNED NO 0
speed_walk float NO 1
speed_run float NO 1.14286
scale float NO 1
Classification tinyint UNSIGNED NO 0
dmgschool tinyint NO 0
BaseAttackTime int UNSIGNED NO 0
RangeAttackTime int UNSIGNED NO 0
BaseVariance float NO 1
RangeVariance float NO 1
unit_class tinyint UNSIGNED NO 0
unit_flags int UNSIGNED NO 0
unit_flags2 int UNSIGNED NO 0
unit_flags3 int UNSIGNED NO 0
family int NO 0
trainer_class tinyint UNSIGNED NO 0
type tinyint UNSIGNED NO 0
VehicleId int UNSIGNED NO 0
AIName varchar(64) utf8mb4_unicode_ci NO
MovementType tinyint UNSIGNED NO 0
ExperienceModifier float NO 1
RacialLeader tinyint UNSIGNED NO 0
movementId int UNSIGNED NO 0
WidgetSetID int NO 0
WidgetSetUnitConditionID int NO 0
RegenHealth tinyint UNSIGNED NO 1
CreatureImmunitiesId int NO 0
flags_extra int UNSIGNED NO 0
ScriptName varchar(64) utf8mb4_unicode_ci NO
StringId varchar(64) utf8mb4_unicode_ci YES NULL
VerifiedBuild int NO 0

entry

Уникальный идентификатор шаблона существа (Creature Template). Используется как ссылка из creature (спавны), а также множеством других таблиц.

Пример: 1976

KillCredit1

Если запись является «kill credit template» (шаблон-заглушка, когда несколько существ могут засчитываться как убийство для одного условия квеста), то это ссылка на первого возможного реального моба, убийство которого даёт credit.

Ссылка на creature_templateentry.

Пример: 12345

KillCredit2

Аналогично KillCredit1, но для второго варианта. Если вариантов больше двух — обычно требуется дополнительная логика (скрипты), т. к. полей только два.

Ссылка на creature_templateentry.

Пример: 12346

name

Базовое имя существа (отображается игроку).

Пример: "Stormwind Guard"

femaleName

Женский вариант имени (если используется клиентом/данными).

Пример: "Stormwind Guard"

subname

Подзаголовок (титул) в угловых скобках под именем: <subname>.

Пример: "Weapon Master"

TitleAlt

Альтернативная строка/заголовок (использование зависит от клиента/сниффов; может быть пустым).

Пример: NULL

IconName

Имя «курсорной» иконки (подсказка игроку, что это за NPC). Значение регистрозависимое.

Value Описание
Directions Иконка для стражников/телепортеров
Gunner Индикатор турели / управляемого NPC
vehichleCursor Индикатор PCV (Player Controlled Vehicle)
Driver Руль (steering wheel)
Attack Меч — можно атаковать
Buy Сумка — торговец
Speak Диалог/квесты
Pickup Рука — «поднять/взять» (часто для квестов)
Interact Шестерёнка — взаимодействие/транспорт
Trainer Книга — тренер
Taxi Сапог с крыльями — полётник
Repair Наковальня — ремонт
LootAll Множественная сумка — «лут всё»
Quest Неиспользовано/неизвестно (встречается редко)
PVP Неиспользовано/неизвестно (встречается редко)

Пример: "Trainer"

RequiredExpansion

Минимальное дополнение (expansion), требуемое для актуальности/использования записи (ограничение контента на стороне данных/клиента).

Value Описание
0 Базовая игра / без требования дополнения
1 The Burning Crusade
2 Wrath of the Lich King
3 Cataclysm
4 Mists of Pandaria
5 Warlords of Draenor
6 Legion
7 Battle for Azeroth
8 Shadowlands
9 Dragonflight
10 The War Within (если используется соответствующим клиентом/данными)

Пример: 7

VignetteID

ID «виньетки» (vignette) для клиентского отображения POI/подсветок/иконок, если применимо. Обычно соответствует клиентским данным (DB2/Hotfix) по виньеткам.

Value Описание
0 Не используется
>0 ID виньетки (client DB2/Hotfix)

Пример: 0

faction

Фракция существа (FactionTemplate). Влияет на дружелюбие/враждебность и на механику помощи «своим».

Пример: 11

npcflag

Битовая маска NPCFlags, определяющая доступные взаимодействия (госсип, выдача квестов, торговец, банк и т. п.). Чтобы объединить флаги — суммируйте значения (или используйте OR).

Decimal Hex Name Описание
1 0x00000001 Gossip Дополнительные gossip-опции (меню)
2 0x00000002 Quest Giver Выдаёт/принимает квесты
4 0x00000004 Unknown Неизвестно
8 0x00000008 Unknown Неизвестно
16 0x00000010 Trainer Тренер (учит)
32 0x00000020 Class Trainer Тренер класса
64 0x00000040 Profession Trainer Тренер профессии
128 0x00000080 Vendor Торговец
256 0x00000100 Vendor Ammo Торговец боеприпасами
512 0x00000200 Vendor Food Торговец едой
1024 0x00000400 Vendor Poison Торговец ядами
2048 0x00000800 Vendor Reagent Торговец реагентами
4096 0x00001000 Repairer Ремонт
8192 0x00002000 Flight Master Полётник
16384 0x00004000 Spirit Healer Дух-целитель (воскрешение; невидим живым)
32768 0x00008000 Spirit Guide Дух-проводник
65536 0x00010000 Innkeeper Трактирщик (установка hearth)
131072 0x00020000 Banker Банк
262144 0x00040000 Petitioner Petition NPC
524288 0x00080000 Tabard Designer Дизайнер гильдейских табардов
1048576 0x00100000 Battlemaster Баттлмастер
2097152 0x00200000 Auctioneer Аукционист
4194304 0x00400000 Stable Master Конюх (стойло питомцев)
8388608 0x00800000 Guild Banker Гильдбанк
16777216 0x01000000 Spellclick Spellclick (нужны данные в npc_spellclick_spells)
33554432 0x02000000 Player Vehicle Игрок-vehicle
67108864 0x04000000 Mailbox Открывает почту как ящик (ПКМ)
134217728 0x08000000 Artifact Power Respec Спец. флаг (как в данных ядра)
268435456 0x10000000 Transmogrifier Трансмогрификатор
536870912 0x20000000 Vaultkeeper Void Storage
1073741824 0x40000000 Wild Battle Pet Боевой питомец (коллекционируемый)
2147483648 0x80000000 Blackmarket Чёрный рынок

Пример: 4226

speed_walk

Скорость ходьбы. (В таблице указано стандартное значение, часто встречаемое в сниффах.)

Пример: 1

speed_run

Скорость бега. (В таблице указано стандартное значение, часто встречаемое в сниффах.)

Пример: 1.14286

scale

Масштаб (размер) модели. Если равен 0 — используется дефолтный масштаб модели из клиентских данных.

Пример: 1

Classification

Классификация (качество/тип) существа, в основном визуальная (Normal/Elite/Rare и т. п.).

Value Name Default Corpse Decay
0 Normal 5 min
1 Elite 5 min
2 Rare Elite 5 min
3 Obsolete 1 hour
4 Rare 5 min
5 Trivial 5 min
6 Minus Mob 2.5 min

Пример: 1

dmgschool

Школа урона для автоатак ближнего боя.

Value Name
0 SPELL_SCHOOL_NORMAL
1 SPELL_SCHOOL_HOLY
2 SPELL_SCHOOL_FIRE
3 SPELL_SCHOOL_NATURE
4 SPELL_SCHOOL_FROST
5 SPELL_SCHOOL_SHADOW
6 SPELL_SCHOOL_ARCANE

Пример: 0

BaseAttackTime

Базовый интервал между автоатаками ближнего боя (в миллисекундах).

Пример: 2000

RangeAttackTime

Базовый интервал между автоатаками дальнего боя (в миллисекундах).

Пример: 2000

BaseVariance

Модификатор разброса/вариативности урона для ближнего боя (float). Обычно 1 = стандартный разброс.

Пример: 1

RangeVariance

Модификатор разброса/вариативности урона для дальнего боя (float). Обычно 1 = стандартный разброс.

Пример: 1

unit_class

Класс существа (влияет на базовые параметры здоровья/маны и расчёты).

Value Name Power Shown
1 CLASS_WARRIOR Только здоровье (как у Rogue)
2 CLASS_PALADIN Здоровье + мана
4 CLASS_ROGUE Только здоровье (как у Warrior)
8 CLASS_MAGE Здоровье + мана

Пример: 1

unit_flags

Битовая маска UnitFlags (серверные/клиентские флаги юнита). Для комбинирования — суммирование (или OR). Полный список битов соответствует перечислениям UNIT_FLAG в исходниках TrinityCore.

Пример: 0

unit_flags2

Битовая маска UnitFlags2. Полный список битов соответствует перечислениям UNIT_FLAG2 в исходниках TrinityCore.

Пример: 0

unit_flags3

Битовая маска UnitFlags3. Полный список битов соответствует перечислениям UNIT_FLAG3 в исходниках TrinityCore.

Пример: 0

family

ID семейства существа (обычно актуально для приручаемых питомцев). Как правило соответствует клиентскому справочнику CreatureFamily (DB2/DBC).

Value Описание
0 Нет семейства
>0 Семейство (например: Wolf, Cat и т. п. — зависит от клиента)

Пример: 1

trainer_class

Если NPC является классовым тренером, задаёт класс, которому он обучает.

Value Класс
0 Не задано / не классовый тренер
1 Warrior
2 Paladin
3 Hunter
4 Rogue
5 Priest
6 Death Knight
7 Shaman
8 Mage
9 Warlock
10 Monk
11 Druid
12 Demon Hunter
13 Evoker

Пример: 2

type

Тип существа (CreatureType).

ID Name
0 None
1 Beast
2 Dragonkin
3 Demon
4 Elemental
5 Giant
6 Undead
7 Humanoid
8 Critter
9 Mechanical
10 Not specified
11 Totem
12 Non-Combat Pet
13 Gas Cloud
14 Wild Pet
15 Aberration

Пример: 7

VehicleId

ID vehicle-набора. Определяет поведение транспорта: как «сидит» игрок, какие места/спеллы доступны и т. п. Для использования обычно также требуется запись в npc_spellclick_spells.

Value Описание
0 Не является vehicle/транспортом
>0 VehicleId (client data / Vehicle.db2)

Пример: 292

AIName

Строковый выбор базового ИИ (может быть переопределён полем ScriptName, если оно задано).

Value Описание
NullAI Пустой ИИ, ничего не делает
AggressorAI Атакует при входе в радиус агро
ReactorAI Атакует только если его атаковали/заагрили
GuardAI Поведение стражника
PetAI Поведение питомца
TotemAI Тотем: кастует Spell (Index 1), иначе как NullAI
SmartAI Использует SmartAI

Пример: "SmartAI"

MovementType

Тип движения по умолчанию.

Value Описание
0 Idle — стоит на месте
1 Random — случайное перемещение в радиусе spawndist
2 Waypoint — движение по путевым точкам

Пример: 2

ExperienceModifier

Множитель опыта за убийство (прямо умножает выдаваемый опыт).

Пример: 1

RacialLeader

Флаг «расовый лидер». Убийство таких NPC обычно даёт дополнительную честь.

Value Описание
0 Нет
1 Да, расовый лидер

Пример: 1

movementId

Служебное поле, которое передаётся клиенту. В публичных описаниях TrinityCore обычно отмечается как «неизвестное назначение».

Пример: 0

WidgetSetID

ID набора UI-виджетов (Widget Set) для существа (клиентские данные). Если не используется — 0.

Пример: 0

WidgetSetUnitConditionID

ID условия (UnitCondition) для применения WidgetSetID (клиентские данные). Если не используется — 0.

Пример: 0

RegenHealth

Управляет регенерацией здоровья вне боя.

Value Описание
0 Не регенерирует здоровье вне боя
1 Регенерирует здоровье вне боя

Пример: 1

CreatureImmunitiesId

ID набора иммунитетов существа. Обычно ссылается на creature_immunitiesCreatureImmunitiesId.

Пример: 0

flags_extra

Дополнительные флаги (битовая маска), которые не берутся из сниффов напрямую и используются ядром.

Decimal Hex Name Описание
1 0x00000001 CREATURE_FLAG_EXTRA_INSTANCE_BIND Убийство биндит инстанс на убийцу и его группу
2 0x00000002 CREATURE_FLAG_EXTRA_CIVILIAN Не агрится (игнорирует враждебность по фракциям/репутации)
4 0x00000004 CREATURE_FLAG_EXTRA_NO_PARRY Не парирует
8 0x00000008 CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN Парирование не ускоряет контратаку
16 0x00000010 CREATURE_FLAG_EXTRA_NO_BLOCK Не блокирует
32 0x00000020 CREATURE_FLAG_EXTRA_NO_CRUSH Не наносит crush-атаки
64 0x00000040 CREATURE_FLAG_EXTRA_NO_XP_AT_KILL За убийство не даётся опыт
128 0x00000080 CREATURE_FLAG_EXTRA_TRIGGER Trigger-NPC (обычно невидим игрокам)
256 0x00000100 CREATURE_FLAG_EXTRA_NO_TAUNT Иммунитет к taunt-эффектам
512 0x00000200 CREATURE_FLAG_EXTRA_UNUSED_9 Не используется/резерв
1024 0x00000400 CREATURE_FLAG_EXTRA_GHOST_VISIBILITY Видим только мёртвым игрокам
2048 0x00000800 CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK Использует оффхенд-атаки
4096 0x00001000 CREATURE_FLAG_EXTRA_NO_SELL_VENDOR Нельзя продавать предметы этому торговцу
16384 0x00004000 CREATURE_FLAG_EXTRA_WORLDEVENT Пользовательский флаг для world events
32768 0x00008000 CREATURE_FLAG_EXTRA_GUARD Стражник (игнорирует feign death и vanish)
131072 0x00020000 CREATURE_FLAG_EXTRA_NO_CRIT Не наносит критические удары
262144 0x00040000 CREATURE_FLAG_EXTRA_NO_SKILLGAIN Не повышает weapon skills
524288 0x00080000 CREATURE_FLAG_EXTRA_TAUNT_DIMINISH Taunt подвержен diminishing returns
1048576 0x00100000 CREATURE_FLAG_EXTRA_ALL_DIMINISH Подвержен всем diminishing returns
2097152 0x00200000 CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ Кредит засчитывается игроку даже если NPC помогали (при наличии тега)
268435456 0x10000000 CREATURE_FLAG_EXTRA_DUNGEON_BOSS Dungeon boss (обычно выставляется ядром во время работы; задавать в БД нельзя)
536870912 0x20000000 CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING Игнорирует pathfinding (как отключение mmaps только для одного моба)
1073741824 0x40000000 CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK Иммунитет ко всем knockback-эффектам

Пример: 0

ScriptName

Имя привязанного серверного скрипта (C++/script engine). Если задано, может переопределять AIName.

Пример: "npc_custom_guard"

StringId

Дополнительный строковый идентификатор (используется выборочно; может быть NULL).

Пример: NULL

VerifiedBuild

Служебное поле TrinityDB Team: отметка, из какого client build подтверждены данные.

Value Описание
0 Не проверено/не распарсено
>0 Распарсено из WDB указанного build клиента
-1 Заглушка до появления корректных данных
-(Client Build) Распарсено из WDB указанного build и затем вручную правилось

Пример: 0