mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2025-06-23 01:02:23 +08:00
refactor(IncrementStat): Removed increment stat and moved to received event
This commit is contained in:
@ -14,8 +14,6 @@ namespace big::functions
|
|||||||
using gta_thread_tick = __int64(GtaThread* a1, unsigned int a2);
|
using gta_thread_tick = __int64(GtaThread* a1, unsigned int a2);
|
||||||
using gta_thread_kill = __int64(GtaThread* a1);
|
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);
|
using trigger_script_event = int(int unk0, int64_t* args, int argCount, int bitFlags);
|
||||||
|
|
||||||
// Received Event Signatures START
|
// Received Event Signatures START
|
||||||
|
@ -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_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_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_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)
|
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_kill_hook.enable();
|
||||||
m_gta_thread_tick_hook.enable();
|
m_gta_thread_tick_hook.enable();
|
||||||
|
|
||||||
m_increment_stat_hook.enable();
|
|
||||||
|
|
||||||
m_error_screen_hook.enable();
|
m_error_screen_hook.enable();
|
||||||
|
|
||||||
m_received_event_hook.enable();
|
m_received_event_hook.enable();
|
||||||
@ -91,8 +87,6 @@ namespace big
|
|||||||
|
|
||||||
m_error_screen_hook.disable();
|
m_error_screen_hook.disable();
|
||||||
|
|
||||||
m_increment_stat_hook.disable();
|
|
||||||
|
|
||||||
m_gta_thread_tick_hook.disable();
|
m_gta_thread_tick_hook.disable();
|
||||||
m_gta_thread_kill_hook.disable();
|
m_gta_thread_kill_hook.disable();
|
||||||
|
|
||||||
|
@ -27,8 +27,6 @@ namespace big
|
|||||||
static rage::eThreadState gta_thread_tick(GtaThread* a1, unsigned int a2);
|
static rage::eThreadState gta_thread_tick(GtaThread* a1, unsigned int a2);
|
||||||
static rage::eThreadState gta_thread_kill(GtaThread* thread);
|
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(
|
static bool received_event(
|
||||||
rage::netEventMgr* event_manager,
|
rage::netEventMgr* event_manager,
|
||||||
CNetGamePlayer* source_player,
|
CNetGamePlayer* source_player,
|
||||||
@ -73,8 +71,6 @@ namespace big
|
|||||||
detour_hook m_gta_thread_tick_hook;
|
detour_hook m_gta_thread_tick_hook;
|
||||||
detour_hook m_gta_thread_kill_hook;
|
detour_hook m_gta_thread_kill_hook;
|
||||||
|
|
||||||
detour_hook m_increment_stat_hook;
|
|
||||||
|
|
||||||
detour_hook m_received_event_hook;
|
detour_hook m_received_event_hook;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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<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(&hooks::increment_stat_event) > ()(net_event_struct, sender, a3);
|
|
||||||
}
|
|
||||||
}
|
|
@ -30,6 +30,34 @@ namespace big
|
|||||||
|
|
||||||
switch ((RockstarEvent)event_id)
|
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:
|
case RockstarEvent::NETWORK_CLEAR_PED_TASKS_EVENT:
|
||||||
{
|
{
|
||||||
if (source_player->player_id < 32)
|
if (source_player->player_id < 32)
|
||||||
@ -55,6 +83,8 @@ namespace big
|
|||||||
|
|
||||||
if (money >= 2000)
|
if (money >= 2000)
|
||||||
{
|
{
|
||||||
|
notify::blocked_event(event_name, source_player->player_id);
|
||||||
|
|
||||||
// player is spawning modded cash
|
// player is spawning modded cash
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,6 +93,7 @@ namespace big
|
|||||||
case RockstarEvent::NETWORK_CHECK_CODE_CRCS_EVENT:
|
case RockstarEvent::NETWORK_CHECK_CODE_CRCS_EVENT:
|
||||||
case RockstarEvent::REPORT_MYSELF_EVENT:
|
case RockstarEvent::REPORT_MYSELF_EVENT:
|
||||||
{
|
{
|
||||||
|
notify::blocked_event(event_name, source_player->player_id);
|
||||||
// player sending this event is a modder
|
// player sending this event is a modder
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -114,10 +145,12 @@ namespace big
|
|||||||
if (!propagate)
|
if (!propagate)
|
||||||
buffer->ReadDword(&target, 9);
|
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);
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
buffer->Seek(0);
|
buffer->Seek(0);
|
||||||
|
@ -123,11 +123,6 @@ namespace big
|
|||||||
m_gta_thread_kill = ptr.as<decltype(m_gta_thread_kill)>();
|
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)
|
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)>();
|
m_error_screen = ptr.as<decltype(m_error_screen)>();
|
||||||
|
@ -46,8 +46,6 @@ namespace big
|
|||||||
functions::gta_thread_tick* m_gta_thread_tick{};
|
functions::gta_thread_tick* m_gta_thread_tick{};
|
||||||
functions::gta_thread_kill* m_gta_thread_kill{};
|
functions::gta_thread_kill* m_gta_thread_kill{};
|
||||||
|
|
||||||
functions::increment_stat_event* m_increment_stat_event{};
|
|
||||||
|
|
||||||
functions::trigger_script_event* m_trigger_script_event{};
|
functions::trigger_script_event* m_trigger_script_event{};
|
||||||
|
|
||||||
// Received Event Signatures START
|
// Received Event Signatures START
|
||||||
|
Reference in New Issue
Block a user