📖 表说明

法术触发事件表定义了法术触发的具体条件和参数。这个表补充了spell_proc表,提供更详细的触发条件控制,包括法术类型、触发标志、触发几率等。

数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写。

官方文档: AzerothCore Wiki - spell_proc

📊 表结构

字段名 数据类型 属性 默认值 描述
entry int 不为空 主键 0 法术ID,对应Spell.dbc
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 触发标志
procEx int UNSIGNED 不为空 0 扩展触发标志
procPhase int UNSIGNED 不为空 0 触发阶段
ppmRate float 不为空 0 每分钟触发次数
CustomChance float 不为空 0 自定义触发几率
Cooldown int UNSIGNED 不为空 0 冷却时间(毫秒)

主键: entry

🔑 核心字段详解

🆔 entry - 法术ID

详细说明:触发法术的ID,对应Spell.dbc文件中的法术记录。 取值范围:对应Spell.dbc中的法术ID
  • 主键字段,标识触发法术
  • 对应Spell.dbc中的法术ID
  • 用于定义法术的触发条件
  • 与spell_proc表配合使用

示例:

  • entry=12345 - 特定触发法术

⚡ procFlags - 触发标志

详细说明:定义法术触发的条件和时机。 取值范围:位掩码值(整数)
  • 定义法术何时触发
  • 例如:攻击时触发、被攻击时触发等
  • 使用位掩码组合多个触发条件
  • 与procEx配合使用

示例:

  • procFlags=0x00000001 - 攻击时触发
  • procFlags=0x00000002 - 被攻击时触发

📊 ppmRate - 每分钟触发次数

详细说明:定义法术每分钟的平均触发次数。 取值范围:浮点数,通常为0-10
  • 定义法术的平均触发频率
  • 值为0表示不使用PPM机制
  • 值为1表示每分钟平均触发1次
  • 用于平衡触发法术的频率

示例:

  • ppmRate=1 - 每分钟平均触发1次
  • ppmRate=3 - 每分钟平均触发3次

其他字段说明

SchoolMask: 法术学派掩码,定义触发法术的学派类型。

SpellFamilyName/Mask: 法术家族相关字段,用于定义法术的家族分类。

procEx: 扩展触发标志,提供更详细的触发条件控制。

CustomChance: 自定义触发几率(百分比),覆盖默认几率。

Cooldown: 触发冷却时间(毫秒),防止连续触发。

💡 实际案例

触发 攻击触发配置

配置法术在攻击时触发

-- 攻击触发配置 DELETE FROM spell_proc_event WHERE entry = 12345; INSERT INTO spell_proc_event VALUES (12345, 0, 0, 0, 0, 0, 1, 0, 0, 1.0, 0, 0);

效果: 法术12345在攻击时触发,每分钟平均触发1次。

🔗 相关表格