From b9552f392012af10f11a5ceb336a77a4bc289df0 Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Sat, 13 Apr 2024 19:37:34 +0200 Subject: [PATCH] add: exp modifier hook --- user/hooks/hooks.cpp | 17 ++++++++++++++++- user/settings/settings.cpp | 1 - 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/user/hooks/hooks.cpp b/user/hooks/hooks.cpp index 845790e..7a96071 100644 --- a/user/hooks/hooks.cpp +++ b/user/hooks/hooks.cpp @@ -57,7 +57,6 @@ void __stdcall hNolanBehaviour_OnAttributeUpdateValue(app::NolanBehaviour* __thi // DO_APP_FUNC(0x005E5E10, bool, OptionsHelpers_IsRobeUnlocked, (OptionsHelpers * __this, String * robe, String * character, MethodInfo * method)); typedef bool(__stdcall* TOptionsHelpers_IsRobeUnlocked)(app::OptionsHelpers*, app::String*, app::String*, MethodInfo*); TOptionsHelpers_IsRobeUnlocked oOptionsHelpers_IsRobeUnlocked = NULL; - bool __stdcall hOptionsHelpers_IsRobeUnlocked(app::OptionsHelpers* __this, app::String* robe, app::String* character, MethodInfo* method) { if (settings::unlock_all) @@ -78,6 +77,17 @@ bool __stdcall hOptionsHelpers_IsCharacterUnlocked(app::OptionsHelpers* __this, return oOptionsHelpers_IsCharacterUnlocked(__this, prefab, method); } +typedef app::RankHelpers_ExpGainInfo* (__stdcall* TRankHelpers_CalculateExpGain)(app::RankHelpers*, int32_t, int32_t, app::GameConfigToken*, MethodInfo*); +TRankHelpers_CalculateExpGain oRankHelpers_CalculateExpGain = NULL; +app::RankHelpers_ExpGainInfo* __stdcall hRankHelpers_CalculateExpGain(app::RankHelpers* __this, int32_t mapProgress, int32_t numAwards, app::GameConfigToken* gameConfigToken, MethodInfo* method) { + app::RankHelpers_ExpGainInfo* gain = oRankHelpers_CalculateExpGain(__this, mapProgress, numAwards, gameConfigToken, method); + + if (settings::exp_modifier) { + gain->fields.totalExp = settings::new_exp; + } + return gain; +} + void CreateHooks() { /* //Exemple : @@ -107,6 +117,11 @@ void CreateHooks() { std::cout << "Failed to create uv hook: " << MH_StatusToString(status_uv) << std::endl; return; } + MH_STATUS status_xp = MH_CreateHook((LPVOID*)app::RankHelpers_CalculateExpGain , &hRankHelpers_CalculateExpGain, reinterpret_cast(&oRankHelpers_CalculateExpGain)); + if (status_uv != MH_OK) { + std::cout << "Failed to create xp hook: " << MH_StatusToString(status_xp) << std::endl; + return; + } MH_STATUS enable_status_Debug_Log = MH_EnableHook(MH_ALL_HOOKS); if (enable_status_Debug_Log != MH_OK) { std::cout << "Failed to enable hooks: " << MH_StatusToString(enable_status_Debug_Log) << std::endl; diff --git a/user/settings/settings.cpp b/user/settings/settings.cpp index d7fad45..1feddab 100644 --- a/user/settings/settings.cpp +++ b/user/settings/settings.cpp @@ -9,7 +9,6 @@ namespace settings { float flashlight_color[4] = { 255.f, 255.f, 255.f, 255.f }; bool unlimited_uv = false; - bool unlimited_uv_reset = true; bool fullbright = false; bool player_esp = false;