fix(net_events):

This commit is contained in:
maybegreat48 committed 2025-03-24 17:49:16 -04:00
1 parent b272f7a291
commit 70e7cb150d
10 files changed
+226 -203

No files matched your search

@@ -1,62 +0,0 @@
#include "core/util/Joaat.hpp"
#include "game/backend/Self.hpp"
#include "game/hooks/Hooks.hpp"
#include "game/pointers/Pointers.hpp"
#include "types/network/CNetGamePlayer.hpp"
#include "types/network/NetEventType.hpp"
#include "types/rage/datBitBuffer.hpp"
namespace YimMenu::Hooks
{
static void SendEventAck(rage::netEventMgr* event_mgr, CNetGamePlayer* source_player, CNetGamePlayer* target_player, uint32_t event_index, uint32_t event_handled_bits)
{
if (source_player->m_PlayerIndex != 255 && !Pointers.EventAck(0x778LL * source_player->m_PlayerIndex + (intptr_t)event_mgr + 0x2C408, target_player, event_index, event_handled_bits))
{
Pointers.SendEventAck(event_mgr, source_player);
Pointers.EventAck((intptr_t)event_mgr + 0x2C408 + 0x778LL * source_player->m_PlayerIndex, target_player, event_index, event_handled_bits);
}
}
static bool HandleNetGameEvent(Player& player, uint16_t event_id, rage::datBitBuffer& buffer)
{
switch (static_cast<NetEventType>(event_id))
{
case NetEventType::WEAPON_DAMAGE_EVENT:
{
uint8_t damage_type = buffer.Read<uint8_t>(2);
uint32_t weapon_type = buffer.Read<uint32_t>(32);
if (weapon_type == "WEAPON_TRANQUILIZER"_J)
{
//player.AddDetection();
return false;
}
break;
}
case NetEventType::SCRIPTED_GAME_EVENT:
{
int64_t args[54]{};
uint32_t args_size = buffer.Read<uint32_t>(32);
if (args_size > sizeof(args))
return false;
buffer.ReadArray(args, 8 * args_size);
if (!Network::HandleScriptedGameEvent(player, args, args_size))
return false;
break;
}
}
return true;
}
void Network::ReceiveEvent(Player& player, uint16_t event_id, uint32_t event_index, uint32_t event_handled_bits, rage::datBitBuffer& buffer)
{
if (!HandleNetGameEvent(player, event_id, buffer))
SendEventAck(*Pointers.NetEventMgr, player.GetHandle(), Self::GetPlayer().GetHandle(), event_index, event_handled_bits);
}
}