Merge branch 'Akebi-Group:master' into master
11
README.md
@ -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
|
||||||
|
@ -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" />
|
||||||
|
@ -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">
|
||||||
|
BIN
cheat-library/res/icons/CloudleisureSteps.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
cheat-library/res/icons/DreamForm.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
cheat-library/res/icons/MelodicBloom.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
cheat-library/res/icons/StarlightCoalescence.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
cheat-library/res/icons/TheRavenForum.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
cheat-library/res/iconsHD/CloudleisureSteps.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
cheat-library/res/iconsHD/DreamForm.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
cheat-library/res/iconsHD/MelodicBloom.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
cheat-library/res/iconsHD/StarlightCoalescence.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
cheat-library/res/iconsHD/TheRavenForum.png
Normal file
After Width: | Height: | Size: 46 KiB |
@ -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
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -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));
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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())
|
||||||
|
@ -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();
|
||||||
|
@ -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 };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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();
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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++)
|
||||||
|
@ -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);
|
25
cheat-library/src/user/cheat/visuals/EnablePeeking.h
Normal 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();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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;
|
||||||
|
114
cheat-library/src/user/cheat/world/CustomWeather.cpp
Normal 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"), ¤t_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;
|
||||||
|
}
|
||||||
|
}
|
28
cheat-library/src/user/cheat/world/CustomWeather.h
Normal 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();
|
||||||
|
};
|
||||||
|
}
|
@ -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)
|
||||||
|
73
cheat-library/src/user/cheat/world/FreezeEnemies.cpp
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|