目录
quest_template
不同分支版本字段略有区别,需自行分辨
任务参数
- QuestType
- 0: 接受任务时直接跳过任务目标和任务细节,自动完成任务
- 1: 任务未启用
- 2: 任务启用
- 3: 世界任务
- QuestInfo
- 取值参考 QuestInfo.dbc | QuestInfo.db2
ID Name Comments 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人)
- QuestSortID
- QuestSortID > 0: 任务所在区域,取值参考 AreaTable.dbc | AreaTable.db2
- QuestSortID < 0: 任务分类,取值参考 QuestSort.dbc | QuestSort.db2
ID Name Comments ID Name Comments 22 Seasonal 季节 261 Hunter 猎人 24 Herbalism 草药 262 Priest 牧师 25 Battlegrounds 战场 263 Druid 德鲁伊 41 Day of the Dead 264 Tailoring 裁缝 61 Warlock 术士 304 Cooking 烹饪 81 Warrior 战士 324 First Aid 急救 82 Shaman 萨满 364 Darkmoon Faire 暗月马戏团 101 Fishing 钓鱼 366 Lunar Festival 春节 121 Blacksmithing 锻造 369 Midsummer 仲夏节 141 Paladin 骑士 370 Brewfest 美酒节 161 Mage 法师 371 Inscription 铭文 162 Rogue 盗贼 372 Death Knight 死亡骑士 181 Alchemy 炼金 373 Jewelcrafting 珠宝加工 182 Leatherworking 制皮 374 Noblegarden 201 Engineering 工程 375 Pilgrim's Bounty 241 Tournament 锦标赛 376 Love is in the Air
- Flags - FlagsEx2
- 取值参考源码 QuestDef.h 的 enum QuestFlags 系列定义
enum QuestFlags : uint32 { QUEST_FLAGS_NONE = 0x00000000, QUEST_FLAGS_COMPLETION_NO_DEATH = 0x00000001, QUEST_FLAGS_COMPLETION_EVENT = 0x00000002, QUEST_FLAGS_COMPLETION_AREA_TRIGGER = 0x00000004, QUEST_FLAGS_SHARABLE = 0x00000008, // Can be shared: Player::CanShareQuest() QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Hides questgiver turn-in minimap icon QUEST_FLAGS_RAID_GROUP_OK = 0x00000040, // Can be completed while in raid QUEST_FLAGS_WAR_MODE_REWARDS_OPT_IN = 0x00000080, // Not used currently QUEST_FLAGS_NO_MONEY_FOR_XP = 0x00000100, // Experience is not converted to gold at max level QUEST_FLAGS_HIDE_REWARD = 0x00000200, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUEST_GIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE)) QUEST_FLAGS_TRACKING_EVENT = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side. QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800, // Not used currently QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one QUEST_FLAGS_FLAGS_PVP = 0x00002000, // Having this quest in log forces PvP flag QUEST_FLAGS_DEPRECATED = 0x00004000, // Used on quests that are not generally available QUEST_FLAGS_WEEKLY = 0x00008000, QUEST_FLAGS_AUTO_COMPLETE = 0x00010000, // Quests with this flag player submit automatically by special button in player gui QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000, // Displays usable item in quest tracker QUEST_FLAGS_DISABLE_COMPLETION_TEXT = 0x00040000, // use Objective text as Complete text QUEST_FLAGS_AUTO_ACCEPT = 0x00080000, // The client recognizes this flag as auto-accept. QUEST_FLAGS_PLAYER_CAST_ACCEPT = 0x00100000, // Accept Spell Player Cast QUEST_FLAGS_PLAYER_CAST_COMPLETE = 0x00200000, // Complete Spell Player Cast QUEST_FLAGS_UPDATE_PHASESHIFT = 0x00400000, // Update Phase Shift QUEST_FLAGS_SOR_WHITELIST = 0x00800000, // Scroll of Resurrection Whitelist QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE = 0x01000000, // Gossip on Quest Completion - Force Gossip QUEST_FLAGS_REMOVE_SURPLUS_ITEMS = 0x02000000, // Remove all items from inventory that have the same id as the objective, not just the amount required by quest QUEST_FLAGS_WELL_KNOWN = 0x04000000, // Well-Known QUEST_FLAGS_PORTRAIT_IN_QUEST_LOG = 0x08000000, // Portrait from Log QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETED = 0x10000000, // Show Item When Completed QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT = 0x20000000, // Gossip on Quest Accept - Force Gossip QUEST_FLAGS_ITEMS_GLOW_WHEN_COMPLETE = 0x40000000, // Items Glow When Done QUEST_FLAGS_FAIL_ON_LOGOUT = 0x80000000 // Fail on Logout }; // last checked in 19802 enum QuestFlagsEx : uint32 { QUEST_FLAGS_EX_NONE = 0x00000000, QUEST_FLAGS_EX_NO_ITEM_REMOVAL = 0x00000001, // Keep Additional Items QUEST_FLAGS_EX_SUPPRESS_GOSSIP_COMPLETE = 0x00000002, // Gossip on Quest Completion - Suppress Gossip QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT = 0x00000004, // Gossip on Quest Accept - Suppress Gossip QUEST_FLAGS_EX_DENY_PLAYER_QUESTGIVER = 0x00000008, // Disallow Player as Questgiver (advanced) QUEST_FLAGS_EX_DISPLAY_CLASS_CHOICE_REWARDS = 0x00000010, // Choice Reward Filter - Matches Class QUEST_FLAGS_EX_DISPLAY_SPEC_CHOICE_REWARDS = 0x00000020, // Choice Reward Filter - Matches Spec QUEST_FLAGS_EX_REMOVE_ON_PERIODIC_RESET = 0x00000040, // Remove from Log on Periodic Reset QUEST_FLAGS_EX_ACCOUNT = 0x00000080, // Account-Level Quest QUEST_FLAGS_EX_LEGENDARY = 0x00000100, // Legendary Quest QUEST_FLAGS_EX_NO_GUILD_XP = 0x00000200, // No Guild XP QUEST_FLAGS_EX_RESET_CACHE_ON_ACCEPT = 0x00000400, // Reset Cache on Accept (internal) QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN = 0x00000800, // No Abandon Once Any Objective Complete QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN = 0x00001000, // Recast accept spell on login QUEST_FLAGS_EX_UPDATE_ZONE_AURAS = 0x00002000, // Update Zone Auras QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY = 0x00004000, // No Credit for Proxy Creatures QUEST_FLAGS_EX_DISPLAY_AS_DAILY = 0x00008000, // Display As Daily Quest QUEST_FLAGS_EX_DISPLAY_QUEST_LINE = 0x00010000, QUEST_FLAGS_EX_INTERNAL_BUILDS_ONLY = 0x00020000, // Quest for Internal Builds ONLY QUEST_FLAGS_EX_SUPPRESS_SPELL_LEARN_TEXT = 0x00040000, // Suppress spell learn text line (for followers) QUEST_FLAGS_EX_DISPLAY_AS_OBJECTIVE = 0x00080000, // Display Header as Objective for Tasks QUEST_FLAGS_EX_ALLOW_ALL_IN_GARRISON = 0x00100000, // Garrison non-owners allowed QUEST_FLAGS_EX_REMOVE_ON_WEEKLY_RESET = 0x00200000, // Remove quest on weekly reset QUEST_FLAGS_EX_SUPPRESS_GREETINGS_ON_ACCEPT = 0x00400000, // Suppress farewell audio after quest accept QUEST_FLAGS_EX_REWARDS_IGNORE_CAPS = 0x00800000, // Rewards bypass weekly caps and Season Total QUEST_FLAGS_EX_IS_WORLD_QUEST = 0x01000000, // Is a World Quest QUEST_FLAGS_EX_NOT_IGNORABLE = 0x02000000, // Not Ignorable QUEST_FLAGS_EX_AUTO_PUSH = 0x04000000, // Auto Push QUEST_FLAGS_EX_NO_SPELL_COMPLETE_EFFECTS = 0x08000000, // No Complete Quest Spell Effect QUEST_FLAGS_EX_DO_NOT_TOAST_HONOR_REWARD = 0x10000000, // Do Not Toast Honor Reward QUEST_FLAGS_EX_KEEP_REPEATABLE_QUEST_ON_FACTION_CHANGE = 0x20000000, // Keep repeatable quest on faction change QUEST_FLAGS_EX_KEEP_PROGRESS_ON_FACTION_CHANGE = 0x40000000, // Keep quest progress on faction change QUEST_FLAGS_EX_PUSH_TEAM_QUEST_USING_MAP_CONTROLLER = 0x80000000 }; enum QuestFlagsEx2 : uint32 { QUEST_FLAGS_EX2_RESET_ON_GAME_MILESTONE = 0x00000001, QUEST_FLAGS_EX2_WAR_MODE_REWARDS_OPT_OUT = 0x00000002, QUEST_FLAGS_EX2_AWARD_HIGHEST_PROFESSION = 0x00000004, QUEST_FLAGS_EX2_NOT_REPLAYABLE = 0x00000008, QUEST_FLAGS_EX2_NO_REPLAY_REWARDS = 0x00000010, QUEST_FLAGS_EX2_DISABLE_WAYPOINT_PATHING = 0x00000020, QUEST_FLAGS_EX2_RESET_ON_MYTHIC_PLUS_SEASON = 0x00000040, QUEST_FLAGS_EX2_RESET_ON_PVP_SEASON = 0x00000080, QUEST_FLAGS_EX2_ENABLE_OVERRIDE_SORT_ORDER = 0x00000100, QUEST_FLAGS_EX2_FORCE_STARTING_LOC_ON_ZONE_MAP = 0x00000200, QUEST_FLAGS_EX2_BONUS_LOOT_NEVER = 0x00000400, QUEST_FLAGS_EX2_BONUS_LOOT_ALWAYS = 0x00000800, QUEST_FLAGS_EX2_HIDE_TASK_ON_MAIN_MAP = 0x00001000, QUEST_FLAGS_EX2_HIDE_TASK_IN_TRACKER = 0x00002000, QUEST_FLAGS_EX2_SKIP_DISABLED_CHECK = 0x00004000, QUEST_FLAGS_EX2_ENFORCE_MAXIMUM_QUEST_LEVEL = 0x00008000, QUEST_FLAGS_EX2_CONTENT_ALERT = 0x00010000, QUEST_FLAGS_EX2_DISPLAY_TIME_REMAINING = 0x00020000, QUEST_FLAGS_EX2_CLEAR_TASK_PROGRESS_WHEN_ABANDONED = 0x00040000, QUEST_FLAGS_EX2_SUPPRESS_GREETINGS_ON_COMPLETE = 0x00080000, QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_ON_TURN_IN = 0x00100000, QUEST_FLAGS_EX2_IGNORE_SOULBOUND_ITEMS = 0x00200000, QUEST_FLAGS_EX2_DONT_DEFER_START_EFFECTS = 0x00400000, QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_PRE_TURN_IN = 0x00800000, QUEST_FLAGS_EX2_ABANDON_ON_DISABLE = 0x04000000, };
- StartItem
- 接受任务时给的 Item,取值为 Item 的 entry。当任务被放弃时,Item 将被删除
- ItemDrop[1-4]
- 任务间接需要的 Item 的 entry。例如,任务通过 Item 1来获得 Item 2,此处则填 Item 1的 entry。当放弃任务时,Item 1 也会被删除。
- ItemDropQuantity[1-4]
- Item 掉落和被拾取的最大数量
- RewardNextQuest
- 下一个任务的ID。设置后,结束当前任务后,新任务会立即从任务给予者那里出现
任务限定
MinLevel
接取任务的最小级别
RequiredFactionId[1-2]
接取任务所需的阵容声望,取值参考 Faction.dbc | Faction.db2
RequiredFactionValue[1-2]
接取任务所需的阵容声望值,取值参考下表
Value Description Comments -6001 Hated 仇恨 3000 Friendly 友善 9000 Honored 尊敬 21000 Revered 崇敬 42000 Exalted 崇拜
RequiredPlayerKills
完成任务需要击杀的玩家数
- TimeAllowed
- 任务限时,秒为单位
- AllowableRaces
- 允许接受任务的种族,取值参考 ChrRaces.dbc | ChrRaces.db2
- 0 为无限制
Value Flag Name Value Flag Name 1 0x0001 Human 2 0x0002 Orc 4 0x0004 Dwarf 16 0x0010 Undead 8 0x0008 Night Elf 32 0x0020 Tauren 64 0x0040 Gnome 128 0x0080 Troll 1024 0x0400 Draenei 512 0x0200 Blood Elf 1101 0x044D Alliance 690 0x02B2 Horde
任务文本及描述
- LogTitle
- 任务标题
LogDescription
任务目标文字
- QuestDescription
- 任务描述,可以使用如下占位符:
$B
line break$N
玩家名字$R
玩家种族$C
玩家职业$Gmale:female; 玩家性别
- QuestCompletionLog
- 所有任务目标完成后显示文本
任务需求
- RequiredNpcOrGo[1-4]
- RequiredNpcOrGo* > 0: 玩家需要击杀(施放)才能完成任务的 creature 的 entry
- RequiredNpcOrGo* < 0: 玩家需要施放才能完成任务的 gameobject 的 entry
- 如果 SpecialFlags 包含 QUEST_SPECIAL_FLAGS_CAST(0x20),则任务目标是对目标 creature 或 gameobject 施放,否则则为击杀
- 如果设置了 QUEST_SPECIAL_FLAGS_CAST,并且该法术具有“发送事件”或“完成任务”效果,则该字段可能为空
- RequiredNpcOrGoCount[1-4]
- 击杀数量(施放次数)
- RequiredItemId[1-6]
- 完成任务所需的 Item 的 entry
- RequiredItemCount[1-6]
- 完成任务所需的 Item 的数量
相关链接:
quest_template_addon
设置任务链
任务修复思路及实现