diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-01-25 13:45:11 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-06-16 23:01:48 +0200 |
commit | 7db3f7ca968239f05b16609f5dfc7bb633a61ff1 (patch) | |
tree | cd8888299278e2fb86c186949926ef77d037d7f2 /src | |
parent | 7c0ac5b959c4c0ad5db3b1a3e3cc9526e7b73466 (diff) |
DB/SpawnGroup: Instance spawn group data for Tempest Keep: The Eye and Hellfire Citadel: Ramparts.
(also some minor adjustments to command output for convenience)
(cherry picked from commit 51e28ae76a40bb40bdd6f163773d2e3bd8f76ec4)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Maps/Map.h | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_npc.cpp | 6 |
4 files changed, 13 insertions, 7 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 2fda273c57f..856b5a4185c 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3461,7 +3461,7 @@ bool Map::SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn, bool force, std::v return true; } -bool Map::SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes) +bool Map::SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes, size_t* count) { SpawnGroupTemplateData const* groupData = GetSpawnGroupData(groupId); if (!groupData || groupData->flags & SPAWNGROUP_FLAG_SYSTEM) @@ -3498,6 +3498,10 @@ bool Map::SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes) return false; } } + + if (count) + *count = toUnload.size(); + // now do the actual despawning for (WorldObject* obj : toUnload) obj->AddObjectToRemoveList(); diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 289fb4180b3..fbd2478adb7 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -761,7 +761,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType> SpawnGroupTemplateData const* GetSpawnGroupData(uint32 groupId) const; bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn = false, bool force = false, std::vector<WorldObject*>* spawnedObjects = nullptr); - bool SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes = false); + bool SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes = false, size_t* count = nullptr); void SetSpawnGroupActive(uint32 groupId, bool state); bool IsSpawnGroupActive(uint32 groupId) const; diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index c966330b04e..e1ca92ce670 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -50,6 +50,8 @@ EndScriptData */ #include "WorldSession.h" #include <fstream> #include <limits> +#include <map> +#include <set> #include <sstream> class debug_commandscript : public CommandScript @@ -1522,7 +1524,7 @@ public: return false; } auto const& spawnGroups = *instance->_instanceSpawnGroups; - std::unordered_map<uint32, std::set<std::tuple<bool, uint8, uint8>>> store; + std::map<uint32, std::set<std::tuple<bool, uint8, uint8>>> store; for (InstanceSpawnGroupInfo const& info : spawnGroups) { if (groupID && info.SpawnGroupId != groupID) @@ -1579,7 +1581,7 @@ public: } } else - handler->PSendSysMessage(" | |-- '%s' could've been %s if boss state %u matched mask %u; but it is %s -> %u, which does not match.", + handler->PSendSysMessage(" | |-- '%s' could've been %s if boss state %u matched mask 0x%02x; but it is %s -> 0x%02x, which does not match.", groupData->name, isSpawn ? "allowed to spawn" : "blocked from spawning", bossStateId, std::get<2>(tuple), InstanceScript::GetBossStateName(actualState), (1 << actualState)); } if (isBlocked) diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index b33548acc68..23f15dd2f1f 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -246,8 +246,6 @@ bool HandleNpcSpawnGroup(ChatHandler* handler, char const* args) } handler->PSendSysMessage(LANG_SPAWNGROUP_SPAWNCOUNT, creatureList.size()); - for (WorldObject* obj : creatureList) - handler->PSendSysMessage("%s (%s)", obj->GetName(), obj->GetGUID().ToString().c_str()); return true; } @@ -278,12 +276,14 @@ bool HandleNpcDespawnGroup(ChatHandler* handler, char const* args) Player* player = handler->GetSession()->GetPlayer(); - if (!player->GetMap()->SpawnGroupDespawn(groupId, deleteRespawnTimes)) + size_t n = 0; + if (!player->GetMap()->SpawnGroupDespawn(groupId, deleteRespawnTimes, &n)) { handler->PSendSysMessage(LANG_SPAWNGROUP_BADGROUP, groupId); handler->SetSentErrorMessage(true); return false; } + handler->PSendSysMessage("Despawned a total of %zu objects.", n); return true; } |