法术仇恨表定义了法术产生的仇恨值修正。仇恨系统是魔兽世界战斗机制的核心,决定了怪物的攻击目标选择。这个表允许服务器管理员精确调整各种法术的仇恨产生,以实现更好的游戏平衡。
字段名 | 类型 | 描述 |
---|---|---|
entry | mediumint unsigned | 法术ID (主键) |
详细说明:指定需要修正仇恨值的法术ID。对应Spell.dbc文件中的法术记录。
适用法术类型:
|
||
Threat | smallint | 固定仇恨值 |
详细说明:指定法术产生的固定仇恨值。这个值会直接添加到法术的基础仇恨计算中。
取值范围:-32768 到 32767 (smallint的范围) 仇恨值设置:
常见设置:
|
||
Multiplier | float | 仇恨倍数 |
详细说明:指定法术仇恨值的倍数修正。这个倍数会应用到法术的基础仇恨计算上。
取值范围:0.0 - 10.0 (建议范围) 倍数设置:
常见应用:
|
||
ap_bonus | float | 攻击强度仇恨加成 |
详细说明:指定基于攻击强度计算的额外仇恨值。用于物理攻击类法术的仇恨计算。
计算公式:额外仇恨 = 攻击强度 × ap_bonus 适用技能:
|
-- 战士嘲讽技能
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(355, 1000, 2.0, 0.0), -- 嘲讽,高固定仇恨+倍数
(7386, 800, 1.8, 0.1), -- 剑刃风暴,高仇恨+攻击强度加成
(23922, 1200, 2.5, 0.0); -- 盾牌猛击,超高仇恨
-- 圣骑士仇恨技能
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(62124, 900, 2.2, 0.08), -- 正义之手,高仇恨
(53595, 1100, 2.0, 0.0); -- 神圣愤怒,固定高仇恨
-- 牧师治疗法术
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(2061, -100, 0.6, 0.0), -- 快速治疗,减少仇恨
(2060, -150, 0.5, 0.0), -- 强效治疗,大幅减少仇恨
(596, -200, 0.4, 0.0), -- 祈祷之术,最大减少仇恨
(34861, -80, 0.7, 0.0); -- 治疗之环,中等减少
-- 圣骑士治疗法术
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(635, -120, 0.6, 0.0), -- 圣光术,减少仇恨
(19750, -90, 0.7, 0.0); -- 神圣之光,中等减少
-- 法师伤害法术
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(133, -50, 0.8, 0.0), -- 火球术,轻微减少仇恨
(116, -30, 0.9, 0.0), -- 寒冰箭,小幅减少仇恨
(44614, -80, 0.7, 0.0); -- 炎爆术,中等减少仇恨
-- 术士伤害法术
INSERT INTO spell_threat (entry, Threat, Multiplier, ap_bonus) VALUES
(686, -40, 0.85, 0.0), -- 暗影箭,轻微减少
(172, -60, 0.75, 0.0), -- 腐蚀术,中等减少
(348, -70, 0.7, 0.0); -- 献祭,较大减少
SELECT st.*, s.SpellName
FROM spell_threat st
LEFT JOIN spell_template s ON st.entry = s.ID
ORDER BY st.Threat DESC;
SELECT st.*, s.SpellName
FROM spell_threat st
LEFT JOIN spell_template s ON st.entry = s.ID
WHERE st.Threat > 500 OR st.Multiplier > 1.5
ORDER BY st.Threat DESC;
SELECT st.*, s.SpellName
FROM spell_threat st
LEFT JOIN spell_template s ON st.entry = s.ID
WHERE st.Threat < 0 OR st.Multiplier < 1.0
ORDER BY st.Multiplier ASC;