From 7121aed4c91507bbc8d2223874309feb4efb18a9 Mon Sep 17 00:00:00 2001 From: ricardoofnl Date: Thu, 3 Sep 2026 00:27:43 +0700 Subject: [PATCH] [saco] Match `WorldPlayerRemove`; it re-fetches the pool for the `GetAt` lookup --- saco/net/netrpc.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/saco/net/netrpc.cpp b/saco/net/netrpc.cpp index d2309ec..d9011de 100644 --- a/saco/net/netrpc.cpp +++ b/saco/net/netrpc.cpp @@ -162,7 +162,25 @@ void WorldPlayerDeath(RPCParameters *rpcParams) pRemotePlayer->FUNC_10017570(); } } -void WorldPlayerRemove(RPCParameters *rpcParams) {} +void WorldPlayerRemove(RPCParameters *rpcParams) +{ + PCHAR Data = reinterpret_cast(rpcParams->input); + int iBitLength = rpcParams->numberOfBitsOfData; + + RakNet::BitStream bsData(Data,(iBitLength/8)+1,false); + + PLAYERID playerId = 0; + CPlayerPool *pPlayerPool = pNetGame->GetPlayerPool(); + + bsData.Read(playerId); + + if(pPlayerPool) + { + CRemotePlayer *pRemotePlayer = pNetGame->GetPlayerPool()->GetAt(playerId); + if(pRemotePlayer) + pRemotePlayer->FUNC_10017530(); + } +} void WorldVehicleAdd(RPCParameters *rpcParams) {} void WorldVehicleRemove(RPCParameters *rpcParams) {} void DamageVehicle(RPCParameters *rpcParams) {}