diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9083218ed0d..669e26057e5 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15140,32 +15140,23 @@ void Player::SendPreparedQuest(WorldObject* source) if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) { if (qmi0.QuestIcon == 4) - { PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanRewardQuest(quest, false), true); - return; - } // Send completable on repeatable and autoCompletable quest if player don't have quest /// @todo verify if check for !quest->IsDaily() is really correct (possibly not) + else if (!source->hasQuest(questId) && !source->hasInvolvedQuest(questId)) + PlayerTalkClass->SendCloseGossip(); else { - if (!source->hasQuest(questId) && !source->hasInvolvedQuest(questId)) - { - PlayerTalkClass->SendCloseGossip(); - return; - } - - if (source->GetTypeId() != TYPEID_UNIT || source->ToUnit()->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP)) - { - if (quest->IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true)) - AddQuestAndCheckCompletion(quest, source); + if (quest->IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true)) + AddQuestAndCheckCompletion(quest, source); - if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly()) - PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanCompleteRepeatableQuest(quest), true); - else - PlayerTalkClass->SendQuestGiverQuestDetails(quest, source->GetGUID(), true, false); - return; - } + if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly()) + PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanCompleteRepeatableQuest(quest), true); + else + PlayerTalkClass->SendQuestGiverQuestDetails(quest, source->GetGUID(), true, false); } + + return; } } |