diff --git a/Source/Game/Chat/Commands/DebugCommands.cs b/Source/Game/Chat/Commands/DebugCommands.cs index 515982b57..edede399d 100644 --- a/Source/Game/Chat/Commands/DebugCommands.cs +++ b/Source/Game/Chat/Commands/DebugCommands.cs @@ -552,7 +552,7 @@ namespace Game.Chat } } else - handler.SendSysMessage($" | |-- '{groupData.name}' could've been {(isSpawn ? "allowed to spawn" : "blocked from spawning")} if boss state {bossStateId} matched mask {tuple.Item3}; but it is {(EncounterState)actualState} . {(1 << (int)actualState)}, which does not match."); + handler.SendSysMessage($" | |-- '{groupData.name}' could've been {(isSpawn ? "allowed to spawn" : "blocked from spawning")} if boss state {bossStateId} matched mask 0x{tuple.Item3:X2}; but it is {(EncounterState)actualState} . 0x{(1 << (int)actualState):X2}, which does not match."); } if (isBlocked) handler.SendSysMessage($" | |=> '{groupData.name}' is not active due to a blocking rule being matched"); diff --git a/Source/Game/Chat/Commands/NPCCommands.cs b/Source/Game/Chat/Commands/NPCCommands.cs index 7e251df9b..5f1b73686 100644 --- a/Source/Game/Chat/Commands/NPCCommands.cs +++ b/Source/Game/Chat/Commands/NPCCommands.cs @@ -58,12 +58,12 @@ namespace Game.Chat } Player player = handler.GetSession().GetPlayer(); - - if (!player.GetMap().SpawnGroupDespawn(groupId, deleteRespawnTimes)) + if (!player.GetMap().SpawnGroupDespawn(groupId, deleteRespawnTimes, out int despawnedCount)) { handler.SendSysMessage(CypherStrings.SpawngroupBadgroup, groupId); return false; } + handler.SendSysMessage($"Despawned a total of {despawnedCount} objects."); return true; } @@ -454,8 +454,6 @@ namespace Game.Chat } handler.SendSysMessage(CypherStrings.SpawngroupSpawncount, creatureList.Count); - foreach (WorldObject obj in creatureList) - handler.SendSysMessage($"{obj.GetName()} ({obj.GetGUID()})"); return true; } diff --git a/Source/Game/Maps/Map.cs b/Source/Game/Maps/Map.cs index 1db5c6034..71c0bc6cf 100644 --- a/Source/Game/Maps/Map.cs +++ b/Source/Game/Maps/Map.cs @@ -2759,6 +2759,11 @@ namespace Game.Maps public bool SpawnGroupDespawn(uint groupId, bool deleteRespawnTimes) { + return SpawnGroupDespawn(groupId, deleteRespawnTimes, out _); + } + public bool SpawnGroupDespawn(uint groupId, bool deleteRespawnTimes, out int count) + { + count = 0; SpawnGroupTemplateData groupData = GetSpawnGroupData(groupId); if (groupData == null || groupData.flags.HasAnyFlag(SpawnGroupFlags.System)) { @@ -2793,6 +2798,8 @@ namespace Game.Maps } } + count = toUnload.Count; + // now do the actual despawning foreach (WorldObject obj in toUnload) obj.AddObjectToRemoveList();