From 293ba08d21c4e9634229bb5015445ecc0cc08fef Mon Sep 17 00:00:00 2001 From: Treeston Date: Tue, 16 Jul 2019 15:04:14 +0200 Subject: Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset. --- src/server/scripts/Commands/cs_debug.cpp | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 65971bc1200..fba83d2edfb 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -28,6 +28,7 @@ EndScriptData */ #include "BattlegroundMgr.h" #include "CellImpl.h" #include "Chat.h" +#include "GameTime.h" #include "GossipDef.h" #include "GridNotifiersImpl.h" #include "InstanceScript.h" @@ -46,6 +47,7 @@ EndScriptData */ #include #include +using namespace Trinity::ChatCommands; class debug_commandscript : public CommandScript { public: @@ -116,6 +118,7 @@ public: { "dummy", rbac::RBAC_PERM_COMMAND_DEBUG_DUMMY, false, &HandleDebugDummyCommand, "" }, { "asan", rbac::RBAC_PERM_COMMAND_DEBUG_ASAN, true, nullptr, "", debugAsanCommandTable }, { "guidlimits", rbac::RBAC_PERM_COMMAND_DEBUG, true, &HandleDebugGuidLimitsCommand, "" }, + { "questreset", rbac::RBAC_PERM_COMMAND_DEBUG_QUESTRESET, true, &HandleDebugQuestResetCommand, "" } }; static std::vector commandTable = { @@ -1698,6 +1701,43 @@ public: return true; } + static bool HandleDebugQuestResetCommand(ChatHandler* handler, std::string arg) + { + if (!Utf8ToUpperOnlyLatin(arg)) + return false; + + bool daily = false, weekly = false, monthly = false; + if (arg == "ALL") + daily = weekly = monthly = true; + else if (arg == "DAILY") + daily = true; + else if (arg == "WEEKLY") + weekly = true; + else if (arg == "MONTHLY") + monthly = true; + else + return false; + + time_t const now = GameTime::GetGameTime(); + if (daily) + { + sWorld->m_NextDailyQuestReset = now; + handler->SendSysMessage("Daily quest reset scheduled for next tick."); + } + if (weekly) + { + sWorld->m_NextWeeklyQuestReset = now; + handler->SendSysMessage("Weekly quest reset scheduled for next tick."); + } + if (monthly) + { + sWorld->m_NextMonthlyQuestReset = now; + handler->SendSysMessage("Monthly quest reset scheduled for next tick."); + } + + return true; + } + static bool HandleDebugNearGraveyard(ChatHandler* handler, char const* args) { Player* player = handler->GetSession()->GetPlayer(); -- cgit v1.2.3