- 622
- 369
Пытался вызывать RakPeer::HandleRPCPacket, по примеру из RakLua, но ниче не даёт
либо косяк в имплементации, либо идея в корне неверная, тут хз
(p.s., имплементация бит стрима своя, чекал данные внутри, всё норм, проблема врятли в нём)
up
либо косяк в имплементации, либо идея в корне неверная, тут хз
(p.s., имплементация бит стрима своя, чекал данные внутри, всё норм, проблема врятли в нём)
C++:
// полоска - разный файл/часть файла
// =====================
SampAddress<RakPeer__HandleRPCPacket_t> refRakPeer__HandleRPCPacket(0x372F0, 0x3ADE0);
// =======================
void sampEmulateIncomingRPC(char id, const FJBitStream& bs) {
if (!s_RakPeer) return;
FJBitStream out_bs;
out_bs.Write((char)20);
out_bs.Write(id);
out_bs.Write(bs);
refRakPeer__HandleRPCPacket.get()(s_RakPeer, out_bs.GetData(), out_bs.GetSize(), s_PlayerID);
}
// ==============
// хук RakPeer::HandleRPCPacket, он работает, все rpc хандлит
static std::optional<bool> _onIncomingRpc(const kthook::kthook_signal<RakPeer__HandleRPCPacket_t>&, RakPeer*&, const char*& data, int&, PlayerID& plId) {
s_PlayerID = plId;
return std::nullopt;
}
up
Последнее редактирование: