From 77aa1de369c171cffaacdd0f3e98015ef799ad08 Mon Sep 17 00:00:00 2001 From: Joaquin <67109235+Taiga74164@users.noreply.github.com> Date: Sun, 24 Jul 2022 22:52:47 -0600 Subject: [PATCH] Solved #207 , Fixed some typos --- README.md | 11 ++++--- cheat-library/cheat-library.vcxproj | 4 +-- cheat-library/cheat-library.vcxproj.filters | 4 +-- cheat-library/src/appdata/il2cpp-functions.h | 2 ++ cheat-library/src/user/cheat/cheat.cpp | 4 +-- .../src/user/cheat/visuals/EnablePeaking.h | 25 --------------- .../{EnablePeaking.cpp => EnablePeeking.cpp} | 28 ++++++++--------- .../src/user/cheat/visuals/EnablePeeking.h | 25 +++++++++++++++ .../src/user/cheat/visuals/FreeCamera.cpp | 23 ++++++++++++++ .../src/user/cheat/visuals/FreeCamera.h | 1 + .../src/user/cheat/world/FreezeEnemies.cpp | 31 +++++++++++++------ 11 files changed, 99 insertions(+), 59 deletions(-) delete mode 100644 cheat-library/src/user/cheat/visuals/EnablePeaking.h rename cheat-library/src/user/cheat/visuals/{EnablePeaking.cpp => EnablePeeking.cpp} (59%) create mode 100644 cheat-library/src/user/cheat/visuals/EnablePeeking.h diff --git a/README.md b/README.md index eb7481e..09748d8 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ As well as setting up **`cheat-library`** as startup project. #### Player - Invincible - Attack Modifier -- No Cooldown Skill/Ultimate/Sprint +- No Cooldown Skill/Ultimate/Sprint/Bow - Unlimited Stamina - No Clip @@ -66,6 +66,7 @@ As well as setting up **`cheat-library`** as startup project. - Auto Seelie - Vacuum Loot - Dumb Enemies +- Freeze Enemies - Auto Destroy Objects - Auto Loot - Pickup Range @@ -92,7 +93,7 @@ As well as setting up **`cheat-library`** as startup project. - Chest Indicator - Hide UI - In-game Embedded Browser -- Enable Peaking +- Enable Peeking - Profile Changer - Free Camera - Texture Changer @@ -135,9 +136,9 @@ As well as setting up **`cheat-library`** as startup project.

Bugs

Welcome to the short explanation for bug reporting -1. You Found a bug. -1. write down what happened, as well as your first thoughts on what you think caused it. -1. can it be reproduced? Yes or no. If yes: Explain in as much clear as possible. i.e what happens when the bug occurs and why it occurs. +1. You found a bug. +1. Write down what happened, as well as your first thoughts on what you think caused it. +1. Can it be reproduced? Yes or no. If yes: Explain in as much clear as possible. i.e what happens when the bug occurs and why it occurs. 1. Tell us which version you are using. copy the `SHA`/ Version Number of the latest commit when you built the mod. For example: `bd17a00ec388f3b93624280cde9e1c66e740edf9` / Release 0.7 ## Bug reporting template diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index 4fd1b85..4b97d16 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -34,7 +34,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index fca6000..27e4666 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -213,7 +213,7 @@ Header Files - + Header Files @@ -420,7 +420,7 @@ Source Files - + Source Files diff --git a/cheat-library/src/appdata/il2cpp-functions.h b/cheat-library/src/appdata/il2cpp-functions.h index d292c64..b7fefa6 100644 --- a/cheat-library/src/appdata/il2cpp-functions.h +++ b/cheat-library/src/appdata/il2cpp-functions.h @@ -319,6 +319,8 @@ DO_APP_FUNC(0x057E4470, void, Cursor_set_visible, (bool value, MethodInfo* metho DO_APP_FUNC(0x057E4460, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method)); DO_APP_FUNC(0x057E4450, bool, Cursor_get_visible, (MethodInfo* method)); +DO_APP_FUNC(0x0571E7C0, RigidbodyConstraints__Enum, Rigidbody_get_constraints, (Rigidbody* __this, MethodInfo* method)); +DO_APP_FUNC(0x0571E990, void, Rigidbody_set_constraints, (Rigidbody* __this, RigidbodyConstraints__Enum value, MethodInfo* method)); DO_APP_FUNC(0x0571E980, void, Rigidbody_set_collisionDetectionMode, (Rigidbody* __this, CollisionDetectionMode__Enum value, MethodInfo* method)); DO_APP_FUNC(0x0571E9A0, void, Rigidbody_set_detectCollisions, (Rigidbody* __this, bool value, MethodInfo* method)); DO_APP_FUNC(0x0571E9E0, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method)); diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp index 687f565..a0f2093 100644 --- a/cheat-library/src/user/cheat/cheat.cpp +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include #include @@ -117,7 +117,7 @@ namespace cheat FEAT_INST(PaimonFollow), FEAT_INST(HideUI), FEAT_INST(Browser), - FEAT_INST(EnablePeaking), + FEAT_INST(EnablePeeking), FEAT_INST(TextureChanger), FEAT_INST(FreeCamera) diff --git a/cheat-library/src/user/cheat/visuals/EnablePeaking.h b/cheat-library/src/user/cheat/visuals/EnablePeaking.h deleted file mode 100644 index 62604db..0000000 --- a/cheat-library/src/user/cheat/visuals/EnablePeaking.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once -#include -#include - -namespace cheat::feature -{ - - class EnablePeaking : public Feature - { - public: - config::Field> f_Enabled; - - static EnablePeaking& GetInstance(); - - const FeatureGUIInfo& GetGUIInfo() const override; - void DrawMain() override; - - virtual bool NeedStatusDraw() const override; - void DrawStatus() override; - - private: - EnablePeaking(); - }; -} - diff --git a/cheat-library/src/user/cheat/visuals/EnablePeaking.cpp b/cheat-library/src/user/cheat/visuals/EnablePeeking.cpp similarity index 59% rename from cheat-library/src/user/cheat/visuals/EnablePeaking.cpp rename to cheat-library/src/user/cheat/visuals/EnablePeeking.cpp index edf40bd..3d9a72d 100644 --- a/cheat-library/src/user/cheat/visuals/EnablePeaking.cpp +++ b/cheat-library/src/user/cheat/visuals/EnablePeeking.cpp @@ -1,5 +1,5 @@ #include "pch-il2cpp.h" -#include "EnablePeaking.h" +#include "EnablePeeking.h" #include @@ -7,43 +7,43 @@ namespace cheat::feature { static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method); - EnablePeaking::EnablePeaking() : Feature(), - NF(f_Enabled, "Enable Peaking", "Visuals::EnablePeaking", false) + EnablePeeking::EnablePeeking() : Feature(), + NF(f_Enabled, "Enable Peeking", "Visuals::EnablePeeking", false) { HookManager::install(app::MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook); } - const FeatureGUIInfo& EnablePeaking::GetGUIInfo() const + const FeatureGUIInfo& EnablePeeking::GetGUIInfo() const { - static const FeatureGUIInfo info{ "EnablePeaking", "Visuals", false }; + static const FeatureGUIInfo info{ "EnablePeeking", "Visuals", false }; return info; } - void EnablePeaking::DrawMain() + void EnablePeeking::DrawMain() { ConfigWidget(f_Enabled, ";)"); } - bool EnablePeaking::NeedStatusDraw() const + bool EnablePeeking::NeedStatusDraw() const { return f_Enabled; } - void EnablePeaking::DrawStatus() + void EnablePeeking::DrawStatus() { - ImGui::Text("Enable Peaking"); + ImGui::Text("Enable Peeking"); } - EnablePeaking& EnablePeaking::GetInstance() + EnablePeeking& EnablePeeking::GetInstance() { - static EnablePeaking instance; + static EnablePeeking instance; return instance; - } + } static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method) { - EnablePeaking& EnablePeaking = EnablePeaking::GetInstance(); - if (EnablePeaking.f_Enabled) + EnablePeeking& EnablePeeking = EnablePeeking::GetInstance(); + if (EnablePeeking.f_Enabled) value = 1; CALL_ORIGIN(MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook, __this, value, method); diff --git a/cheat-library/src/user/cheat/visuals/EnablePeeking.h b/cheat-library/src/user/cheat/visuals/EnablePeeking.h new file mode 100644 index 0000000..50b414f --- /dev/null +++ b/cheat-library/src/user/cheat/visuals/EnablePeeking.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include + +namespace cheat::feature +{ + + class EnablePeeking : public Feature + { + public: + config::Field> f_Enabled; + + static EnablePeeking& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + private: + EnablePeeking(); + }; +} + diff --git a/cheat-library/src/user/cheat/visuals/FreeCamera.cpp b/cheat-library/src/user/cheat/visuals/FreeCamera.cpp index eaa297f..b39819f 100644 --- a/cheat-library/src/user/cheat/visuals/FreeCamera.cpp +++ b/cheat-library/src/user/cheat/visuals/FreeCamera.cpp @@ -3,6 +3,7 @@ #include #include +#include namespace cheat::feature { @@ -20,6 +21,7 @@ namespace cheat::feature FreeCamera::FreeCamera() : Feature(), NF(f_Enabled, "Free Camera", "Visuals::FreeCamera", false), + NF(f_FreezeAnimation, "Freeze Character Animation", "Visuals::FreeCamera", false), NF(f_Speed, "Speed", "Visuals::FreeCamera", 1.0f), NF(f_LookSens, "Look Sensitivity", "Visuals::FreeCamera", 1.0f), NF(f_RollSpeed, "Roll Speed", "Visuals::FreeCamera", 1.0f), @@ -50,6 +52,7 @@ namespace cheat::feature void FreeCamera::DrawMain() { ConfigWidget("Enable", f_Enabled); + ConfigWidget("Freeze Character Animation", f_FreezeAnimation, "Freezes the active character's animation.\nAfter disabling, jump to un-freeze your character."); if (ImGui::BeginTable("FreeCameraDrawTable", 1, ImGuiTableFlags_NoBordersInBody)) { ImGui::TableNextRow(); @@ -245,5 +248,25 @@ namespace cheat::feature } else DisableFreeCam(); + + // Taiga#5555: There's probably be a better way of implementing this. But for now, this is just what I came up with. + auto& manager = game::EntityManager::instance(); + auto animator = manager.avatar()->animator(); + auto rigidBody = manager.avatar()->rigidbody(); + if (animator == nullptr && rigidBody == nullptr) + return; + + if (f_FreezeAnimation) + { + //auto constraints = app::Rigidbody_get_constraints(rigidBody, nullptr); + //LOG_DEBUG("%s", magic_enum::enum_name(constraints).data()); + app::Rigidbody_set_constraints(rigidBody, app::RigidbodyConstraints__Enum::FreezePosition, nullptr); + app::Animator_set_speed(animator, 0.f, nullptr); + } + else + { + app::Rigidbody_set_constraints(rigidBody, app::RigidbodyConstraints__Enum::FreezeRotation, nullptr); + app::Animator_set_speed(animator, 1.f, nullptr); + } } } \ No newline at end of file diff --git a/cheat-library/src/user/cheat/visuals/FreeCamera.h b/cheat-library/src/user/cheat/visuals/FreeCamera.h index 9f0ea7e..1084b4a 100644 --- a/cheat-library/src/user/cheat/visuals/FreeCamera.h +++ b/cheat-library/src/user/cheat/visuals/FreeCamera.h @@ -8,6 +8,7 @@ namespace cheat::feature { public: config::Field> f_Enabled; + config::Field> f_FreezeAnimation; config::Field f_Speed; config::Field f_LookSens; config::Field f_RollSpeed; diff --git a/cheat-library/src/user/cheat/world/FreezeEnemies.cpp b/cheat-library/src/user/cheat/world/FreezeEnemies.cpp index b44cd50..a9d8bed 100644 --- a/cheat-library/src/user/cheat/world/FreezeEnemies.cpp +++ b/cheat-library/src/user/cheat/world/FreezeEnemies.cpp @@ -7,7 +7,7 @@ #include #include -namespace cheat::feature +namespace cheat::feature { FreezeEnemies::FreezeEnemies() : Feature(), @@ -28,12 +28,12 @@ namespace cheat::feature } bool FreezeEnemies::NeedStatusDraw() const -{ + { return f_Enabled; } - void FreezeEnemies::DrawStatus() - { + void FreezeEnemies::DrawStatus() + { ImGui::Text("Freeze Enemies"); } @@ -43,18 +43,31 @@ namespace cheat::feature return instance; } - void FreezeEnemies::OnGameUpdate() - { + // Taiga#5555: There's probably be a better way of implementing this. But for now, this is just what I came up with. + void FreezeEnemies::OnGameUpdate() + { auto& manager = game::EntityManager::instance(); for (const auto& monster : manager.entities(game::filters::combined::Monsters)) { auto animator = monster->animator(); - if (animator == nullptr) + auto rigidBody = monster->rigidbody(); + if (animator == nullptr && rigidBody == nullptr) return; - f_Enabled ? app::Animator_set_speed(animator, 0.f, nullptr) : app::Animator_set_speed(animator, 1.f, nullptr); + if (f_Enabled) + { + //auto constraints = app::Rigidbody_get_constraints(rigidBody, nullptr); + //LOG_DEBUG("%s", magic_enum::enum_name(constraints).data()); + app::Rigidbody_set_constraints(rigidBody, app::RigidbodyConstraints__Enum::FreezeAll, nullptr); + app::Animator_set_speed(animator, 0.f, nullptr); + } + else + { + app::Rigidbody_set_constraints(rigidBody, app::RigidbodyConstraints__Enum::FreezeRotation, nullptr); + app::Animator_set_speed(animator, 1.f, nullptr); + } } - } + } }