quest_template

本文详细分析了游戏中的任务系统,包括任务触发条件、是否可分享给队友、团队任务的特点、日常和周常任务的区别,以及自动完成和声望要求等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

任务参数

任务限定

任务文本及描述

任务需求


quest_template

不同分支版本字段略有区别,需自行分辨

任务参数

  • QuestType
    • 0: 接受任务时直接跳过任务目标和任务细节,自动完成任务
    • 1: 任务未启用
    • 2: 任务启用
    • 3: 世界任务
  • QuestInfo
    • 取值参考 QuestInfo.dbc | QuestInfo.db2
IDNameComments
1Group组队任务
21Life生活?
41PvPPVP任务
62Raid团队任务
81Dungeon地下城任务
82World Event世界事件
83Legendary传奇任务
84Escort护送任务
85Heroic英雄任务
88Raid (10)团队任务(10人)
89Raid (25)团队任务(25人)
  • QuestSortID
    • QuestSortID > 0: 任务所在区域,取值参考 AreaTable.dbc | AreaTable.db2
    • QuestSortID < 0: 任务分类,取值参考 QuestSort.dbc | QuestSort.db2
IDNameCommentsIDNameComments
22Seasonal季节261Hunter猎人
24Herbalism草药262Priest牧师
25Battlegrounds战场263Druid德鲁伊
41Day of the Dead 264Tailoring裁缝
61Warlock术士304Cooking烹饪
81Warrior战士324First Aid急救
82Shaman萨满364Darkmoon Faire暗月马戏团
101Fishing钓鱼366Lunar Festival春节
121Blacksmithing锻造369Midsummer仲夏节
141Paladin骑士370Brewfest美酒节
161Mage法师371Inscription铭文
162Rogue盗贼372Death Knight死亡骑士
181Alchemy炼金373Jewelcrafting珠宝加工
182Leatherworking制皮374Noblegarden 
201Engineering工程375Pilgrim's Bounty 
241Tournament锦标赛376Love 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]

    • 接取任务所需的阵容声望值,取值参考下表

ValueDescriptionComments
-6001Hated仇恨
3000Friendly友善
9000Honored尊敬
21000Revered崇敬
42000Exalted崇拜
  • RequiredPlayerKills

    • 完成任务需要击杀的玩家数

  • TimeAllowed
    • 任务限时,秒为单位
  • AllowableRaces
    • 允许接受任务的种族,取值参考 ChrRaces.dbc | ChrRaces.db2
    • 0 为无限制
ValueFlagName ValueFlagName
10x0001Human 20x0002Orc
40x0004Dwarf 160x0010Undead
80x0008Night Elf 320x0020Tauren
640x0040Gnome 1280x0080Troll
10240x0400Draenei 5120x0200Blood Elf
11010x044DAlliance 6900x02B2Horde

 

任务文本及描述

  • 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
设置任务链
任务修复思路及实现

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值