fix(Scripts/Commands): Implement quest status command (#23721)
This commit is contained in:
parent
c0b768ace6
commit
fa9574a8e2
3 changed files with 61 additions and 1 deletions
|
|
@ -37,6 +37,7 @@ public:
|
|||
{ "complete", HandleQuestComplete, SEC_GAMEMASTER, Console::Yes },
|
||||
{ "remove", HandleQuestRemove, SEC_GAMEMASTER, Console::Yes },
|
||||
{ "reward", HandleQuestReward, SEC_GAMEMASTER, Console::Yes },
|
||||
{ "status", HandleQuestStatus, SEC_GAMEMASTER, Console::Yes },
|
||||
};
|
||||
static ChatCommandTable commandTable =
|
||||
{
|
||||
|
|
@ -724,6 +725,53 @@ public:
|
|||
handler->SetSentErrorMessage(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleQuestStatus(ChatHandler* handler, Quest const* quest, Optional<PlayerIdentifier> playerTarget)
|
||||
{
|
||||
if (!playerTarget)
|
||||
playerTarget = PlayerIdentifier::FromTargetOrSelf(handler);
|
||||
|
||||
if (!playerTarget)
|
||||
{
|
||||
handler->SendErrorMessage(LANG_PLAYER_NOT_FOUND);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 entry = quest->GetQuestId();
|
||||
std::string status;
|
||||
if (Player* player = playerTarget->GetConnectedPlayer())
|
||||
{
|
||||
QuestStatus qs = player->GetQuestStatus(entry);
|
||||
switch (qs)
|
||||
{
|
||||
case QUEST_STATUS_NONE:
|
||||
status = "Not Taken";
|
||||
break;
|
||||
case QUEST_STATUS_COMPLETE:
|
||||
status = "Complete";
|
||||
break;
|
||||
case QUEST_STATUS_INCOMPLETE:
|
||||
status = "Incomplete";
|
||||
break;
|
||||
case QUEST_STATUS_FAILED:
|
||||
status = "Failed";
|
||||
break;
|
||||
case QUEST_STATUS_REWARDED:
|
||||
status = "Rewarded";
|
||||
break;
|
||||
default:
|
||||
status = "Unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage(LANG_CMD_QUEST_STATUS, quest->GetTitle(), entry, status);
|
||||
|
||||
if (!player->CanTakeQuest(quest, true))
|
||||
handler->PSendSysMessage(LANG_CMD_QUEST_UNAVAILABLE, entry, status);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_quest_commandscript()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue