refactor(IncrementStatHook): Re-added old code

This commit is contained in:
Yimura 2021-05-25 14:44:35 +02:00
parent ea4d1cd30b
commit 600e9ad892
No known key found for this signature in database
GPG Key ID: 3D8FF4397E768682
7 changed files with 50 additions and 28 deletions

View File

@ -16,6 +16,8 @@ namespace big::functions
using trigger_script_event = int(int unk0, int64_t* args, int argCount, int bitFlags);
using increment_stat_event = bool(uint64_t net_event_struct, int64_t sender, int64_t a3);
// Received Event Signatures START
using read_bitbuf_array = bool(rage::datBitBuffer* buffer, PVOID read, int bits, int);
using read_bitbuf_dword = bool(rage::datBitBuffer* buffer, PVOID read, int bits);

View File

@ -42,6 +42,8 @@ namespace big
m_gta_thread_tick_hook("GTA Thread Tick", g_pointers->m_gta_thread_tick, &hooks::gta_thread_tick),
m_gta_thread_kill_hook("GTA Thread Kill", g_pointers->m_gta_thread_kill, &hooks::gta_thread_kill),
m_increment_stat_hook("Increment Stat Event", g_pointers->m_increment_stat_event, &hooks::increment_stat_event),
m_error_screen_hook("Error Screen", g_pointers->m_error_screen, &hooks::disable_error_screen),
m_received_event_hook("Received Event", g_pointers->m_received_event, &hooks::received_event)
@ -72,6 +74,8 @@ namespace big
m_gta_thread_kill_hook.enable();
m_gta_thread_tick_hook.enable();
m_increment_stat_hook.enable();
m_error_screen_hook.enable();
m_received_event_hook.enable();
@ -87,6 +91,8 @@ namespace big
m_error_screen_hook.disable();
m_increment_stat_hook.disable();
m_gta_thread_tick_hook.disable();
m_gta_thread_kill_hook.disable();

View File

@ -27,6 +27,8 @@ namespace big
static rage::eThreadState gta_thread_tick(GtaThread* a1, unsigned int a2);
static rage::eThreadState gta_thread_kill(GtaThread* thread);
static bool increment_stat_event(uint64_t net_event_struct, CNetGamePlayer* sender, int64_t a3);
static bool received_event(
rage::netEventMgr* event_manager,
CNetGamePlayer* source_player,
@ -71,6 +73,8 @@ namespace big
detour_hook m_gta_thread_tick_hook;
detour_hook m_gta_thread_kill_hook;
detour_hook m_increment_stat_hook;
detour_hook m_received_event_hook;
};

View File

@ -0,0 +1,31 @@
#include "hooking.hpp"
#include "natives.hpp"
#include "util/notify.hpp"
namespace big
{
bool hooks::increment_stat_event(uint64_t net_event_struct, CNetGamePlayer* sender, int64_t a3)
{
Hash hash = *reinterpret_cast<DWORD*>(net_event_struct + 0x30);
Player sender_id = sender->player_id;
switch (hash)
{
case RAGE_JOAAT("MPPLY_GAME_EXPLOITS"):
case RAGE_JOAAT("MPPLY_VC_HATE"):
case RAGE_JOAAT("MPPLY_EXPLOITS"):
case RAGE_JOAAT("MPPLY_TC_ANNOYINGME"):
case RAGE_JOAAT("MPPLY_TC_HATE"):
char report[64];
strcpy(report, "~g~BLOCKED REPORT~s~\nFrom: <C>");
strcat(report, PLAYER::GET_PLAYER_NAME(sender_id));
strcat(report, "</C>");
notify::above_map(report);
return true;
}
return g_hooking->m_increment_stat_hook.get_original<decltype(&increment_stat_event)>()(net_event_struct, sender, a3);
}
}

View File

@ -30,34 +30,6 @@ namespace big
switch ((RockstarEvent)event_id)
{
case RockstarEvent::NETWORK_INCREMENT_STAT_EVENT:
{
Hash hash;
buffer->ReadDword(&hash, 32);
switch (hash)
{
case RAGE_JOAAT("MPPLY_GAME_EXPLOITS"):
case RAGE_JOAAT("MPPLY_VC_HATE"):
case RAGE_JOAAT("MPPLY_EXPLOITS"):
case RAGE_JOAAT("MPPLY_TC_ANNOYINGME"):
case RAGE_JOAAT("MPPLY_TC_HATE"):
g_pointers->m_send_event_ack(event_manager, source_player, target_player, event_index, event_handled_bitset);
char report[64];
strcpy(report, "~g~BLOCKED REPORT~s~\nFrom: <C>");
strcat(report, PLAYER::GET_PLAYER_NAME(source_player->player_id));
strcat(report, "</C>");
notify::above_map(report);
return false;
}
buffer->Seek(0);
break;
}
case RockstarEvent::NETWORK_CLEAR_PED_TASKS_EVENT:
{
if (source_player->player_id < 32)

View File

@ -123,6 +123,11 @@ namespace big
m_gta_thread_kill = ptr.as<decltype(m_gta_thread_kill)>();
});
main_batch.add("Increment Stat Event", "48 89 5C 24 ? 48 89 74 24 ? 55 57 41 55 41 56 41 57 48 8B EC 48 83 EC 60 8B 79 30", [this](memory::handle ptr)
{
m_increment_stat_event = ptr.as<decltype(m_increment_stat_event)>();
});
main_batch.add("Error Screen", "48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC 60 4C 8B F2 48 8B 94 24 ? ? ? ? 33 DB", [this](memory::handle ptr)
{
m_error_screen = ptr.as<decltype(m_error_screen)>();

View File

@ -46,6 +46,8 @@ namespace big
functions::gta_thread_tick* m_gta_thread_tick{};
functions::gta_thread_kill* m_gta_thread_kill{};
functions::increment_stat_event* m_increment_stat_event{};
functions::trigger_script_event* m_trigger_script_event{};
// Received Event Signatures START