AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Quest Class Reference

#include "QuestDef.h"

Public Types

typedef std::vector< int32PrevQuests
 
typedef std::vector< uint32PrevChainQuests
 

Public Member Functions

 Quest (Field *questRecord)
 
void LoadQuestDetails (Field *fields)
 
void LoadQuestRequestItems (Field *fields)
 
void LoadQuestOfferReward (Field *fields)
 
void LoadQuestTemplateAddon (Field *fields)
 
uint32 XPValue (uint8 playerLevel=0) const
 
bool HasFlag (uint32 flag) const
 
void SetFlag (uint32 flag)
 
bool HasSpecialFlag (uint32 flag) const
 
void SetSpecialFlag (uint32 flag)
 
uint32 GetQuestId () const
 
uint32 GetQuestMethod () const
 
int32 GetZoneOrSort () const
 
uint32 GetMinLevel () const
 
uint32 GetMaxLevel () const
 
int32 GetQuestLevel () const
 
uint32 GetType () const
 
uint32 GetRequiredClasses () const
 
uint32 GetAllowableRaces () const
 
uint32 GetRequiredSkill () const
 
uint32 GetRequiredSkillValue () const
 
uint32 GetRepObjectiveFaction () const
 
int32 GetRepObjectiveValue () const
 
uint32 GetRepObjectiveFaction2 () const
 
int32 GetRepObjectiveValue2 () const
 
uint32 GetRequiredMinRepFaction () const
 
int32 GetRequiredMinRepValue () const
 
uint32 GetRequiredMaxRepFaction () const
 
int32 GetRequiredMaxRepValue () const
 
uint32 GetSuggestedPlayers () const
 
uint32 GetTimeAllowed () const
 
int32 GetPrevQuestId () const
 
uint32 GetNextQuestId () const
 
int32 GetExclusiveGroup () const
 
uint32 GetNextQuestInChain () const
 
uint32 GetCharTitleId () const
 
uint32 GetPlayersSlain () const
 
uint32 GetBonusTalents () const
 
int32 GetRewArenaPoints () const
 
uint32 GetXPId () const
 
uint32 GetSrcItemId () const
 
uint32 GetSrcItemCount () const
 
uint32 GetSrcSpell () const
 
std::string const & GetTitle () const
 
std::string const & GetDetails () const
 
std::string const & GetObjectives () const
 
std::string const & GetOfferRewardText () const
 
std::string const & GetRequestItemsText () const
 
std::string const & GetAreaDescription () const
 
std::string const & GetCompletedText () const
 
int32 GetRewOrReqMoney (uint8 playerLevel=0) const
 
uint32 GetRewHonorAddition () const
 
float GetRewHonorMultiplier () const
 
uint32 GetRewMoneyMaxLevel () const
 
uint32 GetRewSpell () const
 
int32 GetRewSpellCast () const
 
uint32 GetRewMailTemplateId () const
 
uint32 GetRewMailDelaySecs () const
 
uint32 GetRewMailSenderEntry () const
 
uint32 GetPOIContinent () const
 
float GetPOIx () const
 
float GetPOIy () const
 
uint32 GetPointOpt () const
 
uint32 GetIncompleteEmote () const
 
uint32 GetCompleteEmote () const
 
bool IsRepeatable () const
 
bool IsAutoAccept () const
 
bool IsAutoComplete () const
 
uint32 GetFlags () const
 
bool IsDaily () const
 
bool IsWeekly () const
 
bool IsMonthly () const
 
bool IsSeasonal () const
 
bool IsDailyOrWeekly () const
 
bool IsRaidQuest (Difficulty difficulty) const
 
bool IsAllowedInRaid (Difficulty difficulty) const
 
bool IsDFQuest () const
 
bool IsPVPQuest () const
 
uint32 CalculateHonorGain (uint8 level) const
 
uint32 GetReqItemsCount () const
 
uint32 GetReqCreatureOrGOcount () const
 
uint32 GetRewChoiceItemsCount () const
 
uint32 GetRewItemsCount () const
 
void InitializeQueryData ()
 
void SetEventIdForQuest (uint16 eventId)
 
uint16 GetEventIdForQuest () const
 

Public Attributes

std::string ObjectiveText [QUEST_OBJECTIVES_COUNT]
 
uint32 RequiredItemId [QUEST_ITEM_OBJECTIVES_COUNT]
 
uint32 RequiredItemCount [QUEST_ITEM_OBJECTIVES_COUNT]
 
uint32 ItemDrop [QUEST_SOURCE_ITEM_IDS_COUNT]
 
uint32 ItemDropQuantity [QUEST_SOURCE_ITEM_IDS_COUNT]
 
int32 RequiredNpcOrGo [QUEST_OBJECTIVES_COUNT]
 
uint32 RequiredNpcOrGoCount [QUEST_OBJECTIVES_COUNT]
 
uint32 RewardChoiceItemId [QUEST_REWARD_CHOICES_COUNT]
 
uint32 RewardChoiceItemCount [QUEST_REWARD_CHOICES_COUNT]
 
uint32 RewardItemId [QUEST_REWARDS_COUNT]
 
uint32 RewardItemIdCount [QUEST_REWARDS_COUNT]
 
uint32 RewardFactionId [QUEST_REPUTATIONS_COUNT]
 
int32 RewardFactionValueId [QUEST_REPUTATIONS_COUNT]
 
int32 RewardFactionValueIdOverride [QUEST_REPUTATIONS_COUNT]
 
uint32 DetailsEmote [QUEST_EMOTE_COUNT]
 
uint32 DetailsEmoteDelay [QUEST_EMOTE_COUNT]
 
uint32 OfferRewardEmote [QUEST_EMOTE_COUNT]
 
uint32 OfferRewardEmoteDelay [QUEST_EMOTE_COUNT]
 
PrevQuests prevQuests
 
PrevChainQuests prevChainQuests
 
WorldPacket queryData
 

Protected Attributes

uint32 Id
 
uint32 Method
 
int32 ZoneOrSort
 
uint32 MinLevel
 
int32 Level
 
uint32 Type
 
uint32 AllowableRaces
 
uint32 RequiredFactionId1
 
int32 RequiredFactionValue1
 
uint32 RequiredFactionId2
 
int32 RequiredFactionValue2
 
uint32 SuggestedPlayers
 
uint32 TimeAllowed
 
uint32 Flags
 
uint32 RewardTitleId
 
uint32 RequiredPlayerKills
 
uint32 RewardTalents
 
int32 RewardArenaPoints
 
uint32 RewardNextQuest
 
uint32 RewardXPDifficulty
 
uint32 StartItem
 
std::string Title
 
std::string Details
 
std::string Objectives
 
std::string OfferRewardText
 
std::string RequestItemsText
 
std::string AreaDescription
 
std::string CompletedText
 
uint32 RewardHonor
 
float RewardKillHonor
 
int32 RewardMoney
 
uint32 RewardMoneyDifficulty
 
uint32 RewardBonusMoney
 
uint32 RewardDisplaySpell
 
int32 RewardSpell
 
uint32 POIContinent
 
float POIx
 
float POIy
 
uint32 POIPriority
 
uint32 EmoteOnIncomplete
 
uint32 EmoteOnComplete
 
uint32 MaxLevel = 0
 
uint32 RequiredClasses = 0
 
uint32 SourceSpellid = 0
 
int32 PrevQuestId = 0
 
uint32 NextQuestId = 0
 
int32 ExclusiveGroup = 0
 
uint32 RewardMailTemplateId = 0
 
uint32 RewardMailDelay = 0
 
uint32 RequiredSkillId = 0
 
uint32 RequiredSkillPoints = 0
 
uint32 RequiredMinRepFaction = 0
 
int32 RequiredMinRepValue = 0
 
uint32 RequiredMaxRepFaction = 0
 
int32 RequiredMaxRepValue = 0
 
uint32 StartItemCount = 0
 
uint32 RewardMailSenderEntry = 0
 
uint32 SpecialFlags = 0
 

Private Attributes

uint32 _reqItemsCount
 
uint32 _reqCreatureOrGOcount
 
uint32 _rewChoiceItemsCount
 
uint32 _rewItemsCount
 
uint16 _eventIdForQuest
 

Friends

class ObjectMgr
 

Detailed Description

Member Typedef Documentation

◆ PrevChainQuests

typedef std::vector<uint32> Quest::PrevChainQuests

◆ PrevQuests

typedef std::vector<int32> Quest::PrevQuests

Constructor & Destructor Documentation

◆ Quest()

Quest::Quest ( Field questRecord)
25{
32
33 Id = questRecord[0].Get<uint32>();
34 Method = questRecord[1].Get<uint8>();
35 Level = questRecord[2].Get<int16>();
36 MinLevel = questRecord[3].Get<uint8>();
37 ZoneOrSort = questRecord[4].Get<int16>();
38 Type = questRecord[5].Get<uint16>();
39 SuggestedPlayers = questRecord[6].Get<uint8>();
40 TimeAllowed = questRecord[7].Get<uint32>();
41 AllowableRaces = questRecord[8].Get<uint32>();
42 RequiredFactionId1 = questRecord[9].Get<uint16>();
43 RequiredFactionId2 = questRecord[10].Get<uint16>();
44 RequiredFactionValue1 = questRecord[11].Get<int32>();
45 RequiredFactionValue2 = questRecord[12].Get<int32>();
46 RewardNextQuest = questRecord[13].Get<uint32>();
47 RewardXPDifficulty = questRecord[14].Get<uint8>();
48 RewardMoney = questRecord[15].Get<int32>();
49 RewardMoneyDifficulty = questRecord[16].Get<uint32>();
50 RewardBonusMoney = questRecord[17].Get<uint32>();
51 RewardDisplaySpell = questRecord[18].Get<uint32>();
52 RewardSpell = questRecord[19].Get<int32>();
53 RewardHonor = questRecord[20].Get<uint32>();
54 RewardKillHonor = questRecord[21].Get<float>();
55 StartItem = questRecord[22].Get<uint32>();
56 Flags = questRecord[23].Get<uint32>();
57 RewardTitleId = questRecord[24].Get<uint8>();
58 RequiredPlayerKills = questRecord[25].Get<uint8>();
59 RewardTalents = questRecord[26].Get<uint8>();
60 RewardArenaPoints = questRecord[27].Get<uint16>();
61
62 for (int i = 0; i < QUEST_REWARDS_COUNT; ++i)
63 {
64 RewardItemId[i] = questRecord[28 + i * 2].Get<uint32>();
65 RewardItemIdCount[i] = questRecord[29 + i * 2].Get<uint16>();
66
67 if (RewardItemId[i])
69 }
70
71 for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
72 {
73 RewardChoiceItemId[i] = questRecord[36 + i * 2].Get<uint32>();
74 RewardChoiceItemCount[i] = questRecord[37 + i * 2].Get<uint16>();
75
76 if (RewardChoiceItemId[i])
78 }
79
80 for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)
81 {
82 RewardFactionId[i] = questRecord[48 + i * 3].Get<uint16>();
83 RewardFactionValueId[i] = questRecord[49 + i * 3].Get<int32>();
84 RewardFactionValueIdOverride[i] = questRecord[50 + i * 3].Get<int32>();
85 }
86
87 POIContinent = questRecord[63].Get<uint16>();
88 POIx = questRecord[64].Get<float>();
89 POIy = questRecord[65].Get<float>();
90 POIPriority = questRecord[66].Get<uint32>();
91 Title = questRecord[67].Get<std::string>();
92 Objectives = questRecord[68].Get<std::string>();
93 Details = questRecord[69].Get<std::string>();
94 AreaDescription = questRecord[70].Get<std::string>();
95 CompletedText = questRecord[71].Get<std::string>();
96
97 for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
98 {
99 RequiredNpcOrGo[i] = questRecord[72 + i].Get<int32>();
100 RequiredNpcOrGoCount[i] = questRecord[76 + i].Get<uint16>();
101 ObjectiveText[i] = questRecord[101 + i].Get<std::string>();
102
103 if (RequiredNpcOrGo[i])
105 }
106
107 for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
108 {
109 ItemDrop[i] = questRecord[80 + i].Get<uint32>();
110 ItemDropQuantity[i] = questRecord[84 + i].Get<uint16>();
111 }
112
113 for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
114 {
115 RequiredItemId[i] = questRecord[88 + i].Get<uint32>();
116 RequiredItemCount[i] = questRecord[94 + i].Get<uint16>();
117
118 if (RequiredItemId[i])
120 }
121
122 // int8 Unknown0 = questRecord[100].Get<uint8>();
123 // int32 VerifiedBuild = questRecord[105].Get<int32>();
124
125 for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
126 {
127 DetailsEmote[i] = 0;
128 DetailsEmoteDelay[i] = 0;
129 OfferRewardEmote[i] = 0;
131 }
132
134
135 if (sWorld->getBoolConfig(CONFIG_QUEST_IGNORE_AUTO_ACCEPT))
136 {
137 Flags &= ~QUEST_FLAGS_AUTO_ACCEPT;
138 }
139
140 if (sWorld->getBoolConfig(CONFIG_QUEST_IGNORE_AUTO_COMPLETE))
141 {
142 Flags &= ~QUEST_FLAGS_AUTOCOMPLETE;
143 }
144}
std::int32_t int32
Definition: Define.h:104
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
std::uint16_t uint16
Definition: Define.h:109
std::int16_t int16
Definition: Define.h:105
#define QUEST_REWARDS_COUNT
Definition: QuestDef.h:39
#define QUEST_ITEM_OBJECTIVES_COUNT
Definition: QuestDef.h:36
#define QUEST_EMOTE_COUNT
Definition: QuestDef.h:42
#define QUEST_OBJECTIVES_COUNT
Definition: QuestDef.h:35
#define QUEST_REPUTATIONS_COUNT
Definition: QuestDef.h:41
#define QUEST_SOURCE_ITEM_IDS_COUNT
Definition: QuestDef.h:37
#define QUEST_REWARD_CHOICES_COUNT
Definition: QuestDef.h:38
@ CONFIG_QUEST_IGNORE_AUTO_COMPLETE
Definition: IWorld.h:150
@ CONFIG_QUEST_IGNORE_AUTO_ACCEPT
Definition: IWorld.h:149
#define sWorld
Definition: World.h:447
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition: Field.h:113
int32 Level
Definition: QuestDef.h:346
uint32 ItemDropQuantity[QUEST_SOURCE_ITEM_IDS_COUNT]
Definition: QuestDef.h:300
uint32 DetailsEmote[QUEST_EMOTE_COUNT]
Definition: QuestDef.h:310
uint32 OfferRewardEmote[QUEST_EMOTE_COUNT]
Definition: QuestDef.h:312
float POIx
Definition: QuestDef.h:378
int32 RequiredNpcOrGo[QUEST_OBJECTIVES_COUNT]
Definition: QuestDef.h:301
uint32 MinLevel
Definition: QuestDef.h:345
int32 RequiredFactionValue2
Definition: QuestDef.h:352
int32 RequiredFactionValue1
Definition: QuestDef.h:350
int32 ZoneOrSort
Definition: QuestDef.h:344
uint32 RequiredNpcOrGoCount[QUEST_OBJECTIVES_COUNT]
Definition: QuestDef.h:302
std::string AreaDescription
Definition: QuestDef.h:368
uint32 RewardTitleId
Definition: QuestDef.h:356
uint32 Type
Definition: QuestDef.h:347
uint32 RewardItemIdCount[QUEST_REWARDS_COUNT]
Definition: QuestDef.h:306
uint32 Method
Definition: QuestDef.h:343
float POIy
Definition: QuestDef.h:379
uint32 _rewItemsCount
Definition: QuestDef.h:336
uint32 RewardChoiceItemId[QUEST_REWARD_CHOICES_COUNT]
Definition: QuestDef.h:303
uint32 _rewChoiceItemsCount
Definition: QuestDef.h:335
uint32 ItemDrop[QUEST_SOURCE_ITEM_IDS_COUNT]
Definition: QuestDef.h:299
uint32 RewardXPDifficulty
Definition: QuestDef.h:361
int32 RewardFactionValueIdOverride[QUEST_REPUTATIONS_COUNT]
Definition: QuestDef.h:309
uint16 _eventIdForQuest
Definition: QuestDef.h:338
uint32 _reqItemsCount
Definition: QuestDef.h:333
uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT]
Definition: QuestDef.h:311
uint32 EmoteOnComplete
Definition: QuestDef.h:382
int32 RewardSpell
Definition: QuestDef.h:376
uint32 RewardTalents
Definition: QuestDef.h:358
int32 RewardMoney
Definition: QuestDef.h:372
uint32 RewardChoiceItemCount[QUEST_REWARD_CHOICES_COUNT]
Definition: QuestDef.h:304
uint32 POIContinent
Definition: QuestDef.h:377
uint32 AllowableRaces
Definition: QuestDef.h:348
uint32 RewardNextQuest
Definition: QuestDef.h:360
uint32 RequiredPlayerKills
Definition: QuestDef.h:357
uint32 EmoteOnIncomplete
Definition: QuestDef.h:381
uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT]
Definition: QuestDef.h:313
uint32 StartItem
Definition: QuestDef.h:362
uint32 Id
Definition: QuestDef.h:342
uint32 _reqCreatureOrGOcount
Definition: QuestDef.h:334
std::string ObjectiveText[QUEST_OBJECTIVES_COUNT]
Definition: QuestDef.h:296
std::string CompletedText
Definition: QuestDef.h:369
uint32 Flags
Definition: QuestDef.h:355
int32 RewardArenaPoints
Definition: QuestDef.h:359
uint32 RequiredItemCount[QUEST_ITEM_OBJECTIVES_COUNT]
Definition: QuestDef.h:298
uint32 TimeAllowed
Definition: QuestDef.h:354
std::string Title
Definition: QuestDef.h:363
uint32 RequiredFactionId1
Definition: QuestDef.h:349
uint32 RequiredFactionId2
Definition: QuestDef.h:351
uint32 RewardDisplaySpell
Definition: QuestDef.h:375
uint32 RequiredItemId[QUEST_ITEM_OBJECTIVES_COUNT]
Definition: QuestDef.h:297
std::string Objectives
Definition: QuestDef.h:365
uint32 SuggestedPlayers
Definition: QuestDef.h:353
float RewardKillHonor
Definition: QuestDef.h:371
uint32 RewardBonusMoney
Definition: QuestDef.h:374
uint32 RewardFactionId[QUEST_REPUTATIONS_COUNT]
Definition: QuestDef.h:307
uint32 RewardHonor
Definition: QuestDef.h:370
std::string Details
Definition: QuestDef.h:364
int32 RewardFactionValueId[QUEST_REPUTATIONS_COUNT]
Definition: QuestDef.h:308
uint32 RewardItemId[QUEST_REWARDS_COUNT]
Definition: QuestDef.h:305
uint32 RewardMoneyDifficulty
Definition: QuestDef.h:373
uint32 POIPriority
Definition: QuestDef.h:380

References _eventIdForQuest, _reqCreatureOrGOcount, _reqItemsCount, _rewChoiceItemsCount, _rewItemsCount, AllowableRaces, AreaDescription, CompletedText, CONFIG_QUEST_IGNORE_AUTO_ACCEPT, CONFIG_QUEST_IGNORE_AUTO_COMPLETE, Details, DetailsEmote, DetailsEmoteDelay, EmoteOnComplete, EmoteOnIncomplete, Flags, Field::Get(), Id, ItemDrop, ItemDropQuantity, Level, Method, MinLevel, Objectives, ObjectiveText, OfferRewardEmote, OfferRewardEmoteDelay, POIContinent, POIPriority, POIx, POIy, QUEST_EMOTE_COUNT, QUEST_ITEM_OBJECTIVES_COUNT, QUEST_OBJECTIVES_COUNT, QUEST_REPUTATIONS_COUNT, QUEST_REWARD_CHOICES_COUNT, QUEST_REWARDS_COUNT, QUEST_SOURCE_ITEM_IDS_COUNT, RequiredFactionId1, RequiredFactionId2, RequiredFactionValue1, RequiredFactionValue2, RequiredItemCount, RequiredItemId, RequiredNpcOrGo, RequiredNpcOrGoCount, RequiredPlayerKills, RewardArenaPoints, RewardBonusMoney, RewardChoiceItemCount, RewardChoiceItemId, RewardDisplaySpell, RewardFactionId, RewardFactionValueId, RewardFactionValueIdOverride, RewardHonor, RewardItemId, RewardItemIdCount, RewardKillHonor, RewardMoney, RewardMoneyDifficulty, RewardNextQuest, RewardSpell, RewardTalents, RewardTitleId, RewardXPDifficulty, StartItem, SuggestedPlayers, sWorld, TimeAllowed, Title, Type, and ZoneOrSort.

Member Function Documentation

◆ CalculateHonorGain()

uint32 Quest::CalculateHonorGain ( uint8  level) const
302{
303 if (level > GT_MAX_LEVEL)
304 level = GT_MAX_LEVEL;
305
306 uint32 honor = 0;
307
308 if (GetRewHonorAddition() > 0 || GetRewHonorMultiplier() > 0.0f)
309 {
310 // values stored from 0.. for 1...
311 TeamContributionPointsEntry const* tc = sTeamContributionPointsStore.LookupEntry(level);
312 if (!tc)
313 return 0;
314 honor = uint32(tc->value * GetRewHonorMultiplier() * 0.1000000014901161);
315
316 // Xinef: exactly this is calculated above, however with higher precision...
317 //honor += Acore::Honor::hk_honor_at_level(level, GetRewHonorMultiplier());
318 honor += GetRewHonorAddition();
319 }
320
321 return honor;
322}
DBCStorage< TeamContributionPointsEntry > sTeamContributionPointsStore(TeamContributionPointsfmt)
#define GT_MAX_LEVEL
Definition: DBCStructure.h:1027
float GetRewHonorMultiplier() const
Definition: QuestDef.h:267
uint32 GetRewHonorAddition() const
Definition: QuestDef.h:266
Definition: DBCStructure.h:1989
float value
Definition: DBCStructure.h:1991

References GetRewHonorAddition(), GetRewHonorMultiplier(), GT_MAX_LEVEL, sTeamContributionPointsStore, and TeamContributionPointsEntry::value.

Referenced by quest_commandscript::HandleQuestReward(), Player::RewardQuest(), PlayerMenu::SendQuestGiverOfferReward(), PlayerMenu::SendQuestGiverQuestDetails(), and Player::SendQuestReward().

◆ GetAllowableRaces()

uint32 Quest::GetAllowableRaces ( ) const
inline
233{ return AllowableRaces; }

References AllowableRaces.

Referenced by Player::SatisfyQuestRace().

◆ GetAreaDescription()

std::string const & Quest::GetAreaDescription ( ) const
inline

◆ GetBonusTalents()

◆ GetCharTitleId()

◆ GetCompletedText()

std::string const & Quest::GetCompletedText ( ) const
inline

◆ GetCompleteEmote()

uint32 Quest::GetCompleteEmote ( ) const
inline

◆ GetDetails()

std::string const & Quest::GetDetails ( ) const
inline

◆ GetEventIdForQuest()

uint16 Quest::GetEventIdForQuest ( ) const
inline

◆ GetExclusiveGroup()

int32 Quest::GetExclusiveGroup ( ) const
inline
248{ return ExclusiveGroup; }
int32 ExclusiveGroup
Definition: QuestDef.h:390

References ExclusiveGroup.

Referenced by Player::SatisfyQuestExclusiveGroup(), and Player::SatisfyQuestPreviousQuest().

◆ GetFlags()

◆ GetIncompleteEmote()

uint32 Quest::GetIncompleteEmote ( ) const
inline

◆ GetMaxLevel()

uint32 Quest::GetMaxLevel ( ) const
inline
229{ return MaxLevel; }
uint32 MaxLevel
Definition: QuestDef.h:385

References MaxLevel.

Referenced by Player::SatisfyQuestLevel().

◆ GetMinLevel()

uint32 Quest::GetMinLevel ( ) const
inline

◆ GetNextQuestId()

uint32 Quest::GetNextQuestId ( ) const
inline
247{ return NextQuestId; }
uint32 NextQuestId
Definition: QuestDef.h:389

References NextQuestId.

Referenced by ObjectMgr::LoadQuests().

◆ GetNextQuestInChain()

uint32 Quest::GetNextQuestInChain ( ) const
inline

◆ GetObjectives()

std::string const & Quest::GetObjectives ( ) const
inline

◆ GetOfferRewardText()

std::string const & Quest::GetOfferRewardText ( ) const
inline
261{ return OfferRewardText; }
std::string OfferRewardText
Definition: QuestDef.h:366

References OfferRewardText.

Referenced by PlayerMenu::SendQuestGiverOfferReward().

◆ GetPlayersSlain()

◆ GetPOIContinent()

uint32 Quest::GetPOIContinent ( ) const
inline

◆ GetPointOpt()

uint32 Quest::GetPointOpt ( ) const
inline

◆ GetPOIx()

float Quest::GetPOIx ( ) const
inline
275{ return POIx; }

References POIx.

Referenced by InitializeQueryData(), and PlayerMenu::SendQuestQueryResponse().

◆ GetPOIy()

float Quest::GetPOIy ( ) const
inline
276{ return POIy; }

References POIy.

Referenced by InitializeQueryData(), and PlayerMenu::SendQuestQueryResponse().

◆ GetPrevQuestId()

int32 Quest::GetPrevQuestId ( ) const
inline
246{ return PrevQuestId; }
int32 PrevQuestId
Definition: QuestDef.h:388

References PrevQuestId.

Referenced by ObjectMgr::LoadQuests().

◆ GetQuestId()

uint32 Quest::GetQuestId ( ) const
inline
225{ return Id; }

References Id.

Referenced by Player::AddQuest(), Player::AddQuestAndCheckCompletion(), Player::AdjustQuestReqItemCount(), Player::CanRewardQuest(), Player::CanSeeStartQuest(), Player::CanTakeQuest(), npc_wg_quest_giver::GetDialogStatus(), Player::GetQuestDialogStatus(), go_commandscript::HandleGoQuestCommand(), quest_commandscript::HandleQuestAdd(), quest_commandscript::HandleQuestComplete(), quest_commandscript::HandleQuestRemove(), quest_commandscript::HandleQuestReward(), InitializeQueryData(), LinkValidator< LinkTags::quest >::IsTextValid(), npc_escortAI::JustDied(), FollowerAI::JustDied(), Player::KilledPlayerCreditForQuest(), ObjectMgr::LoadQuests(), Condition::Meets(), QuestApprenticeAnglerPlayerScript::OnPlayerCompleteQuest(), npc_cos_chromie_start::OnQuestAccept(), npc_cos_chromie_middle::OnQuestAccept(), npc_chicken_cluck::OnQuestAccept(), npc_steward_of_time::OnQuestAccept(), npc_kernobee::OnQuestAccept(), npc_koltira_deathweaver::OnQuestAccept(), pyrewood_ambush::OnQuestAccept(), npc_daphne_stilwell::OnQuestAccept(), npc_mikhail::OnQuestAccept(), npc_kerlonian::OnQuestAccept(), npc_prospector_remtravel::OnQuestAccept(), npc_tooga::OnQuestAccept(), npc_gilthares::OnQuestAccept(), npc_lakota_windsong::OnQuestAccept(), npc_paoka_swiftmountain::OnQuestAccept(), npc_ringo::OnQuestAccept(), npc_engineer_helice::OnQuestAccept(), npc_maghar_captive::OnQuestAccept(), npc_kurenai_captive::OnQuestAccept(), npc_maxx_a_million_escort::OnQuestAccept(), npc_eris_hevenfire::OnQuestAccept(), npc_deathstalker_erland::OnQuestAccept(), npc_tyrion::OnQuestAccept(), npc_calvin_montague::OnQuestAccept(), npc_cork_gizelton::OnQuestAccept(), npc_shenthul::OnQuestAccept(), npc_kaya_flathoof::OnQuestAccept(), npc_wizzlecrank_shredder::OnQuestAccept(), npc_ame::OnQuestAccept(), npc_ranshalla::OnQuestAccept(), npc_lurgglbr::OnQuestAccept(), npc_mootoo_the_younger::OnQuestAccept(), npc_bonker_togglevolt::OnQuestAccept(), npc_emily::OnQuestAccept(), npc_apothecary_hanes::OnQuestAccept(), npc_battle_at_valhalas::OnQuestAccept(), npc_finklestein::OnQuestAccept(), npc_bessy::OnQuestAccept(), npc_karynaku::OnQuestAccept(), npc_isla_starmane::OnQuestAccept(), npc_doctor::OnQuestAccept(), go_crystal_prison::OnQuestAccept(), go_crystalline_tear::OnQuestAccept(), npc_chicken_cluck::OnQuestComplete(), boss_apothecary_hummel::OnQuestReward(), npc_rocknot::OnQuestReward(), npc_thrall_warchief::OnQuestReward(), npc_thrall_bfu::OnQuestReward(), npc_lady_sylvanas_windrunner::OnQuestReward(), npc_tharnarian::OnQuestReward(), npc_elder_clearwater::OnQuestReward(), npc_riggle_bassbait::OnQuestReward(), Player::PrettyPrintRequirementsQuestList(), SmartGameObjectAI::QuestAccept(), SmartGameObjectAI::QuestReward(), Player::RewardQuest(), Player::SatisfyQuestConditions(), Player::SatisfyQuestDay(), Player::SatisfyQuestExclusiveGroup(), Player::SatisfyQuestMonth(), Player::SatisfyQuestSeasonal(), Player::SatisfyQuestStatus(), Player::SatisfyQuestWeek(), Player::SendQuestConfirmAccept(), PlayerMenu::SendQuestGiverOfferReward(), PlayerMenu::SendQuestGiverQuestDetails(), PlayerMenu::SendQuestGiverRequestItems(), PlayerMenu::SendQuestQueryResponse(), Player::SendQuestReward(), Player::SendQuestUpdateAddCreatureOrGo(), Player::SendQuestUpdateAddPlayer(), npc_costumed_orphan_matron::sQuestAccept(), npc_belnistrasz::npc_belnistraszAI::sQuestAccept(), SmartAI::sQuestAccept(), npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI::sQuestAccept(), npc_ranger_lilatha::sQuestAccept(), npc_rinji::npc_rinjiAI::sQuestAccept(), npc_corporal_keeshan::npc_corporal_keeshanAI::sQuestAccept(), npc_muglash::npc_muglashAI::sQuestAccept(), npc_magwin::npc_magwinAI::sQuestAccept(), npc_wounded_blood_elf::npc_wounded_blood_elfAI::sQuestAccept(), SmartAI::sQuestReward(), and npc_escortAI::Start().

◆ GetQuestLevel()

int32 Quest::GetQuestLevel ( ) const
inline

◆ GetQuestMethod()

◆ GetRepObjectiveFaction()

◆ GetRepObjectiveFaction2()

◆ GetRepObjectiveValue()

◆ GetRepObjectiveValue2()

◆ GetReqCreatureOrGOcount()

uint32 Quest::GetReqCreatureOrGOcount ( ) const
inline
316{ return _reqCreatureOrGOcount; }

References _reqCreatureOrGOcount.

◆ GetReqItemsCount()

uint32 Quest::GetReqItemsCount ( ) const
inline
315{ return _reqItemsCount; }

References _reqItemsCount.

Referenced by PlayerMenu::SendQuestGiverRequestItems().

◆ GetRequestItemsText()

std::string const & Quest::GetRequestItemsText ( ) const
inline
262{ return RequestItemsText; }
std::string RequestItemsText
Definition: QuestDef.h:367

References RequestItemsText.

Referenced by PlayerMenu::SendQuestGiverRequestItems().

◆ GetRequiredClasses()

uint32 Quest::GetRequiredClasses ( ) const
inline
232{ return RequiredClasses; }
uint32 RequiredClasses
Definition: QuestDef.h:386

References RequiredClasses.

Referenced by Player::SatisfyQuestClass().

◆ GetRequiredMaxRepFaction()

uint32 Quest::GetRequiredMaxRepFaction ( ) const
inline
242{ return RequiredMaxRepFaction; }
uint32 RequiredMaxRepFaction
Definition: QuestDef.h:397

References RequiredMaxRepFaction.

Referenced by Player::SatisfyQuestReputation().

◆ GetRequiredMaxRepValue()

int32 Quest::GetRequiredMaxRepValue ( ) const
inline
243{ return RequiredMaxRepValue; }
int32 RequiredMaxRepValue
Definition: QuestDef.h:398

References RequiredMaxRepValue.

Referenced by Player::SatisfyQuestReputation().

◆ GetRequiredMinRepFaction()

uint32 Quest::GetRequiredMinRepFaction ( ) const
inline
240{ return RequiredMinRepFaction; }
uint32 RequiredMinRepFaction
Definition: QuestDef.h:395

References RequiredMinRepFaction.

Referenced by Player::SatisfyQuestReputation().

◆ GetRequiredMinRepValue()

int32 Quest::GetRequiredMinRepValue ( ) const
inline
241{ return RequiredMinRepValue; }
int32 RequiredMinRepValue
Definition: QuestDef.h:396

References RequiredMinRepValue.

Referenced by Player::SatisfyQuestReputation().

◆ GetRequiredSkill()

uint32 Quest::GetRequiredSkill ( ) const
inline
234{ return RequiredSkillId; }
uint32 RequiredSkillId
Definition: QuestDef.h:393

References RequiredSkillId.

Referenced by Player::SatisfyQuestSkill().

◆ GetRequiredSkillValue()

uint32 Quest::GetRequiredSkillValue ( ) const
inline
235{ return RequiredSkillPoints; }
uint32 RequiredSkillPoints
Definition: QuestDef.h:394

References RequiredSkillPoints.

Referenced by Player::SatisfyQuestSkill().

◆ GetRewArenaPoints()

◆ GetRewChoiceItemsCount()

◆ GetRewHonorAddition()

uint32 Quest::GetRewHonorAddition ( ) const
inline

◆ GetRewHonorMultiplier()

float Quest::GetRewHonorMultiplier ( ) const
inline

◆ GetRewItemsCount()

◆ GetRewMailDelaySecs()

uint32 Quest::GetRewMailDelaySecs ( ) const
inline
272{ return RewardMailDelay; }
uint32 RewardMailDelay
Definition: QuestDef.h:392

References RewardMailDelay.

Referenced by quest_commandscript::HandleQuestReward(), and Player::RewardQuest().

◆ GetRewMailSenderEntry()

uint32 Quest::GetRewMailSenderEntry ( ) const
inline
273{ return RewardMailSenderEntry; }
uint32 RewardMailSenderEntry
Definition: QuestDef.h:400

References RewardMailSenderEntry.

Referenced by quest_commandscript::HandleQuestReward(), and Player::RewardQuest().

◆ GetRewMailTemplateId()

uint32 Quest::GetRewMailTemplateId ( ) const
inline
271{ return RewardMailTemplateId; }
uint32 RewardMailTemplateId
Definition: QuestDef.h:391

References RewardMailTemplateId.

Referenced by quest_commandscript::HandleQuestReward(), and Player::RewardQuest().

◆ GetRewMoneyMaxLevel()

uint32 Quest::GetRewMoneyMaxLevel ( ) const
259{
261 return 0;
262
263 return static_cast<int32>(RewardBonusMoney * sWorld->getRate(RATE_REWARD_BONUS_MONEY) * sWorld->getRate(RATE_DROP_MONEY));
264}
@ QUEST_FLAGS_NO_MONEY_FROM_XP
Definition: QuestDef.h:140
@ RATE_REWARD_BONUS_MONEY
Definition: IWorld.h:463
@ RATE_DROP_MONEY
Definition: IWorld.h:462
bool HasFlag(uint32 flag) const
Definition: QuestDef.h:218

References HasFlag(), QUEST_FLAGS_NO_MONEY_FROM_XP, RATE_DROP_MONEY, RATE_REWARD_BONUS_MONEY, RewardBonusMoney, and sWorld.

Referenced by quest_commandscript::HandleQuestReward(), InitializeQueryData(), Player::RewardQuest(), PlayerMenu::SendQuestGiverOfferReward(), PlayerMenu::SendQuestGiverQuestDetails(), PlayerMenu::SendQuestQueryResponse(), and Player::SendQuestReward().

◆ GetRewOrReqMoney()

int32 Quest::GetRewOrReqMoney ( uint8  playerLevel = 0) const
240{
241 int32 rewardedMoney = RewardMoney;
242 if (rewardedMoney < 0)
243 {
244 return rewardedMoney;
245 }
246
247 if (playerLevel && RewardMoneyDifficulty)
248 {
249 if (uint32 questRewardedMoney = sObjectMgr->GetQuestMoneyReward(playerLevel, RewardMoneyDifficulty))
250 {
251 rewardedMoney = questRewardedMoney;
252 }
253 }
254
255 return static_cast<int32>(rewardedMoney * sWorld->getRate(RATE_DROP_MONEY));
256}
#define sObjectMgr
Definition: ObjectMgr.h:1640

References RATE_DROP_MONEY, RewardMoney, RewardMoneyDifficulty, sObjectMgr, and sWorld.

Referenced by Player::CanCompleteQuest(), Player::CanRewardQuest(), WorldSession::HandleLfgPlayerLockInfoRequestOpcode(), quest_commandscript::HandleQuestComplete(), quest_commandscript::HandleQuestReward(), InitializeQueryData(), Player::RewardQuest(), WorldSession::SendLfgPlayerReward(), PlayerMenu::SendQuestGiverOfferReward(), PlayerMenu::SendQuestGiverQuestDetails(), PlayerMenu::SendQuestGiverRequestItems(), PlayerMenu::SendQuestQueryResponse(), and Player::SendQuestReward().

◆ GetRewSpell()

◆ GetRewSpellCast()

◆ GetSrcItemCount()

uint32 Quest::GetSrcItemCount ( ) const
inline
256{ return StartItemCount; }
uint32 StartItemCount
Definition: QuestDef.h:399

References StartItemCount.

Referenced by Player::CanAddQuest(), Player::GiveQuestSourceItem(), and Player::TakeQuestSourceItem().

◆ GetSrcItemId()

◆ GetSrcSpell()

uint32 Quest::GetSrcSpell ( ) const
inline
257{ return SourceSpellid; }
uint32 SourceSpellid
Definition: QuestDef.h:387

References SourceSpellid.

◆ GetSuggestedPlayers()

◆ GetTimeAllowed()

uint32 Quest::GetTimeAllowed ( ) const
inline
245{ return TimeAllowed; }

References TimeAllowed.

Referenced by Player::AddQuest().

◆ GetTitle()

◆ GetType()

uint32 Quest::GetType ( ) const
inline
231{ return Type; }

References Type.

Referenced by InitializeQueryData(), and PlayerMenu::SendQuestQueryResponse().

◆ GetXPId()

uint32 Quest::GetXPId ( ) const
inline

◆ GetZoneOrSort()

◆ HasFlag()

◆ HasSpecialFlag()

◆ InitializeQueryData()

void Quest::InitializeQueryData ( )
325{
327
328 queryData << uint32(GetQuestId()); // quest id
329 queryData << uint32(GetQuestMethod()); // Accepted values: 0, 1 or 2. 0 == IsAutoComplete() (skip objectives/details)
330 queryData << uint32(GetQuestLevel()); // may be -1, static data, in other cases must be used dynamic level: Player::GetQuestLevel (0 is not known, but assuming this is no longer valid for quest intended for client)
331 queryData << uint32(GetMinLevel()); // min level
332 queryData << uint32(GetZoneOrSort()); // zone or sort to display in quest log
333
334 queryData << uint32(GetType()); // quest type
335 queryData << uint32(GetSuggestedPlayers()); // suggested players count
336
337 queryData << uint32(GetRepObjectiveFaction()); // shown in quest log as part of quest objective
338 queryData << uint32(GetRepObjectiveValue()); // shown in quest log as part of quest objective
339
340 queryData << uint32(GetRepObjectiveFaction2()); // shown in quest log as part of quest objective OPPOSITE faction
341 queryData << uint32(GetRepObjectiveValue2()); // shown in quest log as part of quest objective OPPOSITE faction
342
343 queryData << uint32(GetNextQuestInChain()); // client will request this quest from NPC, if not 0
344 queryData << uint32(GetXPId()); // used for calculating rewarded experience
345
347 queryData << uint32(0); // Hide money rewarded
348 else
349 queryData << int32(GetRewOrReqMoney()); // reward money (below max lvl)
350
351 queryData << uint32(GetRewMoneyMaxLevel()); // used in XP calculation at client
352 queryData << uint32(GetRewSpell()); // reward spell, this spell will display (icon) (casted if RewSpellCast == 0)
353 queryData << int32(GetRewSpellCast()); // casted spell
354
355 // rewarded honor points
358 queryData << uint32(GetSrcItemId()); // source item id
359 queryData << uint32(GetFlags() & 0xFFFF); // quest flags
360 queryData << uint32(GetCharTitleId()); // CharTitleId, new 2.4.0, player gets this title (id from CharTitles)
361 queryData << uint32(GetPlayersSlain()); // players slain
362 queryData << uint32(GetBonusTalents()); // bonus talents
363 queryData << uint32(GetRewArenaPoints()); // bonus arena points
364 queryData << uint32(0); // review rep show mask
365
367 {
368 for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i)
369 queryData << uint32(0) << uint32(0);
370 for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
371 queryData << uint32(0) << uint32(0);
372 }
373 else
374 {
375 for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i)
376 {
379 }
380 for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
381 {
384 }
385 }
386
387 for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // reward factions ids
389
390 for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // columnid+1 QuestFactionReward.dbc?
392
393 for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // unk (0)
395
397 queryData << GetPOIx();
398 queryData << GetPOIy();
400
401 queryData << GetTitle();
405 queryData << GetCompletedText(); // display in quest objectives window once all objectives are completed
406
407 for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
408 {
409 if (RequiredNpcOrGo[i] < 0)
410 queryData << uint32((RequiredNpcOrGo[i] * (-1)) | 0x80000000); // client expects gameobject template id in form (id|0x80000000)
411 else
413
416 queryData << uint32(0); // req source count?
417 }
418
419 for (uint32 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
420 {
423 }
424
425 for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
427}
@ QUEST_FLAGS_HIDDEN_REWARDS
Definition: QuestDef.h:141
@ SMSG_QUEST_QUERY_RESPONSE
Definition: Opcodes.h:123
int32 GetRewArenaPoints() const
Definition: QuestDef.h:253
int32 GetRepObjectiveValue() const
Definition: QuestDef.h:237
uint32 GetRewSpell() const
Definition: QuestDef.h:269
uint32 GetRewMoneyMaxLevel() const
Definition: QuestDef.cpp:258
int32 GetRepObjectiveValue2() const
Definition: QuestDef.h:239
uint32 GetRepObjectiveFaction() const
Definition: QuestDef.h:236
uint32 GetRepObjectiveFaction2() const
Definition: QuestDef.h:238
uint32 GetCharTitleId() const
Definition: QuestDef.h:250
WorldPacket queryData
Definition: QuestDef.h:325
float GetPOIy() const
Definition: QuestDef.h:276
uint32 GetMinLevel() const
Definition: QuestDef.h:228
std::string const & GetObjectives() const
Definition: QuestDef.h:260
uint32 GetPOIContinent() const
Definition: QuestDef.h:274
std::string const & GetDetails() const
Definition: QuestDef.h:259
int32 GetZoneOrSort() const
Definition: QuestDef.h:227
int32 GetQuestLevel() const
Definition: QuestDef.h:230
uint32 GetFlags() const
Definition: QuestDef.h:283
uint32 GetPlayersSlain() const
Definition: QuestDef.h:251
std::string const & GetCompletedText() const
Definition: QuestDef.h:264
uint32 GetQuestId() const
Definition: QuestDef.h:225
uint32 GetType() const
Definition: QuestDef.h:231
uint32 GetPointOpt() const
Definition: QuestDef.h:277
uint32 GetXPId() const
Definition: QuestDef.h:254
std::string const & GetAreaDescription() const
Definition: QuestDef.h:263
uint32 GetSrcItemId() const
Definition: QuestDef.h:255
int32 GetRewOrReqMoney(uint8 playerLevel=0) const
Definition: QuestDef.cpp:239
std::string const & GetTitle() const
Definition: QuestDef.h:258
float GetPOIx() const
Definition: QuestDef.h:275
int32 GetRewSpellCast() const
Definition: QuestDef.h:270
uint32 GetBonusTalents() const
Definition: QuestDef.h:252
uint32 GetQuestMethod() const
Definition: QuestDef.h:226
uint32 GetNextQuestInChain() const
Definition: QuestDef.h:249
uint32 GetSuggestedPlayers() const
Definition: QuestDef.h:244
void Initialize(uint16 opcode, size_t newres=200)
Definition: WorldPacket.h:69

References GetAreaDescription(), GetBonusTalents(), GetCharTitleId(), GetCompletedText(), GetDetails(), GetFlags(), GetMinLevel(), GetNextQuestInChain(), GetObjectives(), GetPlayersSlain(), GetPOIContinent(), GetPointOpt(), GetPOIx(), GetPOIy(), GetQuestId(), GetQuestLevel(), GetQuestMethod(), GetRepObjectiveFaction(), GetRepObjectiveFaction2(), GetRepObjectiveValue(), GetRepObjectiveValue2(), GetRewArenaPoints(), GetRewHonorAddition(), GetRewHonorMultiplier(), GetRewMoneyMaxLevel(), GetRewOrReqMoney(), GetRewSpell(), GetRewSpellCast(), GetSrcItemId(), GetSuggestedPlayers(), GetTitle(), GetType(), GetXPId(), GetZoneOrSort(), HasFlag(), WorldPacket::Initialize(), ItemDrop, ObjectiveText, queryData, QUEST_FLAGS_HIDDEN_REWARDS, QUEST_ITEM_OBJECTIVES_COUNT, QUEST_OBJECTIVES_COUNT, QUEST_REPUTATIONS_COUNT, QUEST_REWARD_CHOICES_COUNT, QUEST_REWARDS_COUNT, RequiredItemCount, RequiredItemId, RequiredNpcOrGo, RequiredNpcOrGoCount, RewardChoiceItemCount, RewardChoiceItemId, RewardFactionId, RewardFactionValueId, RewardFactionValueIdOverride, RewardItemId, RewardItemIdCount, and SMSG_QUEST_QUERY_RESPONSE.

◆ IsAllowedInRaid()

bool Quest::IsAllowedInRaid ( Difficulty  difficulty) const
294{
295 if (IsRaidQuest(difficulty))
296 return true;
297
298 return sWorld->getBoolConfig(CONFIG_QUEST_IGNORE_RAID);
299}
@ CONFIG_QUEST_IGNORE_RAID
Definition: IWorld.h:101
bool IsRaidQuest(Difficulty difficulty) const
Definition: QuestDef.cpp:276

References CONFIG_QUEST_IGNORE_RAID, IsRaidQuest(), and sWorld.

Referenced by Player::HasQuestForGO(), Player::HasQuestForItem(), Player::KilledMonsterCredit(), and Player::KilledPlayerCredit().

◆ IsAutoAccept()

bool Quest::IsAutoAccept ( ) const
267{
269}
@ QUEST_FLAGS_AUTO_ACCEPT
Definition: QuestDef.h:151

References HasFlag(), and QUEST_FLAGS_AUTO_ACCEPT.

◆ IsAutoComplete()

◆ IsDaily()

◆ IsDailyOrWeekly()

bool Quest::IsDailyOrWeekly ( ) const
inline
@ QUEST_FLAGS_WEEKLY
Definition: QuestDef.h:147

References Flags, QUEST_FLAGS_DAILY, and QUEST_FLAGS_WEEKLY.

Referenced by npc_wg_quest_giver::GetDialogStatus(), and Player::GetQuestDialogStatus().

◆ IsDFQuest()

bool Quest::IsDFQuest ( ) const
inline

◆ IsMonthly()

◆ IsPVPQuest()

bool Quest::IsPVPQuest ( ) const
inline
292{ return Type == QUEST_TYPE_PVP; }
@ QUEST_TYPE_PVP
Definition: SharedDefines.h:2777

References QUEST_TYPE_PVP, and Type.

Referenced by Player::KilledMonsterCredit().

◆ IsRaidQuest()

bool Quest::IsRaidQuest ( Difficulty  difficulty) const
277{
278 switch (Type)
279 {
280 case QUEST_TYPE_RAID:
281 return true;
283 return !(difficulty & RAID_DIFFICULTY_MASK_25MAN);
285 return difficulty & RAID_DIFFICULTY_MASK_25MAN;
286 default:
287 break;
288 }
289
290 return false;
291}
#define RAID_DIFFICULTY_MASK_25MAN
Definition: DBCEnums.h:287
@ QUEST_TYPE_RAID
Definition: SharedDefines.h:2778
@ QUEST_TYPE_RAID_25
Definition: SharedDefines.h:2785
@ QUEST_TYPE_RAID_10
Definition: SharedDefines.h:2784

References QUEST_TYPE_RAID, QUEST_TYPE_RAID_10, QUEST_TYPE_RAID_25, RAID_DIFFICULTY_MASK_25MAN, and Type.

Referenced by IsAllowedInRaid().

◆ IsRepeatable()

◆ IsSeasonal()

bool Quest::IsSeasonal ( ) const
inline
@ QUEST_SORT_LOVE_IS_IN_THE_AIR
Definition: SharedDefines.h:2831
@ QUEST_SORT_SPECIAL
Definition: SharedDefines.h:2815
@ QUEST_SORT_BREWFEST
Definition: SharedDefines.h:2825
@ QUEST_SORT_NOBLEGARDEN
Definition: SharedDefines.h:2829
@ QUEST_SORT_MIDSUMMER
Definition: SharedDefines.h:2824
@ QUEST_SORT_LUNAR_FESTIVAL
Definition: SharedDefines.h:2821
@ QUEST_SORT_SEASONAL
Definition: SharedDefines.h:2793
bool IsRepeatable() const
Definition: QuestDef.h:280

References IsRepeatable(), QUEST_SORT_BREWFEST, QUEST_SORT_LOVE_IS_IN_THE_AIR, QUEST_SORT_LUNAR_FESTIVAL, QUEST_SORT_MIDSUMMER, QUEST_SORT_NOBLEGARDEN, QUEST_SORT_SEASONAL, QUEST_SORT_SPECIAL, and ZoneOrSort.

Referenced by Player::CanCompleteQuest(), Player::GetQuestRewardStatus(), quest_commandscript::HandleQuestReward(), Player::RewardQuest(), Player::SatisfyQuestExclusiveGroup(), Player::SatisfyQuestPreviousQuest(), and Player::SatisfyQuestSeasonal().

◆ IsWeekly()

◆ LoadQuestDetails()

void Quest::LoadQuestDetails ( Field fields)
147{
148 for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
149 DetailsEmote[i] = fields[1 + i].Get<uint16>();
150
151 for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
152 DetailsEmoteDelay[i] = fields[5 + i].Get<uint32>();
153}

References DetailsEmote, DetailsEmoteDelay, and QUEST_EMOTE_COUNT.

◆ LoadQuestOfferReward()

void Quest::LoadQuestOfferReward ( Field fields)
163{
164 for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
165 OfferRewardEmote[i] = fields[1 + i].Get<uint16>();
166
167 for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
168 OfferRewardEmoteDelay[i] = fields[5 + i].Get<uint32>();
169
170 OfferRewardText = fields[9].Get<std::string>();
171}

References Field::Get(), OfferRewardEmote, OfferRewardEmoteDelay, OfferRewardText, and QUEST_EMOTE_COUNT.

◆ LoadQuestRequestItems()

void Quest::LoadQuestRequestItems ( Field fields)
156{
157 EmoteOnComplete = fields[1].Get<uint16>();
158 EmoteOnIncomplete = fields[2].Get<uint16>();
159 RequestItemsText = fields[3].Get<std::string>();
160}

References EmoteOnComplete, EmoteOnIncomplete, Field::Get(), and RequestItemsText.

◆ LoadQuestTemplateAddon()

void Quest::LoadQuestTemplateAddon ( Field fields)
174{
175 MaxLevel = fields[1].Get<uint8>();
176 RequiredClasses = fields[2].Get<uint32>();
177 SourceSpellid = fields[3].Get<uint32>();
178 PrevQuestId = fields[4].Get<int32>();
179 NextQuestId = fields[5].Get<uint32>();
180 ExclusiveGroup = fields[6].Get<int32>();
181 RewardMailTemplateId = fields[7].Get<uint32>();
182 RewardMailDelay = fields[8].Get<uint32>();
183 RequiredSkillId = fields[9].Get<uint16>();
184 RequiredSkillPoints = fields[10].Get<uint16>();
185 RequiredMinRepFaction = fields[11].Get<uint16>();
186 RequiredMaxRepFaction = fields[12].Get<uint16>();
187 RequiredMinRepValue = fields[13].Get<int32>();
188 RequiredMaxRepValue = fields[14].Get<int32>();
189 StartItemCount = fields[15].Get<uint8>();
190 RewardMailSenderEntry = fields[16].Get<uint32>();
191 SpecialFlags = fields[17].Get<uint8>();
192
194 {
196 }
197}
@ QUEST_SPECIAL_FLAGS_AUTO_ACCEPT
Definition: QuestDef.h:162

References CONFIG_QUEST_IGNORE_AUTO_ACCEPT, ExclusiveGroup, Flags, Field::Get(), MaxLevel, NextQuestId, PrevQuestId, QUEST_FLAGS_AUTO_ACCEPT, QUEST_SPECIAL_FLAGS_AUTO_ACCEPT, RequiredClasses, RequiredMaxRepFaction, RequiredMaxRepValue, RequiredMinRepFaction, RequiredMinRepValue, RequiredSkillId, RequiredSkillPoints, RewardMailDelay, RewardMailSenderEntry, RewardMailTemplateId, SourceSpellid, SpecialFlags, StartItemCount, and sWorld.

◆ SetEventIdForQuest()

void Quest::SetEventIdForQuest ( uint16  eventId)
inline
328{ _eventIdForQuest = eventId; }

References _eventIdForQuest.

◆ SetFlag()

void Quest::SetFlag ( uint32  flag)
inline
219{ Flags |= flag; }

References Flags.

◆ SetSpecialFlag()

void Quest::SetSpecialFlag ( uint32  flag)
inline
222{ SpecialFlags |= flag; }

References SpecialFlags.

Referenced by ObjectMgr::LoadQuests().

◆ XPValue()

uint32 Quest::XPValue ( uint8  playerLevel = 0) const
200{
201 int32 quest_level = (Level == -1 ? playerLevel : Level);
202 const QuestXPEntry* xpentry = sQuestXPStore.LookupEntry(quest_level);
203 if (!xpentry)
204 {
205 return 0;
206 }
207
208 int32 diffFactor = 2 * (quest_level - playerLevel) + 20;
209 if (diffFactor < 1)
210 {
211 diffFactor = 1;
212 }
213 else if (diffFactor > 10)
214 {
215 diffFactor = 10;
216 }
217
218 uint32 xp = diffFactor * xpentry->Exp[RewardXPDifficulty] / 10;
219 if (xp <= 100)
220 {
221 xp = 5 * ((xp + 2) / 5);
222 }
223 else if (xp <= 500)
224 {
225 xp = 10 * ((xp + 5) / 10);
226 }
227 else if (xp <= 1000)
228 {
229 xp = 25 * ((xp + 12) / 25);
230 }
231 else
232 {
233 xp = 50 * ((xp + 25) / 50);
234 }
235
236 return xp;
237}
DBCStorage< QuestXPEntry > sQuestXPStore(QuestXPfmt)
Definition: DBCStructure.h:1450
uint32 Exp[10]
Definition: DBCStructure.h:1452

References QuestXPEntry::Exp, Level, RewardXPDifficulty, and sQuestXPStore.

Referenced by WorldSession::HandleLfgPlayerLockInfoRequestOpcode(), quest_commandscript::HandleQuestReward(), Player::RewardQuest(), WorldSession::SendLfgPlayerReward(), PlayerMenu::SendQuestGiverOfferReward(), and PlayerMenu::SendQuestGiverQuestDetails().

Friends And Related Function Documentation

◆ ObjectMgr

friend class ObjectMgr
friend

Member Data Documentation

◆ _eventIdForQuest

uint16 Quest::_eventIdForQuest
private

◆ _reqCreatureOrGOcount

uint32 Quest::_reqCreatureOrGOcount
private

Referenced by GetReqCreatureOrGOcount(), and Quest().

◆ _reqItemsCount

uint32 Quest::_reqItemsCount
private

Referenced by GetReqItemsCount(), and Quest().

◆ _rewChoiceItemsCount

uint32 Quest::_rewChoiceItemsCount
private

Referenced by GetRewChoiceItemsCount(), and Quest().

◆ _rewItemsCount

uint32 Quest::_rewItemsCount
private

Referenced by GetRewItemsCount(), and Quest().

◆ AllowableRaces

uint32 Quest::AllowableRaces
protected

◆ AreaDescription

std::string Quest::AreaDescription
protected

Referenced by GetAreaDescription(), and Quest().

◆ CompletedText

std::string Quest::CompletedText
protected

Referenced by GetCompletedText(), and Quest().

◆ Details

std::string Quest::Details
protected

Referenced by GetDetails(), and Quest().

◆ DetailsEmote

◆ DetailsEmoteDelay

◆ EmoteOnComplete

uint32 Quest::EmoteOnComplete
protected

◆ EmoteOnIncomplete

uint32 Quest::EmoteOnIncomplete
protected

◆ ExclusiveGroup

int32 Quest::ExclusiveGroup = 0
protected

◆ Flags

◆ Id

uint32 Quest::Id
protected

Referenced by GetQuestId(), and Quest().

◆ ItemDrop

◆ ItemDropQuantity

◆ Level

int32 Quest::Level
protected

Referenced by GetQuestLevel(), Quest(), and XPValue().

◆ MaxLevel

uint32 Quest::MaxLevel = 0
protected

◆ Method

uint32 Quest::Method
protected

Referenced by GetQuestMethod(), and Quest().

◆ MinLevel

uint32 Quest::MinLevel
protected

Referenced by GetMinLevel(), and Quest().

◆ NextQuestId

uint32 Quest::NextQuestId = 0
protected

◆ Objectives

std::string Quest::Objectives
protected

Referenced by GetObjectives(), and Quest().

◆ ObjectiveText

std::string Quest::ObjectiveText[QUEST_OBJECTIVES_COUNT]

◆ OfferRewardEmote

◆ OfferRewardEmoteDelay

◆ OfferRewardText

std::string Quest::OfferRewardText
protected

◆ POIContinent

uint32 Quest::POIContinent
protected

Referenced by GetPOIContinent(), and Quest().

◆ POIPriority

uint32 Quest::POIPriority
protected

Referenced by GetPointOpt(), and Quest().

◆ POIx

float Quest::POIx
protected

Referenced by GetPOIx(), and Quest().

◆ POIy

float Quest::POIy
protected

Referenced by GetPOIy(), and Quest().

◆ prevChainQuests

PrevChainQuests Quest::prevChainQuests

◆ PrevQuestId

int32 Quest::PrevQuestId = 0
protected

◆ prevQuests

◆ queryData

WorldPacket Quest::queryData

Referenced by InitializeQueryData().

◆ RequestItemsText

std::string Quest::RequestItemsText
protected

◆ RequiredClasses

uint32 Quest::RequiredClasses = 0
protected

◆ RequiredFactionId1

uint32 Quest::RequiredFactionId1
protected

◆ RequiredFactionId2

uint32 Quest::RequiredFactionId2
protected

◆ RequiredFactionValue1

int32 Quest::RequiredFactionValue1
protected

◆ RequiredFactionValue2

int32 Quest::RequiredFactionValue2
protected

◆ RequiredItemCount

◆ RequiredItemId

◆ RequiredMaxRepFaction

uint32 Quest::RequiredMaxRepFaction = 0
protected

◆ RequiredMaxRepValue

int32 Quest::RequiredMaxRepValue = 0
protected

◆ RequiredMinRepFaction

uint32 Quest::RequiredMinRepFaction = 0
protected

◆ RequiredMinRepValue

int32 Quest::RequiredMinRepValue = 0
protected

◆ RequiredNpcOrGo

◆ RequiredNpcOrGoCount

◆ RequiredPlayerKills

uint32 Quest::RequiredPlayerKills
protected

◆ RequiredSkillId

uint32 Quest::RequiredSkillId = 0
protected

◆ RequiredSkillPoints

uint32 Quest::RequiredSkillPoints = 0
protected

◆ RewardArenaPoints

int32 Quest::RewardArenaPoints
protected

Referenced by GetRewArenaPoints(), and Quest().

◆ RewardBonusMoney

uint32 Quest::RewardBonusMoney
protected

Referenced by GetRewMoneyMaxLevel(), and Quest().

◆ RewardChoiceItemCount

◆ RewardChoiceItemId

◆ RewardDisplaySpell

uint32 Quest::RewardDisplaySpell
protected

◆ RewardFactionId

◆ RewardFactionValueId

◆ RewardFactionValueIdOverride

◆ RewardHonor

uint32 Quest::RewardHonor
protected

Referenced by GetRewHonorAddition(), and Quest().

◆ RewardItemId

◆ RewardItemIdCount

◆ RewardKillHonor

float Quest::RewardKillHonor
protected

Referenced by GetRewHonorMultiplier(), and Quest().

◆ RewardMailDelay

uint32 Quest::RewardMailDelay = 0
protected

◆ RewardMailSenderEntry

uint32 Quest::RewardMailSenderEntry = 0
protected

◆ RewardMailTemplateId

uint32 Quest::RewardMailTemplateId = 0
protected

◆ RewardMoney

int32 Quest::RewardMoney
protected

Referenced by GetRewOrReqMoney(), and Quest().

◆ RewardMoneyDifficulty

uint32 Quest::RewardMoneyDifficulty
protected

Referenced by GetRewOrReqMoney(), and Quest().

◆ RewardNextQuest

uint32 Quest::RewardNextQuest
protected

◆ RewardSpell

int32 Quest::RewardSpell
protected

◆ RewardTalents

uint32 Quest::RewardTalents
protected

Referenced by GetBonusTalents(), and Quest().

◆ RewardTitleId

uint32 Quest::RewardTitleId
protected

◆ RewardXPDifficulty

uint32 Quest::RewardXPDifficulty
protected

Referenced by GetXPId(), Quest(), and XPValue().

◆ SourceSpellid

uint32 Quest::SourceSpellid = 0
protected

◆ SpecialFlags

◆ StartItem

uint32 Quest::StartItem
protected

◆ StartItemCount

uint32 Quest::StartItemCount = 0
protected

◆ SuggestedPlayers

uint32 Quest::SuggestedPlayers
protected

Referenced by GetSuggestedPlayers(), and Quest().

◆ TimeAllowed

uint32 Quest::TimeAllowed
protected

◆ Title

std::string Quest::Title
protected

Referenced by GetTitle(), and Quest().

◆ Type

uint32 Quest::Type
protected

◆ ZoneOrSort

int32 Quest::ZoneOrSort
protected