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);