From 9ff1d3f06ade75202ac7fd315c041398db8349aa Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 13 Oct 2025 09:56:17 -0300 Subject: [PATCH] fix(Core/Map): Fix zone player count update on player removal (#23211) --- src/server/game/Maps/Map.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 85f8275e8..21652342a 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -422,7 +422,9 @@ void Map::UpdatePlayerZoneStats(uint32 oldZone, uint32 newZone) else --oldZoneCount; } - ++_zonePlayerCountMap[newZone]; + + if (newZone != MAP_INVALID_ZONE) + ++_zonePlayerCountMap[newZone]; } void Map::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread*/) @@ -696,8 +698,8 @@ struct ResetNotifier void Map::RemovePlayerFromMap(Player* player, bool remove) { - // Before leaving map, update zone/area for stats - player->UpdateZone(MAP_INVALID_ZONE, 0); + UpdatePlayerZoneStats(player->GetZoneId(), MAP_INVALID_ZONE); + player->getHostileRefMgr().deleteReferences(true); // pussywizard: multithreading crashfix player->RemoveFromWorld();