Creature

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

Таблица creature

Таблица creature из базы данных world содержит данные о конкретных спавнах существ (индивидуальные экземпляры в мире). Каждая строка — это один спавн с уникальным GUID, который ссылается на шаблон creature_template через поле id.

Field Type Attributes Key Null Default Extra
guid bigint UNSIGNED PRIMARY NO 0
id int UNSIGNED INDEX NO 0 Creature Identifier
map smallint UNSIGNED INDEX NO 0 Map Identifier
zoneId smallint UNSIGNED NO 0 Zone Identifier
areaId smallint UNSIGNED NO 0 Area Identifier
spawnDifficulties varchar(100) utf8mb4_unicode_ci NO '0'
phaseUseFlags tinyint UNSIGNED NO 0
PhaseId int YES 0
PhaseGroup int YES 0
terrainSwapMap int NO -1
modelid int UNSIGNED NO 0
equipment_id tinyint NO 0
position_x float NO 0
position_y float NO 0
position_z float NO 0
orientation float NO 0
spawntimesecs int UNSIGNED NO 120
wander_distance float NO 0
currentwaypoint int UNSIGNED NO 0
curHealthPct int UNSIGNED NO 100
MovementType tinyint UNSIGNED NO 0
npcflag bigint UNSIGNED YES NULL
unit_flags int UNSIGNED YES NULL
unit_flags2 int UNSIGNED YES NULL
unit_flags3 int UNSIGNED YES NULL
ScriptName varchar(64) utf8mb4_unicode_ci NO
StringId varchar(64) utf8mb4_unicode_ci YES NULL
VerifiedBuild int NO 0

guid

Уникальный GUID спавна. Два разных спавна не могут иметь одинаковый GUID.

В TrinityDB принято выдавать GUID из диапазона «той экспансии, в которой спавн впервые появился на retail». Это организационное правило, помогающее не пересекаться диапазонами.

Экспансия Диапазон GUID (start) Диапазон GUID (end) Поддиапазон для ивентов (start) Поддиапазон для ивентов (end)
Wrath of the Lich King (3.x) 2000000 2989999 2800000 2989999
Cataclysm (4.x) 3000000 3989999 3800000 3989999
Mists of Pandaria (5.x) 4000000 4999999 4800000 4999999
Warlords of Draenor (6.x) 5000000 5999999 5800000 5999999
Legion (7.x) 6000000 6999999 6800000 6999999
Battle for Azeroth (8.x) 7000000 7999999 7800000 7999999
Shadowlands (9.x) 8000000 8999999 8800000 8999999
Dragonflight (10.x) 9000000 9999999 9800000 9999999
The War Within (11.x) 10000000 10999999 10800000 10999999

Пример: 9000123

id

ID существа (Creature entry). Ссылка на creature_templateentry.

Пример: 1976

map

ID карты, на которой расположен спавн. Обычно соответствует клиентским данным (DB2: Map.db2).

Пример: 0

zoneId

ID зоны, в которой расположен спавн. Обычно соответствует клиентским данным (DB2: AreaTable.db2, зона).

Пример: 1519

areaId

ID области (area), в которой расположен спавн. Обычно соответствует клиентским данным (DB2: AreaTable.db2, sub-area).

Пример: 5150

spawnDifficulties

Список сложностей, на которых должен существовать данный спавн. Формат: список ID сложностей, разделённых запятыми.

Пример: "1,2,23"

Возможные значения (Difficulty ID)

Name Value
DIFFICULTY_NONE 0
DIFFICULTY_NORMAL 1
DIFFICULTY_HEROIC 2
DIFFICULTY_10_N 3
DIFFICULTY_25_N 4
DIFFICULTY_10_HC 5
DIFFICULTY_25_HC 6
DIFFICULTY_LFR 7
DIFFICULTY_MYTHIC_KEYSTONE 8
DIFFICULTY_40 9
DIFFICULTY_3_MAN_SCENARIO_HC 11
DIFFICULTY_3_MAN_SCENARIO_N 12
DIFFICULTY_NORMAL_RAID 14
DIFFICULTY_HEROIC_RAID 15
DIFFICULTY_MYTHIC_RAID 16
DIFFICULTY_LFR_NEW 17
DIFFICULTY_EVENT_RAID 18
DIFFICULTY_EVENT_DUNGEON 19
DIFFICULTY_EVENT_SCENARIO 20
DIFFICULTY_MYTHIC 23
DIFFICULTY_TIMEWALKING 24
DIFFICULTY_WORLD_PVP_SCENARIO 25
DIFFICULTY_5_MAN_SCENARIO_N 26
DIFFICULTY_20_MAN_SCENARIO_N 27
DIFFICULTY_PVEVP_SCENARIO 29
DIFFICULTY_EVENT_SCENARIO_6 30
DIFFICULTY_WORLD_PVP_SCENARIO_2 32
DIFFICULTY_TIMEWALKING_RAID 33
DIFFICULTY_PVP 34
DIFFICULTY_NORMAL_ISLAND 38
DIFFICULTY_HEROIC_ISLAND 39
DIFFICULTY_MYTHIC_ISLAND 40
DIFFICULTY_PVP_ISLAND 45
DIFFICULTY_NORMAL_WARFRONT 147
DIFFICULTY_HEROIC_WARFRONT 149
DIFFICULTY_LFR_15TH_ANNIVERSARY 151
DIFFICULTY_VISIONS_OF_NZOTH 152
DIFFICULTY_TEEMING_ISLAND 153

phaseUseFlags

Флаги применения фазирования (битовая маска) для полей PhaseId и PhaseGroup.

Name Value (hex) Описание
PHASE_USE_FLAGS_NONE 0x0 Обычное поведение (как задано PhaseId/PhaseGroup)
PHASE_USE_FLAGS_ALWAYS_VISIBLE 0x1 Всегда видим (игнорирует фазирование)
PHASE_USE_FLAGS_INVERSE 0x2 Инвертировать условие фазирования

Пример: 0

PhaseId

Фаза, в которой находится спавн. Ссылка на клиентские данные (DB2: Phase.db2).

Value Описание
0 Фаза не задана (обычное поведение)
>0 ID фазы (Phase.db2)

Пример: 1234

PhaseGroup

Группа фаз, в которой находится спавн. Группа задаёт «набор фаз одновременно». Ссылка на клиентские данные (DB2: PhaseGroup.db2).

Value Описание
0 Группа фаз не задана
>0 ID группы фаз (PhaseGroup.db2)

Пример: 55

terrainSwapMap

ID «terrain swap» (переключение террейна/варианта карты). Обычно соответствует клиентским данным (DB2: TerrainSwapMap.db2).

Value Описание
-1 Не используется / без terrain swap
0..N ID terrain swap (TerrainSwapMap.db2)

Пример: -1

modelid

Переопределение модели (DisplayID) для конкретного спавна.

Value Описание
0 Модель выбирается ядром из набора моделей, заданных в creature_template (случайная/подходящая)
>0 Явный DisplayID (как правило из CreatureDisplayInfo.db2)

Пример: 98765

equipment_id

Набор экипировки спавна из creature_equip_template.

Value Описание
-1 Выбрать случайный набор экипировки из доступных наборов для этого существа
0 Экипировка не задана
1..N ID набора (поле creature_equip_template.id)

Пример: -1

position_x

X-координата точки спавна.

Пример: -8833.12

position_y

Y-координата точки спавна.

Пример: 628.44

position_z

Z-координата точки спавна.

Пример: 94.23

orientation

Ориентация (угол поворота) в радианах. Север = 0.0, юг = pi (≈ 3.14159).

Пример: 1.5708

spawntimesecs

Время респавна в секундах.

Пример: 300

wander_distance

Максимальная дистанция, в пределах которой существо может «гулять» относительно точки спавна. Также влияет на то, насколько далеко существо может уходить от точки спавна при MovementType = 1.

Пример: 10

currentwaypoint

Текущая точка пути (waypoint), если существо использует движение по маршруту (waypoints). Используется как «с какой точки продолжать».

Пример: 0

curHealthPct

Процент здоровья, с которым существо появляется при спавне (1–100).

Value Описание
1..100 Процент здоровья при появлении

Пример: 100

MovementType

Тип движения спавна. Значение из спавна переопределяет значение из creature_template.

Value Описание
0 Idle — стоит на месте
1 Random — случайное перемещение в радиусе wander_distance
2 Waypoint — движение по маршруту (waypoint)

Пример: 2

npcflag

Переопределение флагов NPC (npcflag) для конкретного спавна. Если значение NULL, используется npcflag из creature_template. Если задано — значение спавна перекрывает шаблон.

Пример: 1

unit_flags

Переопределение unit_flags для конкретного спавна. Если значение NULL, используется unit_flags из creature_template.

Это битовая маска; полный список флагов находится в исходниках TrinityCore (UnitDefines.h).

Пример: 0

unit_flags2

Переопределение unit_flags2 для конкретного спавна. Если значение NULL, используется unit_flags2 из creature_template.

Это битовая маска; полный список флагов находится в исходниках TrinityCore (UnitDefines.h).

Пример: NULL

unit_flags3

Переопределение unit_flags3 для конкретного спавна. Если значение NULL, используется unit_flags3 из creature_template.

Это битовая маска; полный список флагов находится в исходниках TrinityCore (UnitDefines.h).

Пример: NULL

ScriptName

Имя C++-скрипта, который использует данный спавн (если нужно). Привязывает запись БД к коду ядра.

Пример: npc_my_custom_ai

StringId

Строковый идентификатор спавна (string id). Используется ядром как «именованный идентификатор» для ссылок на конкретный спавн в логике/скриптах/условиях. Если NULL, строковый идентификатор не задан.

Пример: "stormwind_guard_gate_01"

VerifiedBuild

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

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

Пример: 0