Merge branch 'Akebi-Group:master' into master

This commit is contained in:
hellomykami 2022-07-30 04:27:30 +08:00 committed by GitHub
commit 679c8fcee3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 439 additions and 44 deletions

View File

@ -58,7 +58,7 @@ As well as setting up **`cheat-library`** as startup project.
#### Player #### Player
- Invincible - Invincible
- Attack Modifier - Attack Modifier
- No Cooldown Skill/Ultimate/Sprint - No Cooldown Skill/Ultimate/Sprint/Bow
- Unlimited Stamina - Unlimited Stamina
- No Clip - No Clip
@ -66,6 +66,7 @@ As well as setting up **`cheat-library`** as startup project.
- Auto Seelie - Auto Seelie
- Vacuum Loot - Vacuum Loot
- Dumb Enemies - Dumb Enemies
- Freeze Enemies
- Auto Destroy Objects - Auto Destroy Objects
- Auto Loot - Auto Loot
- Pickup Range - Pickup Range
@ -92,7 +93,7 @@ As well as setting up **`cheat-library`** as startup project.
- Chest Indicator - Chest Indicator
- Hide UI - Hide UI
- In-game Embedded Browser - In-game Embedded Browser
- Enable Peaking - Enable Peeking
- Profile Changer - Profile Changer
- Free Camera - Free Camera
- Texture Changer - Texture Changer
@ -135,9 +136,9 @@ As well as setting up **`cheat-library`** as startup project.
<h1 align="center">Bugs</h1> <h1 align="center">Bugs</h1>
Welcome to the short explanation for bug reporting Welcome to the short explanation for bug reporting
1. You Found a bug. 1. You found a bug.
1. write down what happened, as well as your first thoughts on what you think caused it. 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. 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 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 ## Bug reporting template

View File

@ -24,6 +24,7 @@
<ClInclude Include="src\user\cheat\visuals\TextureChanger.h" /> <ClInclude Include="src\user\cheat\visuals\TextureChanger.h" />
<ClInclude Include="src\user\cheat\visuals\FreeCamera.h" /> <ClInclude Include="src\user\cheat\visuals\FreeCamera.h" />
<ClInclude Include="src\user\cheat\world\AutoSeelie.h" /> <ClInclude Include="src\user\cheat\world\AutoSeelie.h" />
<ClInclude Include="src\user\cheat\world\CustomWeather.h" />
<ClInclude Include="src\user\cheat\world\FakeTime.h" /> <ClInclude Include="src\user\cheat\world\FakeTime.h" />
<ClInclude Include="src\user\cheat\debugger.h"> <ClInclude Include="src\user\cheat\debugger.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild>
@ -34,7 +35,7 @@
<ClInclude Include="src\user\cheat\teleport\CustomTeleports.h" /> <ClInclude Include="src\user\cheat\teleport\CustomTeleports.h" />
<ClInclude Include="src\user\cheat\visuals\Browser.h" /> <ClInclude Include="src\user\cheat\visuals\Browser.h" />
<ClInclude Include="src\user\cheat\visuals\CameraZoom.h" /> <ClInclude Include="src\user\cheat\visuals\CameraZoom.h" />
<ClInclude Include="src\user\cheat\visuals\EnablePeaking.h" /> <ClInclude Include="src\user\cheat\visuals\EnablePeeking.h" />
<ClInclude Include="src\user\cheat\visuals\FPSUnlock.h" /> <ClInclude Include="src\user\cheat\visuals\FPSUnlock.h" />
<ClInclude Include="src\user\cheat\visuals\HideUI.h" /> <ClInclude Include="src\user\cheat\visuals\HideUI.h" />
<ClInclude Include="src\user\cheat\visuals\NoFog.h" /> <ClInclude Include="src\user\cheat\visuals\NoFog.h" />
@ -95,6 +96,7 @@
<ClInclude Include="src\user\cheat\world\AutoTreeFarm.h" /> <ClInclude Include="src\user\cheat\world\AutoTreeFarm.h" />
<ClInclude Include="src\user\cheat\world\DialogSkip.h" /> <ClInclude Include="src\user\cheat\world\DialogSkip.h" />
<ClInclude Include="src\user\cheat\world\DumbEnemies.h" /> <ClInclude Include="src\user\cheat\world\DumbEnemies.h" />
<ClInclude Include="src\user\cheat\world\FreezeEnemies.h" />
<ClInclude Include="src\user\cheat\world\KillAura.h" /> <ClInclude Include="src\user\cheat\world\KillAura.h" />
<ClInclude Include="src\user\cheat\world\MobVacuum.h" /> <ClInclude Include="src\user\cheat\world\MobVacuum.h" />
<ClInclude Include="src\user\cheat\world\VacuumLoot.h" /> <ClInclude Include="src\user\cheat\world\VacuumLoot.h" />
@ -114,6 +116,7 @@
<ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp" /> <ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp" />
<ClCompile Include="src\user\cheat\visuals\FreeCamera.cpp" /> <ClCompile Include="src\user\cheat\visuals\FreeCamera.cpp" />
<ClCompile Include="src\user\cheat\world\AutoSeelie.cpp" /> <ClCompile Include="src\user\cheat\world\AutoSeelie.cpp" />
<ClCompile Include="src\user\cheat\world\CustomWeather.cpp" />
<ClCompile Include="src\user\cheat\world\FakeTime.cpp" /> <ClCompile Include="src\user\cheat\world\FakeTime.cpp" />
<ClCompile Include="src\user\cheat\debugger.cpp"> <ClCompile Include="src\user\cheat\debugger.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
@ -124,7 +127,7 @@
<ClCompile Include="src\user\cheat\GenshinCM.cpp" /> <ClCompile Include="src\user\cheat\GenshinCM.cpp" />
<ClCompile Include="src\user\cheat\visuals\Browser.cpp" /> <ClCompile Include="src\user\cheat\visuals\Browser.cpp" />
<ClCompile Include="src\user\cheat\visuals\CameraZoom.cpp" /> <ClCompile Include="src\user\cheat\visuals\CameraZoom.cpp" />
<ClCompile Include="src\user\cheat\visuals\EnablePeaking.cpp" /> <ClCompile Include="src\user\cheat\visuals\EnablePeeking.cpp" />
<ClCompile Include="src\user\cheat\visuals\FPSUnlock.cpp" /> <ClCompile Include="src\user\cheat\visuals\FPSUnlock.cpp" />
<ClCompile Include="src\user\cheat\visuals\HideUI.cpp" /> <ClCompile Include="src\user\cheat\visuals\HideUI.cpp" />
<ClCompile Include="src\user\cheat\visuals\NoFog.cpp" /> <ClCompile Include="src\user\cheat\visuals\NoFog.cpp" />
@ -182,6 +185,7 @@
<ClCompile Include="src\user\cheat\world\AutoTreeFarm.cpp" /> <ClCompile Include="src\user\cheat\world\AutoTreeFarm.cpp" />
<ClCompile Include="src\user\cheat\world\DialogSkip.cpp" /> <ClCompile Include="src\user\cheat\world\DialogSkip.cpp" />
<ClCompile Include="src\user\cheat\world\DumbEnemies.cpp" /> <ClCompile Include="src\user\cheat\world\DumbEnemies.cpp" />
<ClCompile Include="src\user\cheat\world\FreezeEnemies.cpp" />
<ClCompile Include="src\user\cheat\world\KillAura.cpp" /> <ClCompile Include="src\user\cheat\world\KillAura.cpp" />
<ClCompile Include="src\user\cheat\world\MobVacuum.cpp" /> <ClCompile Include="src\user\cheat\world\MobVacuum.cpp" />
<ClCompile Include="src\user\cheat\world\VacuumLoot.cpp" /> <ClCompile Include="src\user\cheat\world\VacuumLoot.cpp" />

View File

@ -213,7 +213,7 @@
<ClInclude Include="src\user\cheat\visuals\Browser.h"> <ClInclude Include="src\user\cheat\visuals\Browser.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\user\cheat\visuals\EnablePeaking.h"> <ClInclude Include="src\user\cheat\visuals\EnablePeeking.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\user\cheat\visuals\TextureChanger.h"> <ClInclude Include="src\user\cheat\visuals\TextureChanger.h">
@ -246,6 +246,12 @@
<ClInclude Include="src\user\cheat\player\AutoRun.h"> <ClInclude Include="src\user\cheat\player\AutoRun.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\user\cheat\world\FreezeEnemies.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\world\CustomWeather.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Font Include="res\Ruda-Bold.ttf" /> <Font Include="res\Ruda-Bold.ttf" />
@ -417,7 +423,7 @@
<ClCompile Include="src\user\cheat\visuals\Browser.cpp"> <ClCompile Include="src\user\cheat\visuals\Browser.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\user\cheat\visuals\EnablePeaking.cpp"> <ClCompile Include="src\user\cheat\visuals\EnablePeeking.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp"> <ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp">
@ -450,6 +456,12 @@
<ClCompile Include="src\user\cheat\player\AutoRun.cpp"> <ClCompile Include="src\user\cheat\player\AutoRun.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\user\cheat\world\FreezeEnemies.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\world\CustomWeather.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="res\res.rc"> <ResourceCompile Include="res\res.rc">

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -768,6 +768,16 @@ HDYUMEMIRUWOOD PNG "iconsHD\\YumemiruWood.png"
HDZAYTUNPEACH PNG "iconsHD\\ZaytunPeach.png" HDZAYTUNPEACH PNG "iconsHD\\ZaytunPeach.png"
HDMELODICBLOOM PNG "iconsHD\\MelodicBloom.png"
HDCLOUDLEISURESTEPS PNG "iconsHD\\CloudleisureSteps.png"
HDDREAMFORM PNG "iconsHD\\DreamForm.png"
HDSTARLIGHTCOALESCENCE PNG "iconsHD\\StarlightCoalescence.png"
HDTHERAVENFORUM PNG "iconsHD\\TheRavenForum.png"
ABIDINGANGELFISH PNG "icons\\AbidingAngelfish.png" ABIDINGANGELFISH PNG "icons\\AbidingAngelfish.png"
ABYSSMAGE PNG "icons\\AbyssMage.png" ABYSSMAGE PNG "icons\\AbyssMage.png"
@ -1470,6 +1480,15 @@ YUMEMIRUWOOD PNG "icons\\YumemiruWood.png"
ZAYTUNPEACH PNG "icons\\ZaytunPeach.png" ZAYTUNPEACH PNG "icons\\ZaytunPeach.png"
MELODICBLOOM PNG "icons\\MelodicBloom.png"
CLOUDLEISURESTEPS PNG "icons\\CloudleisureSteps.png"
DREAMFORM PNG "icons\\DreamForm.png"
STARLIGHTCOALESCENCE PNG "icons\\StarlightCoalescence.png"
THERAVENFORUM PNG "icons\\TheRavenForum.png"
#endif // English (United States) resources #endif // English (United States) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -51,9 +51,8 @@ DO_APP_FUNC(0x026F0820, bool, MoleMole_LCAvatarCombat_IsEnergyMax, (void* __this
DO_APP_FUNC(0x026F0500, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method)); DO_APP_FUNC(0x026F0500, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method));
DO_APP_FUNC(0x026F13C0, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method)); DO_APP_FUNC(0x026F13C0, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method));
DO_APP_FUNC(0x026F54A0, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method)); DO_APP_FUNC(0x026F54A0, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method));
DO_APP_FUNC(0x02DB4680, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (MoleMole_ActorAbilityPlugin* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
DO_APP_FUNC(0x02DB4680, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method));
// Rapid fire // Rapid fire
DO_APP_FUNC(0x017B1D50, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method)); DO_APP_FUNC(0x017B1D50, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method));
DO_APP_FUNC(0x019DDF40, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method)); DO_APP_FUNC(0x019DDF40, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method));
@ -155,6 +154,11 @@ DO_APP_FUNC(0x012BC260, void, CookingQtePageContext_CloseItemGotPanel, (CookingQ
DO_APP_FUNC(0x02A37D50, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton DO_APP_FUNC(0x02A37D50, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton
DO_APP_FUNC(0x01B101B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon DO_APP_FUNC(0x01B101B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon
// Custom Weather | RyujinZX#6666
DO_APP_FUNC(0x027774F0, bool, EnviroSky_ChangeWeather, (void* /*app::EnviroSky*/ __this, String* weatherPath, float transTime, float ratio, MethodInfo* method));
DO_APP_FUNC(0x014EDB10, void* /*app::EnviroSky*/, EnviroSky_get_Instance, (MethodInfo* method));
// Free Camera // Free Camera
DO_APP_FUNC(0x057E9C00, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method)); DO_APP_FUNC(0x057E9C00, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method));
DO_APP_FUNC(0x057EA060, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method)); DO_APP_FUNC(0x057EA060, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method));
@ -245,6 +249,7 @@ DO_APP_FUNC(0x0596AFF0, LCBaseCombat*, MoleMole_BaseEntity_GetLogicCombatCompone
DO_APP_FUNC_METHODINFO(0x099D4410, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo); DO_APP_FUNC_METHODINFO(0x099D4410, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo);
DO_APP_FUNC(0x031ACE30, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method)); DO_APP_FUNC(0x031ACE30, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x03180C10, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method)); DO_APP_FUNC(0x03180C10, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x0319D8B0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method)); DO_APP_FUNC(0x0319D8B0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method));
DO_APP_FUNC(0x031AA160, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method)); DO_APP_FUNC(0x031AA160, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method));
@ -255,6 +260,7 @@ DO_APP_FUNC(0x03187C30, Vector3, MoleMole_BaseEntity_GetRight, (BaseEntity* __th
DO_APP_FUNC(0x03185DC0, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method)); DO_APP_FUNC(0x03185DC0, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x031A5120, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method)); DO_APP_FUNC(0x031A5120, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x031AFEE0, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method)); DO_APP_FUNC(0x031AFEE0, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method));
DO_APP_FUNC(0x0318DB20, Animator*, MoleMole_BaseEntity_get_animator, (BaseEntity* __this, MethodInfo* method));
// type should be 'MoleMole_VCCharacterCombat' not 'MoleMole_VCBaseMove' // type should be 'MoleMole_VCCharacterCombat' not 'MoleMole_VCBaseMove'
// function name should be 'GetVisualCombatComponent' not 'GetMoveComponent' // function name should be 'GetVisualCombatComponent' not 'GetMoveComponent'
@ -318,6 +324,9 @@ 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(0x057E4460, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method));
DO_APP_FUNC(0x057E4450, bool, Cursor_get_visible, (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(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)); DO_APP_FUNC(0x0571E9E0, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method));
DO_APP_FUNC(0x0571E8F0, Vector3, Rigidbody_get_velocity, (Rigidbody* __this, MethodInfo* method)); DO_APP_FUNC(0x0571E8F0, Vector3, Rigidbody_get_velocity, (Rigidbody* __this, MethodInfo* method));
@ -335,6 +344,8 @@ DO_APP_FUNC(0x057E9D10, int32_t, Camera_get_pixelHeight, (Camera* __this, Method
DO_APP_FUNC(0x0579EB70, int32_t, Screen_get_width, (MethodInfo* method)); DO_APP_FUNC(0x0579EB70, int32_t, Screen_get_width, (MethodInfo* method));
DO_APP_FUNC(0x0579EB00, int32_t, Screen_get_height, (MethodInfo* method)); DO_APP_FUNC(0x0579EB00, int32_t, Screen_get_height, (MethodInfo* method));
DO_APP_FUNC(0x058236F0, void, Animator_set_speed, (Animator* __this, float value, MethodInfo* method));
DO_APP_FUNC(0x058AE2D0, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method)); DO_APP_FUNC(0x058AE2D0, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method));
DO_APP_FUNC(0x05891610, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method)); DO_APP_FUNC(0x05891610, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method));

View File

@ -11975,6 +11975,29 @@ namespace app {
struct Avatar__Fields fields; struct Avatar__Fields fields;
}; };
struct MoleMole_ActorAbilityPlugin__Fields {
struct BaseComponentPlugin__Fields _;
struct Action_3_MoleMole_BaseEntity_MoleMole_Config_AddGlobalValue_MoleMole_ActorAbility_* _addGlobalValueHandlerClosureDelegate;
struct Action_3_MoleMole_BaseEntity_MoleMole_Config_SetGlobalValue_MoleMole_ActorAbility_* _setGlobalValueHandlerClosureDelegate;
struct Action_3_MoleMole_BaseEntity_MoleMole_Config_MultiplyGlobalValue_MoleMole_ActorAbility_* _multiplyGlobalValueHandlerClosureDelegate;
struct Action_4_MoleMole_BaseEntity_MoleMole_Config_MultiplyGlobalValue_MoleMole_ActorAbility_Single_* MEEAPCINNBE;
struct Action_4_MoleMole_BaseEntity_String_Single_CPKJHKOJDIF_* LLAIOCNHNPM;
struct List_1_MoleMole_MonoEffectProxyHandle_* _effectProxyListCache;
struct List_1_MoleMole_MonoEffectProxyHandle_* _effectProxyListCacheForChangFollowDampTime;
struct List_1_UnityEngine_Vector3_* _pushedPosList;
struct MoleMole_LCAbility* _owner;
struct List_1_MoleMole_ActorAbility_* _appliedAbilities;
struct Dictionary_2_System_UInt32_System_Int32_* _appliedAbilitiesIndex;
struct Dictionary_2_System_String_MoleMole_ActorAbility_* CKDBIBGCPOB;
uint32_t nextValidAbilityID;
};
struct MoleMole_ActorAbilityPlugin {
struct MoleMole_ActorAbilityPlugin__Class* klass;
MonitorData* monitor;
struct MoleMole_ActorAbilityPlugin__Fields fields;
};
#if !defined(_GHIDRA_) && !defined(_IDA_) #if !defined(_GHIDRA_) && !defined(_IDA_)
} }
#endif #endif

View File

@ -22,6 +22,7 @@
#include <cheat/world/AutoLoot.h> #include <cheat/world/AutoLoot.h>
#include <cheat/world/DialogSkip.h> #include <cheat/world/DialogSkip.h>
#include <cheat/world/DumbEnemies.h> #include <cheat/world/DumbEnemies.h>
#include <cheat/world/FreezeEnemies.h>
#include <cheat/world/ElementalSight.h> #include <cheat/world/ElementalSight.h>
#include <cheat/world/KillAura.h> #include <cheat/world/KillAura.h>
#include <cheat/world/MobVacuum.h> #include <cheat/world/MobVacuum.h>
@ -41,6 +42,7 @@
#include <cheat/world/AutoFish.h> #include <cheat/world/AutoFish.h>
#include <cheat/world/AutoCook.h> #include <cheat/world/AutoCook.h>
#include <cheat/world/CustomWeather.h>
#include <cheat/visuals/NoFog.h> #include <cheat/visuals/NoFog.h>
#include <cheat/visuals/FPSUnlock.h> #include <cheat/visuals/FPSUnlock.h>
@ -50,7 +52,7 @@
#include <cheat/visuals/PaimonFollow.h> #include <cheat/visuals/PaimonFollow.h>
#include <cheat/visuals/HideUI.h> #include <cheat/visuals/HideUI.h>
#include <cheat/visuals/Browser.h> #include <cheat/visuals/Browser.h>
#include <cheat/visuals/EnablePeaking.h> #include <cheat/visuals/EnablePeeking.h>
#include <cheat/visuals/TextureChanger.h> #include <cheat/visuals/TextureChanger.h>
#include <cheat/visuals/FreeCamera.h> #include <cheat/visuals/FreeCamera.h>
@ -91,6 +93,7 @@ namespace cheat
FEAT_INST(VacuumLoot), FEAT_INST(VacuumLoot),
FEAT_INST(DialogSkip), FEAT_INST(DialogSkip),
FEAT_INST(DumbEnemies), FEAT_INST(DumbEnemies),
FEAT_INST(FreezeEnemies),
FEAT_INST(ElementalSight), FEAT_INST(ElementalSight),
FEAT_INST(KillAura), FEAT_INST(KillAura),
FEAT_INST(MobVacuum), FEAT_INST(MobVacuum),
@ -107,6 +110,8 @@ namespace cheat
FEAT_INST(AutoFish), FEAT_INST(AutoFish),
FEAT_INST(AutoCook), FEAT_INST(AutoCook),
FEAT_INST(CustomWeather),
FEAT_INST(NoFog), FEAT_INST(NoFog),
FEAT_INST(FPSUnlock), FEAT_INST(FPSUnlock),
FEAT_INST(CameraZoom), FEAT_INST(CameraZoom),
@ -115,7 +120,7 @@ namespace cheat
FEAT_INST(PaimonFollow), FEAT_INST(PaimonFollow),
FEAT_INST(HideUI), FEAT_INST(HideUI),
FEAT_INST(Browser), FEAT_INST(Browser),
FEAT_INST(EnablePeaking), FEAT_INST(EnablePeeking),
FEAT_INST(TextureChanger), FEAT_INST(TextureChanger),
FEAT_INST(FreeCamera) FEAT_INST(FreeCamera)

View File

@ -822,6 +822,11 @@ namespace cheat::feature
ADD_FILTER_FIELD(puzzle, UniqueRocks); ADD_FILTER_FIELD(puzzle, UniqueRocks);
ADD_FILTER_FIELD(puzzle, WarmingSeelie); ADD_FILTER_FIELD(puzzle, WarmingSeelie);
ADD_FILTER_FIELD(puzzle, WindmillMechanism); ADD_FILTER_FIELD(puzzle, WindmillMechanism);
ADD_FILTER_FIELD(puzzle, MelodicBloom);
ADD_FILTER_FIELD(puzzle, CloudleisureSteps);
ADD_FILTER_FIELD(puzzle, DreamForm);
ADD_FILTER_FIELD(puzzle, StarlightCoalescence);
ADD_FILTER_FIELD(puzzle, TheRavenForum);
} }
#undef ADD_FILTER_FIELD #undef ADD_FILTER_FIELD
} }

View File

@ -205,6 +205,18 @@ namespace cheat::game
SAFE_END(); SAFE_END();
} }
app::Animator* Entity::animator()
{
if (!isLoaded())
return nullptr;
SAFE_BEGIN();
return app::MoleMole_BaseEntity_get_animator(m_RawEntity, nullptr);
SAFE_ERROR();
return nullptr;
SAFE_END();
}
app::GameObject* Entity::gameObject() app::GameObject* Entity::gameObject()
{ {
if (!isLoaded()) if (!isLoaded())

View File

@ -37,7 +37,8 @@ namespace cheat::game
app::GameObject* gameObject(); app::GameObject* gameObject();
app::Rigidbody* rigidbody(); app::Rigidbody* rigidbody();
app::Animator* animator();
app::Vector3 forward(); app::Vector3 forward();
app::Vector3 back(); app::Vector3 back();
app::Vector3 right(); app::Vector3 right();

View File

@ -221,7 +221,8 @@ namespace cheat::game::filters
SimpleFilter JadeplumeTerrorshroom = { EntityType__Enum_1::Monster, "Fungus_Raptor" }; SimpleFilter JadeplumeTerrorshroom = { EntityType__Enum_1::Monster, "Fungus_Raptor" };
SimpleFilter RishbolandTiger = { EntityType__Enum_1::Monster, "_Megamoth_" }; SimpleFilter RishbolandTiger = { EntityType__Enum_1::Monster, "_Megamoth_" };
SimpleFilter ShaggySumpterBeast = { EntityType__Enum_1::Monster, "_Panther" }; SimpleFilter ShaggySumpterBeast = { EntityType__Enum_1::Monster, "_Panther" };
SimpleFilter Spincrocodile = { EntityType__Enum_1::Monster, "_Gator" }; SimpleFilter Spincrocodile = { EntityType__Enum_1::Monster, "_Gator" };
SimpleFilter SentryTurrets = { EntityType__Enum_1::Field, "SentryTurrets_" };
} }
namespace plant namespace plant
@ -313,6 +314,12 @@ namespace cheat::game::filters
SimpleFilter UniqueRocks = { EntityType__Enum_1::Gadget, "_Chalcedony" }; SimpleFilter UniqueRocks = { EntityType__Enum_1::Gadget, "_Chalcedony" };
SimpleFilter WarmingSeelie = { EntityType__Enum_1::Platform, "_FireSeelie" }; SimpleFilter WarmingSeelie = { EntityType__Enum_1::Platform, "_FireSeelie" };
SimpleFilter WindmillMechanism = { EntityType__Enum_1::Gear, "Gear_Windmill" }; SimpleFilter WindmillMechanism = { EntityType__Enum_1::Gear, "Gear_Windmill" };
WhitelistFilter MelodicBloom = { {EntityType__Enum_1::Worktop, EntityType__Enum_1::Gadget }, {"_TransferFlowerSmall", "_NotePlant" } };
SimpleFilter CloudleisureSteps = { EntityType__Enum_1::Field, "_CloudPlatform" };
WhitelistFilter DreamForm = { {EntityType__Enum_1::Field, EntityType__Enum_1::Platform }, "_AnimalSeelie" };
SimpleFilter StarlightCoalescence = { EntityType__Enum_1::Field, "_PaperStar" };
SimpleFilter TheRavenForum = { EntityType__Enum_1::Gadget, "_NightCrowStatue" };
} }
namespace combined namespace combined
@ -523,5 +530,7 @@ namespace cheat::game::filters
SimpleFilter OrganicTargets = { Monsters, Animals }; // Solael: Please don't mess around with this filter. SimpleFilter OrganicTargets = { Monsters, Animals }; // Solael: Please don't mess around with this filter.
//m0nkrel: We can choose the entities we need ourselves so as not to magnetize cats, dogs, etc. //m0nkrel: We can choose the entities we need ourselves so as not to magnetize cats, dogs, etc.
//AdvancedFilter Animals = { {EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster }, {"Crane", "Tit", "Boar", "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } }; //AdvancedFilter Animals = { {EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster }, {"Crane", "Tit", "Boar", "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } };
SimpleFilter Lightning = { EntityType__Enum_1::Lightning };
} }
} }

View File

@ -220,7 +220,8 @@ namespace cheat::game::filters
extern SimpleFilter Beisht; extern SimpleFilter Beisht;
extern SimpleFilter RishbolandTiger; extern SimpleFilter RishbolandTiger;
extern SimpleFilter ShaggySumpterBeast; extern SimpleFilter ShaggySumpterBeast;
extern SimpleFilter Spincrocodile; extern SimpleFilter Spincrocodile;
extern SimpleFilter SentryTurrets;
} }
namespace plant namespace plant
@ -284,7 +285,6 @@ namespace cheat::game::filters
extern SimpleFilter BakeDanuki; extern SimpleFilter BakeDanuki;
extern SimpleFilter BloattyFloatty; extern SimpleFilter BloattyFloatty;
extern WhitelistFilter CubeDevices; extern WhitelistFilter CubeDevices;
extern SimpleFilter EightStoneTablets; extern SimpleFilter EightStoneTablets;
extern SimpleFilter ElectricConduction; extern SimpleFilter ElectricConduction;
extern SimpleFilter RelayStone; extern SimpleFilter RelayStone;
@ -313,6 +313,11 @@ namespace cheat::game::filters
extern SimpleFilter UniqueRocks; extern SimpleFilter UniqueRocks;
extern SimpleFilter WarmingSeelie; extern SimpleFilter WarmingSeelie;
extern SimpleFilter WindmillMechanism; extern SimpleFilter WindmillMechanism;
extern WhitelistFilter MelodicBloom;
extern SimpleFilter CloudleisureSteps;
extern WhitelistFilter DreamForm;
extern SimpleFilter StarlightCoalescence;
extern SimpleFilter TheRavenForum;
} }
namespace combined namespace combined
@ -333,5 +338,6 @@ namespace cheat::game::filters
extern SimpleFilter MonsterEquips; extern SimpleFilter MonsterEquips;
extern BlacklistFilter Living; extern BlacklistFilter Living;
extern SimpleFilter OrganicTargets; extern SimpleFilter OrganicTargets;
extern SimpleFilter Lightning;
} }
} }

View File

@ -1366,6 +1366,12 @@ namespace cheat::feature
if (_monoMiniMap == nullptr) if (_monoMiniMap == nullptr)
return false; return false;
// Fix Exception in Console, when loading ptr null | RyujinZX#7832
if (_monoMiniMap->fields._._._._.m_CachedPtr == 0) {
_monoMiniMap = nullptr;
return false;
}
SAFE_BEGIN(); SAFE_BEGIN();
return app::Behaviour_get_isActiveAndEnabled(reinterpret_cast<app::Behaviour*>(_monoMiniMap), nullptr); return app::Behaviour_get_isActiveAndEnabled(reinterpret_cast<app::Behaviour*>(_monoMiniMap), nullptr);
SAFE_ERROR(); SAFE_ERROR();

View File

@ -11,14 +11,14 @@ namespace cheat::feature
static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method); static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method);
static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method); static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method);
static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue, static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(app::MoleMole_ActorAbilityPlugin* __this, app::String* key, float value, float minValue, float maxValue,
bool forceDoAtRemote, MethodInfo* method); bool forceDoAtRemote, MethodInfo* method);
static std::list<std::string> abilityLog; static std::list<std::string> abilityLog;
NoCD::NoCD() : Feature(), NoCD::NoCD() : Feature(),
NF(f_AbilityReduce, "Reduce Skill/Burst Cooldown", "NoCD", false), NF(f_AbilityReduce, "Reduce Skill/Burst Cooldown", "NoCD", false),
NF(f_TimerReduce, "Reduce Timer", "NoCD", 1.f), NF(f_TimerReduce, "Reduce Timer", "NoCD", 1.f),
NF(f_UtimateMaxEnergy, "Burst max energy", "NoCD", false), NF(f_UtimateMaxEnergy, "Burst max energy", "NoCD", false),
NF(f_Sprint, "No Sprint Cooldown", "NoCD", false), NF(f_Sprint, "No Sprint Cooldown", "NoCD", false),
NF(f_InstantBow, "Instant bow", "NoCD", false) NF(f_InstantBow, "Instant bow", "NoCD", false)
@ -28,6 +28,7 @@ namespace cheat::feature
HookManager::install(app::MoleMole_HumanoidMoveFSM_CheckSprintCooldown, HumanoidMoveFSM_CheckSprintCooldown_Hook); HookManager::install(app::MoleMole_HumanoidMoveFSM_CheckSprintCooldown, HumanoidMoveFSM_CheckSprintCooldown_Hook);
HookManager::install(app::MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, ActorAbilityPlugin_AddDynamicFloatWithRange_Hook); HookManager::install(app::MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, ActorAbilityPlugin_AddDynamicFloatWithRange_Hook);
} }
const FeatureGUIInfo& NoCD::GetGUIInfo() const const FeatureGUIInfo& NoCD::GetGUIInfo() const
@ -153,21 +154,26 @@ namespace cheat::feature
// value - increase value // value - increase value
// min and max - bounds of charge. // min and max - bounds of charge.
// So, to charge make full charge m_Instantly, just replace value to maxValue. // So, to charge make full charge m_Instantly, just replace value to maxValue.
static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue, static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(app::MoleMole_ActorAbilityPlugin* __this, app::String* key, float value, float minValue, float maxValue,
bool forceDoAtRemote, MethodInfo* method) bool forceDoAtRemote, MethodInfo* method)
{ {
std::time_t t = std::time(nullptr); std::time_t t = std::time(nullptr);
auto logEntry = fmt::format("{:%H:%M:%S} | Key: {} value {}.", fmt::localtime(t), il2cppi_to_string(key), value); auto logEntry = fmt::format("{:%H:%M:%S} | Key: {} value: {} | min: {} | max: {}.", fmt::localtime(t), il2cppi_to_string(key), value, minValue, maxValue);
abilityLog.push_front(logEntry); abilityLog.push_front(logEntry);
if (abilityLog.size() > 50) if (abilityLog.size() > 50)
abilityLog.pop_back(); abilityLog.pop_back();
NoCD& noCD = NoCD::GetInstance(); NoCD& noCD = NoCD::GetInstance();
// This function is calling not only for bows, so if don't put key filter it cause various game mechanic bugs. // This function is calling not only for bows, so if don't put key filter it cause various game mechanic bugs.
// For now only "_Enchanted_Time" found for bow charging, maybe there are more. Need to continue research. // For now only "_Enchanted_Time" found for bow charging, maybe there are more. Need to continue research.
if (noCD.f_InstantBow && il2cppi_to_string(key) == "_Enchanted_Time") if (noCD.f_InstantBow && il2cppi_to_string(key) == "_Enchanted_Time")
{
value = maxValue; value = maxValue;
__this->fields.nextValidAbilityID = 36; // HotFix Yelan, Fishl | It's essentially a game bug. | RyujinZX#7832
}
CALL_ORIGIN(ActorAbilityPlugin_AddDynamicFloatWithRange_Hook, __this, key, value, minValue, maxValue, forceDoAtRemote, method); CALL_ORIGIN(ActorAbilityPlugin_AddDynamicFloatWithRange_Hook, __this, key, value, minValue, maxValue, forceDoAtRemote, method);
} }
} }

View File

@ -139,8 +139,12 @@ namespace cheat::feature
auto rigidBody = avatarEntity->rigidbody(); auto rigidBody = avatarEntity->rigidbody();
if (rigidBody == nullptr) if (rigidBody == nullptr)
return; return;
if (!f_FreeflightMode) if (!f_FreeflightMode)
{
app::Rigidbody_set_collisionDetectionMode(rigidBody, app::CollisionDetectionMode__Enum::Continuous, nullptr);
app::Rigidbody_set_detectCollisions(rigidBody, false, nullptr); app::Rigidbody_set_detectCollisions(rigidBody, false, nullptr);
}
if (!f_VelocityMode) if (!f_VelocityMode)
app::Rigidbody_set_velocity(rigidBody, zero, nullptr); app::Rigidbody_set_velocity(rigidBody, zero, nullptr);

View File

@ -186,12 +186,13 @@ namespace cheat::feature
bool IsValidByFilter(game::Entity* entity) bool IsValidByFilter(game::Entity* entity)
{ {
if (game::filters::combined::OrganicTargets.IsValid(entity) || if (game::filters::combined::OrganicTargets.IsValid(entity) ||
game::filters::monster::SentryTurrets.IsValid(entity) ||
game::filters::combined::Ores.IsValid(entity) || game::filters::combined::Ores.IsValid(entity) ||
game::filters::puzzle::Geogranum.IsValid(entity) || game::filters::puzzle::Geogranum.IsValid(entity) ||
game::filters::puzzle::LargeRockPile.IsValid(entity) || game::filters::puzzle::LargeRockPile.IsValid(entity) ||
game::filters::puzzle::SmallRockPile.IsValid(entity)) game::filters::puzzle::SmallRockPile.IsValid(entity))
return true; return true;
return false; return false;
} }
// Raises when any entity do hit event. // Raises when any entity do hit event.
@ -207,6 +208,7 @@ namespace cheat::feature
auto& manager = game::EntityManager::instance(); auto& manager = game::EntityManager::instance();
auto originalTarget = manager.entity(targetID); auto originalTarget = manager.entity(targetID);
if (!IsValidByFilter(originalTarget)) if (!IsValidByFilter(originalTarget))
return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method); return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method);
@ -236,6 +238,7 @@ namespace cheat::feature
} }
for (const auto& entity : validEntities) { for (const auto& entity : validEntities) {
if (rapidFire.f_MultiHit) { if (rapidFire.f_MultiHit) {
int attackCount = rapidFire.GetAttackCount(__this, entity->runtimeID(), attackResult); int attackCount = rapidFire.GetAttackCount(__this, entity->runtimeID(), attackResult);
for (int i = 0; i < attackCount; i++) for (int i = 0; i < attackCount; i++)

View File

@ -1,5 +1,5 @@
#include "pch-il2cpp.h" #include "pch-il2cpp.h"
#include "EnablePeaking.h" #include "EnablePeeking.h"
#include <helpers.h> #include <helpers.h>
@ -7,43 +7,43 @@ namespace cheat::feature
{ {
static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method); static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method);
EnablePeaking::EnablePeaking() : Feature(), EnablePeeking::EnablePeeking() : Feature(),
NF(f_Enabled, "Enable Peaking", "Visuals::EnablePeaking", false) NF(f_Enabled, "Enable Peeking", "Visuals::EnablePeeking", false)
{ {
HookManager::install(app::MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook); 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; return info;
} }
void EnablePeaking::DrawMain() void EnablePeeking::DrawMain()
{ {
ConfigWidget(f_Enabled, ";)"); ConfigWidget(f_Enabled, ";)");
} }
bool EnablePeaking::NeedStatusDraw() const bool EnablePeeking::NeedStatusDraw() const
{ {
return f_Enabled; 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; return instance;
} }
static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method) static void MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook(app::MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method)
{ {
EnablePeaking& EnablePeaking = EnablePeaking::GetInstance(); EnablePeeking& EnablePeeking = EnablePeeking::GetInstance();
if (EnablePeaking.f_Enabled) if (EnablePeeking.f_Enabled)
value = 1; value = 1;
CALL_ORIGIN(MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook, __this, value, method); CALL_ORIGIN(MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue_Hook, __this, value, method);

View File

@ -0,0 +1,25 @@
#pragma once
#include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h>
namespace cheat::feature
{
class EnablePeeking : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
static EnablePeeking& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
private:
EnablePeeking();
};
}

View File

@ -3,6 +3,7 @@
#include <helpers.h> #include <helpers.h>
#include <cheat/events.h> #include <cheat/events.h>
#include <cheat/game/EntityManager.h>
namespace cheat::feature namespace cheat::feature
{ {
@ -20,6 +21,7 @@ namespace cheat::feature
FreeCamera::FreeCamera() : Feature(), FreeCamera::FreeCamera() : Feature(),
NF(f_Enabled, "Free Camera", "Visuals::FreeCamera", false), 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_Speed, "Speed", "Visuals::FreeCamera", 1.0f),
NF(f_LookSens, "Look Sensitivity", "Visuals::FreeCamera", 1.0f), NF(f_LookSens, "Look Sensitivity", "Visuals::FreeCamera", 1.0f),
NF(f_RollSpeed, "Roll Speed", "Visuals::FreeCamera", 1.0f), NF(f_RollSpeed, "Roll Speed", "Visuals::FreeCamera", 1.0f),
@ -50,6 +52,7 @@ namespace cheat::feature
void FreeCamera::DrawMain() void FreeCamera::DrawMain()
{ {
ConfigWidget("Enable", f_Enabled); 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)) if (ImGui::BeginTable("FreeCameraDrawTable", 1, ImGuiTableFlags_NoBordersInBody))
{ {
ImGui::TableNextRow(); ImGui::TableNextRow();
@ -245,5 +248,25 @@ namespace cheat::feature
} }
else else
DisableFreeCam(); 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);
}
} }
} }

View File

@ -8,6 +8,7 @@ namespace cheat::feature
{ {
public: public:
config::Field<config::Toggle<Hotkey>> f_Enabled; config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<config::Toggle<Hotkey>> f_FreezeAnimation;
config::Field<float> f_Speed; config::Field<float> f_Speed;
config::Field<float> f_LookSens; config::Field<float> f_LookSens;
config::Field<float> f_RollSpeed; config::Field<float> f_RollSpeed;

View File

@ -0,0 +1,114 @@
#include "pch-il2cpp.h"
#include "CustomWeather.h"
#include <helpers.h>
#include <cheat/events.h>
#include <cheat/game/EntityManager.h>
#include <cheat/game/util.h>
#include <cheat/game/filters.h>
namespace cheat::feature
{
const char* WeatherType[]{ "ClearSky", "Cloudy", "Foggy", "Storm", "RainHeavy", "FountainRain", "SnowLight", "EastCoast" };
std::string CustomWeather::GetWeather() {
switch (current_weather)
{
case 0:
return "Data/Environment/Weather/BigWorld/Weather_ClearSky";
case 1:
return "Data/Environment/Weather/BigWorld/Weather_Cloudy";
case 2:
return "Data/Environment/Weather/BigWorld/Weather_Foggy";
case 3:
return "Data/Environment/Weather/BigWorld/Weather_Storm";
case 4:
return "Data/Environment/Weather/BigWorld/Weather_Dq_Tabeisha_Rain_Heavy";
case 5:
return "Data/Environment/Weather/BigWorld/Weather_LY_Fountain_Rain";
case 6:
return "Data/Environment/Weather/BigWorld/Weather_Snowmountain_Snow_Light";
case 7:
return "Data/Environment/Weather/BigWorld/Weather_Snowmountain_EastCoast";
default:
return "Data/Environment/Weather/BigWorld/Weather_ClearSky";
}
}
CustomWeather::CustomWeather() : Feature(),
NF(f_Enabled, "Custom Weather", "World", false),
NF(f_Lightning, "Lightning", "World", false),
toBeUpdate(), nextUpdate(0)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(CustomWeather::OnGameUpdate);
}
const FeatureGUIInfo& CustomWeather::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "CustomWeather", "Visuals", true };
return info;
}
void CustomWeather::DrawMain()
{
ConfigWidget(f_Enabled, "Custom Weather.");
if (f_Enabled) {
ImGui::Combo(("Weather Type"), &current_weather, WeatherType, ARRAYSIZE(WeatherType));
}
ConfigWidget(f_Lightning, "Lightning target enemy, works with RainHeavy weather.");
}
bool CustomWeather::NeedStatusDraw() const
{
return f_Enabled;
}
void CustomWeather::DrawStatus()
{
ImGui::Text("Custom Weather");
if (f_Lightning)
ImGui::Text("Lightning");
}
CustomWeather& CustomWeather::GetInstance()
{
static CustomWeather instance;
return instance;
}
void CustomWeather::OnGameUpdate()
{
if (!f_Enabled)
return;
auto currentTime = util::GetCurrentTimeMillisec();
if (currentTime < nextUpdate)
return;
auto Enviro = app::EnviroSky_get_Instance(nullptr);
if (Enviro != nullptr) {
app::EnviroSky_ChangeWeather(Enviro, string_to_il2cppi(GetWeather()), 1, 1, nullptr);
if (f_Lightning && current_weather == 4) {
auto& manager = game::EntityManager::instance();
for (auto& Monsters : manager.entities(game::filters::combined::Monsters)) {
if (manager.avatar()->distance(Monsters) >= 30)
continue;
for (auto& entity : manager.entities(game::filters::combined::Lightning)) {
entity->setRelativePosition(Monsters->relativePosition());
}
}
}
}
nextUpdate = currentTime + (int)f_DelayUpdate;
}
}

View File

@ -0,0 +1,28 @@
#pragma once
#include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h>
#include <cheat-base/thread-safe.h>
namespace cheat::feature
{
class CustomWeather : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<config::Toggle<Hotkey>> f_Lightning;
static CustomWeather& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
bool NeedStatusDraw() const override;
void DrawStatus() override;
private:
int current_weather;
std::string GetWeather();
SafeQueue<uint32_t> toBeUpdate;
SafeValue<int64_t> nextUpdate;
int f_DelayUpdate = 1;
void OnGameUpdate();
CustomWeather();
};
}

View File

@ -85,6 +85,8 @@ namespace cheat::feature
if (f_FastDialog) if (f_FastDialog)
app::Time_set_timeScale(f_TimeSpeedup, nullptr); app::Time_set_timeScale(f_TimeSpeedup, nullptr);
else
app::Time_set_timeScale(1.0f, nullptr);
bool isImportant = false; bool isImportant = false;
if (f_ExcludeImportant) if (f_ExcludeImportant)

View File

@ -0,0 +1,73 @@
#include "pch-il2cpp.h"
#include "FreezeEnemies.h"
#include <helpers.h>
#include <cheat/events.h>
#include <cheat/game/EntityManager.h>
#include <cheat/game/filters.h>
namespace cheat::feature
{
FreezeEnemies::FreezeEnemies() : Feature(),
NF(f_Enabled, "Freeze Enemies", "FreezeEnemies", false)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(FreezeEnemies::OnGameUpdate);
}
const FeatureGUIInfo& FreezeEnemies::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "", "World", false };
return info;
}
void FreezeEnemies::DrawMain()
{
ConfigWidget(f_Enabled, "Freezes all enemies' animation speed.");
}
bool FreezeEnemies::NeedStatusDraw() const
{
return f_Enabled;
}
void FreezeEnemies::DrawStatus()
{
ImGui::Text("Freeze Enemies");
}
FreezeEnemies& FreezeEnemies::GetInstance()
{
static FreezeEnemies instance;
return instance;
}
// 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();
auto rigidBody = monster->rigidbody();
if (animator == nullptr && rigidBody == nullptr)
return;
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);
}
}
}
}

View File

@ -2,24 +2,26 @@
#include <cheat-base/cheat/Feature.h> #include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h> #include <cheat-base/config/config.h>
namespace cheat::feature namespace cheat::feature
{ {
class EnablePeaking : public Feature class FreezeEnemies : public Feature
{ {
public: public:
config::Field<config::Toggle<Hotkey>> f_Enabled; config::Field<config::Toggle<Hotkey>> f_Enabled;
static EnablePeaking& GetInstance(); static FreezeEnemies& GetInstance();
void OnGameUpdate();
const FeatureGUIInfo& GetGUIInfo() const override; const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override; void DrawMain() override;
virtual bool NeedStatusDraw() const override; virtual bool NeedStatusDraw() const override;
void DrawStatus() override; void DrawStatus() override;
private: private:
EnablePeaking(); FreezeEnemies();
}; };
} }