📖 表说明

法术DBC表是一个服务器端的表,用于存储和修改客户端DBC文件中的法术数据。这个表允许开发者修改或创建法术,而无需修改客户端文件。当服务器启动时,这个表中的数据会覆盖或补充客户端的Spell.dbc文件中的数据。

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

官方文档: AzerothCore Wiki - spell_dbc

注意: 此表包含超过230个字段,以下为紧凑视图,展示最核心的关键字段。完整字段列表请参考数据库DDL结构。每个法术最多有3个效果(Effect_1、Effect_2、Effect_3)。

📊 关键字段列表

字段名 数据类型 描述
🔰 基本信息
IDint法术ID (主键)
Categoryint UNSIGNED法术类别
DispelTypeint UNSIGNED驱散类型 (0=无, 1=魔法, 2=诅咒, 3=疾病, 4=中毒, 5=潜行)
Mechanicint UNSIGNED机制类型 (昏迷、定身、沉默等)
SchoolMaskint UNSIGNED法术系掩码 (1=物理, 2=神圣, 4=火焰, 8=自然, 16=冰霜, 32=暗影, 64=奥术)
SpellIconIDint UNSIGNED法术图标ID
ActiveIconIDint UNSIGNED激活时显示的图标ID
⚙️ 属性标志 (Attributes)
Attributesint UNSIGNED法术属性标志 (基础属性,如被动、隐藏等)
AttributesExint UNSIGNED扩展属性标志 (如可双持施法、不可反射等)
AttributesEx2int UNSIGNED扩展属性标志2 (如无法力消耗、仅限户外等)
AttributesEx3int UNSIGNED扩展属性标志3 (如不可被驱散、死后保留等)
AttributesEx4int UNSIGNED扩展属性标志4 (如无视免疫、战斗中不可使用等)
AttributesEx5int UNSIGNED扩展属性标志5 (如可对载具使用、无视视野等)
AttributesEx6int UNSIGNED扩展属性标志6 (如无需弹药、不触发GCD等)
AttributesEx7int UNSIGNED扩展属性标志7 (如可被反射、可被偷取等)
⏱️ 施法相关
CastingTimeIndexint UNSIGNED施法时间索引
DurationIndexint UNSIGNED持续时间索引
RangeIndexint UNSIGNED施法范围索引
Speedfloat法术飞行速度
RecoveryTimeint UNSIGNED公共冷却时间 (毫秒)
CategoryRecoveryTimeint UNSIGNED同类法术冷却时间 (毫秒)
💰 消耗相关
PowerTypeint能量类型 (0=法力, 1=怒气, 2=集中值, 3=能量, 6=符文能量)
ManaCostint UNSIGNED法力消耗 (基础值)
ManaCostPctint UNSIGNED法力消耗百分比 (%基础法力)
RuneCostIDint UNSIGNED符文消耗ID (死亡骑士)
📈 等级相关
BaseLevelint UNSIGNED基础等级 (法术学习等级)
MaxLevelint UNSIGNED最大有效等级
SpellLevelint UNSIGNED法术等级 (用于计算抵抗等)
MaxTargetLevelint UNSIGNED最大目标等级
🎯 目标相关
Targetsint UNSIGNED目标类型标志
TargetCreatureTypeint UNSIGNED目标生物类型掩码
MaxTargetsint UNSIGNED最大目标数量
⚡ 法术效果 (共3组效果槽)
Effect_1 / Effect_2 / Effect_3int UNSIGNED效果类型 (伤害、治疗、召唤等)
EffectBasePoints_1 / EffectBasePoints_2 / EffectBasePoints_3int效果基础点数
EffectDieSides_1 / EffectDieSides_2 / EffectDieSides_3int效果随机骰面数
EffectAura_1 / EffectAura_2 / EffectAura_3int UNSIGNED光环效果类型 (BUFF/DEBUFF)
EffectMechanic_1 / EffectMechanic_2 / EffectMechanic_3int UNSIGNED效果机制类型
ImplicitTargetA_1 / ImplicitTargetA_2 / ImplicitTargetA_3int UNSIGNED隐式目标A (主目标)
ImplicitTargetB_1 / ImplicitTargetB_2 / ImplicitTargetB_3int UNSIGNED隐式目标B (副目标)
EffectRadiusIndex_1 / EffectRadiusIndex_2 / EffectRadiusIndex_3int UNSIGNED效果半径索引
EffectMiscValue_1 / EffectMiscValue_2 / EffectMiscValue_3int效果杂项值 (关联生物/物品ID等)
EffectTriggerSpell_1 / EffectTriggerSpell_2 / EffectTriggerSpell_3int UNSIGNED触发法术ID
🧪 施法材料与图腾
Reagent_1 ~ Reagent_8int施法材料物品ID (最多8个)
ReagentCount_1 ~ ReagentCount_8int施法材料数量
Totem_1 / Totem_2int UNSIGNED所需图腾物品ID
📝 名称与描述 (中文)
Name_Lang_zhCNvarchar(100)法术名称 (简体中文)
NameSubtext_Lang_zhCNvarchar(100)法术副标题 (简体中文)
Description_Lang_zhCNtext法术描述 (简体中文)
AuraDescription_Lang_zhCNvarchar(550)光环描述 (简体中文)
🔧 其他重要字段
SpellVisualID_1 / SpellVisualID_2int UNSIGNED法术视觉效果ID
InterruptFlagsint UNSIGNED打断标志 (移动、受伤等)
ProcTypeMaskint UNSIGNED触发类型掩码 (命中、暴击、被击中、死亡等)
ProcChanceint UNSIGNED触发几率
ProcChargesint UNSIGNED触发次数 (0=无限触发)
SpellClassSetint UNSIGNED法术职业套装
RequiredAreasIDint需求区域ID
SpellDifficultyIDint UNSIGNED法术难度ID

主键: ID

提示: 上表为紧凑视图,完整表包含230+字段。如需完整字段列表,请参考数据库DDL结构:SHOW CREATE TABLE spell_dbc;

🔑 核心字段详解

⚙️ Attributes 属性标志系列

详细说明:Attributes系列共8个字段 (Attributes ~ AttributesEx7),每个字段都是一个32位掩码,用于控制法术的各种行为属性。 每个字段取值范围:0 ~ 4294967295 (32位无符号整数)
  • Attributes - 基础属性:被动(0x40)、隐藏(0x80)、死亡后保留(0x200)等
  • AttributesEx - 扩展属性:可双持施法(0x4)、不可反射(0x200)等
  • AttributesEx2 - 扩展属性2:无法力消耗(0x2)、仅限户外(0x8000)等
  • AttributesEx3 - 扩展属性3:不可被驱散(0x20000)、可无视无敌(0x800)等
  • AttributesEx4 - 扩展属性4:无视免疫(0x4)、战斗中不可使用(0x40)等
  • AttributesEx5 - 扩展属性5:可对载具使用(0x4)、无视视野(0x10)等
  • AttributesEx6 - 扩展属性6:无需弹药(0x2)、不触发GCD(0x100)等
  • AttributesEx7 - 扩展属性7:可被反射(0x20)、可被法术偷取(0x100000)等

使用建议: 属性标志是位掩码,可通过位运算组合多个标志。推荐使用十六进制表示,便于阅读和维护。

⚡ Effect 效果字段系列

详细说明:每个法术最多有3个效果槽 (Effect_1/2/3),每个效果槽由一组关联字段共同定义。
  • Effect_X - 效果类型:2=伤害, 6=光环应用, 24=创建物品, 28=召唤生物, 30=能量回复, 36=学习法术, 77=触发法术等
  • EffectBasePoints_X - 基础点数:效果的基础数值 (伤害量、治疗量等)
  • EffectDieSides_X - 随机骰面:额外随机的范围值 (1=不随机)
  • EffectAura_X - 光环类型:4=缴械, 5=魅惑, 6=恐惧, 12=昏迷, 24=减速, 29=增加属性, 108=百分比回血等
  • EffectMechanic_X - 效果机制:1=魅惑, 5=眩晕, 12=昏迷, 15=缴械, 22=沉默, 27=减速等
  • ImplicitTargetA_X / ImplicitTargetB_X - 隐式目标:1=施法者, 6=目标, 7=目标位置, 22=施法者宠物, 25=目标周围区域, 45=前方锥形等
  • EffectRadiusIndex_X - 半径索引:控制AOE效果的范围大小
  • EffectMiscValue_X - 杂项值:根据效果类型关联不同数据 (如召唤生物ID、创建物品ID等)
  • EffectTriggerSpell_X - 触发法术:当效果触发时施放的法术ID

效果组合示例:寒冰箭 - Effect_1=2(伤害), ImplicitTargetA_1=6(目标), EffectBasePoints_1=200, EffectDieSides_1=100 → 造成200~300点冰霜伤害

🎨 SchoolMask - 法术系掩码

详细说明:定义法术所属的伤害/治疗系别,使用位掩码支持多体系法术。 取值范围:0 ~ 127 (7位有效)
  • 1 (0x01) - 物理 Physical
  • 2 (0x02) - 神圣 Holy
  • 4 (0x04) - 火焰 Fire
  • 8 (0x08) - 自然 Nature
  • 16 (0x10) - 冰霜 Frost
  • 32 (0x20) - 暗影 Shadow
  • 64 (0x40) - 奥术 Arcane
常见组合:
  • 3 (0x03) - 神圣物理 (祝福类技能)
  • 6 (0x06) - 火焰神圣
  • 28 (0x1C) - 冰霜自然 (元素萨满)
  • 96 (0x60) - 暗影奥术
  • 126 (0x7E) - 所有法术系
  • 127 (0x7F) - 所有系+物理 (全系)

🎯 Targets - 目标类型标志

详细说明:定义法术允许选择的目标类型,控制施法时玩家可以点击哪些单位。 位掩码,可组合多个标志
  • 0x00000001 - 自身 (Self)
  • 0x00000002 - 敌方单位 (Unit Enemy)
  • 0x00000004 - 友方单位 (Unit Friendly / Party)
  • 0x00000008 - 敌方玩家 (Player Enemy)
  • 0x00000010 - 友方玩家 (Player Friendly)
  • 0x00000040 - 非PVP标记 (Non-PVP Flag)
  • 0x00000080 - 友方PVP (Friendly PVP)
  • 0x00000100 - 死亡目标 (Corpse)
  • 0x00000200 - 被控制的单位 (Possessed Minion)
  • 0x00000400 - 宠物
  • 0x00000800 - 宠物类单位

常见组合:

  • 伤害法术:Targets=0x02 (仅敌方单位)
  • 治疗法术:Targets=0x14 (友方单位+友方玩家)
  • BUFF法术:Targets=0x01 + 0x04 = 0x05 (自身+友方)
  • 战斗复活:Targets=0x104 (友方玩家+死亡目标)

💡 使用建议

建议:

  • 只修改需要调整的法术,不要复制整个DBC文件
  • 使用DBC编辑器查看原始数据
  • 参考官方Wiki了解字段含义
  • 测试修改后的法术效果
  • Attributes系列标志使用十六进制表示可读性更好
  • Effect效果字段必须按组 (1/2/3) 同步配置,确保参数完整性
  • SchoolMask影响抗性和增伤计算,修改时需注意与Effect_Mechanic的一致性

🔗 相关表格