diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/QuestHandler.cpp | 19 |
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; |