diff options
-rw-r--r-- | sql/updates/world/master/2021_06_16_13_world_2018_01_25_00_world.sql | 226 | ||||
-rw-r--r-- | sql/updates/world/master/2021_06_16_14_world_2018_01_25_01_world.sql | 137 | ||||
-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 |
6 files changed, 376 insertions, 7 deletions
diff --git a/sql/updates/world/master/2021_06_16_13_world_2018_01_25_00_world.sql b/sql/updates/world/master/2021_06_16_13_world_2018_01_25_00_world.sql new file mode 100644 index 00000000000..1ba2f52acdd --- /dev/null +++ b/sql/updates/world/master/2021_06_16_13_world_2018_01_25_00_world.sql @@ -0,0 +1,226 @@ +-- SpawnGroupMapper auto-generated SQL for map 550 (Tempest Keep) + +-- Constant setter section - adjust this +-- spawn_group_template (4 entries) +SET @FIRSTGROUPID := 44; +-- Boss state associations +SET @ALAR := 1; -- boss state that controls group "Al'ar" +SET @VOIDREAVER := 3; -- boss state that controls group "Void Reaver" +SET @SOLARIAN := 2; -- boss state that controls group "Solarian" +SET @KAELTHAS := 0; -- boss state that controls group "Kael'thas" + +-- DB modification section - you shouldn't need to touch this +-- Insert spawn group templates +DELETE FROM `spawn_group_template` WHERE `groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3; +INSERT INTO `spawn_group_template` (`groupId`,`groupName`,`groupFlags`) VALUES + (@FIRSTGROUPID+0, "Tempest Keep - Al'ar", 0x04), + (@FIRSTGROUPID+1, "Tempest Keep - Void Reaver", 0x04), + (@FIRSTGROUPID+2, "Tempest Keep - Solarian", 0x04), + (@FIRSTGROUPID+3, "Tempest Keep - Kael'thas", 0x04); + +-- Insert spawn group data +DELETE FROM `spawn_group` WHERE `groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3; +INSERT INTO `spawn_group` (`groupId`,`spawnType`,`spawnId`) VALUES + (@FIRSTGROUPID+2, 0, 12524), + (@FIRSTGROUPID+3, 0, 86952), + (@FIRSTGROUPID+2, 0, 12532), + (@FIRSTGROUPID+2, 0, 12534), + (@FIRSTGROUPID+2, 0, 12536), + (@FIRSTGROUPID+2, 0, 12538), + (@FIRSTGROUPID+2, 0, 12540), + (@FIRSTGROUPID+2, 0, 12542), + (@FIRSTGROUPID+1, 0, 12550), + (@FIRSTGROUPID+1, 0, 12552), + (@FIRSTGROUPID+1, 0, 12554), + (@FIRSTGROUPID+1, 0, 12556), + (@FIRSTGROUPID+1, 0, 12558), + (@FIRSTGROUPID+1, 0, 12564), + (@FIRSTGROUPID+1, 0, 12566), + (@FIRSTGROUPID+3, 0, 12568), + (@FIRSTGROUPID+3, 0, 12570), + (@FIRSTGROUPID+0, 0, 554), + (@FIRSTGROUPID+3, 0, 144136), + (@FIRSTGROUPID+3, 0, 144105), + (@FIRSTGROUPID+3, 0, 144137), + (@FIRSTGROUPID+3, 0, 86939), + (@FIRSTGROUPID+3, 0, 144106), + (@FIRSTGROUPID+3, 0, 144138), + (@FIRSTGROUPID+3, 0, 7987), + (@FIRSTGROUPID+3, 0, 144107), + (@FIRSTGROUPID+3, 0, 144139), + (@FIRSTGROUPID+3, 0, 86941), + (@FIRSTGROUPID+3, 0, 86940), + (@FIRSTGROUPID+3, 0, 144110), + (@FIRSTGROUPID+3, 0, 144108), + (@FIRSTGROUPID+3, 0, 144140), + (@FIRSTGROUPID+2, 0, 12467), + (@FIRSTGROUPID+3, 0, 144146), + (@FIRSTGROUPID+2, 0, 12411), + (@FIRSTGROUPID+2, 0, 12413), + (@FIRSTGROUPID+2, 0, 12415), + (@FIRSTGROUPID+3, 0, 144109), + (@FIRSTGROUPID+2, 0, 12419), + (@FIRSTGROUPID+2, 0, 12421), + (@FIRSTGROUPID+2, 0, 12423), + (@FIRSTGROUPID+2, 0, 12425), + (@FIRSTGROUPID+2, 0, 12427), + (@FIRSTGROUPID+2, 0, 12429), + (@FIRSTGROUPID+2, 0, 12431), + (@FIRSTGROUPID+0, 0, 12433), + (@FIRSTGROUPID+0, 0, 12435), + (@FIRSTGROUPID+0, 0, 12437), + (@FIRSTGROUPID+0, 0, 12439), + (@FIRSTGROUPID+0, 0, 12441), + (@FIRSTGROUPID+0, 0, 12443), + (@FIRSTGROUPID+0, 0, 12445), + (@FIRSTGROUPID+0, 0, 12447), + (@FIRSTGROUPID+0, 0, 12449), + (@FIRSTGROUPID+0, 0, 12451), + (@FIRSTGROUPID+0, 0, 12453), + (@FIRSTGROUPID+0, 0, 12455), + (@FIRSTGROUPID+1, 0, 12461), + (@FIRSTGROUPID+3, 0, 12463), + (@FIRSTGROUPID+3, 0, 144144), + (@FIRSTGROUPID+2, 0, 12469), + (@FIRSTGROUPID+2, 0, 12471), + (@FIRSTGROUPID+2, 0, 12473), + (@FIRSTGROUPID+0, 0, 12475), + (@FIRSTGROUPID+2, 0, 12477), + (@FIRSTGROUPID+0, 0, 12479), + (@FIRSTGROUPID+3, 0, 144145), + (@FIRSTGROUPID+0, 0, 12485), + (@FIRSTGROUPID+0, 0, 12487), + (@FIRSTGROUPID+2, 0, 12489), + (@FIRSTGROUPID+2, 0, 12491), + (@FIRSTGROUPID+3, 0, 86943), + (@FIRSTGROUPID+2, 0, 12495), + (@FIRSTGROUPID+2, 0, 12497), + (@FIRSTGROUPID+2, 0, 12499), + (@FIRSTGROUPID+2, 0, 12501), + (@FIRSTGROUPID+2, 0, 12503), + (@FIRSTGROUPID+2, 0, 12505), + (@FIRSTGROUPID+2, 0, 12507), + (@FIRSTGROUPID+2, 0, 12509), + (@FIRSTGROUPID+2, 0, 12511), + (@FIRSTGROUPID+3, 0, 144147), + (@FIRSTGROUPID+2, 0, 12517), + (@FIRSTGROUPID+2, 0, 12519), + (@FIRSTGROUPID+2, 0, 12521), + (@FIRSTGROUPID+2, 0, 12523), + (@FIRSTGROUPID+3, 0, 86944), + (@FIRSTGROUPID+2, 0, 12527), + (@FIRSTGROUPID+3, 0, 144148), + (@FIRSTGROUPID+2, 0, 12533), + (@FIRSTGROUPID+2, 0, 12535), + (@FIRSTGROUPID+2, 0, 12537), + (@FIRSTGROUPID+2, 0, 12539), + (@FIRSTGROUPID+2, 0, 12541), + (@FIRSTGROUPID+3, 0, 12543), + (@FIRSTGROUPID+3, 0, 144149), + (@FIRSTGROUPID+1, 0, 12549), + (@FIRSTGROUPID+1, 0, 12551), + (@FIRSTGROUPID+1, 0, 12553), + (@FIRSTGROUPID+1, 0, 12555), + (@FIRSTGROUPID+1, 0, 12557), + (@FIRSTGROUPID+1, 0, 12559), + (@FIRSTGROUPID+3, 0, 144150), + (@FIRSTGROUPID+1, 0, 12565), + (@FIRSTGROUPID+3, 0, 12567), + (@FIRSTGROUPID+3, 0, 12569), + (@FIRSTGROUPID+3, 0, 144141), + (@FIRSTGROUPID+2, 0, 12513), + (@FIRSTGROUPID+3, 0, 144151), + (@FIRSTGROUPID+2, 0, 12515), + (@FIRSTGROUPID+2, 0, 12529), + (@FIRSTGROUPID+2, 0, 12526), + (@FIRSTGROUPID+3, 0, 86946), + (@FIRSTGROUPID+3, 0, 144152), + (@FIRSTGROUPID+3, 0, 86951), + (@FIRSTGROUPID+2, 0, 12531), + (@FIRSTGROUPID+2, 0, 12530), + (@FIRSTGROUPID+2, 0, 12528), + (@FIRSTGROUPID+2, 0, 12525), + (@FIRSTGROUPID+3, 0, 144153), + (@FIRSTGROUPID+3, 0, 144142), + (@FIRSTGROUPID+0, 0, 12480), + (@FIRSTGROUPID+3, 0, 12465), + (@FIRSTGROUPID+3, 0, 86947), + (@FIRSTGROUPID+2, 0, 12493), + (@FIRSTGROUPID+3, 0, 12544), + (@FIRSTGROUPID+3, 0, 86945), + (@FIRSTGROUPID+3, 0, 86953), + (@FIRSTGROUPID+3, 0, 86942), + (@FIRSTGROUPID+1, 0, 12462), + (@FIRSTGROUPID+1, 0, 12562), + (@FIRSTGROUPID+1, 0, 12561), + (@FIRSTGROUPID+1, 0, 12563), + (@FIRSTGROUPID+1, 0, 12560), + (@FIRSTGROUPID+3, 0, 86948), + (@FIRSTGROUPID+0, 0, 12450), + (@FIRSTGROUPID+2, 0, 12430), + (@FIRSTGROUPID+0, 0, 12434), + (@FIRSTGROUPID+2, 0, 12410), + (@FIRSTGROUPID+2, 0, 12412), + (@FIRSTGROUPID+2, 0, 12414), + (@FIRSTGROUPID+2, 0, 12416), + (@FIRSTGROUPID+2, 0, 12418), + (@FIRSTGROUPID+2, 0, 12420), + (@FIRSTGROUPID+2, 0, 12422), + (@FIRSTGROUPID+2, 0, 12424), + (@FIRSTGROUPID+2, 0, 12426), + (@FIRSTGROUPID+2, 0, 12428), + (@FIRSTGROUPID+3, 0, 86949), + (@FIRSTGROUPID+2, 0, 12432), + (@FIRSTGROUPID+0, 0, 12436), + (@FIRSTGROUPID+0, 0, 12438), + (@FIRSTGROUPID+0, 0, 12440), + (@FIRSTGROUPID+0, 0, 12442), + (@FIRSTGROUPID+0, 0, 12444), + (@FIRSTGROUPID+0, 0, 12446), + (@FIRSTGROUPID+0, 0, 12448), + (@FIRSTGROUPID+0, 0, 12452), + (@FIRSTGROUPID+0, 0, 12454), + (@FIRSTGROUPID+0, 0, 12456), + (@FIRSTGROUPID+1, 0, 12458), + (@FIRSTGROUPID+3, 0, 144143), + (@FIRSTGROUPID+3, 0, 86950), + (@FIRSTGROUPID+3, 0, 12464), + (@FIRSTGROUPID+3, 0, 12466), + (@FIRSTGROUPID+3, 0, 12468), + (@FIRSTGROUPID+2, 0, 12470), + (@FIRSTGROUPID+2, 0, 12472), + (@FIRSTGROUPID+2, 0, 12474), + (@FIRSTGROUPID+0, 0, 12476), + (@FIRSTGROUPID+1, 0, 12478), + (@FIRSTGROUPID+0, 0, 12484), + (@FIRSTGROUPID+0, 0, 12486), + (@FIRSTGROUPID+2, 0, 12488), + (@FIRSTGROUPID+2, 0, 12490), + (@FIRSTGROUPID+2, 0, 12492), + (@FIRSTGROUPID+2, 0, 12494), + (@FIRSTGROUPID+2, 0, 12496), + (@FIRSTGROUPID+2, 0, 12498), + (@FIRSTGROUPID+2, 0, 12500), + (@FIRSTGROUPID+2, 0, 12502), + (@FIRSTGROUPID+2, 0, 12504), + (@FIRSTGROUPID+2, 0, 12506), + (@FIRSTGROUPID+2, 0, 12508), + (@FIRSTGROUPID+2, 0, 12510), + (@FIRSTGROUPID+2, 0, 12512), + (@FIRSTGROUPID+2, 0, 12514), + (@FIRSTGROUPID+2, 0, 12516), + (@FIRSTGROUPID+2, 0, 12518), + (@FIRSTGROUPID+2, 0, 12520), + (@FIRSTGROUPID+2, 0, 12522), + (@FIRSTGROUPID+2, 0, 12417); + +-- Link information for instance script +DELETE FROM `instance_spawn_groups` WHERE `instanceMapId` = 550; +INSERT INTO `instance_spawn_groups` (`instanceMapId`, `bossStateId`, `bossStates`, `spawnGroupId`, `flags`) VALUES + (550,@ALAR,0x17,@FIRSTGROUPID+0,0x1), -- Spawn Al'ar if state is not DONE + (550,@VOIDREAVER,0x17,@FIRSTGROUPID+1,0x1), -- Spawn Void Reaver if state is not DONE + (550,@SOLARIAN,0x17,@FIRSTGROUPID+2,0x1), -- Spawn Solarian if state is not DONE + (550,@KAELTHAS,0x17,@FIRSTGROUPID+3,0x1); -- Spawn Kael'thas if state is not DONE + +-- Remove legacy linked_respawn entries +DELETE lr FROM `linked_respawn` lr INNER JOIN `spawn_group` sg ON sg.`groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3 AND sg.`spawnType` = (lr.linkType >> 1) AND sg.`spawnId`=lr.`guid`; diff --git a/sql/updates/world/master/2021_06_16_14_world_2018_01_25_01_world.sql b/sql/updates/world/master/2021_06_16_14_world_2018_01_25_01_world.sql new file mode 100644 index 00000000000..5bd3757d104 --- /dev/null +++ b/sql/updates/world/master/2021_06_16_14_world_2018_01_25_01_world.sql @@ -0,0 +1,137 @@ +-- SpawnGroupMapper auto-generated SQL for map 543 (Hellfire Citadel: Ramparts) + +-- Constant setter section - adjust this +-- spawn_group_template (4 entries) +SET @FIRSTGROUPID := 48; +-- Boss state associations +SET @WATCHKEEPERGARGOLMAR := 0; -- boss state that controls group "Watchkeeper Gargolmar" +SET @OMORTHEUNSCARRED := 1; -- boss state that controls group "Omor the Unscarred" +SET @VAZRUDEN := 2; -- boss state that controls group "Vazruden & Nazan" +SET @NAZAN := 3; -- boss state that controls group "Vazruden & Nazan" + +-- DB modification section - you shouldn't need to touch this +-- Insert spawn group templates +DELETE FROM `spawn_group_template` WHERE `groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3; +INSERT INTO `spawn_group_template` (`groupId`,`groupName`,`groupFlags`) VALUES + (@FIRSTGROUPID+0, "Hellfire Citadel: Ramparts - Watchkeeper Gargolmar", 0x04), + (@FIRSTGROUPID+1, "Hellfire Citadel: Ramparts - Final boss trash", 0x04), + (@FIRSTGROUPID+2, "Hellfire Citadel: Ramparts - Omor the Unscarred", 0x04), + (@FIRSTGROUPID+3, "Hellfire Citadel: Ramparts - Vazruden & Nazan", 0x04); + +-- Insert spawn group data +DELETE FROM `spawn_group` WHERE `groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3; +INSERT INTO `spawn_group` (`groupId`,`spawnType`,`spawnId`) VALUES + (@FIRSTGROUPID+0, 0, 202634), + (@FIRSTGROUPID+1, 0, 202650), + (@FIRSTGROUPID+1, 0, 202666), + (@FIRSTGROUPID+0, 0, 202682), + (@FIRSTGROUPID+1, 0, 202698), + (@FIRSTGROUPID+0, 0, 202619), + (@FIRSTGROUPID+0, 0, 202635), + (@FIRSTGROUPID+1, 0, 202651), + (@FIRSTGROUPID+0, 0, 202667), + (@FIRSTGROUPID+1, 0, 202683), + (@FIRSTGROUPID+1, 0, 202699), + (@FIRSTGROUPID+1, 0, 202620), + (@FIRSTGROUPID+0, 0, 202636), + (@FIRSTGROUPID+1, 0, 202652), + (@FIRSTGROUPID+1, 0, 202668), + (@FIRSTGROUPID+0, 0, 202684), + (@FIRSTGROUPID+1, 0, 202700), + (@FIRSTGROUPID+0, 0, 202621), + (@FIRSTGROUPID+0, 0, 202637), + (@FIRSTGROUPID+1, 0, 202653), + (@FIRSTGROUPID+1, 0, 202669), + (@FIRSTGROUPID+1, 0, 202685), + (@FIRSTGROUPID+1, 0, 202701), + (@FIRSTGROUPID+0, 0, 202622), + (@FIRSTGROUPID+0, 0, 202638), + (@FIRSTGROUPID+0, 0, 202654), + (@FIRSTGROUPID+0, 0, 202670), + (@FIRSTGROUPID+1, 0, 202686), + (@FIRSTGROUPID+0, 0, 202702), + (@FIRSTGROUPID+0, 0, 202607), + (@FIRSTGROUPID+1, 0, 202623), + (@FIRSTGROUPID+0, 0, 202639), + (@FIRSTGROUPID+0, 0, 202655), + (@FIRSTGROUPID+0, 0, 202671), + (@FIRSTGROUPID+1, 0, 202687), + (@FIRSTGROUPID+0, 0, 202703), + (@FIRSTGROUPID+1, 0, 202608), + (@FIRSTGROUPID+1, 0, 202624), + (@FIRSTGROUPID+0, 0, 202640), + (@FIRSTGROUPID+0, 0, 202656), + (@FIRSTGROUPID+0, 0, 202672), + (@FIRSTGROUPID+1, 0, 202688), + (@FIRSTGROUPID+0, 0, 202704), + (@FIRSTGROUPID+1, 0, 202609), + (@FIRSTGROUPID+0, 0, 202625), + (@FIRSTGROUPID+0, 0, 202641), + (@FIRSTGROUPID+0, 0, 202657), + (@FIRSTGROUPID+0, 0, 202673), + (@FIRSTGROUPID+1, 0, 202689), + (@FIRSTGROUPID+3, 0, 202705), + (@FIRSTGROUPID+0, 0, 202610), + (@FIRSTGROUPID+0, 0, 202626), + (@FIRSTGROUPID+1, 0, 202642), + (@FIRSTGROUPID+0, 0, 202658), + (@FIRSTGROUPID+0, 0, 202674), + (@FIRSTGROUPID+1, 0, 202690), + (@FIRSTGROUPID+3, 0, 202706), + (@FIRSTGROUPID+0, 0, 202611), + (@FIRSTGROUPID+0, 0, 202627), + (@FIRSTGROUPID+1, 0, 202643), + (@FIRSTGROUPID+0, 0, 202659), + (@FIRSTGROUPID+0, 0, 202675), + (@FIRSTGROUPID+0, 0, 202691), + (@FIRSTGROUPID+0, 0, 202612), + (@FIRSTGROUPID+0, 0, 202628), + (@FIRSTGROUPID+1, 0, 202644), + (@FIRSTGROUPID+0, 0, 202660), + (@FIRSTGROUPID+0, 0, 202676), + (@FIRSTGROUPID+0, 0, 202692), + (@FIRSTGROUPID+0, 0, 202613), + (@FIRSTGROUPID+0, 0, 202629), + (@FIRSTGROUPID+0, 0, 202645), + (@FIRSTGROUPID+1, 0, 202661), + (@FIRSTGROUPID+0, 0, 202677), + (@FIRSTGROUPID+3, 0, 202693), + (@FIRSTGROUPID+1, 0, 202614), + (@FIRSTGROUPID+1, 0, 202630), + (@FIRSTGROUPID+0, 0, 202646), + (@FIRSTGROUPID+1, 0, 202662), + (@FIRSTGROUPID+0, 0, 202678), + (@FIRSTGROUPID+2, 0, 202694), + (@FIRSTGROUPID+1, 0, 202615), + (@FIRSTGROUPID+0, 0, 202631), + (@FIRSTGROUPID+0, 0, 202647), + (@FIRSTGROUPID+0, 0, 202663), + (@FIRSTGROUPID+0, 0, 202679), + (@FIRSTGROUPID+0, 0, 202695), + (@FIRSTGROUPID+1, 0, 202616), + (@FIRSTGROUPID+2, 0, 202632), + (@FIRSTGROUPID+0, 0, 202648), + (@FIRSTGROUPID+0, 0, 202664), + (@FIRSTGROUPID+0, 0, 202680), + (@FIRSTGROUPID+0, 0, 202696), + (@FIRSTGROUPID+0, 0, 202617), + (@FIRSTGROUPID+2, 0, 202633), + (@FIRSTGROUPID+0, 0, 202649), + (@FIRSTGROUPID+0, 0, 202665), + (@FIRSTGROUPID+0, 0, 202681), + (@FIRSTGROUPID+0, 0, 202697), + (@FIRSTGROUPID+0, 0, 202618); + +-- Link information for instance script +DELETE FROM `instance_spawn_groups` WHERE `instanceMapId` = 543; +INSERT INTO `instance_spawn_groups` (`instanceMapId`, `bossStateId`, `bossStates`, `spawnGroupId`, `flags`) VALUES + (543,@WATCHKEEPERGARGOLMAR,0x17,@FIRSTGROUPID+0,0x1), -- Spawn Watchkeeper Gargolmar if state is not DONE + (543,@OMORTHEUNSCARRED,0x17,@FIRSTGROUPID+1,0x1), -- Spawn Final boss trash if state is not DONE + (543,@VAZRUDEN,0x08,@FIRSTGROUPID+1,0x2), -- Do not spawn Final boss trash if state is DONE + (543,@NAZAN,0x08,@FIRSTGROUPID+1,0x2), -- Do not spawn Final boss trash if state is DONE + (543,@OMORTHEUNSCARRED,0x17,@FIRSTGROUPID+2,0x1), -- Spawn Omor the Unscarred if state is not DONE + (543,@VAZRUDEN,0x17,@FIRSTGROUPID+3,0x1), -- Spawn Vazruden & Nazan if state is not DONE + (543,@NAZAN,0x08,@FIRSTGROUPID+3,0x2); -- Do not spawn Vazruden & Nazan if state is DONE + +-- Remove legacy linked_respawn entries +DELETE lr FROM `linked_respawn` lr INNER JOIN `spawn_group` sg ON sg.`groupId` BETWEEN @FIRSTGROUPID+0 AND @FIRSTGROUPID+3 AND sg.`spawnType` = (lr.linkType >> 1) AND sg.`spawnId`=lr.`guid`; 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; } |