feat: Patch game self report sender (#3422)

Fixes #3401
This commit is contained in:
Andreas Maerten 2024-07-24 23:46:47 +02:00 committed by GitHub
parent 21929ee421
commit a98411bc82
3 changed files with 16 additions and 3 deletions

View File

@ -1,12 +1,12 @@
#include "byte_patch_manager.hpp"
#include "backend/commands/weapons/no_sway.hpp"
#include "gta/net_array.hpp"
#include "memory/byte_patch.hpp"
#include "pointers.hpp"
#include "util/explosion_anti_cheat_bypass.hpp"
#include "util/vehicle.hpp"
#include "util/world_model.hpp"
#include "backend/commands/weapons/no_sway.hpp"
extern "C" void sound_overload_detour();
uint64_t g_sound_overload_ret_addr;
@ -81,6 +81,8 @@ namespace big
memory::byte_patch::make(g_pointers->m_gta.m_activate_special_ability_patch, std::to_array({0xB0, 0x01, 0xC3}))->apply();
weapons::m_no_sway_patch = memory::byte_patch::make(g_pointers->m_gta.m_scope_sway_function, std::vector{0xEB}).get();
memory::byte_patch::make(g_pointers->m_gta.m_report_myself_sender, std::vector{0xC3})->apply();
}
byte_patch_manager::byte_patch_manager()

View File

@ -361,9 +361,9 @@ namespace big
uintptr_t* m_cam_gameplay_director;
functions::cam_gameplay_directory_update m_cam_gameplay_director_update;
PVOID m_format_int;
PVOID m_searchlight_crash;
functions::get_searchlight m_get_searchlight;
@ -399,6 +399,8 @@ namespace big
PVOID m_create_pool_item;
PVOID m_scope_sway_function;
PVOID m_report_myself_sender;
};
#pragma pack(pop)
static_assert(sizeof(gta_pointers) % 8 == 0, "Pointers are not properly aligned");

View File

@ -1893,6 +1893,15 @@ namespace big
{
g_pointers->m_gta.m_scope_sway_function = ptr.as<PVOID>();
}
},
// Report Myself Sender
{
"RPS",
"E8 ? ? ? ? 33 C0 87 83 90 02 00 00",
[](memory::handle ptr)
{
g_pointers->m_gta.m_report_myself_sender = ptr.add(1).rip().as<PVOID>();
}
}
>(); // don't leave a trailing comma at the end