[server] Implement RegisterRPCs and UnRegisterRPCs

This commit is contained in:
RD42
2024-01-04 23:40:00 +08:00
parent 19dba6d54c
commit 12544bb75e
6 changed files with 238 additions and 0 deletions
+21
View File
@@ -18,4 +18,25 @@ struct RPCParameters
char _gap0; // TODO: RPCParameters
};
/// \def REGISTER_STATIC_RPC
/// \ingroup RAKNET_RPC
/// Register a C function as a Remote procedure.
/// \param[in] networkObject Your instance of RakPeer, RakServer, or RakClient
/// \param[in] functionName The name of the C function to call
/// \attention 12/01/05 REGISTER_AS_REMOTE_PROCEDURE_CALL renamed to REGISTER_STATIC_RPC. Delete the old name sometime in the future
//#pragma deprecated(REGISTER_AS_REMOTE_PROCEDURE_CALL)
//#define REGISTER_AS_REMOTE_PROCEDURE_CALL(networkObject, functionName) REGISTER_STATIC_RPC(networkObject, functionName)
#define REGISTER_STATIC_RPC(networkObject, functionName) (networkObject)->RegisterAsRemoteProcedureCall((RPC_##functionName),(functionName))
/// \def UNREGISTER_STATIC_RPC
/// \ingroup RAKNET_RPC
/// Unregisters a remote procedure call
/// RPC member Functions MUST be marked __cdecl! See the ObjectMemberRPC example.
/// \param[in] networkObject The object that manages the function
/// \param[in] functionName The function name
// 12/01/05 UNREGISTER_AS_REMOTE_PROCEDURE_CALL Renamed to UNREGISTER_STATIC_RPC. Delete the old name sometime in the future
//#pragma deprecated(UNREGISTER_AS_REMOTE_PROCEDURE_CALL)
//#define UNREGISTER_AS_REMOTE_PROCEDURE_CALL(networkObject,functionName) UNREGISTER_STATIC_RPC(networkObject,functionName)
#define UNREGISTER_STATIC_RPC(networkObject,functionName) (networkObject)->UnregisterAsRemoteProcedureCall((RPC_##functionName))
#endif
+34
View File
@@ -0,0 +1,34 @@
// TODO: Implement SAMPRPC.h
#define RPC_Unk73 "\x73"
#define RPC_Unk66 "\x66"
#define RPC_Unk76 "\x76"
#define RPC_Unk60 "\x60"
#define RPC_Unk1F "\x1F"
#define RPC_Unk77 "\x77"
#define RPC_Unk88 "\x88"
#define RPC_Unk61 "\x61"
#define RPC_Unk83 "\x83"
#define RPC_Unk84 "\x84"
#define RPC_Unk8C "\x8C"
#define RPC_Unk3E "\x3E"
#define RPC_Unk17 "\x17"
#define RPC_Unk19 "\x19"
#define RPC_Unk36 "\x36"
#define RPC_Unk65 "\x65"
#define RPC_Unk80 "\x80"
#define RPC_Unk81 "\x81"
#define RPC_Unk34 "\x34"
#define RPC_Unk35 "\x35"
#define RPC_Unk6A "\x6A"
#define RPC_Unk1A "\x1A"
#define RPC_Unk9A "\x9A"
#define RPC_Unk32 "\x32"
#define RPC_Unk9B "\x9B"
#define RPC_Unk74 "\x74"
#define RPC_Unk75 "\x75"
#define RPC_Unk1B "\x1B"
#define RPC_Unk53 "\x53"
#define RPC_Unk67 "\x67"
#define RPC_UnkA8 "\xA8"
#define RPC_UnkB1 "\xB1"
+2
View File
@@ -59,6 +59,7 @@
// Raknet
#include "../raknet/RakServer.h"
#include "../raknet/RakNetworkFactory.h"
#include "../raknet/SAMPRPC.h"
#include "../raknet/GetTime.h"
// amx
@@ -75,6 +76,7 @@ typedef unsigned short VEHICLEID;
#include "scrtimers.h"
#include "gamemodes.h"
#include "filterscripts.h"
#include "netrpc.h"
#include "playerpool.h"
#include "vehiclepool.h"
#include "pickuppool.h"
+118
View File
@@ -0,0 +1,118 @@
#include "main.h"
RakServerInterface *pRak=0;
void Unk66(RPCParameters *rpcParams) {} // TODO: Unk66
void Unk76(RPCParameters *rpcParams) {} // TODO: Unk76
void Unk60(RPCParameters *rpcParams) {} // TODO: Unk60
void Unk1F(RPCParameters *rpcParams) {} // TODO: Unk1F
void Unk77(RPCParameters *rpcParams) {} // TODO: Unk77
void Unk88(RPCParameters *rpcParams) {} // TODO: Unk88
void Unk61(RPCParameters *rpcParams) {} // TODO: Unk61
void Unk83(RPCParameters *rpcParams) {} // TODO: Unk83
void Unk84(RPCParameters *rpcParams) {} // TODO: Unk84
void Unk8C(RPCParameters *rpcParams) {} // TODO: Unk8C
void Unk3E(RPCParameters *rpcParams) {} // TODO: Unk3E
void Unk17(RPCParameters *rpcParams) {} // TODO: Unk17
void Unk19(RPCParameters *rpcParams) {} // TODO: Unk19
void Unk36(RPCParameters *rpcParams) {} // TODO: Unk36
void Unk65(RPCParameters *rpcParams) {} // TODO: Unk65
void Unk80(RPCParameters *rpcParams) {} // TODO: Unk80
void Unk81(RPCParameters *rpcParams) {} // TODO: Unk81
void Unk34(RPCParameters *rpcParams) {} // TODO: Unk34
void Unk35(RPCParameters *rpcParams) {} // TODO: Unk35
void Unk6A(RPCParameters *rpcParams) {} // TODO: Unk6A
void Unk1A(RPCParameters *rpcParams) {} // TODO: Unk1A
void Unk9A(RPCParameters *rpcParams) {} // TODO: Unk9A
void Unk32(RPCParameters *rpcParams) {} // TODO: Unk32
void Unk9B(RPCParameters *rpcParams) {} // TODO: Unk9B
void Unk74(RPCParameters *rpcParams) {} // TODO: Unk74
void Unk75(RPCParameters *rpcParams) {} // TODO: Unk75
void Unk1B(RPCParameters *rpcParams) {} // TODO: Unk1B
void Unk53(RPCParameters *rpcParams) {} // TODO: Unk53
void Unk67(RPCParameters *rpcParams) {} // TODO: Unk67
void UnkA8(RPCParameters *rpcParams) {} // TODO: UnkA8
void Unk73(RPCParameters *rpcParams) {} // TODO: Unk73
void UnkB1(RPCParameters *rpcParams) {} // TODO: UnkB1
//----------------------------------------------------
void RegisterRPCs(RakServerInterface * pRakServer)
{
pRak = pRakServer;
REGISTER_STATIC_RPC(pRakServer, Unk66);
REGISTER_STATIC_RPC(pRakServer, Unk76);
REGISTER_STATIC_RPC(pRakServer, Unk60);
REGISTER_STATIC_RPC(pRakServer, Unk1F);
REGISTER_STATIC_RPC(pRakServer, Unk77);
REGISTER_STATIC_RPC(pRakServer, Unk88);
REGISTER_STATIC_RPC(pRakServer, Unk61);
REGISTER_STATIC_RPC(pRakServer, Unk83);
REGISTER_STATIC_RPC(pRakServer, Unk84);
REGISTER_STATIC_RPC(pRakServer, Unk8C);
REGISTER_STATIC_RPC(pRakServer, Unk3E);
REGISTER_STATIC_RPC(pRakServer, Unk17);
REGISTER_STATIC_RPC(pRakServer, Unk19);
REGISTER_STATIC_RPC(pRakServer, Unk36);
REGISTER_STATIC_RPC(pRakServer, Unk65);
REGISTER_STATIC_RPC(pRakServer, Unk80);
REGISTER_STATIC_RPC(pRakServer, Unk81);
REGISTER_STATIC_RPC(pRakServer, Unk34);
REGISTER_STATIC_RPC(pRakServer, Unk35);
REGISTER_STATIC_RPC(pRakServer, Unk6A);
REGISTER_STATIC_RPC(pRakServer, Unk1A);
REGISTER_STATIC_RPC(pRakServer, Unk9A);
REGISTER_STATIC_RPC(pRakServer, Unk32);
REGISTER_STATIC_RPC(pRakServer, Unk9B);
REGISTER_STATIC_RPC(pRakServer, Unk74);
REGISTER_STATIC_RPC(pRakServer, Unk75);
REGISTER_STATIC_RPC(pRakServer, Unk1B);
REGISTER_STATIC_RPC(pRakServer, Unk53);
REGISTER_STATIC_RPC(pRakServer, Unk67);
REGISTER_STATIC_RPC(pRakServer, UnkA8);
REGISTER_STATIC_RPC(pRakServer, Unk73);
REGISTER_STATIC_RPC(pRakServer, UnkB1);
}
//----------------------------------------------------
void UnRegisterRPCs(RakServerInterface * pRakServer)
{
UNREGISTER_STATIC_RPC(pRakServer, Unk73);
UNREGISTER_STATIC_RPC(pRakServer, Unk66);
UNREGISTER_STATIC_RPC(pRakServer, Unk76);
UNREGISTER_STATIC_RPC(pRakServer, Unk60);
UNREGISTER_STATIC_RPC(pRakServer, Unk1F);
UNREGISTER_STATIC_RPC(pRakServer, Unk77);
UNREGISTER_STATIC_RPC(pRakServer, Unk88);
UNREGISTER_STATIC_RPC(pRakServer, Unk61);
UNREGISTER_STATIC_RPC(pRakServer, Unk83);
UNREGISTER_STATIC_RPC(pRakServer, Unk84);
UNREGISTER_STATIC_RPC(pRakServer, Unk8C);
UNREGISTER_STATIC_RPC(pRakServer, Unk3E);
UNREGISTER_STATIC_RPC(pRakServer, Unk17);
UNREGISTER_STATIC_RPC(pRakServer, Unk19);
UNREGISTER_STATIC_RPC(pRakServer, Unk36);
UNREGISTER_STATIC_RPC(pRakServer, Unk65);
UNREGISTER_STATIC_RPC(pRakServer, Unk80);
UNREGISTER_STATIC_RPC(pRakServer, Unk81);
UNREGISTER_STATIC_RPC(pRakServer, Unk34);
UNREGISTER_STATIC_RPC(pRakServer, Unk35);
UNREGISTER_STATIC_RPC(pRakServer, Unk6A);
UNREGISTER_STATIC_RPC(pRakServer, Unk1A);
UNREGISTER_STATIC_RPC(pRakServer, Unk9A);
UNREGISTER_STATIC_RPC(pRakServer, Unk32);
UNREGISTER_STATIC_RPC(pRakServer, Unk9B);
UNREGISTER_STATIC_RPC(pRakServer, Unk74);
UNREGISTER_STATIC_RPC(pRakServer, Unk75);
UNREGISTER_STATIC_RPC(pRakServer, Unk1B);
UNREGISTER_STATIC_RPC(pRakServer, Unk53);
UNREGISTER_STATIC_RPC(pRakServer, Unk67);
UNREGISTER_STATIC_RPC(pRakServer, UnkA8);
pRak = 0;
}
//----------------------------------------------------
+12
View File
@@ -0,0 +1,12 @@
#ifndef SAMPSRV_NETRPC_H
#define SAMPSRV_NETRPC_H
//----------------------------------------------------
void RegisterRPCs(RakServerInterface *);
void UnRegisterRPCs(RakServerInterface *);
//----------------------------------------------------
#endif
+51
View File
@@ -129,6 +129,30 @@
<File
RelativePath="..\raknet\GetTime.h">
</File>
<File
RelativePath="..\raknet\NetworkTypes.cpp">
</File>
<File
RelativePath="..\raknet\NetworkTypes.h">
</File>
<File
RelativePath="..\raknet\PacketEnumerations.h">
</File>
<File
RelativePath="..\raknet\RakClient.cpp">
</File>
<File
RelativePath="..\raknet\RakClient.h">
</File>
<File
RelativePath="..\raknet\RakClientInterface.h">
</File>
<File
RelativePath="..\raknet\RakNetStatistics.cpp">
</File>
<File
RelativePath="..\raknet\RakNetStatistics.h">
</File>
<File
RelativePath="..\raknet\RakNetworkFactory.cpp">
</File>
@@ -153,6 +177,27 @@
<File
RelativePath="..\raknet\RakServerInterface.h">
</File>
<File
RelativePath="..\raknet\RakSleep.cpp">
</File>
<File
RelativePath="..\raknet\RakSleep.h">
</File>
<File
RelativePath="..\raknet\RPCMap.cpp">
</File>
<File
RelativePath="..\raknet\RPCMap.h">
</File>
<File
RelativePath="..\raknet\RPCNode.h">
</File>
<File
RelativePath="..\raknet\SimpleMutex.cpp">
</File>
<File
RelativePath="..\raknet\SimpleMutex.h">
</File>
<Filter
Name="amx"
Filter="">
@@ -220,6 +265,12 @@
<File
RelativePath=".\netgame.h">
</File>
<File
RelativePath=".\netrpc.cpp">
</File>
<File
RelativePath=".\netrpc.h">
</File>
<File
RelativePath=".\objectpool.cpp">
</File>