эмуляция rpc без sf

RedHolms

Известный
Автор темы
Проверенный
617
360
Пытался вызывать RakPeer::HandleRPCPacket, по примеру из RakLua, но ниче не даёт
либо косяк в имплементации, либо идея в корне неверная, тут хз
(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
 
Последнее редактирование:
  • Вау
Реакции: qdIbp