任务奖励提供表存储了玩家完成任务并准备获得奖励时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 | 验证的客户端版本号 |
任务的唯一标识符,必须对应quest_template表中的ID。每个任务只能有一条对应的奖励文本记录。
示例值: 1, 100, 1001, 25000
任务完成时NPC显示的奖励文本,通常包含感谢、祝贺或后续指引的内容。
示例文本:
"干得好,$N!你的勇气和智慧令人敬佩。请接受这些奖励作为对你贡献的认可。"
"太棒了!你完成了一项艰难的任务。这些奖励是你应得的。"
"感谢你的帮助,$N。没有你,我们无法完成这项重要的工作。"
文本变量:
定义NPC在提供任务奖励时播放的表情动作序列,最多可以设置4个连续的表情动作。
常见表情ID:
对应表情动作的延迟时间,以毫秒为单位。控制表情动作播放的时机和节奏。
延迟时间示例:
记录验证此任务奖励文本的客户端版本号。
奖励文本应该表达适当的情感:
根据任务类型调整文本风格:
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!'
建议: