Creature immunities
Таблица creature_immunities
Таблица creature_immunities из базы данных world хранит **наборы (presets) иммунитетов** для существ: иммунитеты к школам магии, типам диспела, механикам контроля, а также списки иммунитетов к конкретным **типам эффектов** и **типам аур**. Запись в таблице описывает **один “набор иммунитетов”** с идентификатором ID, который затем может применяться к существам/юнитам ядром или скриптами (в зависимости от конкретной реализации в TrinityCore и используемых данных клиента).
| Field | Type | Attributes | Key | Null | Default | Extra |
|---|---|---|---|---|---|---|
| ID | int | PRIMARY | NO | |||
| SchoolMask | tinyint | NO | 0 | |||
| DispelTypeMask | smallint | NO | 0 | |||
| MechanicsMask | bigint | NO | 0 | |||
| Effects | mediumtext | NO | ||||
| Auras | mediumtext | NO | ||||
| ImmuneAoE | tinyint(1) | NO | 0 | |||
| ImmuneChain | tinyint(1) | NO | 0 | |||
| Comment | mediumtext | NO |
ID
Идентификатор набора иммунитетов. Уникален в рамках таблицы. Используется как ключ для обращения к конкретному набору (например, при назначении иммунитетов скриптами/ядром).
Пример: 1557
SchoolMask
Битовая маска **школ магии**, к которым применяется иммунитет.
| Bit value | School | Комментарий |
|---|---|---|
| 1 | Physical | Физическая “школа” (в контексте SpellSchoolMask) |
| 2 | Holy | Свет |
| 4 | Fire | Огонь |
| 8 | Nature | Природа |
| 16 | Frost | Лёд |
| 32 | Shadow | Тьма |
| 64 | Arcane | Тайная магия |
Значение поля — сумма нужных битов. Например, Fire + Frost = 4 + 16 = 20.
Пример: 20
DispelTypeMask
Битовая маска **типов диспела**, к которым применяется иммунитет (т.е. эффекты с соответствующим DispelType “не снимаются” или “не применяются” — конкретная логика зависит от проверки в ядре).
Важно: список DispelType зависит от клиента/ветки, поэтому ориентироваться следует на перечисление **SpellDispelType** в клиентских данных (DBC/DB2). На практике чаще всего используют базовые категории:
| DispelType (ID) | Тип | Примечание |
|---|---|---|
| 0 | None | Нет типа |
| 1 | Magic | Магия |
| 2 | Curse | Проклятие |
| 3 | Disease | Болезнь |
| 4 | Poison | Яд |
| 5 | Stealth | Скрытность (редко как dispel-тип) |
| 6 | Invisibility | Невидимость (редко как dispel-тип) |
| 7 | All | “Все” (служебно) |
| 9 | Enrage | Исступление (часто используется как отдельный dispel-тип в PvE) |
Как формируется маска: обычно это (1 << DispelTypeID) для каждого типа, затем суммирование. Например, Magic (1) + Curse (2) → (1<<1) + (1<<2) = 2 + 4 = 6.
Пример: 6
MechanicsMask
Битовая маска **механик (Spell Mechanics)**, к которым применяется иммунитет (стан, страх, немота и т.д.). Значение — сумма битов вида (1 << MechanicID), где MechanicID берётся из клиентского перечисления механик (обычно SpellMechanic).
Практический смысл: если механика закладывается в эффект/ауру (например, “stun mechanic”), то при совпадении бита — цель считается иммунной к этой механике.
Пример: 617299839
Effects
Список (строка) иммунитетов к **типам эффектов** (Spell Effect). Ожидаемый формат — **список числовых ID**, разделённых пробелами (на практике встречаются также запятые; для вики фиксируем рекомендуемый вариант — пробелы).
- Каждый ID соответствует значению поля “Effect” в клиентских данных эффекта заклинания (условно: SpellEffect).
- Если иммунитетов по эффектам нет — обычно записывают пустую строку ''' (но поле NOT NULL, поэтому значение должно быть передано при вставке).
Пример: 6 10 27
Auras
Список (строка) иммунитетов к **типам аур** (Spell Aura). Формат аналогичен Effects: список числовых ID, разделённых пробелами.
- Каждый ID соответствует типу ауры (условно: SpellAura / EffectApplyAuraName в SpellEffect).
Пример: 5 12 79
ImmuneAoE
Флаг (0/1). Дополнительный “грубый” иммунитет к **AoE-воздействиям** (area-of-effect). Обычно используется, когда существо должно игнорировать эффекты, распространяющиеся по области (при соответствующей проверке в ядре/скриптах).
| Value | Описание |
|---|---|
| 0 | AoE-иммунитет не включён |
| 1 | AoE-иммунитет включён |
Пример: 1
ImmuneChain
Флаг (0/1). Дополнительный иммунитет к **цепным эффектам** (chain-логика — “скачущие/цепные” заклинания и эффекты, если ядро учитывает этот флаг при обработке).
| Value | Описание |
|---|---|
| 0 | Chain-иммунитет не включён |
| 1 | Chain-иммунитет включён |
Пример: 0
Comment
Текстовый комментарий к набору иммунитетов. Поле NOT NULL', поэтому даже если комментарий не нужен, обычно задают пустую строку '''.
Пример: Boss - control immunities preset