目录
quest_objectives(master)
- ID:任务目标 id,唯一标识
- QuestID:任务 ID,取值链接 quest_template.entry
- Type:任务目标类型,取值来源源码 QuestDef.h 的 QuestObjectiveType 定义
enum QuestObjectiveType
{
QUEST_OBJECTIVE_MONSTER = 0,
QUEST_OBJECTIVE_ITEM = 1,
QUEST_OBJECTIVE_GAMEOBJECT = 2,
QUEST_OBJECTIVE_TALKTO = 3,
QUEST_OBJECTIVE_CURRENCY = 4,
QUEST_OBJECTIVE_LEARNSPELL = 5,
QUEST_OBJECTIVE_MIN_REPUTATION = 6,
QUEST_OBJECTIVE_MAX_REPUTATION = 7,
QUEST_OBJECTIVE_MONEY = 8,
QUEST_OBJECTIVE_PLAYERKILLS = 9,
QUEST_OBJECTIVE_AREATRIGGER = 10,
QUEST_OBJECTIVE_WINPETBATTLEAGAINSTNPC = 11,
QUEST_OBJECTIVE_DEFEATBATTLEPET = 12,
QUEST_OBJECTIVE_WINPVPPETBATTLES = 13,
QUEST_OBJECTIVE_CRITERIA_TREE = 14,
QUEST_OBJECTIVE_PROGRESS_BAR = 15,
QUEST_OBJECTIVE_HAVE_CURRENCY = 16, // req
QUEST_OBJECTIVE_OBTAIN_CURRENCY = 17, // req
QUEST_OBJECTIVE_INCREASE_REPUTATION = 18, // req
QUEST_OBJECTIVE_AREA_TRIGGER_ENTER = 19,
QUEST_OBJECTIVE_AREA_TRIGGER_EXIT = 20,
QUEST_OBJECTIVE_KILL_WITH_LABEL = 21,
MAX_QUEST_OBJECTIVE_TYPE
};
- Order:任务目标顺序,按 0,1,2,3 依次递增
- StorageIndex:作用待核实,默认取 0 值
- ObjectID:任务目标对象 id,取值链接 quest_poi.QuestObjectID
- Amount:任务目标需求数量(击杀8个,拾取6个,等等)
- Flags - Flags2:任务目标标识,取值来源源码 QuestDef.h 的 QuestObjectiveFlags
enum QuestObjectiveFlags
{
QUEST_OBJECTIVE_FLAG_TRACKED_ON_MINIMAP = 0x0001, // client displays large yellow blob on minimap for creature/gameobject
QUEST_OBJECTIVE_FLAG_SEQUENCED = 0x0002, // client will not see the objective displayed until all previous objectives are completed
QUEST_OBJECTIVE_FLAG_OPTIONAL = 0x0004, // not required to complete the quest
QUEST_OBJECTIVE_FLAG_HIDDEN = 0x0008, // never displayed in quest log
QUEST_OBJECTIVE_FLAG_HIDE_CREDIT_MSG = 0x0010, // skip showing item objective progress
QUEST_OBJECTIVE_FLAG_PRESERVE_QUEST_ITEMS = 0x0020,
QUEST_OBJECTIVE_FLAG_PART_OF_PROGRESS_BAR = 0x0040, // hidden objective used to calculate progress bar percent (quests are limited to a single progress bar objective)
QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION = 0x0080,
QUEST_OBJECTIVE_FLAG_NO_SHARE_PROGRESS = 0x0100,
QUEST_OBJECTIVE_FLAG_IGNORE_SOULBOUND_ITEMS = 0x0200,
};
enum QuestObjectiveFlags2
{
QUEST_OBJECTIVE_FLAG_2_QUEST_BOUND_ITEM = 0x1 // Item is bound to a single objective, only increments the counter for one quest if multiple require the same item and is not stored in inventory
};
quest_poi
- BlobIndex:作用待核实,默认取 0 值
- idx1:0,1,2,3,...
- ObjectiveIndex:任务目标索引,用来区分和设置任务目标的先后顺序
- 取值为 -1 时,作为任务交付的POI标记
- QuestObjectiveID:任务目标 id,取值链接 quest_objectives.id
- QuestObjectID:任务目标对象 id,取值链接 quest_objectives.ObjectID
- 根据 quest_objectives.Type 取值
- MapID:地图 id,取值链接 Map.db2
- UiMapID:世界地图 id(按 M 弹出的地图界面),取值链接 UiMap.db2
- Flags:作用待核实,默认取 0 值
quest_poi_points
- idx1:对应 quest_poi 的 idx1
- idx2:若干个包含坐标信息的 idx2 数据组在小地图构建出对应 idx1 任务目标的范围
- X | Y | Z:相应节点坐标
实例
- 例1
- 以下为questid = 8472(失效的傀儡)的任务,任务目标为“从奥术巡逻者身上取得6个奥术核心”。通过观察数据表可知,该任务共设置了idx1 = 0、1两个任务目标POI(图1)。
- 图1的idx1 = 0 的 POI 范围由图2中4个点组成(idx2 = 0,1,2,3)
- 图1的idx1 = 1 的 POI 范围由图2中5个点组成(idx2 = 0,1,2,3,4)
- 图1的idx1 = 2 的这条数据为任务交付的POI标记,对应图2的 idx1 = 2 的坐标数据(此条坐标数据应为任务交付的坐标)
(图1,quest_poi 表)
(图2,quest_poi_points 表)
- 例2
- questid = 9067(无尽的宴会)的任务,此任务共有三个任务目标:
- 一捆烟花:258190
- 魔泉美味:258191
- 日光陈酿:258192
- questid = 9067(无尽的宴会)的任务,此任务共有三个任务目标:
(图1,quest_objective 表)
(图2,quest_poi 表)
(图3,quest_poi_points 表)