From abdfa503a58161301b2a2a570870de0cbbbd2f2a Mon Sep 17 00:00:00 2001 From: Yimura Date: Tue, 25 May 2021 14:09:02 +0200 Subject: [PATCH] refactor(IncrementStat): Removed increment stat and moved to received event --- BigBaseV2/src/function_types.hpp | 2 -- BigBaseV2/src/hooking.cpp | 6 ---- BigBaseV2/src/hooking.hpp | 4 --- BigBaseV2/src/hooks/increment_stat_event.cpp | 32 ------------------ BigBaseV2/src/hooks/received_event.cpp | 35 +++++++++++++++++++- BigBaseV2/src/pointers.cpp | 5 --- BigBaseV2/src/pointers.hpp | 2 -- 7 files changed, 34 insertions(+), 52 deletions(-) delete mode 100644 BigBaseV2/src/hooks/increment_stat_event.cpp diff --git a/BigBaseV2/src/function_types.hpp b/BigBaseV2/src/function_types.hpp index 53d1f164..737234d9 100644 --- a/BigBaseV2/src/function_types.hpp +++ b/BigBaseV2/src/function_types.hpp @@ -14,8 +14,6 @@ namespace big::functions using gta_thread_tick = __int64(GtaThread* a1, unsigned int a2); using gta_thread_kill = __int64(GtaThread* a1); - using increment_stat_event = bool(uint64_t net_event_struct, int64_t sender, int64_t a3); - using trigger_script_event = int(int unk0, int64_t* args, int argCount, int bitFlags); // Received Event Signatures START diff --git a/BigBaseV2/src/hooking.cpp b/BigBaseV2/src/hooking.cpp index 0238ae6a..c831c454 100644 --- a/BigBaseV2/src/hooking.cpp +++ b/BigBaseV2/src/hooking.cpp @@ -42,8 +42,6 @@ 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) @@ -74,8 +72,6 @@ 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(); @@ -91,8 +87,6 @@ namespace big m_error_screen_hook.disable(); - m_increment_stat_hook.disable(); - m_gta_thread_tick_hook.disable(); m_gta_thread_kill_hook.disable(); diff --git a/BigBaseV2/src/hooking.hpp b/BigBaseV2/src/hooking.hpp index 51518c43..e6f823ef 100644 --- a/BigBaseV2/src/hooking.hpp +++ b/BigBaseV2/src/hooking.hpp @@ -27,8 +27,6 @@ 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, @@ -73,8 +71,6 @@ 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; }; diff --git a/BigBaseV2/src/hooks/increment_stat_event.cpp b/BigBaseV2/src/hooks/increment_stat_event.cpp deleted file mode 100644 index cf25366e..00000000 --- a/BigBaseV2/src/hooks/increment_stat_event.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "gta/joaat.hpp" -#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(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: "); - strcat(report, PLAYER::GET_PLAYER_NAME(sender_id)); - strcat(report, ""); - - notify::above_map(report); - - return true; - } - - return g_hooking->m_increment_stat_hook.get_original ()(net_event_struct, sender, a3); - } -} \ No newline at end of file diff --git a/BigBaseV2/src/hooks/received_event.cpp b/BigBaseV2/src/hooks/received_event.cpp index d6691a0f..9ad1fee3 100644 --- a/BigBaseV2/src/hooks/received_event.cpp +++ b/BigBaseV2/src/hooks/received_event.cpp @@ -30,6 +30,34 @@ 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: "); + strcat(report, PLAYER::GET_PLAYER_NAME(source_player->player_id)); + strcat(report, ""); + + notify::above_map(report); + + return false; + } + + buffer->Seek(0); + + break; + } case RockstarEvent::NETWORK_CLEAR_PED_TASKS_EVENT: { if (source_player->player_id < 32) @@ -55,6 +83,8 @@ namespace big if (money >= 2000) { + notify::blocked_event(event_name, source_player->player_id); + // player is spawning modded cash } @@ -63,6 +93,7 @@ namespace big case RockstarEvent::NETWORK_CHECK_CODE_CRCS_EVENT: case RockstarEvent::REPORT_MYSELF_EVENT: { + notify::blocked_event(event_name, source_player->player_id); // player sending this event is a modder break; @@ -114,10 +145,12 @@ namespace big if (!propagate) buffer->ReadDword(&target, 9); - if (weather > 12 || !propagate) + if (weather > 12) { g_pointers->m_send_event_ack(event_manager, source_player, target_player, event_index, event_handled_bitset); + notify::blocked_event(event_name, source_player->player_id); + return false; } buffer->Seek(0); diff --git a/BigBaseV2/src/pointers.cpp b/BigBaseV2/src/pointers.cpp index f0c67380..eb6cd40d 100644 --- a/BigBaseV2/src/pointers.cpp +++ b/BigBaseV2/src/pointers.cpp @@ -123,11 +123,6 @@ namespace big m_gta_thread_kill = ptr.as(); }); - 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(); - }); - 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(); diff --git a/BigBaseV2/src/pointers.hpp b/BigBaseV2/src/pointers.hpp index e438b82a..0b9b1e08 100644 --- a/BigBaseV2/src/pointers.hpp +++ b/BigBaseV2/src/pointers.hpp @@ -46,8 +46,6 @@ 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