📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| ID | int UNSIGNED | 0 | 任务ID,对应quest_template.ID (主键) |
| Emote1 | smallint UNSIGNED | 0 | 表情动作1,对应Emotes.dbc |
| Emote2 | smallint UNSIGNED | 0 | 表情动作2,对应Emotes.dbc |
| Emote3 | smallint UNSIGNED | 0 | 表情动作3,对应Emotes.dbc |
| Emote4 | smallint UNSIGNED | 0 | 表情动作4,对应Emotes.dbc |
| EmoteDelay1 | int UNSIGNED | 0 | 表情延迟1(毫秒) |
| EmoteDelay2 | int UNSIGNED | 0 | 表情延迟2(毫秒) |
| EmoteDelay3 | int UNSIGNED | 0 | 表情延迟3(毫秒) |
| EmoteDelay4 | int UNSIGNED | 0 | 表情延迟4(毫秒) |
| RewardText | text | NULL | 任务完成时的对话文本 |
| VerifiedBuild | int | NULL | 验证版本号 |
🔑 核心字段详解
🆔 ID - 任务ID
详细说明:任务唯一ID,对应quest_template.ID。
- 主键,唯一标识
- 必须与quest_template中的ID匹配
- 每个任务最多一条记录
🎭 Emote1-4 - 表情动作
详细说明:NPC在任务完成界面播放的表情动作。
取值范围:对应Emotes.dbc
- 对应Emotes.dbc中的表情ID
- 最多支持4个表情动作
- 按顺序依次播放
- 常见表情:1=说话, 2=问候, 3=挥手, 6=点头, 25=欢呼
⏱️ EmoteDelay1-4 - 表情延迟
详细说明:表情动作的延迟时间(毫秒)。
- 单位:毫秒
- 控制表情播放的时间间隔
- 0表示立即播放
📝 RewardText - 奖励文本
详细说明:任务完成时NPC显示的对话文本。
- 显示在任务完成界面
- 用于不需要物品交付的任务
- 可以是职业任务、可重复任务或物品找回任务
🔢 VerifiedBuild - 验证版本
详细说明:游戏客户端版本号。
- 0: 未解析
- 正数: 已从WDB文件解析
- -1: 占位符
- 负数: 已解析但手动编辑
💡 实际案例
任务 Quest ID 747 - 单一表情示例
NPC在任务完成界面播放说话表情(Emote1=1)
-- Emote1=1(说话), EmoteDelay1=0(立即播放)
DELETE FROM quest_offer_reward WHERE ID = 747;
INSERT INTO quest_offer_reward VALUES
(747,1,0,0,0,0,0,0,0,'Well done! Your skills are impressive.',0);任务 Quest ID 15 - 表情序列示例
NPC依次播放说话→问候→欢呼表情
-- Emote1=1(说话), Emote2=2(问候), Emote3=25(欢呼), 延迟分别为0ms, 1000ms, 2000ms
DELETE FROM quest_offer_reward WHERE ID = 15;
INSERT INTO quest_offer_reward VALUES
(15,1,0,2,1000,25,2000,0,0,'Excellent work, $n! You have proven yourself a true hero.',0);职业 Quest ID 1598 - 术士职业任务
术士职业任务完成时的表情和文本
-- Emote1=6(点头), EmoteDelay1=0(立即播放)
DELETE FROM quest_offer_reward WHERE ID = 1598;
INSERT INTO quest_offer_reward VALUES
(1598,6,0,0,0,0,0,0,0,'Your dedication to the dark arts is commendable.',0);任务 Quest ID 2 - 复杂表情序列
NPC依次播放说话→问候→点头→欢呼表情
-- Emote1=1(说话), Emote2=2(问候), Emote3=6(点头), Emote4=25(欢呼), 延迟分别为0ms, 500ms, 1000ms, 1500ms
DELETE FROM quest_offer_reward WHERE ID = 2;
INSERT INTO quest_offer_reward VALUES
(2,1,0,2,500,6,1000,25,1500,'Most impressive, $n! Not many could have obtained the claw of Sharptalon! Your hunt in Ashenvale is going well!',0);⚡ 快速参考
表情字段
| Emote1 | 表情1 |
| Emote2 | 表情2 |
| Emote3 | 表情3 |
| Emote4 | 表情4 |
延迟字段
| EmoteDelay1 | 延迟(毫秒) |
| EmoteDelay2 | 延迟(毫秒) |
| EmoteDelay3 | 延迟(毫秒) |
| EmoteDelay4 | 延迟(毫秒) |
文本字段
| RewardText | 奖励文本 |
常用表情
| 1 | 说话 |
| 2 | 问候 |
| 3 | 挥手 |
| 6 | 点头 |
| 25 | 欢呼 |
🔗 相关表格
- quest_template - 任务模板表
- quest_details - 任务详情表
- quest_request_items - 任务请求物品表
- quest_offer_reward_locale - 任务奖励提供本地化表
❓ 常见问题
Q1: quest_offer_reward的作用?
定义任务完成时NPC的表情动作和对话文本,用于不需要物品交付的任务完成界面。
Q2: Emote和EmoteDelay的关系?
Emote定义表情动作,EmoteDelay定义表情延迟(毫秒),NPC按顺序依次播放表情。
Q3: quest_offer_reward和quest_request_items的区别?
quest_offer_reward用于不需要物品交付的任务,quest_request_items用于需要物品交付的任务。
Q4: RewardText显示在哪里?
显示在任务完成界面的对话窗口中,为玩家提供任务完成的对话文本。