diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-06-11 19:29:42 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-06-11 19:29:42 +0200 |
commit | 0cb8965de22c5da3887b8f8b5c08b9f5034b3cc6 (patch) | |
tree | b9e9239f9e627e1e5144247af869188939fda07f /src/server/game/Handlers/QuestHandler.cpp | |
parent | d419fe5ff4ce9d3227ddcc47cc21ed67732e3d52 (diff) |
Core/Quests: New FlagsEx implementations
* QUEST_FLAGS_EX_REWARDS_IGNORE_CAPS
* QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY
* QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN
* QUEST_FLAGS_EX_REMOVE_ON_PERIODIC_RESET
* QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 9010a3d629e..1e376a55d90 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -445,6 +445,11 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove if (quest) { + if (quest->HasFlagEx(QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN)) + for (QuestObjective const& objective : quest->Objectives) + if (_player->IsQuestObjectiveComplete(packet.Entry, quest, objective)) + return; + if (quest->GetLimitTime()) _player->RemoveTimedQuest(questId); @@ -453,7 +458,6 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove _player->pvpInfo.IsHostile = _player->pvpInfo.IsInHostileArea || _player->HasPvPForcingQuest(); _player->UpdatePvPState(); } - } _player->SetQuestSlot(packet.Entry, 0); |