Serverside spell

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

Таблица 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.

Пример: 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)

Ограничения на наличие/отсутствие аур у кастера/цели. Используются для условий «можно кастовать только если …».

Пример: 0

CastingTime / Cooldowns

Поля времени каста и перезарядок.

Пример: 1500

Interrupt flags

Флаги прерывания каста/ауры/канала (битовые маски).

Пример: 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

Ограничения по экипировке/типу предмета для применения спелла.

Пример: -1

ContentTuningId

ID Content Tuning (скейлинг контента), если используется в вашей ветке. Иначе 0.

Пример: 0

ConeAngle / ConeWidth

Параметры конуса (для конусных спеллов).

  • ConeAngle — угол конуса (float).
  • ConeWidth — ширина конуса (float).

Пример: 1.0472

MaxTargetLevel

Максимальный уровень цели, на который спелл может влиять (0 — без ограничения).

Пример: 0

MaxAffectedTargets

Максимальное число поражаемых целей (0 — без лимита/по умолчанию).

Пример: 0

SpellFamilyName / SpellFamilyFlags*

Поля семейства спеллов (используется для классовых/семейных механик). Обычно соответствует данным клиента.

Пример: 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