59 for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
61 uint32 quest_id = i->second;
71 for (QuestRelations::const_iterator i = objectQR.first; i != objectQR.second; ++i)
73 uint32 quest_id = i->second;
91 if (questMenu.
Empty())
123 if ((quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly()) || quest->HasFlag(
QUEST_FLAGS_AUTOCOMPLETE))
136 std::string title =
"";
193 return sObjectMgr->GetQuestTemplate(nextQuestID);
199 objectQR =
sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
211 objectQR =
sObjectMgr->GetGOQuestRelationBounds(gameObject->GetEntry());
221 for (QuestRelations::const_iterator itr = objectQR.first; itr != objectQR.second; ++itr)
223 if (itr->second == nextQuestID)
224 return sObjectMgr->GetQuestTemplate(nextQuestID);
311 switch (questObjective->
Type)
389 switch (questObjective->
Type)
529 qtime =
static_cast<uint32>(time(NULL)) + limittime;
532 questStatusData.
Timer = 0;
577 uint32 zone = 0, area = 0;
602 uint32 zone = 0, area = 0;
635 switch (questObjective->
Type)
724 for (Unit::AuraEffectList::const_iterator i = ModXPPctAuras.begin(); i != ModXPPctAuras.end(); ++i)
725 AddPct(XP, (*i)->GetAmount());
839 for (QuestObjectiveSet::const_iterator citr = quest->m_questObjectives.begin(); citr != quest->m_questObjectives.end(); ++citr)
844 if (quest->RequiredSourceItemId[i] > 0 && quest->RequiredSourceItemCount[i] > 0)
846 DestroyItemCount(quest->RequiredSourceItemId[i], quest->RequiredSourceItemCount[i],
true,
true);
864 SF_LOG_DEBUG(
"misc",
"SatisfyQuestSkill: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required skill value.", qInfo->
GetQuestId());
880 SF_LOG_DEBUG(
"misc",
"SatisfyQuestLevel: Sent INVALIDREASON_QUEST_FAILED_LOW_LEVEL (questId: %u) because player does not have required (min) level.", qInfo->
GetQuestId());
889 SF_LOG_DEBUG(
"misc",
"SatisfyQuestLevel: Sent INVALIDREASON_QUEST_FAILED_LOW_LEVEL (questId: %u) because player does not have required (max) level.", qInfo->
GetQuestId());
906 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTLOG_FULL");
917 for (Quest::PrevQuests::const_iterator iter = qInfo->
prevQuests.begin(); iter != qInfo->
prevQuests.end(); ++iter)
919 uint32 prevId = abs(*iter);
936 for (; range.first != range.second; ++range.first)
938 uint32 exclude_Id = range.first->second;
941 if (exclude_Id == prevId)
950 SF_LOG_DEBUG(
"misc",
"SatisfyQuestPreviousQuest: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required quest (1).", qInfo->
GetQuestId());
969 for (; range.first != range.second; ++range.first)
971 uint32 exclude_Id = range.first->second;
974 if (exclude_Id == prevId)
983 SF_LOG_DEBUG(
"misc",
"SatisfyQuestPreviousQuest: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required quest (2).", qInfo->
GetQuestId());
998 SF_LOG_DEBUG(
"misc",
"SatisfyQuestPreviousQuest: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required quest (3).", qInfo->
GetQuestId());
1016 SF_LOG_DEBUG(
"misc",
"SatisfyQuestClass: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required class.", qInfo->
GetQuestId());
1035 SF_LOG_DEBUG(
"misc",
"SatisfyQuestRace: Sent INVALIDREASON_QUEST_FAILED_WRONG_RACE (questId: %u) because player does not have required race.", qInfo->
GetQuestId());
1050 SF_LOG_DEBUG(
"misc",
"SatisfyQuestReputation: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required reputation (min).", qInfo->
GetQuestId());
1061 SF_LOG_DEBUG(
"misc",
"SatisfyQuestReputation: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required reputation (max).", qInfo->
GetQuestId());
1080 SF_LOG_DEBUG(
"misc",
"SatisfyQuestReputation: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not have required reputation (ReputationObjective2).", qInfo->
GetQuestId());
1097 SF_LOG_DEBUG(
"misc",
"SatisfyQuestStatus: Sent INVALIDREASON_QUEST_ALREADY_ON (questId: %u) because player quest status is not NONE.", qInfo->
GetQuestId());
1107 if (!
sConditionMgr->IsObjectMeetToConditions(
this, conditions))
1112 SF_LOG_DEBUG(
"misc",
"SatisfyQuestConditions: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player does not meet conditions.", qInfo->
GetQuestId());
1114 SF_LOG_DEBUG(
"condition",
"Player::SatisfyQuestConditions: conditions not met for quest %u", qInfo->
GetQuestId());
1127 SF_LOG_DEBUG(
"misc",
"SatisfyQuestTimed: Sent INVALIDREASON_QUEST_ONLY_ONE_TIMED (questId: %u) because player is already on a timed quest.", qInfo->
GetQuestId());
1142 for (; range.first != range.second; ++range.first)
1144 uint32 exclude_Id = range.first->second;
1157 SF_LOG_DEBUG(
"misc",
"SatisfyQuestExclusiveGroup: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player already did daily quests in exclusive group.", qInfo->
GetQuestId());
1169 SF_LOG_DEBUG(
"misc",
"SatisfyQuestExclusiveGroup: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player already did quest in exclusive group.", qInfo->
GetQuestId());
1189 SF_LOG_DEBUG(
"misc",
"SatisfyQuestNextChain: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player already did or started next quest in chain.", qInfo->
GetQuestId());
1208 QuestStatusMap::const_iterator itr =
m_QuestStatus.find(*iter);
1216 SF_LOG_DEBUG(
"misc",
"SatisfyQuestNextChain: Sent INVALIDREASON_DONT_HAVE_REQ (questId: %u) because player already did or started next quest in chain.", qInfo->
GetQuestId());
1244 bool have_slot =
false;
1260 SF_LOG_DEBUG(
"misc",
"SatisfyQuestDay: Sent INVALIDREASON_DAILY_QUESTS_REMAINING (questId: %u) because player already did all possible quests today.", qInfo->
GetQuestId());
1348 bool destroyItem =
true;
1350 if (item->
StartQuest == questId && srcItemId == (*citr)->ObjectId)
1351 destroyItem =
false;
1379 QuestStatusMap::const_iterator itr =
m_QuestStatus.find(quest_id);
1381 return itr->second.Status;
1395 QuestStatusMap::const_iterator itr =
m_QuestStatus.find(quest_id);
1410 uint32 zone = 0, area = 0;
1413 if (saBounds.first != saBounds.second)
1417 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
1418 if (itr->second->autocast && itr->second->IsFitToRequirements(
this, zone, area))
1419 if (!
HasAura(itr->second->spellId))
1420 CastSpell(
this, itr->second->spellId,
true);
1423 saBounds =
sSpellMgr->GetSpellAreaForQuestEndMapBounds(quest_id);
1424 if (saBounds.first != saBounds.second)
1429 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
1430 if (!itr->second->IsFitToRequirements(
this, zone, area))
1440 QuestStatusMap::iterator itr =
m_QuestStatus.find(quest_id);
1445 for (QuestObjectiveSet::const_iterator citr = quest->m_questObjectives.begin(); citr != quest->m_questObjectives.end(); ++citr)
1447 uint32 objectiveId = (*citr)->Id;
1540 val &= ~((
uint64)0xFFFF << (counter * 16));
1541 val |= ((
uint64)count << (counter * 16));
1599 Player* player = itr->GetSource();
1637 if (currentCounter < requiredCounter)
1639 uint16 addCount = currentCounter + count <= requiredCounter ? count : requiredCounter - currentCounter;
1684 if (currentCounter < requiredCounter)
1686 uint16 remainingItems = currentCounter <= requiredCounter ? count : count + requiredCounter - currentCounter;
1687 m_questObjectiveStatus[questObjective->
Id] = (currentCounter <= remainingItems) ? 0 : currentCounter - remainingItems;
1718 uint32 realEntry = entry;
1824 uint32 realEntry = entry;
1871 int16 addTalkCount = 1;
1872 uint32 realEntry = entry;
2023 if (questObjective->
Type == type && questObjective->
ObjectId == objectId)
2027 uint32 addCounter = currentCounter + amount > requiredCounter ? requiredCounter - currentCounter : amount;
2053 QuestStatusMap::const_iterator citrQs =
m_QuestStatus.find(questId);
2125 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTGIVER_QUEST_COMPLETE quest = %u", questId);
2148 data <<
uint32(moneyReward);
2165 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTGIVER_QUEST_FAILED");
2174 data <<
uint32(quest_id);
2176 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTUPDATE_FAILEDTIMER");
2188 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTGIVER_QUEST_INVALID");
2195 std::string strTitle = quest->
GetTitle();
2230 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUEST_CONFIRM_ACCEPT");
2249 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUEST_PUSH_RESULT");
2256 data <<
uint16(oldCount + addCount);
2267 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTUPDATE_ADD_KILL");
2278 data <<
uint32(oldCount + addCount);
2282 SF_LOG_DEBUG(
"network",
"WORLD: Sent SMSG_QUESTUPDATE_ADD_PVP_KILL");
2316 return citr->second;
@ CONDITION_SOURCE_TYPE_QUEST_ACCEPT
std::list< Condition * > ConditionList
@ ACHIEVEMENT_TIMED_TYPE_CREATURE
@ ACHIEVEMENT_TIMED_TYPE_QUEST
@ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE
@ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY
@ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT
@ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST
@ ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD
@ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST
@ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesEntryfmt)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
@ EQUIP_ERR_ITEM_NOT_FOUND
@ EQUIP_ERR_ITEM_MAX_COUNT
#define SF_LOG_DEBUG(filterType__,...)
@ MAIL_CHECK_MASK_HAS_BODY
uint32 GUID_HIPART(uint64 guid)
std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > QuestRelationBounds
std::vector< ItemPosCount > ItemPosCountVec
#define PLAYER_MAX_DAILY_QUESTS
@ INVALIDREASON_DONT_HAVE_REQ
@ INVALIDREASON_QUEST_ALREADY_ON
@ INVALIDREASON_QUEST_FAILED_WRONG_RACE
@ INVALIDREASON_QUEST_ONLY_ONE_TIMED
@ INVALIDREASON_QUEST_FAILED_LOW_LEVEL
@ INVALIDREASON_DAILY_QUESTS_REMAINING
@ QUEST_OBJECTIVE_TYPE_FACTION_REP2
@ QUEST_OBJECTIVE_TYPE_CURRENCY
@ QUEST_OBJECTIVE_TYPE_ITEM
@ QUEST_OBJECTIVE_TYPE_NPC
@ QUEST_OBJECTIVE_TYPE_NPC_INTERACT
@ QUEST_OBJECTIVE_TYPE_SPELL
@ QUEST_OBJECTIVE_TYPE_FACTION_REP
@ QUEST_OBJECTIVE_TYPE_DUMMY
@ QUEST_OBJECTIVE_TYPE_MONEY
@ QUEST_OBJECTIVE_TYPE_GO
@ QUEST_OBJECTIVE_TYPE_PLAYER
#define QUEST_REWARD_CURRENCY_COUNT
@ QUEST_FLAGS_AUTOCOMPLETE
@ QUEST_FLAGS_PLAYER_CAST_ACCEPT
@ QUEST_FLAGS_TRACKING_EVENT
#define MAX_QUEST_LOG_SIZE
#define QUEST_SOURCE_ITEM_COUNT
@ QUEST_STATUS_INCOMPLETE
#define QUEST_SOURCE_ITEM_IDS_COUNT
@ QUEST_SPECIAL_FLAGS_TIMED
@ QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT
@ SPELL_AURA_MOD_XP_QUEST_PCT
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
void WriteGuidBytes(const ObjectGuid &guid, Offsets... offsets)
bool WriteBit(uint32 bit)
void WriteGuidMask(const ObjectGuid &guid, Offsets... offsets)
void WriteString(std::string const &str)
void WriteBits(T value, size_t bits)
void WriteByteSeq(uint8 b)
static int32 GenerateItemRandomPropertyId(uint32 item_id)
void SendMailTo(SQLTransaction &trans, MailReceiver const &receiver, MailSender const &sender, MailCheckMask checked=MAIL_CHECK_MASK_NONE, uint32 deliver_delay=0)
GameObject * GetGameObject(uint64 guid)
Creature * GetCreature(uint64 guid)
static Creature * GetCreatureOrPetOrVehicle(WorldObject const &, uint64)
static Object * GetObjectByTypeMask(WorldObject const &, uint64, uint32 typemask)
uint32 GetUInt32Value(uint16 index) const
virtual bool hasQuest(uint32) const
void SetFlag(uint16 index, uint32 newFlag)
void RemoveFlag(uint16 index, uint32 oldFlag)
GameObject * ToGameObject()
uint64 GetUInt64Value(uint16 index) const
virtual bool hasInvolvedQuest(uint32) const
void SetUInt32Value(uint16 index, uint32 value)
void SetUInt64Value(uint16 index, uint64 value)
std::pair< ExclusiveQuestGroups::const_iterator, ExclusiveQuestGroups::const_iterator > ExclusiveQuestGroupsBounds
static void GetLocaleString(const StringVector &data, int loc_idx, std::string &value)
void ReputationChanged(FactionEntry const *factionEntry)
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=NULL, uint32 itemid=0)
void ItemRemovedQuestCheck(uint32 entry, uint32 count)
void RewardQuest(Quest const *quest, uint32 reward, Object *questGiver, bool announce=true)
void SendPreparedQuest(uint64 guid)
QuestStatusMap m_QuestStatus
uint32 GetQuestObjectiveCounter(uint32 objectiveId) const
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost=0)
bool HasPvPForcingQuest() const
void TalkedToCreature(uint32 entry, uint64 guid)
bool SatisfyQuestSeasonal(Quest const *qInfo, bool msg)
bool ModifyMoney(int64 amount, bool sendError=true)
void SendCanTakeQuestResponse(QuestFailedReason msg) const
uint16 GetQuestSlotCounter(uint16 slot, uint8 counter) const
uint32 GetGuildId() const
QuestStatusMap & getQuestStatusMap()
bool SatisfyQuestExclusiveGroup(Quest const *qInfo, bool msg)
void IncompleteQuest(uint32 quest_id)
uint16 GetSkillValue(uint32 skill) const
bool GetQuestRewardStatus(uint32 quest_id) const
uint16 FindQuestSlot(uint32 quest_id) const
void KilledMonsterCredit(uint32 entry, uint64 guid=0)
void KilledMonster(CreatureTemplate const *cInfo, uint64 guid)
void ReputationChanged2(FactionEntry const *factionEntry)
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
DFQuestsDoneList m_DFQuests
void UpdatePvPState(bool onlyFFA=false)
bool CanTakeQuest(Quest const *quest, bool msg)
bool CanCompleteQuest(uint32 quest_id)
bool SatisfyQuestDay(Quest const *qInfo, bool msg)
bool HasQuestForItem(uint32 itemId) const
void SendQuestConfirmAccept(Quest const *quest, Player *pReceiver)
void SetQuestStatus(uint32 quest_id, QuestStatus status)
bool InBattleground() const
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
void SetMonthlyQuestStatus(uint32 quest_id)
void UpdateForQuestWorldObjects()
void SetSeasonalQuestStatus(uint32 quest_id)
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
bool CanRewardQuest(Quest const *quest, bool msg)
QuestObjectiveStatusMap m_questObjectiveStatus
bool SatisfyQuestConditions(Quest const *qInfo, bool msg)
void AddQuest(Quest const *quest, Object *questGiver)
bool SatisfyQuestPrevChain(Quest const *qInfo, bool msg)
void KillCreditGO(uint32 entry, uint64 guid=0)
bool CanAddQuest(Quest const *quest, bool msg)
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
DifficultyID GetDifficulty(MapEntry const *mapEntry) const
uint16 GetReqKillOrCastCurrentCount(uint32 quest_id, int32 entry)
void RemoveRewardedQuest(uint32 quest_id)
void PrepareQuestMenu(uint64 guid)
void CompleteQuest(uint32 quest_id)
WorldSession * GetSession() const
void SendQuestFailed(uint32 questId, InventoryResult reason=EQUIP_ERR_OK)
void UpdateAreaDependentAuras(uint32 area_id)
void RemoveQuestSlotState(uint16 slot, uint32 state)
bool SatisfyQuestReputation(Quest const *qInfo, bool msg)
void SendQuestReward(Quest const *quest, uint32 XP)
bool CanSeeStartQuest(Quest const *quest)
bool SatisfyQuestPreviousQuest(Quest const *qInfo, bool msg)
uint32 GetQuestSlotQuestId(uint16 slot) const
uint32 GetItemCount(uint32 item, bool inBankAlso=false, Item *skipItem=NULL) const
void SwapQuestSlot(uint16 slot1, uint16 slot2)
bool SatisfyQuestStatus(Quest const *qInfo, bool msg)
void ModifyCurrency(uint32 id, int32 count, bool printLog=true, bool ignoreMultipliers=false)
void SetQuestSlotCounter(uint16 slot, uint8 counter, uint16 count)
void KilledPlayerCredit()
bool CanShareQuest(uint32 questId) const
void ReputationChangedQuestCheck(FactionEntry const *factionEntry)
void AdjustQuestReqItemCount(Quest const *quest, QuestStatusData &questStatusData)
void SetDailyQuestStatus(uint32 quest_id)
Corpse * GetCorpse() const
bool SatisfyQuestClass(Quest const *qInfo, bool msg) const
RewardedQuestSet m_RewardedQuests
void _SaveQuestStatus(SQLTransaction &trans)
void SetQuestSlot(uint16 slot, uint32 quest_id, uint32 timer=0)
bool IsActiveQuest(uint32 quest_id) const
void SendQuestUpdateAddCredit(Quest const *quest, QuestObjective const *objective, ObjectGuid guid, uint16 oldCount, uint16 addCount)
void SetQuestSlotState(uint16 slot, uint32 state)
bool SatisfyQuestLog(bool msg)
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit *unit=NULL)
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=NULL) const
void SetQuestSlotTimer(uint16 slot, uint32 timer)
void SendPushToPartyResponse(Player *player, uint8 msg)
void SetCanDelayTeleport(bool setting)
bool SatisfyQuestMonth(Quest const *qInfo, bool msg)
void SetTitle(CharTitlesEntry const *title, bool lost=false)
bool SatisfyQuestTimed(Quest const *qInfo, bool msg)
void SetWeeklyQuestStatus(uint32 quest_id)
uint32 GetReputation(uint32 factionentry) const
void DestroyItemCount(uint32 item, uint32 count, bool update, bool unequip_check=false)
void UpdateZoneDependentAuras(uint32 zone_id)
void AreaExploredOrEventHappens(uint32 questId)
bool TakeQuestSourceItem(uint32 questId, bool msg)
void MoneyChanged(uint32 value)
QuestStatus GetQuestStatus(uint32 quest_id) const
bool CanCompleteRepeatableQuest(Quest const *quest)
bool SatisfyQuestSkill(Quest const *qInfo, bool msg) const
bool HasCurrency(uint32 id, uint32 count) const
return presence related currency
bool SatisfyQuestLevel(Quest const *qInfo, bool msg)
void FailQuest(uint32 quest_id)
InventoryResult CanUnequipItems(uint32 item, uint32 count) const
void RemoveActiveQuest(uint32 quest_id)
void ItemAddedQuestCheck(uint32 entry, uint32 count)
bool GiveQuestSourceItem(Quest const *quest)
void RewardReputation(Unit *victim, float rate)
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 item, bool update, int32 randomPropertyId=0, AllowedLooterSet const &allowedLooters=AllowedLooterSet())
bool UpdateSkillPro(uint16 skillId, int32 chance, uint32 step)
bool RewardHonor(Unit *victim, uint32 groupsize, int32 honor=-1, bool pvptoken=false)
bool HasSpell(uint32 spell) const override
bool SatisfyQuestNextChain(Quest const *qInfo, bool msg)
bool SatisfyQuestRace(Quest const *qInfo, bool msg)
Player(WorldSession *session)
void AddTimedQuest(uint32 questId)
void UpdateObjectVisibility(bool forced=true) override
QuestObjectiveStatusSaveMap m_questObjectiveStatusSave
void RemoveTimedQuest(uint32 questId)
void SendQuestTimerFailed(uint32 questId)
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
bool SatisfyQuestWeek(Quest const *qInfo, bool msg)
SeasonalEventQuestMap m_seasonalquests
void SendNewItem(Item *item, uint32 count, bool received, bool created, bool broadcast=false)
uint32 GetQuestSlotTime(uint16 slot) const
QuestStatusSaveMap m_QuestStatusSave
void QuestObjectiveSatisfy(uint32 objectId, uint32 amount, uint8 type=0u, uint64 guid=0u)
QuestStatusSaveMap m_RewardedQuestsSave
uint32 GetQuestSlotState(uint16 slot) const
ReputationMgr & GetReputationMgr()
PlayerMenu * PlayerTalkClass
void SendQuestComplete(Quest const *quest)
Quest const * GetNextQuest(uint64 guid, Quest const *quest)
bool HasEnoughMoney(uint64 amount) const
void SendQuestUpdateAddPlayer(Quest const *quest, QuestObjective const *objective, uint16 oldCount, uint16 addCount)
bool HasSpecialFlag(uint32 flag) const
bool HasFlag(uint32 flag) const
uint32 GetRewSpell() const
uint32 GetRewMoneyMaxLevel() const
uint32 RewardCurrencyCount[QUEST_REWARD_CURRENCY_COUNT]
uint32 GetRewardSkillId() const
uint32 GetRequiredRaces() const
uint32 GetRewMailTemplateId() const
uint32 RequiredSourceItemId[QUEST_SOURCE_ITEM_IDS_COUNT]
uint32 GetCharTitleId() const
uint32 GetMaxLevel() const
int32 GetRequiredMaxRepValue() const
uint32 XPValue(Player *player) const
uint8 GetQuestObjectiveCountType(uint8 type) const
uint32 RewardItemIdCount[QUEST_REWARDS_COUNT]
int32 GetRequiredMinRepValue() const
uint32 GetMinLevel() const
uint32 GetRewChoiceItemCount(uint32 itemId) const
uint32 GetRequiredClasses() const
uint32 GetLimitTime() const
bool IsRewChoiceItemValid(uint32 itemId) const
bool IsRepeatable() const
int32 GetZoneOrSort() const
bool IsAutoComplete() const
uint32 GetRequiredMinRepFaction() const
uint32 CalculateHonorGain(uint8 level) const
uint32 GetQuestId() const
uint32 GetRequiredSkillValue() const
uint32 RequiredSourceItemCount[QUEST_SOURCE_ITEM_IDS_COUNT]
QuestObjectiveSet m_questObjectives
int32 GetRewMoney() const
uint32 GetRewMailDelaySecs() const
int32 GetExclusiveGroup() const
uint32 RewardCurrencyId[QUEST_REWARD_CURRENCY_COUNT]
uint32 GetRewItemsCount() const
uint32 GetRequiredSkill() const
uint32 GetRewChoiceItemsCount() const
uint32 GetSrcItemId() const
std::string const & GetTitle() const
bool IsAllowedInRaid(DifficultyID difficulty) const
int32 GetRewSpellCast() const
uint32 GetRewardPackageItemId() const
uint32 RewardItemId[QUEST_REWARDS_COUNT]
uint32 GetBonusTalents() const
uint32 GetRewardSkillPoints() const
PrevChainQuests prevChainQuests
uint32 GetRequiredMaxRepFaction() const
uint32 GetNextQuestInChain() const
void SetVisible(FactionTemplateEntry const *factionTemplateEntry)
virtual void sQuestAccept(Player *, Quest const *)
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
uint32 getRaceMask() const
uint32 getClassMask() const
std::list< AuraEffect * > AuraEffectList
uint32 GetInstanceId() const
WorldObject(bool isWorldObject)
void GetZoneAndAreaId(uint32 &zoneid, uint32 &areaid) const
LocaleConstant GetSessionDbLocaleIndex() const
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
@ SMSG_QUESTUPDATE_ADD_CREDIT
@ SMSG_QUESTUPDATE_ADD_PVP_KILL
@ SMSG_QUESTGIVER_QUEST_FAILED
@ SMSG_QUESTGIVER_QUEST_INVALID
@ SMSG_QUESTUPDATE_COMPLETE
@ SMSG_QUESTUPDATE_FAILEDTIMER
@ SMSG_QUEST_CONFIRM_ACCEPT
@ SMSG_QUESTGIVER_QUEST_COMPLETE
@ CONFIG_MAX_PLAYER_LEVEL
@ CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF
bool IsDisabledFor(DisableType type, uint32 entry, Unit const *unit, uint8 flags)
uint32 KillCredit[MAX_KILL_CREDIT]
GossipTextOption Options[MAX_GOSSIP_TEXT_OPTIONS]
QEmote Emotes[MAX_GOSSIP_TEXT_EMOTES]
uint32 GetMaxStackSize() const