2022-12-06 16:12:02 +00:00
|
|
|
#pragma once
|
2022-11-12 18:35:28 +00:00
|
|
|
#include "services/script_patcher/script_patcher_service.hpp"
|
|
|
|
#include <script/scrProgramTable.hpp>
|
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
|
|
|
void register_script_patches()
|
|
|
|
{
|
2022-11-12 21:02:50 +00:00
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("freemode"), "2D 01 08 00 ? 38 00 5D ? ? ? 2A 06", 5, {0x6E, 0x2E, 0x01, 0x01}, &g->session.decloak_players });
|
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("freemode"), "2D 01 04 00 ? 2C ? ? ? 5D ? ? ? 6E 57 ? ? 2C", 5, { 0x2E, 0x01, 0x00 }, &g->protections.script_host_kick });
|
2022-12-06 16:12:02 +00:00
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("freemode"), "2D 01 08 00 00 5D ? ? ? 56 ? ? 6E", 5, { 0x2E, 0x01, 0x00 }, &g->tunables.no_idle_kick });
|
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("freemode"), "5D ? ? ? 73 57 ? ? 5D ? ? ? 73", 0, { 0x2E, 0x00, 0x00 }, nullptr }); // end session kick protection
|
2022-11-12 21:02:50 +00:00
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("freemode"), "2D 01 09 00 00 5D ? ? ? 56 ? ? 2E", 5, { 0x2E, 0x01, 0x00 }, nullptr }); // disable death when undermap/spectating
|
2022-12-06 16:12:02 +00:00
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("shop_controller"), "2D 01 04 00 00 2C ? ? ? 56 ? ? 6E", 5, { 0x6E, 0x2E, 0x01, 0x01 }, nullptr }); // despawn bypass
|
|
|
|
g_script_patcher_service->add_patch({ RAGE_JOAAT("shop_controller"), "38 00 5D ? ? ? 38 00 5D ? ? ? 38 00 41", 0, std::vector<uint8_t>(12, 0x0), nullptr}); // godmode/invisibility detection bypass
|
2022-11-12 18:35:28 +00:00
|
|
|
|
|
|
|
for (auto& entry : *g_pointers->m_script_program_table)
|
|
|
|
{
|
|
|
|
if (entry.m_program)
|
2022-11-12 21:02:50 +00:00
|
|
|
g_script_patcher_service->on_script_load(entry.m_program);
|
2022-11-12 18:35:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|