📊 QuestXP.dbc
QuestXP.dbc 定义了不同等级角色完成任务获得的经验值系数表。通过等级索引计算任务经验值奖励,即 BaseXP × 系数 = 实际经验值。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 经验值配置唯一标识符 |
| 1-10 | Exp[10] | uint32 | 各等级的经验值系数数组 |
📌 关键字段详解
ID - 经验配置ID
被 quest_template 的 QuestXPValue 字段引用。不同任务(普通、地下城、精英、PVP)使用不同的 XP 表。常见:1=普通、2=地下城、3=世界任务、4=节日、5=PVP。
Exp[1-10] - 等级经验系数
数组索引对应角色等级(index=1对应角色等级1)。值为该等级完成任务获得的经验值基础量。实际经验值 = QuestXPValue × (Exp[level] / 基础值)。
💡 XP计算机制
- 任务定义 QuestLevel(任务等级)和 QuestXPValue(经验系数ID)。
- 系统获取角色当前等级对应的 Exp[等级] 值。
- 实际经验 = Exp[QuestLevel] × 调整系数(考虑任务颜色、等级差等)。
- 灰名任务(等级差>6)经验值大幅衰减甚至为0。
🔧 使用示例
查询等级经验
-- 查询普通类型(ID=1)各级别经验值
SELECT ID, Exp_1, Exp_10, Exp_20, Exp_40, Exp_60, Exp_80
FROM quest_xp
WHERE ID = 1;
修改经验倍率
-- 将所有任务经验提升2倍
UPDATE quest_xp SET Exp_1 = Exp_1 * 2, Exp_10 = Exp_10 * 2; -- 逐字段更新
💡 使用技巧
- 服务器倍率:通过 core 配置文件 Rate.XP.Quest 设定全局任务经验倍率,无需修改 DBC。
- 不同任务类型:副本任务(ID=2)通常经验高于普通任务,PVP任务(ID=5)经验相对较低。
- 经验衰减:角色等级 > 任务等级+5 时,经验开始衰减;灰名任务(>+10)经验为0。
- 参考链接:AzerothCore Wiki - quest_xp