diff options
author | Seyden <saiifii@live.de> | 2023-01-28 15:36:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-28 15:36:28 +0100 |
commit | b5886f6a2d1756357a9240703306e9efc82771d7 (patch) | |
tree | a4581ccb1436817693f480fcaa076fadfab3365a /src/server/game/Handlers/QuestHandler.cpp | |
parent | b5176eb6c2ae640a1cdf22d3d0a483d1b48ecbb6 (diff) |
Core/Quests: Dont immediately update object visibility at PhaseShift and wait for the AI Hooks to be called in Player::RewardQuest (#28516)
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 94cbf2a48de..220eaba8985 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -386,54 +386,6 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::Quest bg->HandleQuestComplete(packet.QuestID, _player); _player->RewardQuest(quest, packet.Choice.LootItemType, packet.Choice.Item.ItemID, object); - - switch (object->GetTypeId()) - { - case TYPEID_UNIT: - case TYPEID_PLAYER: - { - //For AutoSubmition was added plr case there as it almost same exclute AI script cases. - // Send next quest - if (Quest const* nextQuest = _player->GetNextQuest(packet.QuestGiverGUID, quest)) - { - // Only send the quest to the player if the conditions are met - if (_player->CanTakeQuest(nextQuest, false)) - { - if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true)) - _player->AddQuestAndCheckCompletion(nextQuest, object); - - _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false); - } - } - - _player->PlayerTalkClass->ClearMenus(); - if (Creature* creatureQGiver = object->ToCreature()) - creatureQGiver->AI()->OnQuestReward(_player, quest, packet.Choice.LootItemType, packet.Choice.Item.ItemID); - break; - } - case TYPEID_GAMEOBJECT: - { - GameObject* questGiver = object->ToGameObject(); - // Send next quest - if (Quest const* nextQuest = _player->GetNextQuest(packet.QuestGiverGUID, quest)) - { - // Only send the quest to the player if the conditions are met - if (_player->CanTakeQuest(nextQuest, false)) - { - if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true)) - _player->AddQuestAndCheckCompletion(nextQuest, object); - - _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false); - } - } - - _player->PlayerTalkClass->ClearMenus(); - questGiver->AI()->OnQuestReward(_player, quest, packet.Choice.LootItemType, packet.Choice.Item.ItemID); - break; - } - default: - break; - } } } else |