diff --git a/bot/net/scriptrpc.cpp b/bot/net/scriptrpc.cpp index 196cd3f..1c21c46 100644 --- a/bot/net/scriptrpc.cpp +++ b/bot/net/scriptrpc.cpp @@ -136,7 +136,7 @@ void ScrDisplayGameText(RPCParameters *rpcParams) //---------------------------------------------------- -void ScrUnk9C(RPCParameters *rpcParams) +void ScrSetInterior(RPCParameters *rpcParams) { } @@ -499,9 +499,9 @@ void RegisterScriptRPCs(RakClientInterface* pRakClient) REGISTER_STATIC_RPC(pRakClient, ScrRemovePlayerFromVehicle); REGISTER_STATIC_RPC(pRakClient, ScrSetPlayerColor); REGISTER_STATIC_RPC(pRakClient, ScrDisplayGameText); - REGISTER_STATIC_RPC(pRakClient, ScrUnk9C); REGISTER_STATIC_RPC(pRakClient, ScrUnk9D); REGISTER_STATIC_RPC(pRakClient, ScrUnk9E); + REGISTER_STATIC_RPC(pRakClient, ScrSetInterior); REGISTER_STATIC_RPC(pRakClient, ScrUnk9F); REGISTER_STATIC_RPC(pRakClient, ScrUnkA0); REGISTER_STATIC_RPC(pRakClient, ScrUnkA1); @@ -573,9 +573,9 @@ void UnRegisterScriptRPCs(RakClientInterface* pRakClient) UNREGISTER_STATIC_RPC(pRakClient, ScrRemovePlayerFromVehicle); UNREGISTER_STATIC_RPC(pRakClient, ScrSetPlayerColor); UNREGISTER_STATIC_RPC(pRakClient, ScrDisplayGameText); - UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9C); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9D); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9E); + UNREGISTER_STATIC_RPC(pRakClient, ScrSetInterior); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9F); UNREGISTER_STATIC_RPC(pRakClient, ScrUnkA0); UNREGISTER_STATIC_RPC(pRakClient, ScrUnkA1); diff --git a/raknet/SAMPRPC.h b/raknet/SAMPRPC.h index 4923590..4c00ba1 100644 --- a/raknet/SAMPRPC.h +++ b/raknet/SAMPRPC.h @@ -134,7 +134,7 @@ #define RPC_ScrRemovePlayerFromVehicle "\x47" #define RPC_ScrSetPlayerColor "\x48" #define RPC_ScrDisplayGameText "\x49" -#define RPC_ScrUnk9C "\x9C" +#define RPC_ScrSetInterior "\x9C" #define RPC_ScrSetCameraPos "\x9D" #define RPC_ScrSetCameraLookAt "\x9E" #define RPC_ScrUnk9F "\x9F" diff --git a/saco/net/scriptrpc.cpp b/saco/net/scriptrpc.cpp index ca09d9d..130ed21 100644 --- a/saco/net/scriptrpc.cpp +++ b/saco/net/scriptrpc.cpp @@ -61,9 +61,9 @@ void ScrPutPlayerInVehicle(RPCParameters *rpcParams) {} void ScrRemovePlayerFromVehicle(RPCParameters *rpcParams) {} void ScrSetPlayerColor(RPCParameters *rpcParams) {} void ScrDisplayGameText(RPCParameters *rpcParams) {} -void ScrUnk9C(RPCParameters *rpcParams) {} void ScrUnk9D(RPCParameters *rpcParams) {} void ScrUnk9E(RPCParameters *rpcParams) {} +void ScrSetInterior(RPCParameters *rpcParams) {} void ScrUnk9F(RPCParameters *rpcParams) {} void ScrUnkA0(RPCParameters *rpcParams) {} void ScrUnkA1(RPCParameters *rpcParams) {} @@ -161,9 +161,9 @@ void RegisterScriptRPCs(RakClientInterface* pRakClient) REGISTER_STATIC_RPC(pRakClient, ScrRemovePlayerFromVehicle); REGISTER_STATIC_RPC(pRakClient, ScrSetPlayerColor); REGISTER_STATIC_RPC(pRakClient, ScrDisplayGameText); - REGISTER_STATIC_RPC(pRakClient, ScrUnk9C); REGISTER_STATIC_RPC(pRakClient, ScrUnk9D); REGISTER_STATIC_RPC(pRakClient, ScrUnk9E); + REGISTER_STATIC_RPC(pRakClient, ScrSetInterior); REGISTER_STATIC_RPC(pRakClient, ScrUnk9F); REGISTER_STATIC_RPC(pRakClient, ScrUnkA0); REGISTER_STATIC_RPC(pRakClient, ScrUnkA1); @@ -269,9 +269,9 @@ void UnRegisterScriptRPCs(RakClientInterface* pRakClient) UNREGISTER_STATIC_RPC(pRakClient, ScrRemovePlayerFromVehicle); UNREGISTER_STATIC_RPC(pRakClient, ScrSetPlayerColor); UNREGISTER_STATIC_RPC(pRakClient, ScrDisplayGameText); - UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9C); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9D); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9E); + UNREGISTER_STATIC_RPC(pRakClient, ScrSetInterior); UNREGISTER_STATIC_RPC(pRakClient, ScrUnk9F); UNREGISTER_STATIC_RPC(pRakClient, ScrUnkA0); UNREGISTER_STATIC_RPC(pRakClient, ScrUnkA1); diff --git a/server/scrcustom.cpp b/server/scrcustom.cpp index 70e821f..e2f5988 100644 --- a/server/scrcustom.cpp +++ b/server/scrcustom.cpp @@ -1160,10 +1160,16 @@ static cell AMX_NATIVE_CALL n_IsPlayerInRaceCheckpoint(AMX *amx, cell *params) return 0; } +// native SetPlayerInterior(playerid,interiorid) static cell AMX_NATIVE_CALL n_SetPlayerInterior(AMX *amx, cell *params) { - // TODO: SetPlayerInterior - return 0; + if (!pNetGame->GetPlayerPool()->GetSlotState((PLAYERID)params[1])) return 0; + RakNet::BitStream bsParams; + BYTE byteInteriorID = (BYTE)params[2]; + bsParams.Write(byteInteriorID); + + pNetGame->SendToPlayer(RPC_ScrSetInterior, &bsParams, (PLAYERID)params[1], 2); + return 1; } // native GetPlayerInterior(playerid,interiorid)