diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-07-16 15:04:14 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-16 21:20:38 +0100 |
commit | 6f6cf975e4e0bef621b9465f364476ec6731ae0d (patch) | |
tree | 797ef2d8d3bf09e4b0e6d4319301a42003b21358 /src | |
parent | bd7aae928e699adba63c0a14661cffeb5fdf8b3b (diff) |
Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset.
(cherry picked from commit 293ba08d21c4e9634229bb5015445ecc0cc08fef)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 3 | ||||
-rw-r--r-- | src/server/game/World/World.h | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 40 |
3 files changed, 44 insertions, 1 deletions
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index ddac66afd61..79c1446e5a7 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -783,7 +783,8 @@ enum RBACPermissions RBAC_PERM_COMMAND_LOOKUP_MAP_ID = 875, RBAC_PERM_COMMAND_LOOKUP_ITEM_ID = 876, RBAC_PERM_COMMAND_LOOKUP_QUEST_ID = 877, - // 878-879 previously used, do not reuse + RBAC_PERM_COMMAND_DEBUG_QUESTRESET = 878, + // 879 previously used, do not reuse RBAC_PERM_COMMAND_PDUMP_COPY = 880, RBAC_PERM_COMMAND_RELOAD_VEHICLE_TEMPLATE = 881, RBAC_PERM_COMMAND_RELOAD_SPELL_SCRIPT_NAMES = 882, diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 0c568b60e9c..b3f4b2f20b0 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -922,6 +922,8 @@ class TC_GAME_API World bool _guidAlert; uint32 _warnDiff; time_t _warnShutdownTime; + + friend class debug_commandscript; }; TC_GAME_API extern Realm realm; diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 16819886ff0..6e58a7ef96c 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -32,6 +32,7 @@ EndScriptData */ #include "ChatPackets.h" #include "Conversation.h" #include "DB2Stores.h" +#include "GameTime.h" #include "GossipDef.h" #include "GridNotifiersImpl.h" #include "InstanceScript.h" @@ -55,6 +56,7 @@ EndScriptData */ #include <set> #include <sstream> +using namespace Trinity::ChatCommands; class debug_commandscript : public CommandScript { public: @@ -123,6 +125,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<ChatCommand> commandTable = { @@ -1462,6 +1465,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(); |