spell_proc表是AzerothCore中定义法术触发机制的核心表格。它控制着法术在特定条件下自动触发的概率、冷却时间、触发条件等参数,是实现被动技能、装备特效和各种触发效果的基础系统。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
SpellId | INT | 0 | 法术ID |
SchoolMask | TINYINT | 0 | 学派掩码 |
SpellFamilyName | SMALLINT UNSIGNED | 0 | 法术家族名称 |
SpellFamilyMask0 | INT UNSIGNED | 0 | 法术家族掩码0 |
SpellFamilyMask1 | INT UNSIGNED | 0 | 法术家族掩码1 |
SpellFamilyMask2 | INT UNSIGNED | 0 | 法术家族掩码2 |
ProcFlags | INT UNSIGNED | 0 | 触发标志 |
SpellTypeMask | INT UNSIGNED | 0 | 法术类型掩码 |
SpellPhaseMask | INT UNSIGNED | 0 | 法术阶段掩码 |
HitMask | INT UNSIGNED | 0 | 命中掩码 |
AttributesMask | INT UNSIGNED | 0 | 属性掩码 |
ProcsPerMinute | FLOAT | 0 | 每分钟触发次数 |
Chance | FLOAT | 0 | 触发概率 |
Cooldown | INT UNSIGNED | 0 | 冷却时间(毫秒) |
Charges | TINYINT UNSIGNED | 0 | 充能次数 |
要设置触发机制的法术ID。这个法术通常是被动技能、光环效果或装备特效。
限制触发法术的学派类型:
定义触发的具体条件,常用标志:
两种触发概率机制:
SELECT SpellId, Chance, ProcsPerMinute, Cooldown, ProcFlags
FROM spell_proc
WHERE SpellId = 12345;
INSERT INTO spell_proc (SpellId, ProcFlags, Chance, Cooldown)
VALUES (12345, 0x4, 15.0, 45000);