diff options
author | click <none@none> | 2010-05-10 02:59:41 +0200 |
---|---|---|
committer | click <none@none> | 2010-05-10 02:59:41 +0200 |
commit | c214b4afb0555b003216a707d29642d34a31f8fa (patch) | |
tree | eeeba360d1aae56fdc13d0f3f0c20f3033b531b2 /src | |
parent | 3b3f0caa69c9df629b6ab0793b50d20bd2f03ac6 (diff) |
Correctly complete quests with QUEST_FLAGS_AUTO_ACCEPT which should be completed the moment you accept it.
This fixes the quests which weren't completable in starting areas. Fixes issue #2042. Patch by liberate.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 4 | ||||
-rw-r--r-- | src/game/QuestHandler.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 5addf5db822..6534fb12280 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -13670,7 +13670,11 @@ void Player::SendPreparedQuest(uint64 guid) } if (pQuest->HasFlag(QUEST_FLAGS_AUTO_ACCEPT) && CanAddQuest(pQuest, true)) + { AddQuest(pQuest, pObject); + if (CanCompleteQuest(quest_id)) + CompleteQuest(quest_id); + } if ((pQuest->IsAutoComplete() && pQuest->IsRepeatable() && !pQuest->IsDailyOrWeekly()) || pQuest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE)) PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanCompleteRepeatableQuest(pQuest), true); diff --git a/src/game/QuestHandler.cpp b/src/game/QuestHandler.cpp index 9b03f68efa8..43213801ebb 100644 --- a/src/game/QuestHandler.cpp +++ b/src/game/QuestHandler.cpp @@ -247,7 +247,11 @@ void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket & recv_data) if (pQuest) { if (pQuest->HasFlag(QUEST_FLAGS_AUTO_ACCEPT) && _player->CanAddQuest(pQuest, true)) + { _player->AddQuest(pQuest, pObject); + if (_player->CanCompleteQuest(quest)) + _player->CompleteQuest(quest); + } if (pQuest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE)) _player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, pObject->GetGUID(), _player->CanCompleteQuest(pQuest->GetQuestId()), true); |