任务问候表存储了NPC在玩家与其对话时显示的问候文本。当NPC有可用任务或玩家可以交付任务时,会显示这些问候信息,为任务交互提供更丰富的对话体验。
字段名 | 类型 | 属性 | 键 | 默认值 | 描述 |
---|---|---|---|---|---|
ID | int(10) unsigned | 不为空 | 主键 | 0 | NPC的entry ID |
Type | tinyint(3) unsigned | 不为空 | 主键 | 0 | 对象类型(0=生物,1=游戏对象) |
Greeting | text | 不为空 | 问候文本内容 | ||
Emote1 | smallint(5) unsigned | 不为空 | 0 | 第一个表情动作ID | |
Emote2 | smallint(5) unsigned | 不为空 | 0 | 第二个表情动作ID | |
EmoteDelay1 | int(10) unsigned | 不为空 | 0 | 第一个表情动作的延迟时间 | |
EmoteDelay2 | int(10) unsigned | 不为空 | 0 | 第二个表情动作的延迟时间 | |
VerifiedBuild | int(11) | 可为空 | NULL | 验证的客户端版本号 |
NPC的entry ID,对应creature_template表中的entry字段,或gameobject_template表中的entry字段。
示例值: 1234, 5678, 12345
指定对象的类型,决定ID字段引用的是哪种对象。
类型值:
注意: 大多数情况下使用类型0(生物),类型1主要用于可交互的游戏对象,如任务物品、告示板等。
NPC显示的问候文本内容。这个文本会在玩家与NPC对话时首先显示,为任务交互提供背景信息。
示例文本:
"欢迎来到暴风城,勇敢的冒险者!我这里有一些任务需要你的帮助。"
"你好,$N。我一直在等待像你这样的英雄出现。"
"时间紧迫,$N!我们需要立即行动。"
文本变量:
NPC在显示问候文本时播放的表情动作,最多可以设置2个表情动作。
常见表情ID:
对应表情动作的延迟时间,以毫秒为单位。控制表情播放的时机。
延迟时间示例:
记录验证此问候信息的客户端版本号。
为提供任务的NPC设置友好的问候文本,介绍任务背景。
为接收任务物品的NPC设置感谢或鼓励的问候文本。
为关键剧情角色设置符合其身份和性格的问候文本。
为商人、训练师等功能性NPC设置专业的问候文本。
INSERT INTO quest_greeting (ID, Type, Greeting, Emote1, Emote2, EmoteDelay1, EmoteDelay2, VerifiedBuild)
VALUES (1234, 0, '欢迎,$N!我这里有一些重要的任务需要你的帮助。', 2, 25, 0, 2000, 12340);
INSERT INTO quest_greeting (ID, Type, Greeting, Emote1, Emote2, EmoteDelay1, EmoteDelay2, VerifiedBuild)
VALUES (5678, 0, '快来,$N!情况紧急,我们需要立即行动!', 6, 5, 0, 1500, 12340);
INSERT INTO quest_greeting (ID, Type, Greeting, Emote1, Emote2, EmoteDelay1, EmoteDelay2, VerifiedBuild)
VALUES (9999, 0, '士兵$N报到!准备接受新的任务指令。', 66, 1, 0, 2000, 12340);
INSERT INTO quest_greeting (ID, Type, Greeting, Emote1, Emote2, EmoteDelay1, EmoteDelay2, VerifiedBuild)
VALUES (1001, 1, '这块告示板上贴着几张紧急通告...', 0, 0, 0, 0, 12340);
SELECT qg.ID, ct.name, qg.Greeting
FROM quest_greeting qg
JOIN creature_template ct ON qg.ID = ct.entry
WHERE qg.Type = 0
ORDER BY qg.ID;
SELECT qg.ID, ct.name, qg.Greeting
FROM quest_greeting qg
JOIN creature_template ct ON qg.ID = ct.entry
WHERE qg.Type = 0 AND qg.Greeting LIKE '%紧急%'
ORDER BY qg.ID;
SELECT qg.ID, ct.name, qg.Emote1, qg.Emote2
FROM quest_greeting qg
JOIN creature_template ct ON qg.ID = ct.entry
WHERE qg.Type = 0 AND (qg.Emote1 > 0 OR qg.Emote2 > 0)
ORDER BY qg.ID;
问候文本应该与NPC的身份、性格和背景相符:
根据游戏情境调整问候内容:
考虑玩家的游戏体验:
-- 为所有任务发放者添加基础问候
INSERT INTO quest_greeting (ID, Type, Greeting, Emote1, EmoteDelay1, VerifiedBuild)
SELECT DISTINCT cqs.id, 0, '你好,$N。我这里有任务需要你的帮助。', 1, 0, 12340
FROM creature_queststarter cqs
LEFT JOIN quest_greeting qg ON cqs.id = qg.ID AND qg.Type = 0
WHERE qg.ID IS NULL;
-- 为守卫类NPC设置正式问候
UPDATE quest_greeting qg
JOIN creature_template ct ON qg.ID = ct.entry
SET qg.Greeting = '士兵$N,有什么需要帮助的吗?', qg.Emote1 = 66
WHERE qg.Type = 0 AND ct.name LIKE '%守卫%';
检查以下几点:
使用性别变量:
'欢迎你,$G先生:女士;!'
这会根据玩家性别显示"先生"或"女士"。
建议: