mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2025-01-04 00:23:27 +08:00
feat(ErrorScreen): Removed detour hook as it's "detected"
This commit is contained in:
parent
286960ac18
commit
ad690f242b
@ -48,9 +48,6 @@ namespace big
|
|||||||
// Is DLC Present
|
// Is DLC Present
|
||||||
m_is_dlc_present_hook("IDP", g_pointers->m_is_dlc_present, &hooks::is_dlc_present),
|
m_is_dlc_present_hook("IDP", g_pointers->m_is_dlc_present, &hooks::is_dlc_present),
|
||||||
|
|
||||||
// Error Screen
|
|
||||||
m_error_screen_hook("ES", g_pointers->m_error_screen, &hooks::set_warning_message_with_header),
|
|
||||||
|
|
||||||
// Received Event
|
// Received Event
|
||||||
m_received_event_hook("RE", g_pointers->m_received_event, &hooks::received_event),
|
m_received_event_hook("RE", g_pointers->m_received_event, &hooks::received_event),
|
||||||
|
|
||||||
@ -98,8 +95,6 @@ namespace big
|
|||||||
|
|
||||||
m_increment_stat_hook.enable();
|
m_increment_stat_hook.enable();
|
||||||
|
|
||||||
m_error_screen_hook.enable();
|
|
||||||
|
|
||||||
m_received_event_hook.enable();
|
m_received_event_hook.enable();
|
||||||
|
|
||||||
m_send_net_info_to_lobby.enable();
|
m_send_net_info_to_lobby.enable();
|
||||||
@ -115,8 +110,6 @@ namespace big
|
|||||||
|
|
||||||
m_received_event_hook.disable();
|
m_received_event_hook.disable();
|
||||||
|
|
||||||
m_error_screen_hook.disable();
|
|
||||||
|
|
||||||
m_increment_stat_hook.disable();
|
m_increment_stat_hook.disable();
|
||||||
|
|
||||||
m_player_has_joined_hook.disable();
|
m_player_has_joined_hook.disable();
|
||||||
|
@ -23,19 +23,6 @@ namespace big
|
|||||||
static LRESULT wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
static LRESULT wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
||||||
static BOOL set_cursor_pos(int x, int y);
|
static BOOL set_cursor_pos(int x, int y);
|
||||||
|
|
||||||
static void set_warning_message_with_header(
|
|
||||||
const char* entryHeader,
|
|
||||||
const char* entryLine1,
|
|
||||||
int instructionalKey,
|
|
||||||
const char* entryLine2,
|
|
||||||
bool p4,
|
|
||||||
Any p5,
|
|
||||||
Any* showBackground,
|
|
||||||
Any* p7,
|
|
||||||
bool p8,
|
|
||||||
Any p9
|
|
||||||
);
|
|
||||||
|
|
||||||
static GtaThread* gta_thread_start(unsigned int** a1, unsigned int a2);
|
static GtaThread* gta_thread_start(unsigned int** a1, unsigned int a2);
|
||||||
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);
|
||||||
@ -95,8 +82,6 @@ namespace big
|
|||||||
detour_hook m_run_script_threads_hook;
|
detour_hook m_run_script_threads_hook;
|
||||||
detour_hook m_convert_thread_to_fiber_hook;
|
detour_hook m_convert_thread_to_fiber_hook;
|
||||||
|
|
||||||
detour_hook m_error_screen_hook;
|
|
||||||
|
|
||||||
detour_hook m_gta_thread_start_hook;
|
detour_hook m_gta_thread_start_hook;
|
||||||
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;
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
#include "gta/joaat.hpp"
|
|
||||||
#include "hooking.hpp"
|
|
||||||
#include "natives.hpp"
|
|
||||||
#include "script_global.hpp"
|
|
||||||
|
|
||||||
namespace big
|
|
||||||
{
|
|
||||||
void hooks::set_warning_message_with_header(
|
|
||||||
const char* entryHeader,
|
|
||||||
const char* entryLine1,
|
|
||||||
int instructionalKey,
|
|
||||||
const char* entryLine2,
|
|
||||||
bool p4,
|
|
||||||
Any p5,
|
|
||||||
Any* showBackground,
|
|
||||||
Any* p7,
|
|
||||||
bool p8,
|
|
||||||
Any p9
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (SCRIPT::GET_HASH_OF_THIS_SCRIPT_NAME() == RAGE_JOAAT("shop_controller") && strcmp(entryLine1, "CTALERT_F_2") == 0)
|
|
||||||
{
|
|
||||||
if (g->notifications.transaction_rate_limit.log)
|
|
||||||
LOG(WARNING) << "Received transaction rate limit";
|
|
||||||
if (g->notifications.transaction_rate_limit.notify)
|
|
||||||
g_notification_service->push_warning("Transaction Rate Limit", "You're receiving transaction rate limits, whatever you're doing do it less.");
|
|
||||||
|
|
||||||
// dismisses popup instead of killing it silently
|
|
||||||
*script_global(4529830).as<int*>() = 0;
|
|
||||||
|
|
||||||
// we still return to prevent our original call from rendering a single frame
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return g_hooking->m_error_screen_hook.get_original<decltype(&hooks::set_warning_message_with_header)>()(
|
|
||||||
entryHeader,
|
|
||||||
entryLine1,
|
|
||||||
instructionalKey,
|
|
||||||
entryLine2,
|
|
||||||
p4,
|
|
||||||
p5,
|
|
||||||
showBackground,
|
|
||||||
p7,
|
|
||||||
p8,
|
|
||||||
p9
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,6 +4,7 @@
|
|||||||
#include "gta/script_thread.hpp"
|
#include "gta/script_thread.hpp"
|
||||||
#include "native_hooks/carmod_shop.hpp"
|
#include "native_hooks/carmod_shop.hpp"
|
||||||
#include "native_hooks/freemode.hpp"
|
#include "native_hooks/freemode.hpp"
|
||||||
|
#include "native_hooks/shop_controller.hpp"
|
||||||
#include "script_hook.hpp"
|
#include "script_hook.hpp"
|
||||||
|
|
||||||
namespace big
|
namespace big
|
||||||
@ -27,6 +28,7 @@ namespace big
|
|||||||
add_native_detour(RAGE_JOAAT("carmod_shop"), 0x34E710FF01247C5A, carmod_shop::SET_VEHICLE_LIGHTS);
|
add_native_detour(RAGE_JOAAT("carmod_shop"), 0x34E710FF01247C5A, carmod_shop::SET_VEHICLE_LIGHTS);
|
||||||
add_native_detour(RAGE_JOAAT("carmod_shop"), 0x767FBC2AC802EF3D, carmod_shop::STAT_GET_INT);
|
add_native_detour(RAGE_JOAAT("carmod_shop"), 0x767FBC2AC802EF3D, carmod_shop::STAT_GET_INT);
|
||||||
add_native_detour(RAGE_JOAAT("freemode"), 0x95914459A87EBA28, freemode::NETWORK_BAIL);
|
add_native_detour(RAGE_JOAAT("freemode"), 0x95914459A87EBA28, freemode::NETWORK_BAIL);
|
||||||
|
add_native_detour(RAGE_JOAAT("shop_controller"), 0xDC38CC1E35B6A5D7, shop_controller::SET_WARNING_MESSAGE_WITH_HEADER);
|
||||||
|
|
||||||
for (const auto& native_detours_for_script : m_native_registrations)
|
for (const auto& native_detours_for_script : m_native_registrations)
|
||||||
if (const GtaThread* thread = gta_util::find_script_thread(native_detours_for_script.first); thread != nullptr && thread->m_context.m_state == rage::eThreadState::running)
|
if (const GtaThread* thread = gta_util::find_script_thread(native_detours_for_script.first); thread != nullptr && thread->m_context.m_state == rage::eThreadState::running)
|
||||||
|
37
BigBaseV2/src/native_hooks/shop_controller.hpp
Normal file
37
BigBaseV2/src/native_hooks/shop_controller.hpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "native_hooks.hpp"
|
||||||
|
#include "script_global.hpp"
|
||||||
|
|
||||||
|
namespace big
|
||||||
|
{
|
||||||
|
namespace shop_controller
|
||||||
|
{
|
||||||
|
inline void SET_WARNING_MESSAGE_WITH_HEADER(rage::scrNativeCallContext* src)
|
||||||
|
{
|
||||||
|
if (auto entry_line = src->get_arg<const char*>(1); !strcmp(entry_line, "CTALERT_F_2"))
|
||||||
|
{
|
||||||
|
if (g->notifications.transaction_rate_limit.log)
|
||||||
|
LOG(WARNING) << "Received transaction rate limit";
|
||||||
|
if (g->notifications.transaction_rate_limit.notify)
|
||||||
|
g_notification_service->push_warning("Transaction Rate Limit", "You're receiving transaction rate limits, whatever you're doing do it less.");
|
||||||
|
|
||||||
|
*script_global(4529830).as<int*>() = 0;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HUD::SET_WARNING_MESSAGE_WITH_HEADER(
|
||||||
|
src->get_arg<const char*>(0),
|
||||||
|
src->get_arg<const char*>(1),
|
||||||
|
src->get_arg<int>(2),
|
||||||
|
src->get_arg<const char*>(3),
|
||||||
|
src->get_arg<BOOL>(4),
|
||||||
|
src->get_arg<Any>(5),
|
||||||
|
src->get_arg<Any*>(6),
|
||||||
|
src->get_arg<Any*>(7),
|
||||||
|
src->get_arg<BOOL>(8),
|
||||||
|
src->get_arg<Any>(9)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -119,12 +119,6 @@ namespace big
|
|||||||
m_increment_stat_event = ptr.as<decltype(m_increment_stat_event)>();
|
m_increment_stat_event = ptr.as<decltype(m_increment_stat_event)>();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Error Screen Hook
|
|
||||||
main_batch.add("ESH", "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)>();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Trigger Script Event
|
// Trigger Script Event
|
||||||
main_batch.add("TSE", "48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 41 56 48 81 EC ? ? ? ? 45 8B F0 41 8B F9", [this](memory::handle ptr)
|
main_batch.add("TSE", "48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 41 56 48 81 EC ? ? ? ? 45 8B F0 41 8B F9", [this](memory::handle ptr)
|
||||||
{
|
{
|
||||||
|
@ -50,8 +50,6 @@ namespace big
|
|||||||
PVOID m_is_dlc_present;
|
PVOID m_is_dlc_present;
|
||||||
PVOID m_network_group_override;
|
PVOID m_network_group_override;
|
||||||
|
|
||||||
PVOID m_error_screen{};
|
|
||||||
|
|
||||||
FriendRegistry* m_friend_registry{};
|
FriendRegistry* m_friend_registry{};
|
||||||
|
|
||||||
functions::get_screen_coords_for_world_coords* m_get_screen_coords_for_world_coords{};
|
functions::get_screen_coords_for_world_coords* m_get_screen_coords_for_world_coords{};
|
||||||
|
@ -17,6 +17,10 @@ namespace big
|
|||||||
|
|
||||||
if (g_player_service->get_selected()->is_valid())
|
if (g_player_service->get_selected()->is_valid())
|
||||||
{
|
{
|
||||||
|
if (ImGui::Button("Desync"))
|
||||||
|
{
|
||||||
|
gta_util::get_network_player_mgr()->RemovePlayer(g_player_service->get_selected()->get_net_game_player());
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui::TreeNode("Misc")) {
|
if (ImGui::TreeNode("Misc")) {
|
||||||
components::button("Steal Outfit", [] {
|
components::button("Steal Outfit", [] {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user