From ee4edda06fd9ee44c4d62d100408d7a6eb51704f Mon Sep 17 00:00:00 2001 From: Miya Date: Sat, 27 Aug 2022 18:15:16 +0800 Subject: [PATCH] fix #536 --- .../user/cheat/world/OpenTeamImmediately.cpp | 26 +++++++++++++++++-- .../user/cheat/world/OpenTeamImmediately.h | 2 ++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cheat-library/src/user/cheat/world/OpenTeamImmediately.cpp b/cheat-library/src/user/cheat/world/OpenTeamImmediately.cpp index e66e52f..46a7758 100644 --- a/cheat-library/src/user/cheat/world/OpenTeamImmediately.cpp +++ b/cheat-library/src/user/cheat/world/OpenTeamImmediately.cpp @@ -6,11 +6,17 @@ namespace cheat::feature { static bool MoleMole_InLevelMainPageContext_DoTeamCountDown_c_Iterator0__MoveNext_Hook(app::InLevelMainPageContext_DoTeamCountDown_Iterator* __this, MethodInfo* method); + static void MoleMole_InLevelPlayerProfilePageContext_ClearView_Hook(void* __this, MethodInfo* method); + static void MoleMole_InLevelPlayerProfilePageContext_SetupView_Hook(void* __this, MethodInfo* method); + OpenTeamImmediately::OpenTeamImmediately() : Feature(), - NF(f_Enabled, "Enable Open Team Immediately", "Open Team", false) + NF(f_Enabled, "Enable Open Team Immediately", "Open Team", false), + InLevelPlayerProfilePageContext(nullptr) { HookManager::install(app::MoleMole_InLevelMainPageContext_DoTeamCountDown_c_Iterator0__MoveNext, MoleMole_InLevelMainPageContext_DoTeamCountDown_c_Iterator0__MoveNext_Hook); + HookManager::install(app::MoleMole_InLevelPlayerProfilePageContext_ClearView, MoleMole_InLevelPlayerProfilePageContext_ClearView_Hook); + HookManager::install(app::MoleMole_InLevelPlayerProfilePageContext_SetupView, MoleMole_InLevelPlayerProfilePageContext_SetupView_Hook); } const FeatureGUIInfo& OpenTeamImmediately::GetGUIInfo() const @@ -43,10 +49,26 @@ namespace cheat::feature static bool MoleMole_InLevelMainPageContext_DoTeamCountDown_c_Iterator0__MoveNext_Hook(app::InLevelMainPageContext_DoTeamCountDown_Iterator* __this, MethodInfo* method) { auto& openTeamImmediately = OpenTeamImmediately::GetInstance(); - if (openTeamImmediately.f_Enabled) + + // if paimon menu open, team ui will not open + if (openTeamImmediately.f_Enabled && !openTeamImmediately.InLevelPlayerProfilePageContext) { __this->fields._levelMainPageContext->fields._countDownTime = __this->fields._levelMainPageContext->fields.EnterCountDown + 1.f; } return CALL_ORIGIN(MoleMole_InLevelMainPageContext_DoTeamCountDown_c_Iterator0__MoveNext_Hook, __this, method); } + + static void MoleMole_InLevelPlayerProfilePageContext_SetupView_Hook(void* __this, MethodInfo* method) + { + auto& openTeamImmediately = OpenTeamImmediately::GetInstance(); + openTeamImmediately.InLevelPlayerProfilePageContext = __this; + CALL_ORIGIN(MoleMole_InLevelPlayerProfilePageContext_SetupView_Hook, __this, method); + } + + static void MoleMole_InLevelPlayerProfilePageContext_ClearView_Hook(void* __this, MethodInfo* method) + { + auto& openTeamImmediately = OpenTeamImmediately::GetInstance(); + CALL_ORIGIN(MoleMole_InLevelPlayerProfilePageContext_ClearView_Hook, __this, method); + openTeamImmediately.InLevelPlayerProfilePageContext = nullptr; + } } \ No newline at end of file diff --git a/cheat-library/src/user/cheat/world/OpenTeamImmediately.h b/cheat-library/src/user/cheat/world/OpenTeamImmediately.h index 26bfa8f..ee6f8d4 100644 --- a/cheat-library/src/user/cheat/world/OpenTeamImmediately.h +++ b/cheat-library/src/user/cheat/world/OpenTeamImmediately.h @@ -8,6 +8,8 @@ namespace cheat::feature { public: config::Field> f_Enabled; + //MoleMole_InLevelPlayerProfilePageContext* + void* InLevelPlayerProfilePageContext; static OpenTeamImmediately& GetInstance();