From b7865a3eb52efc8c77bfc8ffee2c97f57657cebc Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 12 Sep 2014 11:32:50 -0500 Subject: Core/Quests: Only prompt the player to take the next quest in a chain if he meets the conditions for that quest. --- src/server/game/Handlers/QuestHandler.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index f7c3c8a2be6..3590796bc0a 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -298,10 +298,14 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData) // Send next quest if (Quest const* nextQuest = _player->GetNextQuest(guid, quest)) { - if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true) && _player->CanTakeQuest(nextQuest, true)) - _player->AddQuestAndCheckCompletion(nextQuest, object); - - _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true); + // Only send the quest to the player if the conditions are met + if (_player->CanTakeQuest(nextQuest, true)) + { + if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true)) + _player->AddQuestAndCheckCompletion(nextQuest, object); + + _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true); + } } questgiver->AI()->sQuestReward(_player, quest, reward); @@ -316,10 +320,14 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData) // Send next quest if (Quest const* nextQuest = _player->GetNextQuest(guid, quest)) { - if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true) && _player->CanTakeQuest(nextQuest, true)) - _player->AddQuestAndCheckCompletion(nextQuest, object); - - _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true); + // Only send the quest to the player if the conditions are met + if (_player->CanTakeQuest(nextQuest, true)) + { + if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true)) + _player->AddQuestAndCheckCompletion(nextQuest, object); + + _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true); + } } questGiver->AI()->QuestReward(_player, quest, reward); -- cgit v1.2.3