aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-06-18 17:15:52 +0200
committerShauren <shauren.trinity@gmail.com>2011-06-18 17:15:52 +0200
commit5a18ee0e660dc32c5cee68330e0ff6aeb235fd7c (patch)
tree74cafa814c600db47f7e6806f696611bee39276a /src
parent348ec6ddd5960de71eb90ee876ac51a68b8ad391 (diff)
Core/Quests: Fixed autoaccept quests for quest chains
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;