📖 表说明

法术仇恨表定义了法术产生的仇恨值修正。仇恨系统是魔兽世界战斗机制的核心,决定了怪物的攻击目标选择。这个表允许服务器管理员精确调整各种法术的仇恨产生,以实现更好的游戏平衡。

数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写,确保字段定义的准确性和权威性。

官方文档: AzerothCore Wiki - spell_threat

📊 表结构

字段名 数据类型 属性 默认值 描述
entry int UNSIGNED 不为空 主键 法术ID,对应Spell.dbc
flatMod int 可为空 NULL 固定仇恨修正值
pctMod float 不为空 1 仇恨百分比修正系数(伤害/治疗的仇恨倍数)
apPctMod float 不为空 0 攻击强度仇恨修正系数

主键: entry

🔑 核心字段详解

🆔 entry - 法术ID

详细说明:需要修正仇恨值的法术ID,对应Spell.dbc文件中的法术记录。 取值范围:对应Spell.dbc中的法术ID
  • 主键字段,标识法术仇恨配置
  • 必须对应Spell.dbc中存在的法术ID
  • 通常是治疗法术、伤害法术或增益法术
  • 用于定义法术的仇恨修正系数

示例:

  • entry=19750 - 快速治疗(牧师治疗法术)
  • entry=133 - 火球术(法师伤害法术)

📊 flatMod - 固定仇恨修正值

详细说明:法术产生的固定仇恨值修正。 取值范围:整数,可为负数
  • 定义法术产生的固定仇恨值
  • 正值表示增加仇恨
  • 负值表示减少仇恨
  • 用于调整特定法术的仇恨产生

示例:

  • flatMod=100 - 增加100点固定仇恨
  • flatMod=-50 - 减少50点固定仇恨

📈 pctMod - 仇恨百分比修正系数

详细说明:法术伤害或治疗产生的仇恨百分比修正系数。 取值范围:通常为0.0-2.0之间的浮点数
  • 定义伤害/治疗转换为仇恨的倍数
  • 默认值1表示标准仇恨(1点伤害=1点仇恨)
  • 治疗法术通常使用较低的系数(0.5)
  • 用于平衡不同法术的仇恨产生

示例:

  • pctMod=1.0 - 标准仇恨(伤害法术)
  • pctMod=0.5 - 低仇恨(治疗法术)
  • pctMod=2.0 - 高仇恨(坦克技能)

其他字段说明

apPctMod: 攻击强度仇恨修正系数,定义攻击强度对仇恨产生的额外影响。主要用于物理技能或混合职业的技能。

💡 实际案例

仇恨 治疗法术低仇恨配置

配置治疗法术产生较低的仇恨值

-- 治疗法术低仇恨配置 DELETE FROM spell_threat WHERE entry = 19750; INSERT INTO spell_threat VALUES (19750, NULL, 0.5, 0);

效果: 快速治疗(spell=19750)产生的仇恨值为治疗量的50%,防止治疗者过早吸引怪物攻击。

仇恨 坦克技能高仇恨配置

配置坦克技能产生更高的仇恨值

-- 坦克技能高仇恨配置 DELETE FROM spell_threat WHERE entry = 12345; INSERT INTO spell_threat VALUES (12345, 100, 2.0, 0);

效果: 坦克技能(spell=12345)产生固定100点仇恨,并且伤害产生的仇恨倍数为2.0,帮助坦克维持仇恨领先。

⚡ 快速参考

仇恨系数类型

法术类型 典型pctMod值 说明
伤害法术 1.0 标准仇恨(1点伤害=1点仇恨)
治疗法术 0.5 低仇恨(1点治疗=0.5点仇恨)
坦克技能 1.5-2.0 高仇恨,帮助坦克建立仇恨领先
减仇恨技能 0.0-0.25 极低仇恨,防止吸引怪物攻击

表关系

🔗 相关表格

❓ 常见问题

Q1: 如何降低治疗法术的仇恨?
设置pctMod字段为较低的值(如0.5)。治疗法术通常使用0.5的系数,意味着1点治疗只产生0.5点仇恨。
Q2: 如何增加坦克技能的仇恨?
设置pctMod字段为较高的值(如1.5或2.0),并设置flatMod字段为正值(如100)。这样技能会产生更高的仇恨值。
Q3: 如何创建减仇恨技能?
设置flatMod字段为负值(如-100),或设置pctMod字段为极低值(如0.0)。这样技能会减少或几乎不产生仇恨。