aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/QuestHandler.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
index ae095eb4183..0766f5b5de2 100755
--- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
@@ -325,7 +325,16 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket & recv_data)
{
// Send next quest
if (Quest const* nextquest = _player->GetNextQuest(guid , pQuest))
+ {
+ if (nextquest->IsAutoAccept() && _player->CanAddQuest(nextquest, true))
+ {
+ _player->AddQuest(nextquest, pObject);
+ if (_player->CanCompleteQuest(nextquest->GetQuestId()))
+ _player->CompleteQuest(nextquest->GetQuestId());
+ }
+
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true);
+ }
(pObject->ToCreature())->AI()->sQuestReward(_player, pQuest, reward);
}
@@ -335,7 +344,17 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket & recv_data)
{
// Send next quest
if (Quest const* nextquest = _player->GetNextQuest(guid , pQuest))
+ {
+ if (nextquest->IsAutoAccept() && _player->CanAddQuest(nextquest, true))
+ {
+ _player->AddQuest(nextquest, pObject);
+ if (_player->CanCompleteQuest(nextquest->GetQuestId()))
+ _player->CompleteQuest(nextquest->GetQuestId());
+ }
+
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true);
+ }
+
pObject->ToGameObject()->AI()->QuestReward(_player, pQuest, reward);
}
break;