Serverside spell
Таблица serverside_spell
Таблица serverside_spell из базы данных world хранит server-side описание заклинаний (параметры спелла), которое ядро может использовать для кастомного контента или переопределения параметров спелла по сложности.
Ключ составной: (Id, DifficultyID).
| Field | Type | Attributes | Key | Null | Default | Extra |
|---|---|---|---|---|---|---|
| Id | int | UNSIGNED | PRIMARY | NO | ||
| DifficultyID | int | PRIMARY | NO | 0 | ||
| CategoryId | int | UNSIGNED | NO | 0 | ||
| Dispel | int | UNSIGNED | NO | 0 | ||
| Mechanic | int | UNSIGNED | NO | 0 | ||
| Attributes | int | UNSIGNED | NO | 0 | ||
| AttributesEx | int | UNSIGNED | NO | 0 | ||
| AttributesEx2 | int | UNSIGNED | NO | 0 | ||
| AttributesEx3 | int | UNSIGNED | NO | 0 | ||
| AttributesEx4 | int | UNSIGNED | NO | 0 | ||
| AttributesEx5 | int | UNSIGNED | NO | 0 | ||
| AttributesEx6 | int | UNSIGNED | NO | 0 | ||
| AttributesEx7 | int | UNSIGNED | NO | 0 | ||
| AttributesEx8 | int | UNSIGNED | NO | 0 | ||
| AttributesEx9 | int | UNSIGNED | NO | 0 | ||
| AttributesEx10 | int | UNSIGNED | NO | 0 | ||
| AttributesEx11 | int | UNSIGNED | NO | 0 | ||
| AttributesEx12 | int | UNSIGNED | NO | 0 | ||
| AttributesEx13 | int | UNSIGNED | NO | 0 | ||
| AttributesEx14 | int | UNSIGNED | NO | 0 | ||
| AttributesEx15 | int | UNSIGNED | NO | 0 | ||
| Stances | bigint | UNSIGNED | NO | 0 | ||
| StancesNot | bigint | UNSIGNED | NO | 0 | ||
| Targets | int | UNSIGNED | NO | 0 | ||
| TargetCreatureType | int | UNSIGNED | NO | 0 | ||
| RequiresSpellFocus | int | UNSIGNED | NO | 0 | ||
| FacingCasterFlags | int | UNSIGNED | NO | 0 | ||
| CasterAuraState | int | UNSIGNED | NO | 0 | ||
| TargetAuraState | int | UNSIGNED | NO | 0 | ||
| ExcludeCasterAuraState | int | UNSIGNED | NO | 0 | ||
| ExcludeTargetAuraState | int | UNSIGNED | NO | 0 | ||
| CasterAuraSpell | int | UNSIGNED | NO | 0 | ||
| TargetAuraSpell | int | UNSIGNED | NO | 0 | ||
| ExcludeCasterAuraSpell | int | UNSIGNED | NO | 0 | ||
| ExcludeTargetAuraSpell | int | UNSIGNED | NO | 0 | ||
| CasterAuraType | int | NO | 0 | |||
| TargetAuraType | int | NO | 0 | |||
| ExcludeCasterAuraType | int | NO | 0 | |||
| ExcludeTargetAuraType | int | NO | 0 | |||
| CastingTimeIndex | int | UNSIGNED | NO | 1 | ||
| RecoveryTime | int | UNSIGNED | NO | 0 | ||
| CategoryRecoveryTime | int | UNSIGNED | NO | 0 | ||
| StartRecoveryCategory | int | UNSIGNED | NO | 0 | ||
| StartRecoveryTime | int | UNSIGNED | NO | 0 | ||
| InterruptFlags | int | UNSIGNED | NO | 0 | ||
| AuraInterruptFlags1 | int | UNSIGNED | NO | 0 | ||
| AuraInterruptFlags2 | int | UNSIGNED | NO | 0 | ||
| ChannelInterruptFlags1 | int | UNSIGNED | NO | 0 | ||
| ChannelInterruptFlags2 | int | UNSIGNED | NO | 0 | ||
| ProcFlags | int | UNSIGNED | NO | 0 | ||
| ProcFlags2 | int | UNSIGNED | NO | 0 | ||
| ProcChance | int | UNSIGNED | NO | 0 | ||
| ProcCharges | int | UNSIGNED | NO | 0 | ||
| ProcCooldown | int | UNSIGNED | NO | 0 | ||
| ProcBasePPM | float | NO | 0 | |||
| MaxLevel | int | UNSIGNED | NO | 0 | ||
| BaseLevel | int | UNSIGNED | NO | 0 | ||
| SpellLevel | int | UNSIGNED | NO | 0 | ||
| DurationIndex | int | UNSIGNED | NO | 0 | ||
| RangeIndex | int | UNSIGNED | NO | 1 | ||
| Speed | float | NO | 0 | |||
| LaunchDelay | float | NO | 0 | |||
| StackAmount | int | UNSIGNED | NO | 0 | ||
| EquippedItemClass | int | NO | -1 | |||
| EquippedItemSubClassMask | int | NO | 0 | |||
| EquippedItemInventoryTypeMask | int | NO | 0 | |||
| ContentTuningId | int | UNSIGNED | NO | 0 | ||
| SpellName | varchar(100) | utf8mb4_unicode_ci | YES | NULL | ||
| ConeAngle | float | NO | 0 | |||
| ConeWidth | float | NO | 0 | |||
| MaxTargetLevel | int | UNSIGNED | NO | 0 | ||
| MaxAffectedTargets | int | UNSIGNED | NO | 0 | ||
| SpellFamilyName | int | UNSIGNED | NO | 0 | ||
| SpellFamilyFlags1 | int | UNSIGNED | NO | 0 | ||
| SpellFamilyFlags2 | int | UNSIGNED | NO | 0 | ||
| SpellFamilyFlags3 | int | UNSIGNED | NO | 0 | ||
| SpellFamilyFlags4 | int | UNSIGNED | NO | 0 | ||
| DmgClass | int | UNSIGNED | NO | 0 | ||
| PreventionType | int | UNSIGNED | NO | 0 | ||
| AreaGroupId | int | NO | 0 | |||
| SchoolMask | int | UNSIGNED | NO | 0 | ||
| ChargeCategoryId | int | UNSIGNED | NO | 0 |
Id
ID server-side спелла. Обычно соответствует SpellID, которым оперирует ядро.
Пример: 900000
DifficultyID
DifficultyID (сложность), для которой действует строка. Часто 0 используется как базовый вариант (default). Остальные значения — ID из клиентских данных Difficulty (Difficulty.db2/dbc).
Пример: 0
SpellName
Отображаемое имя спелла (для удобства/отладки). Может быть NULL.
Пример: "Custom Fireball"
CategoryId
Категория спелла (Category). Используется для общих кулдаунов/категорий. Значения — ID категории из клиентских данных.
Пример: 0
Dispel
Тип диспела (Dispel type). Значения берутся из клиентского enum SpellDispelType. Если не используется — 0.
Пример: 0
Mechanic
Механика спелла (Mechanic). Значения — из клиентского enum SpellMechanic. Если не используется — 0.
Пример: 0
Attributes / AttributesEx*
Набор битовых масок атрибутов спелла. Поля используются как флаги, значения суммируются по битам. В клиентской терминологии это семейство SpellAttr0..SpellAttr15.
- Attributes — базовые атрибуты (Attr0).
- AttributesEx — Attr1.
- AttributesEx2 — Attr2.
- AttributesEx3 — Attr3.
- AttributesEx4 — Attr4.
- AttributesEx5 — Attr5.
- AttributesEx6 — Attr6.
- AttributesEx7 — Attr7.
- AttributesEx8 — Attr8.
- AttributesEx9 — Attr9.
- AttributesEx10 — Attr10.
- AttributesEx11 — Attr11.
- AttributesEx12 — Attr12.
- AttributesEx13 — Attr13.
- AttributesEx14 — Attr14.
- AttributesEx15 — Attr15.
Пример: 0
Stances
Маска стоек/форм, в которых спелл разрешён. 0 — без ограничения. (битовая маска).
Пример: 0
StancesNot
Маска стоек/форм, в которых спелл запрещён. 0 — нет запретов. (битовая маска).
Пример: 0
Targets / TargetCreatureType / RequiresSpellFocus / FacingCasterFlags
Поля, связанные с ограничениями на цель и требованиями к касту.
- Targets — маска целей/условий таргетинга (зависит от реализации). Обычно
0— без доп. ограничений. - TargetCreatureType — ограничения по типу существа цели (CreatureType mask/id).
- RequiresSpellFocus — требуемый SpellFocus (ID).
- FacingCasterFlags — требования к направлению/положению относительно кастера (битовая маска).
Пример: 0
Aura requirements (AuraState/AuraSpell/AuraType)
Ограничения на наличие/отсутствие аур у кастера/цели. Используются для условий «можно кастовать только если …».
- CasterAuraState, TargetAuraState — требуемые AuraState (битовая маска).
- ExcludeCasterAuraState, ExcludeTargetAuraState — запрещённые AuraState.
- CasterAuraSpell, TargetAuraSpell — требуемая аура по SpellID.
- ExcludeCasterAuraSpell, ExcludeTargetAuraSpell — запрещённая аура по SpellID.
- CasterAuraType, TargetAuraType — требуемый тип ауры (AuraType).
- ExcludeCasterAuraType, ExcludeTargetAuraType — запрещённый тип ауры.
Пример: 0
CastingTime / Cooldowns
Поля времени каста и перезарядок.
- CastingTimeIndex — индекс времени каста (обычно ID из CastingTime.db2/dbc). По умолчанию
1. - RecoveryTime — личный кулдаун (ms).
- CategoryRecoveryTime — кулдаун категории (ms).
- StartRecoveryCategory — категория «стартового» кулдауна (ID).
- StartRecoveryTime — «стартовый» кулдаун (ms).
Пример: 1500
Interrupt flags
Флаги прерывания каста/ауры/канала (битовые маски).
- InterruptFlags
- AuraInterruptFlags1, AuraInterruptFlags2
- ChannelInterruptFlags1, ChannelInterruptFlags2
Пример: 0
Proc settings
Настройки проков (проц-эффектов).
- ProcFlags, ProcFlags2 — условия срабатывания (битовые маски).
- ProcChance — шанс прока (обычно в процентах, зависит от ядра).
- ProcCharges — сколько зарядов/срабатываний.
- ProcCooldown — кулдаун прока (ms).
- ProcBasePPM — базовый PPM (procs per minute), если используется.
Пример: 15
Levels / Duration / Range
Поля уровней, длительности и дальности.
- MaxLevel — максимальный уровень, на котором спелл актуален.
- BaseLevel — базовый уровень.
- SpellLevel — уровень спелла.
- DurationIndex — индекс длительности (Duration.db2/dbc).
- RangeIndex — индекс дальности (Range.db2/dbc). По умолчанию
1.
Пример: 0
Speed / LaunchDelay
Поля скорости и задержки запуска (актуально для «снарядов»/миссайлов).
- Speed — скорость (float).
- LaunchDelay — задержка запуска (float).
Пример: 20.0
StackAmount
Максимальное количество стаков/наложений, если спелл стакается. 0 — по умолчанию/без явного значения.
Пример: 0
Equipped item requirements
Ограничения по экипировке/типу предмета для применения спелла.
- EquippedItemClass — требуемый класс предмета.
-1— без ограничения. - EquippedItemSubClassMask — маска подклассов (битовая маска).
- EquippedItemInventoryTypeMask — маска типов слота (битовая маска).
Пример: -1
ContentTuningId
ID Content Tuning (скейлинг контента), если используется в вашей ветке. Иначе 0.
Пример: 0
ConeAngle / ConeWidth
Параметры конуса (для конусных спеллов).
Пример: 1.0472
MaxTargetLevel
Максимальный уровень цели, на который спелл может влиять (0 — без ограничения).
Пример: 0
MaxAffectedTargets
Максимальное число поражаемых целей (0 — без лимита/по умолчанию).
Пример: 0
SpellFamilyName / SpellFamilyFlags*
Поля семейства спеллов (используется для классовых/семейных механик). Обычно соответствует данным клиента.
- SpellFamilyName — имя/ID семейства.
- SpellFamilyFlags1 .. SpellFamilyFlags4 — флаги семейства (битовые маски).
Пример: 0
DmgClass / PreventionType / AreaGroupId / SchoolMask / ChargeCategoryId
Прочие боевые/школьные параметры:
- DmgClass — класс урона (depends on core).
- PreventionType — тип предотвращения (depends on core).
- AreaGroupId — AreaGroup ID (группа зон), если применимо.
- SchoolMask — маска школ магии (битовая маска). Часто используют такие биты:
| Bit | School |
|---|---|
| 1 | Physical |
| 2 | Holy |
| 4 | Fire |
| 8 | Nature |
| 16 | Frost |
| 32 | Shadow |
| 64 | Arcane |
- ChargeCategoryId — категория зарядов (charge category), если используется.
Пример: 4