diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-06-18 17:15:52 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-06-18 17:15:52 +0200 |
commit | 5a18ee0e660dc32c5cee68330e0ff6aeb235fd7c (patch) | |
tree | 74cafa814c600db47f7e6806f696611bee39276a | |
parent | 348ec6ddd5960de71eb90ee876ac51a68b8ad391 (diff) |
Core/Quests: Fixed autoaccept quests for quest chains
-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; |