aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAndrew Letson <velinath@users.noreply.github.com>2017-12-17 09:51:11 -0500
committerjackpoz <giacomopoz@gmail.com>2017-12-17 15:51:11 +0100
commit1cedcf0bf349581b6fff210e4c325e25b51ccf0c (patch)
tree7667e1fe656f306118000165b257d3edb6165d56 /src/server
parente96cf0b2426068947864a36eaece2a9312c0e48e (diff)
Scripts/Commands: Add failure state for quest remove (#20611)
Add more verbose messaging to the .quest remove command
Diffstat (limited to 'src/server')
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp44
1 files changed, 26 insertions, 18 deletions
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index cd21909a872..6b2113905d7 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -128,32 +128,40 @@ public:
return false;
}
- // remove all quest entries for 'entry' from quest log
- for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot)
+ if (player->GetQuestStatus(entry) != QUEST_STATUS_NONE)
{
- uint32 logQuest = player->GetQuestSlotQuestId(slot);
- if (logQuest == entry)
+ // remove all quest entries for 'entry' from quest log
+ for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot)
{
- player->SetQuestSlot(slot, 0);
+ uint32 logQuest = player->GetQuestSlotQuestId(slot);
+ if (logQuest == entry)
+ {
+ player->SetQuestSlot(slot, 0);
- // we ignore unequippable quest items in this case, its' still be equipped
- player->TakeQuestSourceItem(logQuest, false);
+ // we ignore unequippable quest items in this case, its' still be equipped
+ player->TakeQuestSourceItem(logQuest, false);
- if (quest->HasFlag(QUEST_FLAGS_FLAGS_PVP))
- {
- player->pvpInfo.IsHostile = player->pvpInfo.IsInHostileArea || player->HasPvPForcingQuest();
- player->UpdatePvPState();
+ if (quest->HasFlag(QUEST_FLAGS_FLAGS_PVP))
+ {
+ player->pvpInfo.IsHostile = player->pvpInfo.IsInHostileArea || player->HasPvPForcingQuest();
+ player->UpdatePvPState();
+ }
}
}
- }
+ player->RemoveActiveQuest(entry, false);
+ player->RemoveRewardedQuest(entry);
- player->RemoveActiveQuest(entry, false);
- player->RemoveRewardedQuest(entry);
+ sScriptMgr->OnQuestStatusChange(player, entry);
- sScriptMgr->OnQuestStatusChange(player, entry);
-
- handler->SendSysMessage(LANG_COMMAND_QUEST_REMOVED);
- return true;
+ handler->SendSysMessage(LANG_COMMAND_QUEST_REMOVED);
+ return true;
+ }
+ else
+ {
+ handler->SendSysMessage(LANG_COMMAND_QUEST_NOTFOUND);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
}
static bool HandleQuestComplete(ChatHandler* handler, char const* args)