📊 表结构(完整字段)

字段名 数据类型 默认值 说明
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标签类型说明
1Group组队任务
21Life生活任务
41PvPPvP任务
62Raid团队任务
81Dungeon地下城任务
82World Event世界事件任务
83Legendary传奇任务
84Escort护送任务
85Heroic英雄难度任务
88Raid (10)10人团队任务
89Raid (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);
edItemCount4, RequiredItemCount5, RequiredItemCount6, Unknown0, ObjectiveText1, ObjectiveText2, ObjectiveText3, ObjectiveText4, VerifiedBuild ) 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, 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, '', '', '', '', 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任务奖励

🔗 相关表格

❓ 常见问题

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个字段,是任务系统中字段最多的表。