quest_offer_reward - 任务奖励提供表

任务奖励提供表存储了玩家完成任务并准备获得奖励时NPC显示的文本和表情动作。这个表定义了任务完成界面中显示的感谢文本和相关的表情动作。

表结构

字段名 类型 属性 默认值 描述
ID int(10) unsigned 不为空 主键 0 任务ID,对应quest_template.ID
RewardText text 不为空 任务完成时显示的奖励文本
Emote1 smallint(5) unsigned 不为空 0 第一个表情动作ID
Emote2 smallint(5) unsigned 不为空 0 第二个表情动作ID
Emote3 smallint(5) unsigned 不为空 0 第三个表情动作ID
Emote4 smallint(5) unsigned 不为空 0 第四个表情动作ID
EmoteDelay1 int(10) unsigned 不为空 0 第一个表情动作的延迟时间
EmoteDelay2 int(10) unsigned 不为空 0 第二个表情动作的延迟时间
EmoteDelay3 int(10) unsigned 不为空 0 第三个表情动作的延迟时间
EmoteDelay4 int(10) unsigned 不为空 0 第四个表情动作的延迟时间
VerifiedBuild int(11) 可为空 NULL 验证的客户端版本号

字段详解

ID

任务的唯一标识符,必须对应quest_template表中的ID。每个任务只能有一条对应的奖励文本记录。

示例值: 1, 100, 1001, 25000

RewardText

任务完成时NPC显示的奖励文本,通常包含感谢、祝贺或后续指引的内容。

示例文本:

"干得好,$N!你的勇气和智慧令人敬佩。请接受这些奖励作为对你贡献的认可。"

"太棒了!你完成了一项艰难的任务。这些奖励是你应得的。"

"感谢你的帮助,$N。没有你,我们无法完成这项重要的工作。"

文本变量:

Emote1-4

定义NPC在提供任务奖励时播放的表情动作序列,最多可以设置4个连续的表情动作。

常见表情ID:

EmoteDelay1-4

对应表情动作的延迟时间,以毫秒为单位。控制表情动作播放的时机和节奏。

延迟时间示例:

VerifiedBuild

记录验证此任务奖励文本的客户端版本号。

奖励文本设计原则

情感表达

奖励文本应该表达适当的情感:

任务类型匹配

根据任务类型调整文本风格:

创建示例

英雄任务的奖励文本

INSERT INTO quest_offer_reward (ID, RewardText, Emote1, Emote2, Emote3, Emote4, 
                                       EmoteDelay1, EmoteDelay2, EmoteDelay3, EmoteDelay4, VerifiedBuild)
VALUES (1001, '你是真正的英雄,$N!你的勇气拯救了我们所有人。请接受这些奖励,它们远不足以表达我们的感激之情。', 
        21, 70, 3, 25, 0, 2000, 4000, 6000, 12340);

日常任务的奖励文本

INSERT INTO quest_offer_reward (ID, RewardText, Emote1, Emote2, EmoteDelay1, EmoteDelay2, VerifiedBuild)
VALUES (1002, '谢谢你的帮助,$N!这些物品对我们很有用。这是你应得的报酬。', 
        1, 25, 0, 2000, 12340);

紧急任务的奖励文本

INSERT INTO quest_offer_reward (ID, RewardText, Emote1, Emote2, Emote3, EmoteDelay1, EmoteDelay2, EmoteDelay3, VerifiedBuild)
VALUES (1003, '太好了!你及时完成了任务,$N。危机已经解除,这都要感谢你的迅速行动。', 
        6, 11, 25, 0, 1500, 3000, 12340);

查询示例

查找有奖励文本的任务

SELECT qor.ID, qt.LogTitle, qor.RewardText
FROM quest_offer_reward qor
JOIN quest_template qt ON qor.ID = qt.ID
ORDER BY qor.ID;

查找包含特定关键词的奖励文本

SELECT qor.ID, qt.LogTitle, qor.RewardText
FROM quest_offer_reward qor
JOIN quest_template qt ON qor.ID = qt.ID
WHERE qor.RewardText LIKE '%英雄%'
ORDER BY qor.ID;

统计表情使用情况

SELECT emote_id, COUNT(*) as usage_count
FROM (
    SELECT Emote1 as emote_id FROM quest_offer_reward WHERE Emote1 > 0
    UNION ALL
    SELECT Emote2 as emote_id FROM quest_offer_reward WHERE Emote2 > 0
    UNION ALL
    SELECT Emote3 as emote_id FROM quest_offer_reward WHERE Emote3 > 0
    UNION ALL
    SELECT Emote4 as emote_id FROM quest_offer_reward WHERE Emote4 > 0
) emotes
GROUP BY emote_id
ORDER BY usage_count DESC;

表情动作搭配建议

感谢类表情组合

祝贺类表情组合

满意类表情组合

批量操作示例

为所有任务添加基础奖励文本

-- 为没有奖励文本的任务添加通用感谢文本
INSERT INTO quest_offer_reward (ID, RewardText, Emote1, EmoteDelay1, VerifiedBuild)
SELECT qt.ID, '谢谢你的帮助,$N!这是你应得的奖励。', 1, 0, 12340
FROM quest_template qt
LEFT JOIN quest_offer_reward qor ON qt.ID = qor.ID
WHERE qor.ID IS NULL;

根据任务等级设置不同的奖励文本

-- 为高等级任务设置更正式的奖励文本
UPDATE quest_offer_reward qor
JOIN quest_template qt ON qor.ID = qt.ID
SET qor.RewardText = '你完成了一项艰难的任务,$N!你的实力令人敬佩。', 
    qor.Emote1 = 21, qor.Emote2 = 25, qor.EmoteDelay2 = 2000
WHERE qt.MinLevel >= 60;

相关表

常见问题

奖励文本不显示怎么办?

检查以下几点:

如何设置性别相关的奖励文本?

使用性别变量:

'你是一位真正的$G英雄:女英雄;,$N!'

奖励文本应该多长?

建议:

注意事项