RakHook is a library that adds RakNet events (incoming/outgoing Packets & RPC), emulation and sending Packets & RPC.
There is support for versions 0.3.7-R1, 0.3.7-R3-1, 0.3.7-R4 and 0.3DL-R1.
std::uintptr_t rakhook::samp_addr(std::uintptr_t offset = 0)- Get SA:MP module address with an offset.samp_ver rakhook::samp_version()- Get SA:MP version supported by RakHook.
bool rakhook::initialize()- Initialize RakHook.void rakhook::destroy()- Destroy RakHook.on_event<send_t> rakhook::on_send_packet- Outgoing the packet.on_event<receive_t> rakhook::on_receive_packet- Incoming the packet.on_event<send_rpc_t> rakhook::on_send_rpc- Outgoing RPC.on_event<receive_rpc_t> rakhook::on_receive_rpc- Incoming RPC.
bool rakhook::send(RakNet::BitStream *bs, PacketPriority priority, PacketReliability reliability, char ord_channel)- Send the packet.bool rakhook::send_rpc(int id, RakNet::BitStream *bs, PacketPriority priority, PacketReliability reliability, char ord_channel, bool sh_timestamp)- Send RPC.bool rakhook::emul_packet(RakNet::BitStream &pbs)- Emulate the packet.bool rakhook::emul_rpc(unsigned char id, RakNet::BitStream &rpc_bs)- Emulate RPC.
You can learn the example here.
Recommended way to link the library - FetchContent, but you can use others (submodule, install, etc).