RakHook - библиотека, которая добавляет события RakNet'a (входящие/исходящие пакеты и RPC), эмуляцию и отправку пакетов и RPC.
Есть одновременная поддержка версий 0.3.7-R1, 0.3.7-R3-1, 0.3.7-R4 и 0.3DL-R1.
Функции
C++:
Код:
std
::
uintptr_t rakhook
::
samp_addr
(
std
::
uintptr_t offset
=
0
)
;
// получить адрес samp.dll со смещением
samp_ver rakhook
::
samp_version
(
)
;
// получить версию SA:MP, поддерживаемую RakHook.
bool
rakhook
::
initialize
(
)
;
// инициализировать RakHook.
void
rakhook
::
destroy
(
)
;
// завершение работы библиотеки.
bool
rakhook
::
send
(
RakNet
::
BitStream
*
bs
,
PacketPriority priority
,
PacketReliability reliability
,
char
ord_channel
)
;
// отправка пакета.
bool
rakhook
::
send_rpc
(
int
id
,
RakNet
::
BitStream
*
bs
,
PacketPriority priority
,
PacketReliability reliability
,
char
ord_channel
,
bool
sh_timestamp
)
;
// отправка RPC.
bool
rakhook
::
emul_rpc
(
unsigned
char
id
,
RakNet
::
BitStream
&
rpc_bs
)
;
// эмуляция RPC.
bool
rakhook
::
emul_packet
(
RakNet
::
BitStream
&
pbs
)
;
// эмуляция пакета.
События
C++:
Код:
// исходящий RPC.
rakhook
::
on_send_rpc
+=
[
]
(
int
&
id
,
RakNet
::
BitStream
*
&
bs
,
PacketPriority
&
priority
,
PacketReliability
&
reliability
,
char
&
ord_channel
,
bool
&
sh_timestamp
)
->
bool
{
return
true
;
}
;
// исходящий пакет.
rakhook
::
on_send_packet
+=
[
]
(
RakNet
::
BitStream
*
&
bs
,
PacketPriority
&
priority
,
PacketReliability
&
reliability
,
char
&
ord_channel
)
->
bool
{
return
true
;
}
;
// входящий RPC.
rakhook
::
on_receive_rpc
+=
[
]
(
unsigned
char
&
id
,
RakNet
::
BitStream
*
&&
bs
)
->
bool
{
return
true
;
}
;
// входящий пакет.
rakhook
::
on_receive_packet
+=
[
]
(
Packet
*
&
p
)
->
bool
{
return
true
;
}
;
Пример: https://github.com/imring/RakHook/tree/master/example
Ссылка на библиотеку: https://github.com/imring/RakHook
|