spell_bonus_data表

概述

spell_bonus_data表是AzerothCore中定义法术伤害和治疗加成系数的重要表格。它存储了特定法术从法术强度属性中获得额外伤害或治疗效果的计算系数,是法术效果计算的核心数据表。

表格作用

表格结构

字段名 数据类型 默认值 说明
entry INT UNSIGNED 0 法术ID
详细说明:法术的唯一标识符,这是主键。对应Spell.dbc中的法术ID。
取值范围:1 - 999999 (根据客户端版本而定)
常见法术:
  • 火球术:133, 143, 145, 3140, 8400, 8401, 8402, 10148, 10149, 10150, 10151, 25306
  • 治疗术:2054, 2055, 6063, 6064, 6065, 6066, 10963, 10964, 10965, 25314
  • 闪电箭:403, 529, 548, 915, 943, 6041, 10391, 10392, 15207, 15208, 25448
direct_bonus FLOAT 0 直接伤害/治疗系数
详细说明:法术直接伤害或治疗效果从法术强度获得的加成系数。
计算公式:最终伤害/治疗 = 基础值 + (法术强度 × direct_bonus)
系数范围:
  • 0.0 - 1.0:正常范围,大多数法术在此范围内
  • 1.0+:高系数法术,通常是高等级或长施法时间法术
  • 负值:特殊情况,极少使用

典型系数:
  • 即时法术:0.1 - 0.4
  • 短施法法术:0.4 - 0.7
  • 长施法法术:0.7 - 1.0
  • 引导法术:根据持续时间调整
dot_bonus FLOAT 0 持续伤害/治疗系数
详细说明:法术持续伤害(DoT)或持续治疗(HoT)效果从法术强度获得的加成系数。
计算公式:每跳伤害/治疗 = 基础值 + (法术强度 × dot_bonus ÷ 跳数)
DoT/HoT特点:
  • 系数通常比直接效果低
  • 总系数分摊到所有跳数上
  • 持续时间越长,单跳系数越低

常见DoT/HoT法术:
  • 腐蚀术:术士的持续伤害法术
  • 回春术:德鲁伊的持续治疗法术
  • 烈焰冲击:萨满的持续伤害法术
ap_bonus FLOAT 0 攻击强度系数
详细说明:法术从攻击强度属性获得的加成系数。主要用于物理伤害法术或混合伤害法术。
计算公式:额外伤害 = 攻击强度 × ap_bonus
适用法术:
  • 圣骑士:神圣风暴、奉献等
  • 萨满:风暴打击、熔岩鞭笞等
  • 德鲁伊:野性形态下的法术
  • 猎人:奥术射击、多重射击等

系数特点:
  • 通常比法术强度系数低
  • 主要用于混合职业的法术
  • 平衡物理和法术伤害
ap_dot_bonus FLOAT 0 攻击强度持续效果系数
详细说明:持续效果法术从攻击强度获得的加成系数。
计算公式:每跳伤害 = 基础值 + (攻击强度 × ap_dot_bonus ÷ 跳数)
应用场景:
  • 物理系持续伤害法术
  • 流血效果
  • 毒素效果
comments VARCHAR(255) NULL 备注说明
详细说明:对该法术加成设置的说明和备注信息。
建议内容:
  • 法术名称和等级
  • 设置原因
  • 参考数据来源
  • 特殊说明

使用示例

查看特定法术的加成系数

-- 查看火球术的加成系数
SELECT entry, direct_bonus, dot_bonus, ap_bonus, comments
FROM spell_bonus_data
WHERE entry IN (133, 143, 145, 3140, 8400, 8401, 8402, 10148, 10149, 10150, 10151, 25306)
ORDER BY entry;

添加新法术的加成数据

-- 添加自定义法术的加成系数
INSERT INTO spell_bonus_data (entry, direct_bonus, dot_bonus, ap_bonus, ap_dot_bonus, comments)
VALUES
(999001, 0.8, 0.0, 0.0, 0.0, '自定义火球术 - 高伤害直接法术'),
(999002, 0.2, 0.6, 0.0, 0.0, '自定义腐蚀术 - 持续伤害法术'),
(999003, 0.3, 0.0, 0.4, 0.0, '自定义混合法术 - 法术+物理伤害');

修改现有法术的系数

-- 调整火球术的伤害系数
UPDATE spell_bonus_data
SET direct_bonus = 0.85, comments = '火球术 - 调整后的伤害系数'
WHERE entry = 133;

查找所有DoT法术

-- 查找所有有持续伤害的法术
SELECT entry, direct_bonus, dot_bonus, comments
FROM spell_bonus_data
WHERE dot_bonus > 0
ORDER BY dot_bonus DESC;

系数设计原则

施法时间系数

基础公式:

系数 = 施法时间 ÷ 3.5

等级惩罚

低等级法术惩罚:

低等级法术会有系数惩罚,防止低级法术过于强力

DoT/HoT系数

持续效果系数:

DoT/HoT的总系数通常等于相同施法时间直接法术的系数

常见问题

为什么有些法术没有在这个表中?

只有需要自定义加成系数的法术才会出现在这个表中。大多数法术使用默认的系数计算规则。

如何确定合适的系数?

参考官方数据、施法时间、法术等级、冷却时间等因素。通常需要大量测试来确保平衡性。

修改系数后需要重启服务器吗?

是的,法术加成数据的修改需要重启worldserver才能生效。

相关表格