📖 表说明
法术DBC表是一个服务器端的表,用于存储和修改客户端DBC文件中的法术数据。这个表允许开发者修改或创建法术,而无需修改客户端文件。当服务器启动时,这个表中的数据会覆盖或补充客户端的Spell.dbc文件中的数据。
数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写。
官方文档: AzerothCore Wiki - spell_dbc
注意: 此表包含超过230个字段,以下为紧凑视图,展示最核心的关键字段。完整字段列表请参考数据库DDL结构。每个法术最多有3个效果(Effect_1、Effect_2、Effect_3)。
📊 关键字段列表
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| 🔰 基本信息 | ||
| ID | int | 法术ID (主键) |
| Category | int UNSIGNED | 法术类别 |
| DispelType | int UNSIGNED | 驱散类型 (0=无, 1=魔法, 2=诅咒, 3=疾病, 4=中毒, 5=潜行) |
| Mechanic | int UNSIGNED | 机制类型 (昏迷、定身、沉默等) |
| SchoolMask | int UNSIGNED | 法术系掩码 (1=物理, 2=神圣, 4=火焰, 8=自然, 16=冰霜, 32=暗影, 64=奥术) |
| SpellIconID | int UNSIGNED | 法术图标ID |
| ActiveIconID | int UNSIGNED | 激活时显示的图标ID |
| ⚙️ 属性标志 (Attributes) | ||
| Attributes | int UNSIGNED | 法术属性标志 (基础属性,如被动、隐藏等) |
| AttributesEx | int UNSIGNED | 扩展属性标志 (如可双持施法、不可反射等) |
| AttributesEx2 | int UNSIGNED | 扩展属性标志2 (如无法力消耗、仅限户外等) |
| AttributesEx3 | int UNSIGNED | 扩展属性标志3 (如不可被驱散、死后保留等) |
| AttributesEx4 | int UNSIGNED | 扩展属性标志4 (如无视免疫、战斗中不可使用等) |
| AttributesEx5 | int UNSIGNED | 扩展属性标志5 (如可对载具使用、无视视野等) |
| AttributesEx6 | int UNSIGNED | 扩展属性标志6 (如无需弹药、不触发GCD等) |
| AttributesEx7 | int UNSIGNED | 扩展属性标志7 (如可被反射、可被偷取等) |
| ⏱️ 施法相关 | ||
| CastingTimeIndex | int UNSIGNED | 施法时间索引 |
| DurationIndex | int UNSIGNED | 持续时间索引 |
| RangeIndex | int UNSIGNED | 施法范围索引 |
| Speed | float | 法术飞行速度 |
| RecoveryTime | int UNSIGNED | 公共冷却时间 (毫秒) |
| CategoryRecoveryTime | int UNSIGNED | 同类法术冷却时间 (毫秒) |
| 💰 消耗相关 | ||
| PowerType | int | 能量类型 (0=法力, 1=怒气, 2=集中值, 3=能量, 6=符文能量) |
| ManaCost | int UNSIGNED | 法力消耗 (基础值) |
| ManaCostPct | int UNSIGNED | 法力消耗百分比 (%基础法力) |
| RuneCostID | int UNSIGNED | 符文消耗ID (死亡骑士) |
| 📈 等级相关 | ||
| BaseLevel | int UNSIGNED | 基础等级 (法术学习等级) |
| MaxLevel | int UNSIGNED | 最大有效等级 |
| SpellLevel | int UNSIGNED | 法术等级 (用于计算抵抗等) |
| MaxTargetLevel | int UNSIGNED | 最大目标等级 |
| 🎯 目标相关 | ||
| Targets | int UNSIGNED | 目标类型标志 |
| TargetCreatureType | int UNSIGNED | 目标生物类型掩码 |
| MaxTargets | int UNSIGNED | 最大目标数量 |
| ⚡ 法术效果 (共3组效果槽) | ||
| Effect_1 / Effect_2 / Effect_3 | int UNSIGNED | 效果类型 (伤害、治疗、召唤等) |
| EffectBasePoints_1 / EffectBasePoints_2 / EffectBasePoints_3 | int | 效果基础点数 |
| EffectDieSides_1 / EffectDieSides_2 / EffectDieSides_3 | int | 效果随机骰面数 |
| EffectAura_1 / EffectAura_2 / EffectAura_3 | int UNSIGNED | 光环效果类型 (BUFF/DEBUFF) |
| EffectMechanic_1 / EffectMechanic_2 / EffectMechanic_3 | int UNSIGNED | 效果机制类型 |
| ImplicitTargetA_1 / ImplicitTargetA_2 / ImplicitTargetA_3 | int UNSIGNED | 隐式目标A (主目标) |
| ImplicitTargetB_1 / ImplicitTargetB_2 / ImplicitTargetB_3 | int UNSIGNED | 隐式目标B (副目标) |
| EffectRadiusIndex_1 / EffectRadiusIndex_2 / EffectRadiusIndex_3 | int UNSIGNED | 效果半径索引 |
| EffectMiscValue_1 / EffectMiscValue_2 / EffectMiscValue_3 | int | 效果杂项值 (关联生物/物品ID等) |
| EffectTriggerSpell_1 / EffectTriggerSpell_2 / EffectTriggerSpell_3 | int UNSIGNED | 触发法术ID |
| 🧪 施法材料与图腾 | ||
| Reagent_1 ~ Reagent_8 | int | 施法材料物品ID (最多8个) |
| ReagentCount_1 ~ ReagentCount_8 | int | 施法材料数量 |
| Totem_1 / Totem_2 | int UNSIGNED | 所需图腾物品ID |
| 📝 名称与描述 (中文) | ||
| Name_Lang_zhCN | varchar(100) | 法术名称 (简体中文) |
| NameSubtext_Lang_zhCN | varchar(100) | 法术副标题 (简体中文) |
| Description_Lang_zhCN | text | 法术描述 (简体中文) |
| AuraDescription_Lang_zhCN | varchar(550) | 光环描述 (简体中文) |
| 🔧 其他重要字段 | ||
| SpellVisualID_1 / SpellVisualID_2 | int UNSIGNED | 法术视觉效果ID |
| InterruptFlags | int UNSIGNED | 打断标志 (移动、受伤等) |
| ProcTypeMask | int UNSIGNED | 触发类型掩码 (命中、暴击、被击中、死亡等) |
| ProcChance | int UNSIGNED | 触发几率 |
| ProcCharges | int UNSIGNED | 触发次数 (0=无限触发) |
| SpellClassSet | int UNSIGNED | 法术职业套装 |
| RequiredAreasID | int | 需求区域ID |
| SpellDifficultyID | int 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的一致性
🔗 相关表格
- spell_bonus_data - 法术加成数据表
- spell_threat - 法术仇恨表
- spell_proc - 法术触发表