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);
+ }
}
- }
+ }
}