void Chat(RakNet::BitStream *bitStream, Packet *packet) { EntityId playerID; BYTE byteTextLen; CHAR szText[256]; bitStream->Read(playerID); bitStream->Read(byteTextLen); bitStream->Read(szText,byteTextLen); szText[byteTextLen] = '\0'; CPlayerManager * pPlayerManager = pNetowkManager->GetPlayerManager(); if(playerID == pPlayerManager->GetLocalPlayerID()) { pChatWindow->AddChatMessage(pNetowkManager->GetPlayerManager()->GetLocalPlayerName(), pPlayerManager->GetLocalPlayer()->GetTeamColorAsARGB(),szText); } else { CRemotePlayer *pRemotePlayer = pNetowkManager->GetPlayerManager()->GetAt(playerID); if(pRemotePlayer) { pRemotePlayer->Say(szText); } } }
void UpdateScoreAndPing(RakNet::BitStream *bitStream, Packet *packet) { CPlayerManager * pPlayerManager = pNetowkManager->GetPlayerManager(); EntityId playerID; int iPlayerScore; int iPlayerPing; unsigned long ulIp; while(bitStream->Read(playerID)) { bitStream->Read(iPlayerScore); bitStream->Read(iPlayerPing); bitStream->Read(ulIp); if(pPlayerManager->GetSlotState(playerID) || playerID == pPlayerManager->GetLocalPlayerID()) { pPlayerManager->UpdateScore(playerID, iPlayerScore); pPlayerManager->UpdatePing(playerID, iPlayerPing); pPlayerManager->UpdateIPAddress(playerID, ulIp); } } }