📊 QuestFactionReward.dbc
QuestFactionReward.dbc 定义了任务完成后给予的阵营声望奖励配置。控制完成特定任务时对哪些阵营增加或减少声望值,对应任务日志中显示的声望奖励。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 阵营奖励配置唯一标识符 |
| 1-10 | QuestRewFactionValue[10] | int32 | 对应阵营的声望变化值 |
| 11-20 | QuestRewFactionOverride[10] | uint32 | 覆盖的声望自定义值 |
📌 关键字段详解
ID - 奖励配置ID
被 quest_template 的 RewardFactionID1 至 RewardFactionID5 字段引用。一个任务最多可设置 5 组阵营声望奖励。
QuestRewFactionValue[1-10] - 声望变化值
任务完成后对各阵营的声望增减值。正值=增加声望、负值=降低声望、0=不变化。数组索引 1-10 分别对应最多10个不同的阵营。
QuestRewFactionOverride[1-10] - 覆盖阵营ID
指定具体影响的阵营ID。每个值对应一个 Faction.dbc 中的 ID。如果为 0,则使用默认关联阵营。
💡 声望奖励机制
- quest_template 通过 RewardFactionID1-5 引用此表配置。
- 同时通过 RewardFactionValue1-5 设置额外倍数系数(通常为 100)。
- 实际声望获得 = QuestRewFactionValue × (RewardFactionValue / 100)。
- 低等级任务完成时,超过等级差会有声望衰减。
🔧 使用示例
查询声望奖励
-- 查询使用了阵营奖励ID=100的所有任务
SELECT q.entry, q.Title, qfr.QuestRewFactionValue_1
FROM quest_template q
JOIN quest_faction_reward qfr ON q.RewardFactionID1 = qfr.ID
WHERE q.RewardFactionID1 = 100;💡 使用技巧
- 5组奖励:每个任务最多5组阵营奖励,每组可影响多个阵营。
- 声望衰减:灰名任务(>任务等级+10)不奖励声望。
- 负声望:设置负值可实现任务完成后降低某阵营声望(较少使用)。
- 参考链接:AzerothCore Wiki - quest_faction_reward