From d5e19e145c377a4ff50adacf17766b60c6bc0d44 Mon Sep 17 00:00:00 2001 From: Emagi Date: Fri, 13 Jun 2025 19:53:32 -0400 Subject: [PATCH] dead client ptr protection --- source/WorldServer/zoneserver.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/WorldServer/zoneserver.cpp b/source/WorldServer/zoneserver.cpp index 968dd04..5588cce 100644 --- a/source/WorldServer/zoneserver.cpp +++ b/source/WorldServer/zoneserver.cpp @@ -3690,6 +3690,10 @@ void ZoneServer::RemoveClient(Client* client) RemoveSpawn(client->GetPlayer(), false, true, true, true, true); int32 DisconnectClientTimer = rule_manager.GetGlobalRule(R_World, RemoveDisconnectedClientsTimer)->GetInt32(); + + if(client->GetPlayer()->GetClient() == client) + client->GetPlayer()->SetClient(nullptr); + connected_clients.Remove(client, true, DisconnectClientTimer); // changed from a hardcoded 30000 (30 sec) to the DisconnectClientTimer rule } }