feat(Pointers): Added Event Register

This commit is contained in:
Yimura 2021-05-19 00:07:13 +02:00
parent fcf94fe23e
commit 2a5bcce963
No known key found for this signature in database
GPG Key ID: 3D8FF4397E768682
4 changed files with 51 additions and 0 deletions

View File

@ -9,6 +9,21 @@
namespace big::gta_util
{
inline void defuse_event(RockstarEvent e, bool toggle)
{
if (g_pointers->m_event_ptr[e] == nullptr) return;
char* p = (char*)g_pointers->m_event_ptr[e];
if (toggle)
{
if (g_pointers->m_event_restore[e] == 0)
g_pointers->m_event_restore[e] = p[0];
*p = (unsigned char)0xC3;
}
else if (g_pointers->m_event_restore[e] != 0)
*p = g_pointers->m_event_restore[e];
}
inline CPed *get_local_ped()
{
if (auto ped_factory = *g_pointers->m_ped_factory)

View File

@ -112,6 +112,8 @@ namespace big
void gui::script_init()
{
gta_util::defuse_event(RockstarEvent::REPORT_CASH_SPAWN_EVENT, true);
gta_util::defuse_event(RockstarEvent::REPORT_MYSELF_EVENT, true);
}
void gui::script_on_tick()

View File

@ -76,6 +76,35 @@ namespace big
{
m_native_return = ptr.add(0).as<PVOID>();
});
main_batch.add("Event Register", "48 83 EC 28 E8 ? ? ? ? 48 8B 0D ? ? ? ? 4C 8D 0D ? ? ? ? 4C 8D 05 ? ? ? ? BA 03", [this](memory::handle ptr)
{
m_event_register = ptr.as<char*>();
if (m_event_register)
{
const char* pattern = "\x4C\x8D\x05";
for (int i = 0, x = 0, found = 0, matches = 0; found < event_count; i++)
{
if (m_event_register[i] == pattern[x])
{
if (++matches == 3)
{
m_event_ptr.push_back((void*)(reinterpret_cast<uint64_t>(m_event_register + i - x) + *reinterpret_cast<int*>(m_event_register + i + 1) + 7));
found++;
x = matches = 0;
}
x++;
continue;
}
x = matches = 0;
}
}
});
main_batch.run(memory::module(nullptr));

View File

@ -35,6 +35,11 @@ namespace big
PVOID m_model_spawn_bypass;
PVOID m_native_return;
static const int event_count = 87;
std::vector<PVOID> m_event_ptr;
unsigned char m_event_restore[event_count];
char* m_event_register;
};
inline pointers *g_pointers{};