mirror of
https://github.com/YimMenu/YimMenuV2.git
synced 2026-10-11 01:38:13 +08:00
fix(net_events):
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user