feat: Patch game self report sender (#3422)
Some checks failed
Nightly Build / Check Recent Commit (push) Failing after 1s
Nightly Build / Build Nightly (push) Has been skipped
Nightly Build / Recreate Release (push) Has been skipped

Fixes #3401
This commit is contained in:
Andreas Maerten 2024-07-24 23:46:47 +02:00 committed by GitHub
parent c22314c2c0
commit 086f42f21e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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

@ -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