Core/Player: don't check quest requirements against RewardNextQuest
- This field is only used to propose a new quest to player after completion, shouldn't be used to condition current quest Closes #19515
This commit is contained in:
1 parent
c72ee80eb7
commit
0fcc0ebca2
2 files changed
+1
-27
No files matched your search
@@ -14667,7 +14667,7 @@ bool Player::CanSeeStartQuest(Quest const* quest)
|
||||
{
|
||||
if (!DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, quest->GetQuestId(), this) && SatisfyQuestClass(quest, false) && SatisfyQuestRace(quest, false) &&
|
||||
SatisfyQuestSkill(quest, false) && SatisfyQuestExclusiveGroup(quest, false) && SatisfyQuestReputation(quest, false) &&
|
||||
SatisfyQuestDependentQuests(quest, false) && SatisfyQuestNextChain(quest, false) &&
|
||||
SatisfyQuestDependentQuests(quest, false) &&
|
||||
SatisfyQuestDay(quest, false) && SatisfyQuestWeek(quest, false) &&
|
||||
SatisfyQuestMonth(quest, false) && SatisfyQuestSeasonal(quest, false))
|
||||
{
|
||||
@@ -14684,7 +14684,6 @@ bool Player::CanTakeQuest(Quest const* quest, bool msg)
|
||||
&& SatisfyQuestClass(quest, msg) && SatisfyQuestRace(quest, msg) && SatisfyQuestLevel(quest, msg)
|
||||
&& SatisfyQuestSkill(quest, msg) && SatisfyQuestReputation(quest, msg)
|
||||
&& SatisfyQuestDependentQuests(quest, msg) && SatisfyQuestTimed(quest, msg)
|
||||
&& SatisfyQuestNextChain(quest, msg)
|
||||
&& SatisfyQuestDay(quest, msg) && SatisfyQuestWeek(quest, msg)
|
||||
&& SatisfyQuestMonth(quest, msg) && SatisfyQuestSeasonal(quest, msg)
|
||||
&& SatisfyQuestConditions(quest, msg);
|
||||
@@ -15714,30 +15713,6 @@ bool Player::SatisfyQuestExclusiveGroup(Quest const* qInfo, bool msg) const
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Player::SatisfyQuestNextChain(Quest const* qInfo, bool msg) const
|
||||
{
|
||||
uint32 nextQuest = qInfo->GetNextQuestInChain();
|
||||
if (!nextQuest)
|
||||
return true;
|
||||
|
||||
// next quest in chain already started or completed
|
||||
if (GetQuestStatus(nextQuest) != QUEST_STATUS_NONE) // GetQuestStatus returns QUEST_STATUS_COMPLETED for rewarded quests
|
||||
{
|
||||
if (msg)
|
||||
{
|
||||
SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ);
|
||||
TC_LOG_DEBUG("misc", "Player::SatisfyQuestNextChain: Sent INVALIDREASON_DONT_HAVE_REQ (QuestID: %u) because player '%s' (%s) already did or started next quest in chain.",
|
||||
qInfo->GetQuestId(), GetName().c_str(), GetGUID().ToString().c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// check for all quests further up the chain
|
||||
// only necessary if there are quest chains with more than one quest that can be skipped
|
||||
//return SatisfyQuestNextChain(qInfo->GetNextQuestInChain(), msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Player::SatisfyQuestDay(Quest const* qInfo, bool msg) const
|
||||
{
|
||||
if (!qInfo->IsDaily() && !qInfo->IsDFQuest())
|
||||
|
||||
@@ -1376,7 +1376,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
|
||||
bool SatisfyQuestConditions(Quest const* qInfo, bool msg);
|
||||
bool SatisfyQuestTimed(Quest const* qInfo, bool msg) const;
|
||||
bool SatisfyQuestExclusiveGroup(Quest const* qInfo, bool msg) const;
|
||||
bool SatisfyQuestNextChain(Quest const* qInfo, bool msg) const;
|
||||
bool SatisfyQuestDay(Quest const* qInfo, bool msg) const;
|
||||
bool SatisfyQuestWeek(Quest const* qInfo, bool msg) const;
|
||||
bool SatisfyQuestMonth(Quest const* qInfo, bool msg) const;
|
||||
|
||||
Reference in new issue
Block a user