diff --git a/saco/game/playerped.h b/saco/game/playerped.h index 67faaee..b4797d5 100644 --- a/saco/game/playerped.h +++ b/saco/game/playerped.h @@ -67,6 +67,7 @@ public: void FUNC_100ABD70(float a1); // .text:100ABD70 void FUNC_100AC010(); // .text:100AC010 void FUNC_100AC790(int a1); // .text:100AC790 + BYTE FUNC_100AC850(WORD *pKiller); // .text:100AC850 DWORD GetStateFlags(); void SetStateFlags(DWORD dwStateFlags); BOOL IsDead(); diff --git a/saco/net/localplayer.cpp b/saco/net/localplayer.cpp index c62bc51..acd1ea0 100644 --- a/saco/net/localplayer.cpp +++ b/saco/net/localplayer.cpp @@ -647,3 +647,30 @@ int FUNC_10004120() return iCount; } + +//---------------------------------------------------- + +// reports the death reason and who did it +void CLocalPlayer::SendDeath() +{ + RakNet::BitStream bsSend; + WORD wKiller; + + BYTE byteReason = m_pPlayerPed->FUNC_100AC850(&wKiller); + + bsSend.Write(byteReason); + bsSend.Write(wKiller); + pNetGame->GetRakClient()->RPC(RPC_Death, &bsSend, HIGH_PRIORITY, RELIABLE_ORDERED, 0, FALSE); +} + +//---------------------------------------------------- + +void CLocalPlayer::SetInteriorId(BYTE byteInteriorId) +{ + field_1CF = byteInteriorId; + + RakNet::BitStream bsSend; + + bsSend.Write(byteInteriorId); + pNetGame->GetRakClient()->RPC(RPC_SetInteriorId, &bsSend, HIGH_PRIORITY, RELIABLE, 0, FALSE); +} diff --git a/saco/net/localplayer.h b/saco/net/localplayer.h index bcab4dd..4847326 100644 --- a/saco/net/localplayer.h +++ b/saco/net/localplayer.h @@ -152,6 +152,8 @@ public: void FUNC_10004080(); // .text:10004080 void FUNC_10004230(WORD a1); // .text:10004230 void FUNC_10004280(PLAYERID playerId); // .text:10004280 + void SendDeath(); // .text:10005810 + void SetInteriorId(BYTE byteInteriorId); // .text:10005970 void FUNC_10003F50(); // .text:10003F50 void FUNC_10003FC0(); // .text:10003FC0 void FUNC_100041C0(BOOL bSpectating); // .text:100041C0