spell_proc_event - 法术触发事件表

法术触发事件表定义了法术触发(Proc)的详细条件和参数。触发机制是魔兽世界中重要的战斗系统,允许某些法术在特定条件下自动激活,为战斗增加随机性和策略性。

表结构

字段名 类型 描述
entry smallint unsigned 法术ID (主键)
详细说明:指定具有触发机制的法术ID。对应Spell.dbc文件中的法术记录。
适用法术类型:
  • 被动技能 - 天赋技能、装备效果等
  • 光环效果 - 持续性的增益效果
  • 附魔效果 - 武器和装备附魔
  • 套装效果 - 装备套装的特殊效果
SchoolMask tinyint 法术学派掩码
详细说明:指定触发法术的学派类型掩码。只有指定学派的法术才能触发这个效果。
学派掩码值:
  • 1 - 物理
  • 2 - 神圣
  • 4 - 火焰
  • 8 - 自然
  • 16 - 冰霜
  • 32 - 暗影
  • 64 - 奥术
SpellFamilyName smallint unsigned 法术家族名称
详细说明:指定触发法术的家族类型。用于限制只有特定职业的法术才能触发。
常见家族值:
  • 0 - 通用法术
  • 4 - 战士法术
  • 10 - 圣骑士法术
  • 9 - 猎人法术
  • 8 - 盗贼法术
  • 6 - 牧师法术
  • 15 - 死亡骑士法术
  • 11 - 萨满法术
  • 3 - 法师法术
  • 5 - 术士法术
  • 7 - 德鲁伊法术
SpellFamilyMask bigint unsigned 法术家族掩码
详细说明:指定具体的法术掩码,用于精确控制哪些法术可以触发效果。
使用方式:与SpellFamilyName配合使用,进一步细化触发条件
procFlags int unsigned 触发标志
详细说明:指定触发事件的类型标志。决定了在什么情况下会触发效果。
常用标志:
  • 0x00000001 - 受到近战攻击
  • 0x00000002 - 进行近战攻击
  • 0x00000004 - 受到远程攻击
  • 0x00000008 - 进行远程攻击
  • 0x00000010 - 受到法术伤害
  • 0x00000020 - 造成法术伤害
  • 0x00000040 - 受到治疗
  • 0x00000080 - 进行治疗
procEx int unsigned 扩展触发标志
详细说明:扩展的触发条件标志,提供更精确的触发控制。
常用扩展标志:
  • 0x0000001 - 普通命中
  • 0x0000002 - 暴击
  • 0x0000004 - 未命中
  • 0x0000008 - 抵抗
  • 0x0000010 - 闪避
  • 0x0000020 - 招架
  • 0x0000040 - 格挡
ppmRate float 每分钟触发次数
详细说明:指定每分钟的平均触发次数。用于控制触发频率,避免过于频繁或稀少的触发。
设置建议:
  • 1.0-3.0 - 低频率触发
  • 3.0-6.0 - 中等频率触发
  • 6.0-10.0 - 高频率触发
  • 0.0 - 使用其他触发机制
CustomChance float 自定义触发概率
详细说明:指定自定义的触发概率百分比。覆盖默认的触发概率计算。
取值范围:0.0 - 100.0 (百分比)
使用场景:
  • 固定概率 - 需要精确控制触发率的效果
  • 平衡调整 - 微调某些效果的触发频率
  • 特殊机制 - 实现特定的游戏机制
Cooldown int unsigned 触发冷却时间(毫秒)
详细说明:指定触发效果的内置冷却时间,防止过于频繁的触发。
时间设置:
  • 0 - 无冷却时间
  • 1000-5000 - 短冷却(1-5秒)
  • 5000-15000 - 中等冷却(5-15秒)
  • 15000+ - 长冷却(15秒以上)

配置示例

武器附魔触发效果

-- 火焰武器附魔,攻击时有概率触发火焰伤害
INSERT INTO spell_proc_event (entry, SchoolMask, SpellFamilyName, SpellFamilyMask, procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
(13898, 1, 0, 0, 0x00000002, 0x0000001, 6.0, 0.0, 0);

-- 寒冰武器附魔,攻击时有概率减速敌人
INSERT INTO spell_proc_event (entry, SchoolMask, SpellFamilyName, SpellFamilyMask, procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
(13896, 1, 0, 0, 0x00000002, 0x0000001, 3.5, 0.0, 1000);

职业天赋触发效果

-- 法师天赋:法术暴击时有概率回复法力
INSERT INTO spell_proc_event (entry, SchoolMask, SpellFamilyName, SpellFamilyMask, procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
(12536, 126, 3, 0, 0x00000020, 0x0000002, 0.0, 15.0, 5000);

-- 盗贼天赋:攻击时有概率获得连击点
INSERT INTO spell_proc_event (entry, SchoolMask, SpellFamilyName, SpellFamilyMask, procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
(13877, 1, 8, 0, 0x00000002, 0x0000001, 0.0, 20.0, 1000);

查询示例

查看所有触发事件配置

SELECT spe.*, s.SpellName
FROM spell_proc_event spe
LEFT JOIN spell_template s ON spe.entry = s.ID
ORDER BY spe.entry;

查找高触发率的效果

SELECT spe.*, s.SpellName
FROM spell_proc_event spe
LEFT JOIN spell_template s ON spe.entry = s.ID
WHERE spe.ppmRate > 5.0 OR spe.CustomChance > 20.0
ORDER BY spe.ppmRate DESC;

注意事项

⚠️ 重要提醒