[saco] Match ServerQuit; the player pool is fetched before the two reads

This commit is contained in:
ricardoofnl
2026-09-03 00:23:44 +07:00
parent 71a9be0c83
commit b403f3c79e
2 changed files with 19 additions and 1 deletions
+17 -1
View File
@@ -151,7 +151,23 @@ void Unk18(RPCParameters *rpcParams) {}
void EnterVehicle(RPCParameters *rpcParams) {}
void ExitVehicle(RPCParameters *rpcParams) {}
void ServerJoin(RPCParameters *rpcParams) {}
void ServerQuit(RPCParameters *rpcParams) {}
void ServerQuit(RPCParameters *rpcParams)
{
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
int iBitLength = rpcParams->numberOfBitsOfData;
PLAYERID playerId;
BYTE byteReason;
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
CPlayerPool *pPlayerPool = pNetGame->GetPlayerPool();
bsData.Read(playerId);
bsData.Read(byteReason);
pPlayerPool->sub_10014090(playerId,byteReason);
}
void InitGame(RPCParameters *rpcParams) {}
void Chat(RPCParameters *rpcParams) {}
void RequestClass(RPCParameters *rpcParams) {}
+2
View File
@@ -39,6 +39,8 @@ public:
void FUNC_10013960(); // .text:10013960
BOOL sub_10014090(PLAYERID playerId, BYTE byteReason); // .text:10014090
CRemotePlayer* GetAt(PLAYERID playerId) {
if(playerId > MAX_PLAYERS) { return NULL; }
CNetPlayer *pNetPlayer = m_pPlayers[playerId];