📊 表结构(完整字段)
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| ID | int UNSIGNED | 0 | 任务ID (主键) |
| QuestType | tinyint UNSIGNED | 2 | 任务类型 |
| QuestLevel | smallint | 1 | 任务等级 |
| MinLevel | tinyint UNSIGNED | 0 | 最低等级 |
| QuestSortID | smallint | 0 | 任务分类 |
| QuestInfoID | smallint UNSIGNED | 0 | 任务信息ID |
| SuggestedGroupNum | tinyint UNSIGNED | 0 | 建议组队人数 |
| RequiredFactionId1 | smallint UNSIGNED | 0 | 要求声望阵营ID1 |
| RequiredFactionId2 | smallint UNSIGNED | 0 | 要求声望阵营ID2 |
| RequiredFactionValue1 | int | 0 | 要求声望值1 |
| RequiredFactionValue2 | int | 0 | 要求声望值2 |
| RewardNextQuest | int UNSIGNED | 0 | 下一个任务ID |
| RewardXPDifficulty | tinyint UNSIGNED | 0 | 经验奖励难度 |
| RewardMoney | int | 0 | 金钱奖励 |
| RewardMoneyDifficulty | int UNSIGNED | 0 | 金钱奖励难度 |
| RewardDisplaySpell | int UNSIGNED | 0 | 奖励显示技能 |
| RewardSpell | int | 0 | 奖励技能 |
| RewardHonor | int | 0 | 奖励荣誉 |
| RewardKillHonor | float | 0 | 奖励击杀荣誉 |
| StartItem | int UNSIGNED | 0 | 起始物品 |
| Flags | int UNSIGNED | 0 | 任务标志 |
| RequiredPlayerKills | tinyint UNSIGNED | 0 | 要求玩家击杀数 |
| RewardItem1 | int UNSIGNED | 0 | 奖励物品1 |
| RewardAmount1 | smallint UNSIGNED | 0 | 奖励物品数量1 |
| RewardItem2 | int UNSIGNED | 0 | 奖励物品2 |
| RewardAmount2 | smallint UNSIGNED | 0 | 奖励物品数量2 |
| RewardItem3 | int UNSIGNED | 0 | 奖励物品3 |
| RewardAmount3 | smallint UNSIGNED | 0 | 奖励物品数量3 |
| RewardItem4 | int UNSIGNED | 0 | 奖励物品4 |
| RewardAmount4 | smallint UNSIGNED | 0 | 奖励物品数量4 |
| ItemDrop1 | int UNSIGNED | 0 | 掉落物品1 |
| ItemDropQuantity1 | smallint UNSIGNED | 0 | 掉落物品数量1 |
| ItemDrop2 | int UNSIGNED | 0 | 掉落物品2 |
| ItemDropQuantity2 | smallint UNSIGNED | 0 | 掉落物品数量2 |
| ItemDrop3 | int UNSIGNED | 0 | 掉落物品3 |
| ItemDropQuantity3 | smallint UNSIGNED | 0 | 掉落物品数量3 |
| ItemDrop4 | int UNSIGNED | 0 | 掉落物品4 |
| ItemDropQuantity4 | smallint UNSIGNED | 0 | 掉落物品数量4 |
| RewardChoiceItemID1 | int UNSIGNED | 0 | 可选奖励物品1 |
| RewardChoiceItemQuantity1 | smallint UNSIGNED | 0 | 可选奖励物品数量1 |
| RewardChoiceItemID2 | int UNSIGNED | 0 | 可选奖励物品2 |
| RewardChoiceItemQuantity2 | smallint UNSIGNED | 0 | 可选奖励物品数量2 |
| RewardChoiceItemID3 | int UNSIGNED | 0 | 可选奖励物品3 |
| RewardChoiceItemQuantity3 | smallint UNSIGNED | 0 | 可选奖励物品数量3 |
| RewardChoiceItemID4 | int UNSIGNED | 0 | 可选奖励物品4 |
| RewardChoiceItemQuantity4 | smallint UNSIGNED | 0 | 可选奖励物品数量4 |
| RewardChoiceItemID5 | int UNSIGNED | 0 | 可选奖励物品5 |
| RewardChoiceItemQuantity5 | smallint UNSIGNED | 0 | 可选奖励物品数量5 |
| RewardChoiceItemID6 | int UNSIGNED | 0 | 可选奖励物品6 |
| RewardChoiceItemQuantity6 | smallint UNSIGNED | 0 | 可选奖励物品数量6 |
| POIContinent | smallint UNSIGNED | 0 | POI大陆 |
| POIx | float | 0 | POI X坐标 |
| POIy | float | 0 | POI Y坐标 |
| POIPriority | int UNSIGNED | 0 | POI优先级 |
| RewardTitle | tinyint UNSIGNED | 0 | 奖励头衔 |
| RewardTalents | tinyint UNSIGNED | 0 | 奖励天赋点 |
| RewardArenaPoints | smallint UNSIGNED | 0 | 奖励竞技场点数 |
| RewardFactionID1 | smallint UNSIGNED | 0 | 奖励声望阵营ID1 |
| RewardFactionValue1 | int | 0 | 奖励声望值1 |
| RewardFactionOverride1 | int | 0 | 奖励声望覆盖1 |
| RewardFactionID2 | smallint UNSIGNED | 0 | 奖励声望阵营ID2 |
| RewardFactionValue2 | int | 0 | 奖励声望值2 |
| RewardFactionOverride2 | int | 0 | 奖励声望覆盖2 |
| RewardFactionID3 | smallint UNSIGNED | 0 | 奖励声望阵营ID3 |
| RewardFactionValue3 | int | 0 | 奖励声望值3 |
| RewardFactionOverride3 | int | 0 | 奖励声望覆盖3 |
| RewardFactionID4 | smallint UNSIGNED | 0 | 奖励声望阵营ID4 |
| RewardFactionValue4 | int | 0 | 奖励声望值4 |
| RewardFactionOverride4 | int | 0 | 奖励声望覆盖4 |
| RewardFactionID5 | smallint UNSIGNED | 0 | 奖励声望阵营ID5 |
| RewardFactionValue5 | int | 0 | 奖励声望值5 |
| RewardFactionOverride5 | int | 0 | 奖励声望覆盖5 |
| TimeAllowed | int UNSIGNED | 0 | 允许时间 |
| AllowableRaces | int UNSIGNED | 0 | 允许种族 |
| LogTitle | text | NULL | 任务标题 |
| LogDescription | text | NULL | 任务描述 |
| QuestDescription | text | NULL | 任务详情 |
| AreaDescription | text | NULL | 区域描述 |
| QuestCompletionLog | text | NULL | 任务完成日志 |
| RequiredNpcOrGo1 | int | 0 | 要求NPC或GO1 |
| RequiredNpcOrGo2 | int | 0 | 要求NPC或GO2 |
| RequiredNpcOrGo3 | int | 0 | 要求NPC或GO3 |
| RequiredNpcOrGo4 | int | 0 | 要求NPC或GO4 |
| RequiredNpcOrGoCount1 | smallint UNSIGNED | 0 | 要求NPC或GO数量1 |
| RequiredNpcOrGoCount2 | smallint UNSIGNED | 0 | 要求NPC或GO数量2 |
| RequiredNpcOrGoCount3 | smallint UNSIGNED | 0 | 要求NPC或GO数量3 |
| RequiredNpcOrGoCount4 | smallint UNSIGNED | 0 | 要求NPC或GO数量4 |
| RequiredItemId1 | int UNSIGNED | 0 | 要求物品ID1 |
| RequiredItemId2 | int UNSIGNED | 0 | 要求物品ID2 |
| RequiredItemId3 | int UNSIGNED | 0 | 要求物品ID3 |
| RequiredItemId4 | int UNSIGNED | 0 | 要求物品ID4 |
| RequiredItemId5 | int UNSIGNED | 0 | 要求物品ID5 |
| RequiredItemId6 | int UNSIGNED | 0 | 要求物品ID6 |
| RequiredItemCount1 | smallint UNSIGNED | 0 | 要求物品数量1 |
| RequiredItemCount2 | smallint UNSIGNED | 0 | 要求物品数量2 |
| RequiredItemCount3 | smallint UNSIGNED | 0 | 要求物品数量3 |
| RequiredItemCount4 | smallint UNSIGNED | 0 | 要求物品数量4 |
| RequiredItemCount5 | smallint UNSIGNED | 0 | 要求物品数量5 |
| RequiredItemCount6 | smallint UNSIGNED | 0 | 要求物品数量6 |
| Unknown0 | tinyint UNSIGNED | 0 | 未知字段0 |
| ObjectiveText1 | text | NULL | 目标文本1 |
| ObjectiveText2 | text | NULL | 目标文本2 |
| ObjectiveText3 | text | NULL | 目标文本3 |
| ObjectiveText4 | text | NULL | 目标文本4 |
| VerifiedBuild | int | NULL | 验证版本 |
注:quest_template表包含118个字段,以上为完整字段列表(来源:官方数据表借鉴.sql)。
🔑 核心字段详解
🆔 ID - 任务ID
详细说明:任务ID,唯一标识每个任务。
取值范围:任意正整数
- 主键,唯一标识
- 每个任务一条记录
- 关联quest_template_addon、quest_template_locale等表
- 游戏中的任务实例基于此模板创建
📋 QuestType - 任务类型
详细说明:任务的类型分类。
取值范围:0-3
- 0 - 普通任务
- 1 - 精英任务
- 2 - 日常任务
- 3 - 团队日常任务
- 其他值 - 传说任务等特殊类型
🎯 QuestLevel - 任务等级
详细说明:任务的等级显示。
取值范围:-1到任意值
- 显示在任务日志中的等级
- -1 - 所有等级可见
- 其他值 - 具体等级显示
- 影响任务的难度和奖励
⬇️ MinLevel - 最低等级
详细说明:玩家接受任务的最低等级要求。
取值范围:0到任意值
- 玩家必须达到此等级才能接受任务
- 0表示无等级限制
- 影响任务的可见性
- 与QuestLevel配合使用
📁 QuestSortID - 任务分类
详细说明:任务在任务日志中的分类。
- 值 > 0 - 区域ID(来自AreaTable.dbc)
- 值 < 0 - 任务分类ID(来自QuestSort.dbc)
- 用于任务日志的分类显示
- 常见的负值:职业任务、专业技能任务等
🏷️ QuestInfoID - 任务信息标签
详细说明:任务的特殊类型标签,对应QuestInfo.dbc中的ID。
取值范围:QuestInfo.dbc中定义的ID值
- 用于在任务日志中显示特殊标签
- 0表示普通任务,无特殊标签
- 影响任务的显示方式和奖励计算
- 常见值来自QuestInfo.dbc
| QuestInfoID | 标签类型 | 说明 |
|---|---|---|
| 1 | Group | 组队任务 |
| 21 | Life | 生活任务 |
| 41 | PvP | PvP任务 |
| 62 | Raid | 团队任务 |
| 81 | Dungeon | 地下城任务 |
| 82 | World Event | 世界事件任务 |
| 83 | Legendary | 传奇任务 |
| 84 | Escort | 护送任务 |
| 85 | Heroic | 英雄难度任务 |
| 88 | Raid (10) | 10人团队任务 |
| 89 | Raid (25) | 25人团队任务 |
💰 RewardMoney - 金钱奖励
详细说明:任务完成时的金钱奖励。
- 值 > 0 - 奖励金钱
- 值 < 0 - 完成任务需要的金钱
- 单位:铜币
- 可以与RewardMoneyDifficulty配合动态计算
🚩 Flags - 任务标志
详细说明:任务的特殊标志位。
取值范围:位掩码组合
- QUEST_FLAGS_STAY_ALIVE (1) - 玩家必须存活
- QUEST_FLAGS_PARTY_ACCEPT (2) - 组队接受
- QUEST_FLAGS_EXPLORATION (4) - 探索任务
- QUEST_FLAGS_SHARABLE (8) - 可分享
- QUEST_FLAGS_RAID (64) - 团队任务
- QUEST_FLAGS_DAILY (4096) - 日常任务
- QUEST_FLAGS_WEEKLY (8192) - 周常任务
- 可以组合多个标志
🎯 RequiredNpcOrGo1-4 - 要求NPC或GO
详细说明:任务要求击杀或交互的NPC或游戏对象。
- 值 > 0 - NPC entry(击杀目标)
- 值 < 0 - GO entry(交互目标)
- 配合RequiredNpcOrGoCount使用
- 最多支持4个目标
📦 RequiredItemId1-6 - 要求物品
详细说明:任务要求收集的物品ID。
- 物品ID,来自item_template表
- 配合RequiredItemCount使用
- 最多支持6个物品
- 玩家需要收集指定数量的物品
🎁 RewardItem1-4 - 奖励物品
详细说明:任务固定奖励的物品ID。
- 物品ID,来自item_template表
- 配合RewardAmount使用
- 最多支持4个固定奖励物品
- 玩家完成任务后必定获得
🎁 RewardChoiceItemID1-6 - 可选奖励物品
详细说明:任务可选奖励的物品ID。
- 物品ID,来自item_template表
- 配合RewardChoiceItemQuantity使用
- 最多支持6个可选奖励物品
- 玩家可以选择其中一个作为奖励
🏆 RewardFactionID1-5 - 奖励声望阵营
详细说明:任务奖励的声望阵营ID。
- 阵营ID,来自Faction.dbc
- 配合RewardFactionValue和RewardFactionOverride使用
- 最多支持5个阵营奖励
- RewardFactionOverride为非0时,直接设置声望值
📜 LogTitle - 任务标题
详细说明:任务在日志中显示的标题。
- 任务的名称
- 显示在任务日志和任务追踪中
- 可以通过quest_template_locale本地化
📝 LogDescription - 任务描述
详细说明:任务在日志中显示的描述。
- 任务的简短描述
- 显示在任务日志中
- 可以通过quest_template_locale本地化
📖 QuestDescription - 任务详情
详细说明:任务的详细描述文本。
- 任务的完整描述
- 显示在任务接受对话框中
- 可以通过quest_template_locale本地化
🎯 ObjectiveText1-4 - 目标文本
详细说明:任务目标的自定义文本。
- 自定义目标描述文本
- 对应RequiredNpcOrGo1-4
- 可以替代默认的目标显示
- 可以通过quest_template_locale本地化
💡 实际案例(真实任务数据)
任务 Quest ID 747 - 牛头人新手村收集任务
收集平原陆行鸟的肉和羽毛,奖励雷霆崖声望
-- QuestLevel=2, RequiredItemId1=4739(肉), RequiredItemId2=4740(羽毛), RewardFactionID1=81(雷霆崖)
DELETE FROM quest_template WHERE ID = 747;
INSERT INTO quest_template VALUES
(747,2,2,1,215,0,0,0,0,0,0,750,2,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4954,1,4910,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,250,0,0,0,0,0,0,0,0,0,0,0,0,0,690,'The Hunt Begins','Bring 7 Plainstrider Feathers and 7 pieces of Plainstrider Meat to Grull Hawkwind.','You have a promising air about you, $n. And I will help you prove your worth to the tribe.','','',0,0,0,0,0,0,0,0,4739,4740,0,0,0,0,7,7,0,0,0,0,0,'','','','',0);任务 Quest ID 7 - 人类新手村击杀任务
击杀10个狗头人小怪,奖励暴风城声望
-- QuestLevel=2, RequiredNpcOrGo1=6(狗头人), RequiredNpcOrGoCount1=10, RewardMoney=25, RewardFactionID1=72(暴风城)
DELETE FROM quest_template WHERE ID = 7;
INSERT INTO quest_template VALUES
(7,2,2,1,9,0,0,0,0,0,0,15,2,25,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,250,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'Kobold Camp Cleanup','Kill 10 Kobold Vermin.','Your first task is one of cleansing, $n. A clan of kobolds have infested the woods to the north of our abbey.','','',6,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','','','',0);任务 Quest ID 15 - 人类新手村击杀任务
击杀8个狗头人工人,奖励暴风城声望
-- QuestLevel=3, RequiredNpcOrGo1=257(狗头人工人), RequiredNpcOrGoCount1=8, RewardMoney=40
DELETE FROM quest_template WHERE ID = 15;
INSERT INTO quest_template VALUES
(15,2,3,1,9,0,0,0,0,0,0,21,3,40,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,250,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'Investigate Echo Ridge','Kill 8 Kobold Workers.','$n, my scouts tell me that the kobold infestation is larger than we had thought. A group of kobold workers has set up camps at the Echo Ridge Mine to the north.','','',257,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','','','',0);职业 Quest ID 1598 - 术士职业任务
收集虚空之力书籍,奖励召唤小鬼技能
-- QuestLevel=4, RequiredItemId1=6785(虚空之力), RewardSpell=7763(召唤小鬼)
DELETE FROM quest_template WHERE ID = 1598;
INSERT INTO quest_template VALUES
(1598,2,4,1,9,0,0,0,0,0,0,0,4,0,0,0,7763,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,100,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'The Stolen Tome','Retrieve the Powers of the Void.','You there! $n, right? I hope you\'re sure about becoming a warlock, because if you can\'t hold your own, you\'re likely to end up dead.','','',0,0,0,0,0,0,0,0,6785,0,0,0,0,0,1,0,0,0,0,0,'','','','',0);查询 查询真实任务数据
查询Quest ID 747的任务详细信息
SELECT ID, QuestType, QuestLevel, MinLevel, QuestSortID, Flags,
RequiredItemId1, RequiredItemCount1, RequiredItemId2, RequiredItemCount2,
RewardFactionID1, RewardFactionValue1, RewardChoiceItemID1, RewardChoiceItemID2,
LogTitle, LogDescription, QuestDescription
FROM quest_template
WHERE ID = 747;关联 查询任务完整信息
关联quest_template_addon和quest_template_locale查询完整信息
SELECT qt.ID, qt.QuestType, qt.QuestLevel, qt.MinLevel, qt.LogTitle, qt.LogDescription,
qta.MaxLevel, qta.PrevQuestID, qta.NextQuestID, qta.RequiredSkillID,
qtl.Title, qtl.Details, qtl.Objectives
FROM quest_template qt
LEFT JOIN quest_template_addon qta ON qt.ID = qta.ID
LEFT JOIN quest_template_locale qtl ON qt.ID = qtl.ID AND qtl.locale = 'zhCN'
WHERE qt.ID = 747;统计 查询新手村任务数量
统计Northshire Valley (QuestSortID=9)的任务数量
SELECT QuestSortID, COUNT(*) AS QuestCount,
MIN(QuestLevel) AS MinQuestLevel,
MAX(QuestLevel) AS MaxQuestLevel
FROM quest_template
WHERE QuestSortID = 9
GROUP BY QuestSortID;分析 查询任务类型分布
统计不同QuestType的任务数量
SELECT QuestType,
COUNT(*) AS QuestCount,
AVG(QuestLevel) AS AvgLevel
FROM quest_template
GROUP BY QuestType
ORDER BY QuestCount DESC;⚡ 快速参考
任务类型
| QuestType=0 | 普通任务 |
| QuestType=1 | 精英任务 |
| QuestType=2 | 日常任务 |
| QuestType=3 | 团队日常 |
任务标志
| Flags=1 | 必须存活 |
| Flags=8 | 可分享 |
| Flags=64 | 团队任务 |
| Flags=4096 | 日常任务 |
| Flags=8192 | 周常任务 |
奖励字段
| RewardMoney | 金钱奖励 |
| RewardItem1-4 | 固定奖励物品 |
| RewardChoiceItemID1-6 | 可选奖励物品 |
| RewardSpell | 奖励技能 |
| RewardFactionID1-5 | 奖励声望 |
要求字段
| RequiredNpcOrGo1-4 | 要求NPC/GO |
| RequiredItemId1-6 | 要求物品 |
| RequiredFactionId1-2 | 要求声望 |
| RequiredPlayerKills | 要求击杀 |
文本字段
| LogTitle | 任务标题 |
| LogDescription | 任务描述 |
| QuestDescription | 任务详情 |
| ObjectiveText1-4 | 目标文本 |
关联表
| quest_template_addon | 任务扩展 |
| quest_template_locale | 任务本地化 |
| quest_details | 任务详情 |
| quest_offer_reward | 任务奖励 |
🔗 相关表格
- quest_template_addon - 任务模板扩展表
- quest_template_locale - 任务模板本地化表
- quest_details - 任务详情表
- quest_offer_reward - 任务奖励提供表
- quest_request_items - 任务请求物品表
❓ 常见问题
Q1: quest_template的作用?
quest_template是任务系统的核心表,定义所有任务的基本信息,包括任务等级、奖励、标志等属性。
Q2: QuestType和Flags的区别?
QuestType定义任务的基本类型(普通、精英、日常等),Flags定义任务的特殊标志(可分享、团队、日常等),可以组合使用。
Q3: RewardMoney为负值的含义?
RewardMoney为负值表示完成任务需要支付金钱,为正值表示完成任务获得金钱奖励。
Q4: QuestSortID的正负值含义?
QuestSortID为正值表示区域ID,为负值表示任务分类ID(如职业任务、专业技能任务等)。
Q5: RequiredNpcOrGo的正负值含义?
RequiredNpcOrGo为正值表示NPC entry(击杀目标),为负值表示GO entry(交互目标)。
Q6: 如何查询完整的任务信息?
需要关联quest_template_addon、quest_template_locale、quest_details等多个表才能获取完整的任务信息。
Q7: RewardFactionOverride的作用?
RewardFactionOverride为非0时,直接设置声望值(覆盖RewardFactionValue的计算)。
Q8: quest_template有多少个字段?
quest_template表包含118个字段,是任务系统中字段最多的表。