📊 SpellDifficulty.dbc
SpellDifficulty.dbc 定义了副本/团本首领在不同难度下使用的法术变体。控制普通/英雄/10人/25人等难度下法术效果的差异。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 难度配置唯一标识符 |
| 1-4 | SpellID[4] | uint32 | 4个难度等级对应的法术ID |
📌 关键字段详解
ID - 难度配置ID
被 creature_template 的 spell_difficulty_id_1 至 spell_difficulty_id_8 字段引用。每个字段指向一组难度法术。
SpellID[1-4] - 难度法术组
4 个法术 ID 对应不同难度:SpellID[1]=5人普通 / SpellID[2]=5人英雄 / SpellID[3]=10人普通 / SpellID[4]=25人普通。服务端根据副本难度自动选择对应法术。
📊 难度映射
| 索引 | 对应难度 | 说明 |
|---|---|---|
| SpellID[1] | DIFFICULTY_NORMAL | 5人普通模式 |
| SpellID[2] | DIFFICULTY_HEROIC | 5人英雄模式 |
| SpellID[3] | DIFFICULTY_10_N | 10人普通模式 |
| SpellID[4] | DIFFICULTY_25_N | 25人普通模式 |
🔧 使用示例
查询首领难度法术
-- 查询玛里苟斯(28859)在不同难度使用的法术
SELECT ct.entry, ct.name, sd.ID AS DifficultyID,
sd.SpellID_1 AS Normal, sd.SpellID_2 AS Heroic
FROM spell_difficulty sd
JOIN creature_template ct ON ct.spell_difficulty_id_1 = sd.ID
WHERE ct.entry = 28859;
添加新难度配置
-- 创建难度法术组并用 spell_difficulty_id_X 关联到生物模板
INSERT INTO spell_difficulty (ID, SpellID_1, SpellID_2, SpellID_3, SpellID_4)
VALUES (9999, 1001, 1002, 0, 0); -- 仅普通和英雄模式
💡 使用技巧
- 8个槽位:每个生物模板有 8 个 spell_difficulty_id 字段,可配置最多 8 组难度法术。
- 0值处理:SpellID=0 表示该难度不使用此法术。
- WotLK 难度:3.3.5 版本支持普通/英雄/10人/25人四种难度。
- 与非难度法术共存:spell_difficulty 与普通 spell_id 字段可共存,普通字段中的法术不受难度影响。
- 参考链接:AzerothCore Wiki - spell_difficulty