diff options
| author | jackpoz <giacomopoz@gmail.com> | 2020-06-14 15:41:01 +0200 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2020-06-14 15:41:01 +0200 |
| commit | cd37a17103b88a56ec1fde2156c4325b74989e08 (patch) | |
| tree | cae9a1eb9f6b8bea0262d460c64039f35bdab3ba /src/server/scripts | |
| parent | 988fe4c86cc65a605a732ba94f9a7cd5337048f9 (diff) | |
Scripts/Commands: Add .debug objectcount <optional map id> chat command
Add .debug objectcount <optional map id> chat command to show the number of Creatures and GameObjects
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index a6ba2cc64a5..4eeae6a9075 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -120,6 +120,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, "" }, + { "objectcount", rbac::RBAC_PERM_COMMAND_DEBUG, true, &HandleDebugObjectCountCommand, "" }, { "questreset", rbac::RBAC_PERM_COMMAND_DEBUG_QUESTRESET, true, &HandleDebugQuestResetCommand, "" } }; static std::vector<ChatCommand> commandTable = @@ -1944,6 +1945,39 @@ public: map->GetId(), map->GetMapName(), map->GetInstanceId(), uint64(map->GetMaxLowGuid<HighGuid::Unit>()), uint64(map->GetMaxLowGuid<HighGuid::GameObject>())); } + static bool HandleDebugObjectCountCommand(ChatHandler* handler, CommandArgs* args) + { + auto mapId = args->TryConsume<uint32>(); + if (mapId) + { + sMapMgr->DoForAllMapsWithMapId(mapId.get(), + [handler](Map* map) -> void + { + HandleDebugObjectCountMap(handler, map); + } + ); + } + else + { + sMapMgr->DoForAllMaps( + [handler](Map* map) -> void + { + HandleDebugObjectCountMap(handler, map); + } + ); + } + + return true; + } + + static void HandleDebugObjectCountMap(ChatHandler* handler, Map* map) + { + handler->PSendSysMessage("Map Id: %u Name: '%s' Instance Id: %u Creatures: " UI64FMTD " GameObjects: " UI64FMTD, + map->GetId(), map->GetMapName(), map->GetInstanceId(), + uint64(map->GetObjectsStore().Size<Creature>()), + uint64(map->GetObjectsStore().Size<GameObject>())); + } + static bool HandleDebugDummyCommand(ChatHandler* handler, CommandArgs* /*args*/) { handler->SendSysMessage("This command does nothing right now. Edit your local core (cs_debug.cpp) to make it do whatever you need for testing."); |
