Merge branch 'Akebi-Group:master' into master

This commit is contained in:
lunatic 2022-08-25 13:45:21 +07:00 committed by GitHub
commit e7eb81b6b5
53 changed files with 127665 additions and 106889 deletions

View File

@ -29,8 +29,15 @@ As well as setting up **`cheat-library`** as startup project.
## Latest Release ## Latest Release
1. Head over to the [action](https://github.com/Akebi-Group/Akebi-GC/actions) page 1. Head over to the [action](https://github.com/Akebi-Group/Akebi-GC/actions) page
1. Click Publish workflow 1. Click Publish workflow
1. Select most recent workflow with green checkmark ✔ 1. Select most recent workflow with green checkmark ✔ (Choose your client version **GLOBAL/CN/BETA**)
1. Download Akebi-GC-release in Artifacts section <p align="center">
<a href="#"><img src="https://user-images.githubusercontent.com/96950043/186429274-1e556c58-8027-4ec9-9c1d-3609c75aede4.png"></a>
</p>
4. Download Akebi-GC-release in Artifacts section
<p align="center">
<a href="#"><img src="https://user-images.githubusercontent.com/96950043/186429302-7c7be3f6-df2f-4e49-9bb9-4a703c3491df.png"></a>
</p>
### Requirements ### Requirements
- [Visual C++ Redistributable packages for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) (x64) - [Visual C++ Redistributable packages for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) (x64)
@ -56,19 +63,18 @@ As well as setting up **`cheat-library`** as startup project.
- Notifications - Notifications
#### Player #### Player
- Invincible - God Mode(Invincible)
- Attack Modifier - Attack Modifier: Multi-Hit/Target/Animation
- No Cooldown Skill/Ultimate/Sprint/Bow - No Cooldown: Skill/Ultimate/Sprint/Bow
- Unlimited Stamina - Unlimited Stamina
- No Clip - No Clip
#### World #### World
- Auto Seelie - Auto Seelie
- Vacuum Loot
- Dumb Enemies - Dumb Enemies
- Freeze Enemies - Freeze Enemies
- Auto Destroy Objects - Auto Destroy: Ores/Shields/Doodas/Plants
- Auto Loot - Auto Loot/Open Chests
- Pickup Range - Pickup Range
- Auto Talk - Auto Talk
- Auto Tree Farm - Auto Tree Farm
@ -77,6 +83,7 @@ As well as setting up **`cheat-library`** as startup project.
- Auto Fish - Auto Fish
- Kill Aura - Kill Aura
- Mob Vacuum - Mob Vacuum
- Vacuum Loot
#### Teleport #### Teleport
- Chest/Oculi Teleport (Teleports to nearest) - Chest/Oculi Teleport (Teleports to nearest)
@ -94,16 +101,17 @@ As well as setting up **`cheat-library`** as startup project.
- Hide UI - Hide UI
- In-game Embedded Browser - In-game Embedded Browser
- Enable Peeking - Enable Peeking
- Profile Changer - Profile Changer: UID/Nickname/AR/WorldLevel/Avatar/Namecard
- Custom Weather
- Free Camera - Free Camera
- Texture Changer
- Paimon Follow - Paimon Follow
- Texture Changer
#### Debugging #### Debugging
- Entities Manager - Entities Manager
- Position Info - Position Info
- FPS Graph - FPS Graph
- Packet Sniffer - [Packet Sniffer](https://github.com/Akebi-Group/Akebi-PacketSniffer)
<h1 align="center">Demo</h1> <h1 align="center">Demo</h1>

View File

@ -22,6 +22,7 @@
<ClInclude Include="src\user\cheat\misc\sniffer\pipe\PipeIO.h" /> <ClInclude Include="src\user\cheat\misc\sniffer\pipe\PipeIO.h" />
<ClInclude Include="src\user\cheat\player\AutoRun.h" /> <ClInclude Include="src\user\cheat\player\AutoRun.h" />
<ClInclude Include="src\user\cheat\visuals\AnimationChanger.h" /> <ClInclude Include="src\user\cheat\visuals\AnimationChanger.h" />
<ClInclude Include="src\user\cheat\player\FallControl.h" />
<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\AutoChallenge.h" /> <ClInclude Include="src\user\cheat\world\AutoChallenge.h" />
@ -116,6 +117,7 @@
<ClCompile Include="src\user\cheat\misc\sniffer\pipe\PipeIO.cpp" /> <ClCompile Include="src\user\cheat\misc\sniffer\pipe\PipeIO.cpp" />
<ClCompile Include="src\user\cheat\player\AutoRun.cpp" /> <ClCompile Include="src\user\cheat\player\AutoRun.cpp" />
<ClCompile Include="src\user\cheat\visuals\AnimationChanger.cpp" /> <ClCompile Include="src\user\cheat\visuals\AnimationChanger.cpp" />
<ClCompile Include="src\user\cheat\player\FallControl.cpp" />
<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\AutoChallenge.cpp" /> <ClCompile Include="src\user\cheat\world\AutoChallenge.cpp" />
@ -224,12 +226,19 @@
<Image Include="res\iconsHD\Azhdaha.png" /> <Image Include="res\iconsHD\Azhdaha.png" />
<Image Include="res\iconsHD\Boar.png" /> <Image Include="res\iconsHD\Boar.png" />
<Image Include="res\iconsHD\BookPage.png" /> <Image Include="res\iconsHD\BookPage.png" />
<Image Include="res\iconsHD\BouncyMushroom.png" />
<Image Include="res\iconsHD\Cat.png" /> <Image Include="res\iconsHD\Cat.png" />
<Image Include="res\iconsHD\Cicin.png" /> <Image Include="res\iconsHD\Cicin.png" />
<Image Include="res\iconsHD\ClusterleafOfCultivation.png" />
<Image Include="res\iconsHD\Crane.png" /> <Image Include="res\iconsHD\Crane.png" />
<Image Include="res\iconsHD\CryoBathysmalVishap.png" /> <Image Include="res\iconsHD\CryoBathysmalVishap.png" />
<Image Include="res\iconsHD\Dendroculus.png" /> <Image Include="res\iconsHD\Dendroculus.png" />
<Image Include="res\iconsHD\DendroGranum.png" />
<Image Include="res\iconsHD\DendroPile.png" />
<Image Include="res\iconsHD\DendroPuzzles.png" />
<Image Include="res\iconsHD\DendroRock.png" />
<Image Include="res\iconsHD\Dog.png" /> <Image Include="res\iconsHD\Dog.png" />
<Image Include="res\iconsHD\DreadfulWithering.png" />
<Image Include="res\iconsHD\DunlinsTooth.png" /> <Image Include="res\iconsHD\DunlinsTooth.png" />
<Image Include="res\iconsHD\Dvalin.png" /> <Image Include="res\iconsHD\Dvalin.png" />
<Image Include="res\iconsHD\Eel.png" /> <Image Include="res\iconsHD\Eel.png" />
@ -418,6 +427,7 @@
<Image Include="res\iconsHD\NilotpalaLotus.png" /> <Image Include="res\iconsHD\NilotpalaLotus.png" />
<Image Include="res\iconsHD\Nobushi.png" /> <Image Include="res\iconsHD\Nobushi.png" />
<Image Include="res\iconsHD\NoctilucousJade.png" /> <Image Include="res\iconsHD\NoctilucousJade.png" />
<Image Include="res\iconsHD\NurseriesInTheWilds.png" />
<Image Include="res\iconsHD\OceanCrab.png" /> <Image Include="res\iconsHD\OceanCrab.png" />
<Image Include="res\iconsHD\Oceanid.png" /> <Image Include="res\iconsHD\Oceanid.png" />
<Image Include="res\iconsHD\OceanidSummons.png" /> <Image Include="res\iconsHD\OceanidSummons.png" />
@ -427,6 +437,7 @@
<Image Include="res\iconsHD\Padisarah.png" /> <Image Include="res\iconsHD\Padisarah.png" />
<Image Include="res\iconsHD\PaleRedCrab.png" /> <Image Include="res\iconsHD\PaleRedCrab.png" />
<Image Include="res\iconsHD\PerpetualMechanicalArray.png" /> <Image Include="res\iconsHD\PerpetualMechanicalArray.png" />
<Image Include="res\iconsHD\PhantasmalGate.png" />
<Image Include="res\iconsHD\PhaseGate.png" /> <Image Include="res\iconsHD\PhaseGate.png" />
<Image Include="res\iconsHD\PhilanemoMushroom.png" /> <Image Include="res\iconsHD\PhilanemoMushroom.png" />
<Image Include="res\iconsHD\Pigeon.png" /> <Image Include="res\iconsHD\Pigeon.png" />
@ -465,6 +476,7 @@
<Image Include="res\iconsHD\RukkhashavaMushrooms.png" /> <Image Include="res\iconsHD\RukkhashavaMushrooms.png" />
<Image Include="res\iconsHD\RustyKoi.png" /> <Image Include="res\iconsHD\RustyKoi.png" />
<Image Include="res\iconsHD\SacredSakura.png" /> <Image Include="res\iconsHD\SacredSakura.png" />
<Image Include="res\iconsHD\SaghiraMachine.png" />
<Image Include="res\iconsHD\SakuraBloom.png" /> <Image Include="res\iconsHD\SakuraBloom.png" />
<Image Include="res\iconsHD\Salamander.png" /> <Image Include="res\iconsHD\Salamander.png" />
<Image Include="res\iconsHD\Samachurl.png" /> <Image Include="res\iconsHD\Samachurl.png" />
@ -507,6 +519,7 @@
<Image Include="res\iconsHD\Starshroom.png" /> <Image Include="res\iconsHD\Starshroom.png" />
<Image Include="res\iconsHD\Starsilver.png" /> <Image Include="res\iconsHD\Starsilver.png" />
<Image Include="res\iconsHD\StatueofTheSeven.png" /> <Image Include="res\iconsHD\StatueofTheSeven.png" />
<Image Include="res\iconsHD\StonePillarSeal.png" />
<Image Include="res\iconsHD\StormBarrier.png" /> <Image Include="res\iconsHD\StormBarrier.png" />
<Image Include="res\iconsHD\Stormstone.png" /> <Image Include="res\iconsHD\Stormstone.png" />
<Image Include="res\iconsHD\StrangeTooth.png" /> <Image Include="res\iconsHD\StrangeTooth.png" />
@ -530,7 +543,8 @@
<Image Include="res\iconsHD\TorchPuzzle.png" /> <Image Include="res\iconsHD\TorchPuzzle.png" />
<Image Include="res\iconsHD\TreasureHoarder.png" /> <Image Include="res\iconsHD\TreasureHoarder.png" />
<Image Include="res\iconsHD\TriangularMechanism.png" /> <Image Include="res\iconsHD\TriangularMechanism.png" />
<Image Include="res\iconsHD\Tukan.png" /> <Image Include="res\iconsHD\DuskBird.png" />
<Image Include="res\iconsHD\TriYanaSeeds.png" />
<Image Include="res\iconsHD\UnagiMeat.png" /> <Image Include="res\iconsHD\UnagiMeat.png" />
<Image Include="res\iconsHD\UniqueRocks.png" /> <Image Include="res\iconsHD\UniqueRocks.png" />
<Image Include="res\iconsHD\UnusualHilichurl.png" /> <Image Include="res\iconsHD\UnusualHilichurl.png" />
@ -563,12 +577,19 @@
<Image Include="res\icons\Azhdaha.png" /> <Image Include="res\icons\Azhdaha.png" />
<Image Include="res\icons\Boar.png" /> <Image Include="res\icons\Boar.png" />
<Image Include="res\icons\BookPage.png" /> <Image Include="res\icons\BookPage.png" />
<Image Include="res\icons\BouncyMushroom.png" />
<Image Include="res\icons\Cat.png" /> <Image Include="res\icons\Cat.png" />
<Image Include="res\icons\Cicin.png" /> <Image Include="res\icons\Cicin.png" />
<Image Include="res\icons\ClusterleafOfCultivation.png" />
<Image Include="res\icons\Crane.png" /> <Image Include="res\icons\Crane.png" />
<Image Include="res\icons\CryoBathysmalVishap.png" /> <Image Include="res\icons\CryoBathysmalVishap.png" />
<Image Include="res\icons\Dendroculus.png" /> <Image Include="res\icons\Dendroculus.png" />
<Image Include="res\icons\DendroGranum.png" />
<Image Include="res\icons\DendroPile.png" />
<Image Include="res\icons\DendroPuzzles.png" />
<Image Include="res\icons\DendroRock.png" />
<Image Include="res\icons\Dog.png" /> <Image Include="res\icons\Dog.png" />
<Image Include="res\icons\DreadfulWithering.png" />
<Image Include="res\icons\DunlinsTooth.png" /> <Image Include="res\icons\DunlinsTooth.png" />
<Image Include="res\icons\Dvalin.png" /> <Image Include="res\icons\Dvalin.png" />
<Image Include="res\icons\Eel.png" /> <Image Include="res\icons\Eel.png" />
@ -757,6 +778,7 @@
<Image Include="res\icons\NilotpalaLotus.png" /> <Image Include="res\icons\NilotpalaLotus.png" />
<Image Include="res\icons\Nobushi.png" /> <Image Include="res\icons\Nobushi.png" />
<Image Include="res\icons\NoctilucousJade.png" /> <Image Include="res\icons\NoctilucousJade.png" />
<Image Include="res\icons\NurseriesInTheWilds.png" />
<Image Include="res\icons\OceanCrab.png" /> <Image Include="res\icons\OceanCrab.png" />
<Image Include="res\icons\Oceanid.png" /> <Image Include="res\icons\Oceanid.png" />
<Image Include="res\icons\OceanidSummons.png" /> <Image Include="res\icons\OceanidSummons.png" />
@ -766,6 +788,7 @@
<Image Include="res\icons\Padisarah.png" /> <Image Include="res\icons\Padisarah.png" />
<Image Include="res\icons\PaleRedCrab.png" /> <Image Include="res\icons\PaleRedCrab.png" />
<Image Include="res\icons\PerpetualMechanicalArray.png" /> <Image Include="res\icons\PerpetualMechanicalArray.png" />
<Image Include="res\icons\PhantasmalGate.png" />
<Image Include="res\icons\PhaseGate.png" /> <Image Include="res\icons\PhaseGate.png" />
<Image Include="res\icons\PhilanemoMushroom.png" /> <Image Include="res\icons\PhilanemoMushroom.png" />
<Image Include="res\icons\Pigeon.png" /> <Image Include="res\icons\Pigeon.png" />
@ -804,6 +827,7 @@
<Image Include="res\icons\RukkhashavaMushrooms.png" /> <Image Include="res\icons\RukkhashavaMushrooms.png" />
<Image Include="res\icons\RustyKoi.png" /> <Image Include="res\icons\RustyKoi.png" />
<Image Include="res\icons\SacredSakura.png" /> <Image Include="res\icons\SacredSakura.png" />
<Image Include="res\icons\SaghiraMachine.png" />
<Image Include="res\icons\SakuraBloom.png" /> <Image Include="res\icons\SakuraBloom.png" />
<Image Include="res\icons\Salamander.png" /> <Image Include="res\icons\Salamander.png" />
<Image Include="res\icons\Samachurl.png" /> <Image Include="res\icons\Samachurl.png" />
@ -846,6 +870,7 @@
<Image Include="res\icons\Starshroom.png" /> <Image Include="res\icons\Starshroom.png" />
<Image Include="res\icons\Starsilver.png" /> <Image Include="res\icons\Starsilver.png" />
<Image Include="res\icons\StatueofTheSeven.png" /> <Image Include="res\icons\StatueofTheSeven.png" />
<Image Include="res\icons\StonePillarSeal.png" />
<Image Include="res\icons\StormBarrier.png" /> <Image Include="res\icons\StormBarrier.png" />
<Image Include="res\icons\Stormstone.png" /> <Image Include="res\icons\Stormstone.png" />
<Image Include="res\icons\StrangeTooth.png" /> <Image Include="res\icons\StrangeTooth.png" />
@ -869,7 +894,8 @@
<Image Include="res\icons\TorchPuzzle.png" /> <Image Include="res\icons\TorchPuzzle.png" />
<Image Include="res\icons\TreasureHoarder.png" /> <Image Include="res\icons\TreasureHoarder.png" />
<Image Include="res\icons\TriangularMechanism.png" /> <Image Include="res\icons\TriangularMechanism.png" />
<Image Include="res\icons\Tukan.png" /> <Image Include="res\icons\DuskBird.png" />
<Image Include="res\icons\TriYanaSeeds.png" />
<Image Include="res\icons\UnagiMeat.png" /> <Image Include="res\icons\UnagiMeat.png" />
<Image Include="res\icons\UniqueRocks.png" /> <Image Include="res\icons\UniqueRocks.png" />
<Image Include="res\icons\UnusualHilichurl.png" /> <Image Include="res\icons\UnusualHilichurl.png" />

View File

@ -255,6 +255,9 @@
<ClInclude Include="src\user\cheat\visuals\AnimationChanger.h"> <ClInclude Include="src\user\cheat\visuals\AnimationChanger.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\user\cheat\player\FallControl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\world\AutoChallenge.h"> <ClInclude Include="src\user\cheat\world\AutoChallenge.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@ -471,6 +474,9 @@
<ClCompile Include="src\user\cheat\visuals\AnimationChanger.cpp"> <ClCompile Include="src\user\cheat\visuals\AnimationChanger.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\user\cheat\player\FallControl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\world\AutoChallenge.cpp"> <ClCompile Include="src\user\cheat\world\AutoChallenge.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@ -2409,9 +2415,6 @@
<Image Include="res\iconsHD\SumeruRose.png"> <Image Include="res\iconsHD\SumeruRose.png">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Image> </Image>
<Image Include="res\iconsHD\Tukan.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\Viparyas.png"> <Image Include="res\iconsHD\Viparyas.png">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Image> </Image>
@ -2439,9 +2442,6 @@
<Image Include="res\iconsHD\RukkhashavaMushrooms.png"> <Image Include="res\iconsHD\RukkhashavaMushrooms.png">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Image> </Image>
<Image Include="res\icons\Tukan.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\Viparyas.png"> <Image Include="res\icons\Viparyas.png">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Image> </Image>
@ -2526,5 +2526,83 @@
<Image Include="res\icons\BookPage.png"> <Image Include="res\icons\BookPage.png">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Image> </Image>
<Image Include="res\icons\DuskBird.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DuskBird.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\TriYanaSeeds.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\BouncyMushroom.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\ClusterleafOfCultivation.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DendroGranum.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DendroPile.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DendroPuzzles.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DendroRock.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\DreadfulWithering.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\NurseriesInTheWilds.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\PhantasmalGate.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\SaghiraMachine.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\iconsHD\StonePillarSeal.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\StonePillarSeal.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\TriYanaSeeds.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\BouncyMushroom.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\ClusterleafOfCultivation.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\DendroGranum.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\DendroPile.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\DendroPuzzles.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\DendroRock.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\DreadfulWithering.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\NurseriesInTheWilds.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\PhantasmalGate.png">
<Filter>Resource Files</Filter>
</Image>
<Image Include="res\icons\SaghiraMachine.png">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,12 +1,12 @@
{ {
"game_version": "2.8", "game_version": "3.0",
"modules": { "modules": {
"UnityPlayer.dll": { "UnityPlayer.dll": {
"checksum": 4999961552328781053, "checksum": 18225598526199471527,
"timestamp": 0 "timestamp": 0
}, },
"UserAssembly.dll": { "UserAssembly.dll": {
"checksum": 807890720029543258, "checksum": 10799527772725786707,
"timestamp": 0 "timestamp": 0
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because it is too large Load Diff

View File

@ -72,6 +72,8 @@ AssemblyChecksums RCDATA "assembly_checksum.json"
// PNG // PNG
// //
#pragma region iconsHD
HDABIDINGANGELFISH PNG "iconsHD\\AbidingAngelfish.png" HDABIDINGANGELFISH PNG "iconsHD\\AbidingAngelfish.png"
HDABYSSMAGE PNG "iconsHD\\AbyssMage.png" HDABYSSMAGE PNG "iconsHD\\AbyssMage.png"
@ -144,6 +146,8 @@ HDBOOKPAGE PNG "iconsHD\\BookPage.png"
HDBOOTWEASEL PNG "iconsHD\\BootWeasel.png" HDBOOTWEASEL PNG "iconsHD\\BootWeasel.png"
HDBOUNCYMUSHROOM PNG "iconsHD\\BouncyMushroom.png"
HDBRIGHTCROWNPIGEON PNG "iconsHD\\BrightcrownPigeon.png" HDBRIGHTCROWNPIGEON PNG "iconsHD\\BrightcrownPigeon.png"
HDBROWNSHIRAKODAI PNG "iconsHD\\BrownShirakodai.png" HDBROWNSHIRAKODAI PNG "iconsHD\\BrownShirakodai.png"
@ -166,6 +170,10 @@ HDCHILLEDMEAT PNG "iconsHD\\ChilledMeat.png"
HDCICIN PNG "iconsHD\\Cicin.png" HDCICIN PNG "iconsHD\\Cicin.png"
HDCLOUDLEISURESTEPS PNG "iconsHD\\CloudleisureSteps.png"
HDCLUSTERLEAFOFCULTIVATION PNG "iconsHD\\ClusterleafOfCultivation.png"
HDCOMMONCHEST PNG "iconsHD\\CommonChest.png" HDCOMMONCHEST PNG "iconsHD\\CommonChest.png"
HDCOOKINGINGREDIENT PNG "iconsHD\\CookingIngredient.png" HDCOOKINGINGREDIENT PNG "iconsHD\\CookingIngredient.png"
@ -220,14 +228,28 @@ HDDENDROBIUM PNG "iconsHD\\Dendrobium.png"
HDDENDROCULUS PNG "iconsHD\\Dendroculus.png" HDDENDROCULUS PNG "iconsHD\\Dendroculus.png"
HDDENDROGRANUM PNG "iconsHD\\DendroGranum.png"
HDDENDROPILE PNG "iconsHD\\DendroPile.png"
HDDENDROPUZZLES PNG "iconsHD\\DendroPuzzles.png"
HDDENDROROCK PNG "iconsHD\\DendroRock.png"
HDDIVDARAY PNG "iconsHD\\DivdaRay.png" HDDIVDARAY PNG "iconsHD\\DivdaRay.png"
HDDOG PNG "iconsHD\\Dog.png" HDDOG PNG "iconsHD\\Dog.png"
HDDOMAIN PNG "iconsHD\\Domain.png" HDDOMAIN PNG "iconsHD\\Domain.png"
HDDREADFULWITHERING PNG "iconsHD\\DreadfulWithering.png"
HDDREAMFORM PNG "iconsHD\\DreamForm.png"
HDDUNLINSTOOTH PNG "iconsHD\\DunlinsTooth.png" HDDUNLINSTOOTH PNG "iconsHD\\DunlinsTooth.png"
HDDUSKBIRD PNG "iconsHD\\DuskBird.png"
HDDVALIN PNG "iconsHD\\Dvalin.png" HDDVALIN PNG "iconsHD\\Dvalin.png"
HDECHOINGCONCH PNG "iconsHD\\EchoingConch.png" HDECHOINGCONCH PNG "iconsHD\\EchoingConch.png"
@ -362,6 +384,8 @@ HDHORSETAIL PNG "iconsHD\\Horsetail.png"
HDHYDROABYSSHERALD PNG "iconsHD\\HydroAbyssHerald.png" HDHYDROABYSSHERALD PNG "iconsHD\\HydroAbyssHerald.png"
HDHYDROBATHYSMALVISHAP PNG "iconsHD\\HydroBathysmalVishap.png"
HDHYDROHYPOSTASIS PNG "iconsHD\\HydroHypostasis.png" HDHYDROHYPOSTASIS PNG "iconsHD\\HydroHypostasis.png"
HDILLUSION PNG "iconsHD\\Illusion.png" HDILLUSION PNG "iconsHD\\Illusion.png"
@ -442,6 +466,8 @@ HDMATSUTAKE PNG "iconsHD\\Matsutake.png"
HDMEDAKA PNG "iconsHD\\Medaka.png" HDMEDAKA PNG "iconsHD\\Medaka.png"
HDMELODICBLOOM PNG "iconsHD\\MelodicBloom.png"
HDMERCHANT PNG "iconsHD\\Merchant.png" HDMERCHANT PNG "iconsHD\\Merchant.png"
HDMILLELITH PNG "iconsHD\\Millelith.png" HDMILLELITH PNG "iconsHD\\Millelith.png"
@ -474,6 +500,8 @@ HDNOBUSHI PNG "iconsHD\\Nobushi.png"
HDNOCTILUCOUSJADE PNG "iconsHD\\NoctilucousJade.png" HDNOCTILUCOUSJADE PNG "iconsHD\\NoctilucousJade.png"
HDNURSERIESINTHEWILDS PNG "iconsHD\\NurseriesInTheWilds.png"
HDOCEANCRAB PNG "iconsHD\\OceanCrab.png" HDOCEANCRAB PNG "iconsHD\\OceanCrab.png"
HDOCEANID PNG "iconsHD\\Oceanid.png" HDOCEANID PNG "iconsHD\\Oceanid.png"
@ -506,6 +534,8 @@ HDPALEREDCRAB PNG "iconsHD\\PaleRedCrab.png"
HDPERPETUALMECHANICALARRAY PNG "iconsHD\\PerpetualMechanicalArray.png" HDPERPETUALMECHANICALARRAY PNG "iconsHD\\PerpetualMechanicalArray.png"
HDPHANTASMALGATE PNG "iconsHD\\PhantasmalGate.png"
HDPHASEGATE PNG "iconsHD\\PhaseGate.png" HDPHASEGATE PNG "iconsHD\\PhaseGate.png"
HDPHILANEMOMUSHROOM PNG "iconsHD\\PhilanemoMushroom.png" HDPHILANEMOMUSHROOM PNG "iconsHD\\PhilanemoMushroom.png"
@ -584,6 +614,8 @@ HDRUSTYKOI PNG "iconsHD\\RustyKoi.png"
HDSACREDSAKURA PNG "iconsHD\\SacredSakura.png" HDSACREDSAKURA PNG "iconsHD\\SacredSakura.png"
HDSAGHIRAMACHINE PNG "iconsHD\\SaghiraMachine.png"
HDSAKURABLOOM PNG "iconsHD\\SakuraBloom.png" HDSAKURABLOOM PNG "iconsHD\\SakuraBloom.png"
HDSALAMANDER PNG "iconsHD\\Salamander.png" HDSALAMANDER PNG "iconsHD\\Salamander.png"
@ -606,8 +638,6 @@ HDSEAGRASS PNG "iconsHD\\Seagrass.png"
HDSEALEDCHEST PNG "iconsHD\\SealedChest.png" HDSEALEDCHEST PNG "iconsHD\\SealedChest.png"
HDSEALLOCATIONS PNG "iconsHD\\SealLocationI.png"
HDSEALLOCATIONI PNG "iconsHD\\SealLocationI.png" HDSEALLOCATIONI PNG "iconsHD\\SealLocationI.png"
HDSEALLOCATIONII PNG "iconsHD\\SealLocationII.png" HDSEALLOCATIONII PNG "iconsHD\\SealLocationII.png"
@ -616,6 +646,8 @@ HDSEALLOCATIONIII PNG "iconsHD\\SealLocationIII.png"
HDSEALLOCATIONIV PNG "iconsHD\\SealLocationIV.png" HDSEALLOCATIONIV PNG "iconsHD\\SealLocationIV.png"
HDSEALLOCATIONS PNG "iconsHD\\SealLocationI.png"
HDSEALLOCATIONV PNG "iconsHD\\SealLocationV.png" HDSEALLOCATIONV PNG "iconsHD\\SealLocationV.png"
HDSEELIE PNG "iconsHD\\Seelie.png" HDSEELIE PNG "iconsHD\\Seelie.png"
@ -664,12 +696,16 @@ HDSQUIRREL PNG "iconsHD\\Squirrel.png"
HDSTARCONCH PNG "iconsHD\\Starconch.png" HDSTARCONCH PNG "iconsHD\\Starconch.png"
HDSTARLIGHTCOALESCENCE PNG "iconsHD\\StarlightCoalescence.png"
HDSTARSHROOM PNG "iconsHD\\Starshroom.png" HDSTARSHROOM PNG "iconsHD\\Starshroom.png"
HDSTARSILVER PNG "iconsHD\\Starsilver.png" HDSTARSILVER PNG "iconsHD\\Starsilver.png"
HDSTATUEOFTHESEVEN PNG "iconsHD\\StatueofTheSeven.png" HDSTATUEOFTHESEVEN PNG "iconsHD\\StatueofTheSeven.png"
HDSTONEPILLARSEAL PNG "iconsHD\\StonePillarSeal.png"
HDSTORMBARRIER PNG "iconsHD\\StormBarrier.png" HDSTORMBARRIER PNG "iconsHD\\StormBarrier.png"
HDSTORMSTONE PNG "iconsHD\\Stormstone.png" HDSTORMSTONE PNG "iconsHD\\Stormstone.png"
@ -704,6 +740,8 @@ HDTHECRUXTHEALCOR PNG "iconsHD\\TheCruxTheAlcor.png"
HDTHEGREATSNOWBOARKING PNG "iconsHD\\TheGreatSnowboarKing.png" HDTHEGREATSNOWBOARKING PNG "iconsHD\\TheGreatSnowboarKing.png"
HDTHERAVENFORUM PNG "iconsHD\\TheRavenForum.png"
HDTHREEBOXES PNG "iconsHD\\ThreeBoxes.png" HDTHREEBOXES PNG "iconsHD\\ThreeBoxes.png"
HDTHUNDERMANIFESTATION PNG "iconsHD\\ThunderManifestation.png" HDTHUNDERMANIFESTATION PNG "iconsHD\\ThunderManifestation.png"
@ -716,7 +754,7 @@ HDTREASUREHOARDER PNG "iconsHD\\TreasureHoarder.png"
HDTRIANGULARMECHANISM PNG "iconsHD\\TriangularMechanism.png" HDTRIANGULARMECHANISM PNG "iconsHD\\TriangularMechanism.png"
HDTUKAN PNG "iconsHD\\Tukan.png" HDTRIYANASEEDS PNG "iconsHD\\TriYanaSeeds.png"
HDUNAGIMEAT PNG "iconsHD\\UnagiMeat.png" HDUNAGIMEAT PNG "iconsHD\\UnagiMeat.png"
@ -771,17 +809,11 @@ HDWORLDQUESTS PNG "iconsHD\\WorldQuests.png"
HDYUMEMIRUWOOD PNG "iconsHD\\YumemiruWood.png" HDYUMEMIRUWOOD PNG "iconsHD\\YumemiruWood.png"
HDZAYTUNPEACH PNG "iconsHD\\ZaytunPeach.png" HDZAYTUNPEACH PNG "iconsHD\\ZaytunPeach.png"
#pragma endregion
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"
#pragma region icons
ABIDINGANGELFISH PNG "icons\\AbidingAngelfish.png" ABIDINGANGELFISH PNG "icons\\AbidingAngelfish.png"
ABYSSMAGE PNG "icons\\AbyssMage.png" ABYSSMAGE PNG "icons\\AbyssMage.png"
@ -858,6 +890,8 @@ BOOKPAGE PNG "icons\\BookPage.png"
BOOTWEASEL PNG "icons\\BootWeasel.png" BOOTWEASEL PNG "icons\\BootWeasel.png"
BOUNCYMUSHROOM PNG "icons\\BouncyMushroom.png"
BRIGHTCROWNPIGEON PNG "icons\\BrightcrownPigeon.png" BRIGHTCROWNPIGEON PNG "icons\\BrightcrownPigeon.png"
BROWNSHIRAKODAI PNG "icons\\BrownShirakodai.png" BROWNSHIRAKODAI PNG "icons\\BrownShirakodai.png"
@ -880,6 +914,10 @@ CHILLEDMEAT PNG "icons\\ChilledMeat.png"
CICIN PNG "icons\\Cicin.png" CICIN PNG "icons\\Cicin.png"
CLOUDLEISURESTEPS PNG "icons\\CloudleisureSteps.png"
CLUSTERLEAFOFCULTIVATION PNG "icons\\ClusterleafOfCultivation.png"
COMMONCHEST PNG "icons\\CommonChest.png" COMMONCHEST PNG "icons\\CommonChest.png"
COOKINGINGREDIENT PNG "icons\\CookingIngredient.png" COOKINGINGREDIENT PNG "icons\\CookingIngredient.png"
@ -934,14 +972,28 @@ DENDROBIUM PNG "icons\\Dendrobium.png"
DENDROCULUS PNG "icons\\Dendroculus.png" DENDROCULUS PNG "icons\\Dendroculus.png"
DENDROGRANUM PNG "icons\\DendroGranum.png"
DENDROPILE PNG "icons\\DendroPile.png"
DENDROPUZZLES PNG "icons\\DendroPuzzles.png"
DENDROROCK PNG "icons\\DendroRock.png"
DIVDARAY PNG "icons\\DivdaRay.png" DIVDARAY PNG "icons\\DivdaRay.png"
DOG PNG "icons\\Dog.png" DOG PNG "icons\\Dog.png"
DOMAIN PNG "icons\\Domain.png" DOMAIN PNG "icons\\Domain.png"
DREADFULWITHERING PNG "icons\\DreadfulWithering.png"
DREAMFORM PNG "icons\\DreamForm.png"
DUNLINSTOOTH PNG "icons\\DunlinsTooth.png" DUNLINSTOOTH PNG "icons\\DunlinsTooth.png"
DUSKBIRD PNG "icons\\DuskBird.png"
DVALIN PNG "icons\\Dvalin.png" DVALIN PNG "icons\\Dvalin.png"
ECHOINGCONCH PNG "icons\\EchoingConch.png" ECHOINGCONCH PNG "icons\\EchoingConch.png"
@ -1076,6 +1128,8 @@ HORSETAIL PNG "icons\\Horsetail.png"
HYDROABYSSHERALD PNG "icons\\HydroAbyssHerald.png" HYDROABYSSHERALD PNG "icons\\HydroAbyssHerald.png"
HYDROBATHYSMALVISHAP PNG "icons\\HydroBathysmalVishap.png"
HYDROHYPOSTASIS PNG "icons\\HydroHypostasis.png" HYDROHYPOSTASIS PNG "icons\\HydroHypostasis.png"
ILLUSION PNG "icons\\Illusion.png" ILLUSION PNG "icons\\Illusion.png"
@ -1156,6 +1210,8 @@ MATSUTAKE PNG "icons\\Matsutake.png"
MEDAKA PNG "icons\\Medaka.png" MEDAKA PNG "icons\\Medaka.png"
MELODICBLOOM PNG "icons\\MelodicBloom.png"
MERCHANT PNG "icons\\Merchant.png" MERCHANT PNG "icons\\Merchant.png"
MILLELITH PNG "icons\\Millelith.png" MILLELITH PNG "icons\\Millelith.png"
@ -1190,6 +1246,8 @@ NOCTILUCOUSJADE PNG "icons\\NoctilucousJade.png"
NPC PNG "icons\\Npc.png" NPC PNG "icons\\Npc.png"
NURSERIESINTHEWILDS PNG "icons\\NurseriesInTheWilds.png"
OCEANCRAB PNG "icons\\OceanCrab.png" OCEANCRAB PNG "icons\\OceanCrab.png"
OCEANID PNG "icons\\Oceanid.png" OCEANID PNG "icons\\Oceanid.png"
@ -1222,6 +1280,8 @@ PALEREDCRAB PNG "icons\\PaleRedCrab.png"
PERPETUALMECHANICALARRAY PNG "icons\\PerpetualMechanicalArray.png" PERPETUALMECHANICALARRAY PNG "icons\\PerpetualMechanicalArray.png"
PHANTASMALGATE PNG "icons\\PhantasmalGate.png"
PHASEGATE PNG "icons\\PhaseGate.png" PHASEGATE PNG "icons\\PhaseGate.png"
PHILANEMOMUSHROOM PNG "icons\\PhilanemoMushroom.png" PHILANEMOMUSHROOM PNG "icons\\PhilanemoMushroom.png"
@ -1300,6 +1360,8 @@ RUSTYKOI PNG "icons\\RustyKoi.png"
SACREDSAKURA PNG "icons\\SacredSakura.png" SACREDSAKURA PNG "icons\\SacredSakura.png"
SAGHIRAMACHINE PNG "icons\\SaghiraMachine.png"
SAKURABLOOM PNG "icons\\SakuraBloom.png" SAKURABLOOM PNG "icons\\SakuraBloom.png"
SALAMANDER PNG "icons\\Salamander.png" SALAMANDER PNG "icons\\Salamander.png"
@ -1322,8 +1384,6 @@ SEAGRASS PNG "icons\\Seagrass.png"
SEALEDCHEST PNG "icons\\SealedChest.png" SEALEDCHEST PNG "icons\\SealedChest.png"
SEALLOCATIONS PNG "icons\\SealLocationI.png"
SEALLOCATIONI PNG "icons\\SealLocationI.png" SEALLOCATIONI PNG "icons\\SealLocationI.png"
SEALLOCATIONII PNG "icons\\SealLocationII.png" SEALLOCATIONII PNG "icons\\SealLocationII.png"
@ -1332,6 +1392,8 @@ SEALLOCATIONIII PNG "icons\\SealLocationIII.png"
SEALLOCATIONIV PNG "icons\\SealLocationIV.png" SEALLOCATIONIV PNG "icons\\SealLocationIV.png"
SEALLOCATIONS PNG "icons\\SealLocationI.png"
SEALLOCATIONV PNG "icons\\SealLocationV.png" SEALLOCATIONV PNG "icons\\SealLocationV.png"
SEELIE PNG "icons\\Seelie.png" SEELIE PNG "icons\\Seelie.png"
@ -1380,12 +1442,16 @@ SQUIRREL PNG "icons\\Squirrel.png"
STARCONCH PNG "icons\\Starconch.png" STARCONCH PNG "icons\\Starconch.png"
STARLIGHTCOALESCENCE PNG "icons\\StarlightCoalescence.png"
STARSHROOM PNG "icons\\Starshroom.png" STARSHROOM PNG "icons\\Starshroom.png"
STARSILVER PNG "icons\\Starsilver.png" STARSILVER PNG "icons\\Starsilver.png"
STATUEOFTHESEVEN PNG "icons\\StatueofTheSeven.png" STATUEOFTHESEVEN PNG "icons\\StatueofTheSeven.png"
STONEPILLARSEAL PNG "icons\\StonePillarSeal.png"
STORMBARRIER PNG "icons\\StormBarrier.png" STORMBARRIER PNG "icons\\StormBarrier.png"
STORMSTONE PNG "icons\\Stormstone.png" STORMSTONE PNG "icons\\Stormstone.png"
@ -1420,6 +1486,8 @@ THECRUXTHEALCOR PNG "icons\\TheCruxTheAlcor.png"
THEGREATSNOWBOARKING PNG "icons\\TheGreatSnowboarKing.png" THEGREATSNOWBOARKING PNG "icons\\TheGreatSnowboarKing.png"
THERAVENFORUM PNG "icons\\TheRavenForum.png"
THREEBOXES PNG "icons\\ThreeBoxes.png" THREEBOXES PNG "icons\\ThreeBoxes.png"
THUNDERMANIFESTATION PNG "icons\\ThunderManifestation.png" THUNDERMANIFESTATION PNG "icons\\ThunderManifestation.png"
@ -1432,7 +1500,7 @@ TREASUREHOARDER PNG "icons\\TreasureHoarder.png"
TRIANGULARMECHANISM PNG "icons\\TriangularMechanism.png" TRIANGULARMECHANISM PNG "icons\\TriangularMechanism.png"
TUKAN PNG "icons\\Tukan.png" TRIYANASEEDS PNG "icons\\TriYanaSeeds.png"
UNAGIMEAT PNG "icons\\UnagiMeat.png" UNAGIMEAT PNG "icons\\UnagiMeat.png"
@ -1487,16 +1555,7 @@ WORLDQUESTS PNG "icons\\WorldQuests.png"
YUMEMIRUWOOD PNG "icons\\YumemiruWood.png" YUMEMIRUWOOD PNG "icons\\YumemiruWood.png"
ZAYTUNPEACH PNG "icons\\ZaytunPeach.png" ZAYTUNPEACH PNG "icons\\ZaytunPeach.png"
#pragma endregion
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

@ -57,6 +57,7 @@
#include <cheat/visuals/TextureChanger.h> #include <cheat/visuals/TextureChanger.h>
#include <cheat/visuals/FreeCamera.h> #include <cheat/visuals/FreeCamera.h>
#include <cheat/visuals/AnimationChanger.h> #include <cheat/visuals/AnimationChanger.h>
#include <cheat/player/FallControl.h>
#include "GenshinCM.h" #include "GenshinCM.h"
@ -87,6 +88,7 @@ namespace cheat
FEAT_INST(NoClip), FEAT_INST(NoClip),
FEAT_INST(RapidFire), FEAT_INST(RapidFire),
FEAT_INST(AutoRun), FEAT_INST(AutoRun),
FEAT_INST(FallControl),
FEAT_INST(AutoLoot), FEAT_INST(AutoLoot),
FEAT_INST(AutoTreeFarm), FEAT_INST(AutoTreeFarm),

View File

@ -581,27 +581,30 @@ namespace cheat::feature
ADD_FILTER_FIELD(chest, LuxuriousChest); ADD_FILTER_FIELD(chest, LuxuriousChest);
ADD_FILTER_FIELD(chest, RemarkableChest); ADD_FILTER_FIELD(chest, RemarkableChest);
// Other Chests // Other Chests
ADD_FILTER_FIELD(chest, BuriedChest); //ADD_FILTER_FIELD(chest, BuriedChest); // Shared name, commented for now
ADD_FILTER_FIELD(chest, SearchPoint); ADD_FILTER_FIELD(chest, SearchPoint);
ADD_FILTER_FIELD(featured, Anemoculus); ADD_FILTER_FIELD(featured, Anemoculus);
ADD_FILTER_FIELD(featured, CrimsonAgate); ADD_FILTER_FIELD(featured, CrimsonAgate);
ADD_FILTER_FIELD(featured, Electroculus);
ADD_FILTER_FIELD(featured, Dendroculus); ADD_FILTER_FIELD(featured, Dendroculus);
ADD_FILTER_FIELD(featured, EchoingConch); ADD_FILTER_FIELD(featured, Electroculus);
ADD_FILTER_FIELD(featured, Electrogranum); ADD_FILTER_FIELD(featured, Electrogranum);
ADD_FILTER_FIELD(featured, FishingPoint); ADD_FILTER_FIELD(featured, FishingPoint);
ADD_FILTER_FIELD(featured, Geoculus); ADD_FILTER_FIELD(featured, Geoculus);
ADD_FILTER_FIELD(featured, ImagingConch);
ADD_FILTER_FIELD(featured, ItemDrops); ADD_FILTER_FIELD(featured, ItemDrops);
ADD_FILTER_FIELD(featured, KeySigil); ADD_FILTER_FIELD(featured, KeySigil);
ADD_FILTER_FIELD(featured, Lumenspar); ADD_FILTER_FIELD(featured, Lumenspar);
ADD_FILTER_FIELD(featured, ShrineOfDepth); ADD_FILTER_FIELD(featured, ShrineOfDepth);
ADD_FILTER_FIELD(featured, TimeTrialChallenge); ADD_FILTER_FIELD(featured, TimeTrialChallenge);
ADD_FILTER_FIELD(guide, BouncyMushroom);
ADD_FILTER_FIELD(guide, CampfireTorch); ADD_FILTER_FIELD(guide, CampfireTorch);
ADD_FILTER_FIELD(guide, ClusterleafOfCultivation);
ADD_FILTER_FIELD(guide, DayNightSwitchingMechanism); ADD_FILTER_FIELD(guide, DayNightSwitchingMechanism);
ADD_FILTER_FIELD(guide, DendroGranum);
ADD_FILTER_FIELD(guide, DendroPile);
ADD_FILTER_FIELD(guide, DendroRock);
ADD_FILTER_FIELD(guide, EnkanomiyaPhaseGate); ADD_FILTER_FIELD(guide, EnkanomiyaPhaseGate);
ADD_FILTER_FIELD(guide, MysteriousCarvings); ADD_FILTER_FIELD(guide, MysteriousCarvings);
ADD_FILTER_FIELD(guide, PhaseGate); ADD_FILTER_FIELD(guide, PhaseGate);
@ -623,6 +626,7 @@ namespace cheat::feature
ADD_FILTER_FIELD(living, Crow); ADD_FILTER_FIELD(living, Crow);
ADD_FILTER_FIELD(living, CrystalCore); ADD_FILTER_FIELD(living, CrystalCore);
ADD_FILTER_FIELD(living, Dog); ADD_FILTER_FIELD(living, Dog);
ADD_FILTER_FIELD(living, DuskBird);
ADD_FILTER_FIELD(living, Eel); ADD_FILTER_FIELD(living, Eel);
ADD_FILTER_FIELD(living, Falcon); ADD_FILTER_FIELD(living, Falcon);
ADD_FILTER_FIELD(living, Finch); ADD_FILTER_FIELD(living, Finch);
@ -640,7 +644,6 @@ namespace cheat::feature
ADD_FILTER_FIELD(living, Salamander); ADD_FILTER_FIELD(living, Salamander);
ADD_FILTER_FIELD(living, Squirrel); ADD_FILTER_FIELD(living, Squirrel);
ADD_FILTER_FIELD(living, Starconch); ADD_FILTER_FIELD(living, Starconch);
ADD_FILTER_FIELD(living, Tukan);
ADD_FILTER_FIELD(living, Weasel); ADD_FILTER_FIELD(living, Weasel);
ADD_FILTER_FIELD(living, Wigeon); ADD_FILTER_FIELD(living, Wigeon);
@ -710,7 +713,6 @@ namespace cheat::feature
ADD_FILTER_FIELD(monster, Hilichurl); ADD_FILTER_FIELD(monster, Hilichurl);
ADD_FILTER_FIELD(monster, HydroAbyssHerald); ADD_FILTER_FIELD(monster, HydroAbyssHerald);
ADD_FILTER_FIELD(monster, HydroBathysmalVishap); ADD_FILTER_FIELD(monster, HydroBathysmalVishap);
ADD_FILTER_FIELD(monster, HydroHypostasisSummon);
ADD_FILTER_FIELD(monster, Kairagi); ADD_FILTER_FIELD(monster, Kairagi);
ADD_FILTER_FIELD(monster, Millelith); ADD_FILTER_FIELD(monster, Millelith);
ADD_FILTER_FIELD(monster, Mitachurl); ADD_FILTER_FIELD(monster, Mitachurl);
@ -789,7 +791,7 @@ namespace cheat::feature
ADD_FILTER_FIELD(plant, SweetFlower); ADD_FILTER_FIELD(plant, SweetFlower);
ADD_FILTER_FIELD(plant, Valberry); ADD_FILTER_FIELD(plant, Valberry);
ADD_FILTER_FIELD(plant, Violetgrass); ADD_FILTER_FIELD(plant, Violetgrass);
//ADD_FILTER_FIELD(plant, Viparyas); ADD_FILTER_FIELD(plant, Viparyas);
ADD_FILTER_FIELD(plant, WindwheelAster); ADD_FILTER_FIELD(plant, WindwheelAster);
ADD_FILTER_FIELD(plant, Wolfhook); ADD_FILTER_FIELD(plant, Wolfhook);
ADD_FILTER_FIELD(plant, ZaytunPeach); ADD_FILTER_FIELD(plant, ZaytunPeach);
@ -798,39 +800,41 @@ namespace cheat::feature
ADD_FILTER_FIELD(puzzle, BakeDanuki); ADD_FILTER_FIELD(puzzle, BakeDanuki);
ADD_FILTER_FIELD(puzzle, BloattyFloatty); ADD_FILTER_FIELD(puzzle, BloattyFloatty);
ADD_FILTER_FIELD(puzzle, CubeDevices); ADD_FILTER_FIELD(puzzle, CubeDevices);
ADD_FILTER_FIELD(puzzle, DendroPuzzles);
ADD_FILTER_FIELD(puzzle, DreadfulWithering);
ADD_FILTER_FIELD(puzzle, EightStoneTablets); ADD_FILTER_FIELD(puzzle, EightStoneTablets);
ADD_FILTER_FIELD(puzzle, ElectricConduction); ADD_FILTER_FIELD(puzzle, ElectricConduction);
ADD_FILTER_FIELD(puzzle, RelayStone);
ADD_FILTER_FIELD(puzzle, ElectroSeelie); ADD_FILTER_FIELD(puzzle, ElectroSeelie);
ADD_FILTER_FIELD(puzzle, ElementalMonument); ADD_FILTER_FIELD(puzzle, ElementalMonument);
ADD_FILTER_FIELD(puzzle, FloatingAnemoSlime); ADD_FILTER_FIELD(puzzle, FloatingAnemoSlime);
ADD_FILTER_FIELD(puzzle, Geogranum); ADD_FILTER_FIELD(puzzle, Geogranum);
ADD_FILTER_FIELD(puzzle, GeoPuzzle); ADD_FILTER_FIELD(puzzle, GeoPuzzle);
ADD_FILTER_FIELD(puzzle, LargeRockPile); ADD_FILTER_FIELD(puzzle, LargeRockPile);
ADD_FILTER_FIELD(puzzle, LightUpTilePuzzle);
ADD_FILTER_FIELD(puzzle, LightningStrikeProbe); ADD_FILTER_FIELD(puzzle, LightningStrikeProbe);
ADD_FILTER_FIELD(puzzle, LightUpTilePuzzle);
ADD_FILTER_FIELD(puzzle, LumenCage); ADD_FILTER_FIELD(puzzle, LumenCage);
ADD_FILTER_FIELD(puzzle, LuminousSeelie); ADD_FILTER_FIELD(puzzle, LuminousSeelie);
ADD_FILTER_FIELD(puzzle, MistBubble); ADD_FILTER_FIELD(puzzle, MistBubble);
ADD_FILTER_FIELD(puzzle, NurseriesInTheWilds);
ADD_FILTER_FIELD(puzzle, OozingConcretions); ADD_FILTER_FIELD(puzzle, OozingConcretions);
ADD_FILTER_FIELD(puzzle, PhantasmalGate);
ADD_FILTER_FIELD(puzzle, PirateHelm); ADD_FILTER_FIELD(puzzle, PirateHelm);
ADD_FILTER_FIELD(puzzle, PressurePlate); ADD_FILTER_FIELD(puzzle, PressurePlate);
ADD_FILTER_FIELD(puzzle, RelayStone);
ADD_FILTER_FIELD(puzzle, SaghiraMachine);
ADD_FILTER_FIELD(puzzle, SealLocations); ADD_FILTER_FIELD(puzzle, SealLocations);
ADD_FILTER_FIELD(puzzle, Seelie); ADD_FILTER_FIELD(puzzle, Seelie);
ADD_FILTER_FIELD(puzzle, SeelieLamp); ADD_FILTER_FIELD(puzzle, SeelieLamp);
ADD_FILTER_FIELD(puzzle, SmallRockPile); ADD_FILTER_FIELD(puzzle, SmallRockPile);
ADD_FILTER_FIELD(puzzle, StonePillarSeal);
ADD_FILTER_FIELD(puzzle, StormBarrier); ADD_FILTER_FIELD(puzzle, StormBarrier);
ADD_FILTER_FIELD(puzzle, SwordHilt); ADD_FILTER_FIELD(puzzle, SwordHilt);
ADD_FILTER_FIELD(puzzle, Temari); ADD_FILTER_FIELD(puzzle, Temari);
ADD_FILTER_FIELD(puzzle, TorchPuzzle); ADD_FILTER_FIELD(puzzle, TorchPuzzle);
ADD_FILTER_FIELD(puzzle, TriYanaSeeds);
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

@ -24,7 +24,7 @@ namespace cheat::game
entityFilters[filter] = { false, 0 }; entityFilters[filter] = { false, 0 };
auto& entry = entityFilters[filter]; auto& entry = entityFilters[filter];
auto timestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr); auto timestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr);
if (entry.second + m_LifeTime > timestamp) if (entry.second + m_LifeTime > timestamp)
return entry.first; return entry.first;

View File

@ -229,7 +229,7 @@ namespace cheat::game
SAFE_END(); SAFE_END();
} }
app::Vector3 Entity::forward() app::Vector3 Entity::forward() const
{ {
if (m_RawEntity == nullptr) if (m_RawEntity == nullptr)
return {}; return {};
@ -237,12 +237,12 @@ namespace cheat::game
return app::MoleMole_BaseEntity_GetForward(m_RawEntity, nullptr); return app::MoleMole_BaseEntity_GetForward(m_RawEntity, nullptr);
} }
app::Vector3 Entity::back() app::Vector3 Entity::back() const
{ {
return -forward(); return -forward();
} }
app::Vector3 Entity::right() app::Vector3 Entity::right() const
{ {
if (m_RawEntity == nullptr) if (m_RawEntity == nullptr)
return {}; return {};
@ -250,12 +250,12 @@ namespace cheat::game
return app::MoleMole_BaseEntity_GetRight(m_RawEntity, nullptr); return app::MoleMole_BaseEntity_GetRight(m_RawEntity, nullptr);
} }
app::Vector3 Entity::left() app::Vector3 Entity::left() const
{ {
return -right(); return -right();
} }
app::Vector3 Entity::up() app::Vector3 Entity::up() const
{ {
if (m_RawEntity == nullptr) if (m_RawEntity == nullptr)
return {}; return {};
@ -263,7 +263,7 @@ namespace cheat::game
return app::MoleMole_BaseEntity_GetUp(m_RawEntity, nullptr); return app::MoleMole_BaseEntity_GetUp(m_RawEntity, nullptr);
} }
app::Vector3 Entity::down() app::Vector3 Entity::down() const
{ {
return -up(); return -up();
} }

View File

@ -39,12 +39,12 @@ namespace cheat::game
app::Rigidbody* rigidbody(); app::Rigidbody* rigidbody();
app::Animator* animator(); app::Animator* animator();
app::Vector3 forward(); app::Vector3 forward() const;
app::Vector3 back(); app::Vector3 back() const;
app::Vector3 right(); app::Vector3 right() const;
app::Vector3 left(); app::Vector3 left() const;
app::Vector3 up(); app::Vector3 up() const;
app::Vector3 down(); app::Vector3 down() const;
template<class T> template<class T>
T* plugin(void* pClass) T* plugin(void* pClass)

View File

@ -75,6 +75,11 @@ namespace cheat::game::filters
SimpleFilter RuinBrazier = { EntityType__Enum_1::Gadget, "_AncientHeatSource" }; SimpleFilter RuinBrazier = { EntityType__Enum_1::Gadget, "_AncientHeatSource" };
SimpleFilter Stormstone = { EntityType__Enum_1::Gadget, "_ReginLamp" }; SimpleFilter Stormstone = { EntityType__Enum_1::Gadget, "_ReginLamp" };
SimpleFilter TriangularMechanism = { EntityType__Enum_1::Field, "_TuningFork" }; SimpleFilter TriangularMechanism = { EntityType__Enum_1::Field, "_TuningFork" };
SimpleFilter DendroGranum = { EntityType__Enum_1::Gadget, "GrassSeedCreate" };
SimpleFilter BouncyMushroom = { EntityType__Enum_1::Gadget, "JumpMushroom" };
SimpleFilter ClusterleafOfCultivation = { EntityType__Enum_1::Field, "RaioFlower" };
SimpleFilter DendroRock = { EntityType__Enum_1::Field, "GrassSealStone" };
SimpleFilter DendroPile = { EntityType__Enum_1::Field, "XuMiPlantinshitou" };
} }
namespace living namespace living
@ -101,7 +106,7 @@ namespace cheat::game::filters
SimpleFilter Falcon = { EntityType__Enum_1::Monster, "Falcon" }; SimpleFilter Falcon = { EntityType__Enum_1::Monster, "Falcon" };
SimpleFilter LucklightFly = { EntityType__Enum_1::EnvAnimal, "Boltbug_" }; SimpleFilter LucklightFly = { EntityType__Enum_1::EnvAnimal, "Boltbug_" };
SimpleFilter Salamander = { EntityType__Enum_1::EnvAnimal, "Salamander" }; SimpleFilter Salamander = { EntityType__Enum_1::EnvAnimal, "Salamander" };
SimpleFilter Tukan = { EntityType__Enum_1::Monster, "Pigeon_Beak" }; SimpleFilter DuskBird = { EntityType__Enum_1::Monster, "Pigeon_Beak" };
SimpleFilter Pigeon = { EntityType__Enum_1::Monster, "Pigeon_0" }; SimpleFilter Pigeon = { EntityType__Enum_1::Monster, "Pigeon_0" };
SimpleFilter Crow = { EntityType__Enum_1::Monster, "Crow" }; SimpleFilter Crow = { EntityType__Enum_1::Monster, "Crow" };
SimpleFilter Finch = { EntityType__Enum_1::Monster, "Tit" }; SimpleFilter Finch = { EntityType__Enum_1::Monster, "Tit" };
@ -277,7 +282,7 @@ namespace cheat::game::filters
SimpleFilter Padisarah = { EntityType__Enum_1::GatherObject, "_Pasusalan" }; SimpleFilter Padisarah = { EntityType__Enum_1::GatherObject, "_Pasusalan" };
SimpleFilter RukkhashavaMushrooms = { EntityType__Enum_1::GatherObject, "_HolyMushroom" }; SimpleFilter RukkhashavaMushrooms = { EntityType__Enum_1::GatherObject, "_HolyMushroom" };
SimpleFilter SumeruRose = { EntityType__Enum_1::GatherObject, "_XumiRose" }; SimpleFilter SumeruRose = { EntityType__Enum_1::GatherObject, "_XumiRose" };
//SimpleFilter Viparyas = { EntityType__Enum_1::GatherObject, "_" }; SimpleFilter Viparyas = { EntityType__Enum_1::GatherObject, "_DreamerPlant" };
SimpleFilter ZaytunPeach = { EntityType__Enum_1::GatherObject, "_Olea" }; SimpleFilter ZaytunPeach = { EntityType__Enum_1::GatherObject, "_Olea" };
} }
@ -320,8 +325,15 @@ namespace cheat::game::filters
WhitelistFilter DreamForm = { {EntityType__Enum_1::Field, EntityType__Enum_1::Platform }, "_AnimalSeelie" }; WhitelistFilter DreamForm = { {EntityType__Enum_1::Field, EntityType__Enum_1::Platform }, "_AnimalSeelie" };
SimpleFilter StarlightCoalescence = { EntityType__Enum_1::Field, "_PaperStar" }; SimpleFilter StarlightCoalescence = { EntityType__Enum_1::Field, "_PaperStar" };
SimpleFilter TheRavenForum = { EntityType__Enum_1::Gadget, "_NightCrowStatue" }; SimpleFilter TheRavenForum = { EntityType__Enum_1::Gadget, "_NightCrowStatue" };
WhitelistFilter TimeTrialChallengeCollection = { { EntityType__Enum_1::Field, EntityType__Enum_1::Gadget }, { "SkillObj_EmptyGadget", "_GlideChampOrb" } }; WhitelistFilter TimeTrialChallengeCollection = { { EntityType__Enum_1::Field, EntityType__Enum_1::Gadget }, { "SkillObj_EmptyGadget", "_GlideChampOrb", "_DendroGlideChampOrb" } };
SimpleFilter Bombbarrel = { EntityType__Enum_1::Gadget, "_Bombbarrel" }; SimpleFilter Bombbarrel = { EntityType__Enum_1::Gadget, "_Bombbarrel" };
SimpleFilter NurseriesInTheWilds = { EntityType__Enum_1::Field, "PlantDrawStart" };
SimpleFilter SaghiraMachine = { EntityType__Enum_1::Gadget, "FatuiMaranaWell" };
SimpleFilter StonePillarSeal = { EntityType__Enum_1::Gadget, "GrassSealRing_" };
SimpleFilter TriYanaSeeds = { EntityType__Enum_1::Gadget, "XuMiVisualizationplant" };
SimpleFilter DendroPuzzles = { EntityType__Enum_1::Gadget, "AyusProjector" };
SimpleFilter DreadfulWithering = { EntityType__Enum_1::Gadget, "DeathZonePoint" };
SimpleFilter PhantasmalGate = { EntityType__Enum_1::Field, "DreamlandDoor" };
} }
namespace combined namespace combined
@ -332,7 +344,8 @@ namespace cheat::game::filters
featured::Electroculus, featured::Electroculus,
featured::Geoculus, featured::Geoculus,
featured::Lumenspar, featured::Lumenspar,
featured::KeySigil featured::KeySigil,
featured::Dendroculus
}; };
SimpleFilter Chests = { EntityType__Enum_1::Chest }; SimpleFilter Chests = { EntityType__Enum_1::Chest };
SimpleFilter Ores = { SimpleFilter Ores = {
@ -395,7 +408,7 @@ namespace cheat::game::filters
living::Squirrel, living::Squirrel,
living::Boar, living::Boar,
living::Weasel, living::Weasel,
living::Tukan living::DuskBird
}; };
SimpleFilter AnimalPickUp = { SimpleFilter AnimalPickUp = {
living::CrystalCore, living::CrystalCore,

View File

@ -76,6 +76,11 @@ namespace cheat::game::filters
extern SimpleFilter RuinBrazier; extern SimpleFilter RuinBrazier;
extern SimpleFilter Stormstone; extern SimpleFilter Stormstone;
extern SimpleFilter TriangularMechanism; extern SimpleFilter TriangularMechanism;
extern SimpleFilter DendroGranum;
extern SimpleFilter BouncyMushroom;
extern SimpleFilter ClusterleafOfCultivation;
extern SimpleFilter DendroRock;
extern SimpleFilter DendroPile;
} }
namespace living namespace living
@ -102,7 +107,7 @@ namespace cheat::game::filters
extern SimpleFilter LucklightFly; extern SimpleFilter LucklightFly;
extern SimpleFilter Npc; extern SimpleFilter Npc;
extern SimpleFilter Salamander; extern SimpleFilter Salamander;
extern SimpleFilter Tukan; extern SimpleFilter DuskBird;
extern SimpleFilter Pigeon; extern SimpleFilter Pigeon;
extern SimpleFilter Crow; extern SimpleFilter Crow;
extern SimpleFilter Finch; extern SimpleFilter Finch;
@ -277,7 +282,7 @@ namespace cheat::game::filters
extern SimpleFilter Padisarah; extern SimpleFilter Padisarah;
extern SimpleFilter RukkhashavaMushrooms; extern SimpleFilter RukkhashavaMushrooms;
extern SimpleFilter SumeruRose; extern SimpleFilter SumeruRose;
//extern SimpleFilter Viparyas; extern SimpleFilter Viparyas;
extern SimpleFilter ZaytunPeach; extern SimpleFilter ZaytunPeach;
} }
@ -322,6 +327,13 @@ namespace cheat::game::filters
extern SimpleFilter TheRavenForum; extern SimpleFilter TheRavenForum;
extern WhitelistFilter TimeTrialChallengeCollection; extern WhitelistFilter TimeTrialChallengeCollection;
extern SimpleFilter Bombbarrel; extern SimpleFilter Bombbarrel;
extern SimpleFilter NurseriesInTheWilds;
extern SimpleFilter SaghiraMachine;
extern SimpleFilter StonePillarSeal;
extern SimpleFilter TriYanaSeeds;
extern SimpleFilter DendroPuzzles;
extern SimpleFilter DreadfulWithering;
extern SimpleFilter PhantasmalGate;
} }
namespace combined namespace combined

View File

@ -1787,9 +1787,11 @@ namespace cheat::feature
INIT_FILTER(chest, RemarkableChest); INIT_FILTER(chest, RemarkableChest);
INIT_FILTER(featured, Anemoculus); INIT_FILTER(featured, Anemoculus);
INIT_FILTER(featured, CrimsonAgate); INIT_FILTER(featured, CrimsonAgate);
INIT_FILTER(featured, Dendroculus);
INIT_FILTER(featured, Electroculus); INIT_FILTER(featured, Electroculus);
//INIT_FILTER(featured, Electrogranum); //INIT_FILTER(featured, Electrogranum);
INIT_FILTER(featured, Geoculus); INIT_FILTER(featured, Geoculus);
INIT_FILTER(featured, KeySigil);
INIT_FILTER(featured, Lumenspar); INIT_FILTER(featured, Lumenspar);
//INIT_FILTER(featured, KeySigil); //INIT_FILTER(featured, KeySigil);
//INIT_FILTER(featured, ShrineOfDepth); //INIT_FILTER(featured, ShrineOfDepth);
@ -1925,8 +1927,10 @@ namespace cheat::feature
INIT_DETECT_ITEM(Anemoculus); INIT_DETECT_ITEM(Anemoculus);
INIT_DETECT_ITEM(CrimsonAgate); INIT_DETECT_ITEM(CrimsonAgate);
INIT_DETECT_ITEM(Dendroculus);
INIT_DETECT_ITEM(Electroculus); INIT_DETECT_ITEM(Electroculus);
INIT_DETECT_ITEM(Geoculus); INIT_DETECT_ITEM(Geoculus);
INIT_DETECT_ITEM(KeySigil);
INIT_DETECT_ITEM(Lumenspar); INIT_DETECT_ITEM(Lumenspar);
#undef INIT_DETECT_ITEM #undef INIT_DETECT_ITEM

View File

@ -0,0 +1,121 @@
#include "pch-il2cpp.h"
#include "FallControl.h"
#include <cheat/events.h>
#include <cheat/game/EntityManager.h>
namespace cheat::feature
{
bool FallControl::isFalling = false;
FallControl::FallControl() : Feature(),
NF(f_Enabled, "Fall Control", "FallControl", false),
NF(f_Speed, "Speed", "FallControl", 10.0f)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(FallControl::OnGameUpdate);
events::MoveSyncEvent += MY_METHOD_HANDLER(FallControl::OnMoveSync);
}
const FeatureGUIInfo& cheat::feature::FallControl::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "Fall-Control", "Player", true };
return info;
}
void cheat::feature::FallControl::DrawMain()
{
ConfigWidget("Enabled", f_Enabled, "Enables fall control");
ConfigWidget("Speed", f_Speed, 1.0f, 0.0f, 100.0f, "Movement speed when using fall control");
}
bool cheat::feature::FallControl::NeedStatusDraw() const
{
return f_Enabled;
}
void cheat::feature::FallControl::DrawStatus()
{
ImGui::Text("Fall Control [%.1f]", f_Speed.value());
}
FallControl& cheat::feature::FallControl::GetInstance()
{
static FallControl instance;
return instance;
}
// Fall control update function
// Detects and moves avatar when movement keys are pressed.
void FallControl::OnGameUpdate()
{
if (!f_Enabled || !isFalling)
return;
auto& manager = game::EntityManager::instance();
const auto avatarEntity = manager.avatar();
auto rigidBody = avatarEntity->rigidbody();
if (rigidBody == nullptr)
return;
const auto cameraEntity = game::Entity(reinterpret_cast<app::BaseEntity*>(manager.mainCamera()));
app::Vector3 direction = {};
if (Hotkey(ImGuiKey_W).IsPressed())
direction = direction + cameraEntity.forward();;
if (Hotkey(ImGuiKey_S).IsPressed())
direction = direction + cameraEntity.back();;
if (Hotkey(ImGuiKey_D).IsPressed())
direction = direction + cameraEntity.right();;
if (Hotkey(ImGuiKey_A).IsPressed())
direction = direction + cameraEntity.left();;
if (IsVectorZero(direction))
return;
// Do not change falling velocity when camera relative
direction.y = 0;
// Alternative, using set_velocity. Does not work while falling?
// const float speed = f_Speed.value();
// const auto currentVelocity = app::Rigidbody_get_velocity(rigidBody, nullptr);
// const auto desiredvelocity = currentVelocity + direction * speed;
// LOG_DEBUG("Current velocity: [%.1f,%.1f,%.1f]", currentVelocity.x, currentVelocity.y, currentVelocity.z);
// LOG_DEBUG("Desired velocity: [%.1f,%.1f,%.1f]\n", desiredvelocity.x, desiredvelocity.y, desiredvelocity.z);
// app::Rigidbody_set_collisionDetectionMode(rigidBody, app::CollisionDetectionMode__Enum::Continuous, nullptr);
// app::Rigidbody_set_velocity(rigidBody, desiredvelocity, nullptr);
const app::Vector3 prevPos = avatarEntity->relativePosition();
const auto currentVelocity = app::Rigidbody_get_velocity(rigidBody, nullptr);
const float speed = f_Speed.value();
const float deltaTime = app::Time_get_deltaTime(nullptr);
const app::Vector3 newPos = prevPos + (currentVelocity + direction * speed) * deltaTime;
avatarEntity->setRelativePosition(newPos);
}
// Detects when player is falling and enables the FallControl cheat
void FallControl::OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo)
{
if (!f_Enabled) {
// Edgecase for when you turn off cheat while falling
isFalling = false;
return;
}
const auto motionState = syncInfo->fields.motionState;
switch (motionState)
{
// These states tell us we are falling
case app::MotionState__Enum::MotionDrop:
isFalling = true;
return;
// State that doesn't tell us anything
case app::MotionState__Enum::MotionStandby:
case app::MotionState__Enum::MotionNotify:
return;
// We are not falling
default:
isFalling = false;
break;
}
}
}

View File

@ -0,0 +1,32 @@
#pragma once
#include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h>
#include <il2cpp-appdata.h>
namespace cheat::feature
{
class FallControl : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<float> f_Speed;
static FallControl& GetInstance();
// Inherited via Feature
virtual const FeatureGUIInfo& GetGUIInfo() const override;
virtual void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
void OnGameUpdate();
void OnMoveSync(uint32_t entityId, app::MotionInfo* syncInfo);
private:
FallControl();
static bool isFalling;
};
}

View File

@ -45,8 +45,7 @@ namespace cheat::feature
ConfigWidget("Multi-hit Mode", f_MultiHit, "Enables multi-hit.\n" \ ConfigWidget("Multi-hit Mode", f_MultiHit, "Enables multi-hit.\n" \
"Multiplies your attack count.\n" \ "Multiplies your attack count.\n" \
"This is not well tested, and can be detected by anticheat.\n" \ "This is not well tested, and can be detected by anticheat.\n" \
"Not recommended to be used with main accounts or used with high values.\n" \ "Not recommended to be used with main accounts or used with high values.\n");
"Known issues with certain multi-hit attacks, e.g. Xiao E, Ayaka CA, etc.");
ImGui::Indent(); ImGui::Indent();
@ -205,7 +204,7 @@ namespace cheat::feature
// Taiga#5555: IDs can be found in ConfigAbility_Avatar_*.json or GadgetExcelConfigData.json // Taiga#5555: IDs can be found in ConfigAbility_Avatar_*.json or GadgetExcelConfigData.json
bool bulletID = attackerID >= 40000160 && attackerID <= 41069999; bool bulletID = attackerID >= 40000160 && attackerID <= 41069999;
return avatarID == attackerID || bulletID; return avatarID == attackerID || bulletID || attacker.type() == app::EntityType__Enum_1::Bullet;
} }
bool IsValidByFilter(game::Entity* entity) bool IsValidByFilter(game::Entity* entity)
@ -269,7 +268,6 @@ namespace cheat::feature
for (int i = 0; i < attackCount; i++) for (int i = 0; i < attackCount; i++)
app::MoleMole_LCBaseCombat_FireBeingHitEvent(__this, entity->runtimeID(), attackResult, method); app::MoleMole_LCBaseCombat_FireBeingHitEvent(__this, entity->runtimeID(), attackResult, method);
} }
else app::MoleMole_LCBaseCombat_FireBeingHitEvent(__this, entity->runtimeID(), attackResult, method);
} }
CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method); CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method);

View File

@ -20,12 +20,16 @@ namespace cheat::feature
NF(f_Enabled, "Custom Teleport", "CustomTeleports", false), NF(f_Enabled, "Custom Teleport", "CustomTeleports", false),
NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)), NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)),
NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)), NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)),
NF(f_Interpolate, "Custom Teleport", "CustomTeleports", false), NF(f_Auto, "Auto Teleport", "CustomTeleports", false),
NF(f_DelayTime, "Delay time (in s)", "CustomTeleports", 20),
NF(f_Interpolate, "Interpolate Teleport", "CustomTeleports", false),
NF(f_Speed, "Interpolation Speed", "CustomTeleports", 10.0f), NF(f_Speed, "Interpolation Speed", "CustomTeleports", 10.0f),
dir(util::GetCurrentPath() / "teleports") dir(util::GetCurrentPath() /= "teleports"),
nextTime(0)
{ {
f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext); f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext);
f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious); f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious);
events::GameUpdateEvent += MY_METHOD_HANDLER(CustomTeleports::OnGameUpdate);
} }
const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const
@ -79,7 +83,7 @@ namespace cheat::feature
} }
} }
Teleport CustomTeleports::SerializeFromJson(std::string json, bool fromfile) std::optional<Teleport> CustomTeleports::SerializeFromJson(std::string json, bool fromfile)
{ {
nlohmann::json j; nlohmann::json j;
try { j = nlohmann::json::parse(json); } try { j = nlohmann::json::parse(json); }
@ -87,8 +91,11 @@ namespace cheat::feature
{ {
LOG_ERROR("Invalid JSON Format"); LOG_ERROR("Invalid JSON Format");
LOG_ERROR("Failed to parse JSON: %s", e.what()); LOG_ERROR("Failed to parse JSON: %s", e.what());
return std::nullopt;
} }
std::string teleportName; std::string teleportName;
teleportName = j["name"]; teleportName = j["name"];
if (j["name"].is_null() && fromfile) if (j["name"].is_null() && fromfile)
{ {
@ -99,6 +106,7 @@ namespace cheat::feature
if (j["description"].is_null()) description = ""; if (j["description"].is_null()) description = "";
else description = j["description"]; else description = j["description"];
return Teleport_(teleportName, { j["position"][0], j["position"][1], j["position"][2] }, description); return Teleport_(teleportName, { j["position"][0], j["position"][1], j["position"][2] }, description);
} }
void CustomTeleports::ReloadTeleports() void CustomTeleports::ReloadTeleports()
@ -113,7 +121,8 @@ namespace cheat::feature
std::ifstream ifs(file.path()); std::ifstream ifs(file.path());
std::string json; std::string json;
std::getline(ifs, json); std::getline(ifs, json);
SerializeTeleport(SerializeFromJson(json, true)); auto t = SerializeFromJson(json, true);
if(t.has_value()) SerializeTeleport(t.value());
} }
} }
} }
@ -188,10 +197,35 @@ namespace cheat::feature
void CustomTeleports::OnPrevious() void CustomTeleports::OnPrevious()
{ {
if (f_Auto) return;
OnTeleportKeyPressed(false); OnTeleportKeyPressed(false);
} }
void CustomTeleports::OnNext() void CustomTeleports::OnNext()
{ {
if (f_Auto) return;
OnTeleportKeyPressed(true);
}
void CustomTeleports::OnGameUpdate()
{
if (!f_Enabled || !f_Auto)
return;
auto currentTime = util::GetCurrentTimeMillisec();
if (currentTime < nextTime)
return;
auto loadingManager = GET_SINGLETON(MoleMole_LoadingManager);
if (loadingManager == nullptr || !app::MoleMole_LoadingManager_IsLoaded(loadingManager, nullptr))
return;
auto camera = app::Camera_get_main(nullptr);
if (camera == nullptr) return;
if (!app::Behaviour_get_isActiveAndEnabled(reinterpret_cast<app::Behaviour*>(camera), nullptr))
return;
nextTime = currentTime + (int64_t)f_DelayTime * 1000;
OnTeleportKeyPressed(true); OnTeleportKeyPressed(true);
} }
@ -260,26 +294,35 @@ namespace cheat::feature
ImGui::SameLine(); ImGui::SameLine();
if (ImGui::Button("Load from JSON")) if (ImGui::Button("Load from JSON"))
{ {
if (!JSONBuffer_.empty()) {
auto t = SerializeFromJson(JSONBuffer_, false);
if (t.has_value()) {
selectedIndex = -1; selectedIndex = -1;
UpdateIndexName(); UpdateIndexName();
SerializeTeleport(SerializeFromJson(JSONBuffer_, false)); SerializeTeleport(t.value());
JSONBuffer_ = ""; }
JSONBuffer_.clear();
}
} }
ImGui::InputTextMultiline("JSON input", &JSONBuffer_, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput); ImGui::InputTextMultiline("JSON input", &JSONBuffer_, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput);
ConfigWidget("Teleport Next", f_Next, true, "Press to teleport next of selected"); ConfigWidget("Teleport Next", f_Next, true, "Press to teleport next of selected.");
ConfigWidget("Teleport Previous", f_Previous, true, "Press to teleport previous of selected"); ConfigWidget("Teleport Previous", f_Previous, true, "Press to teleport previous of selected.");
ConfigWidget("Enable", f_Enabled, ConfigWidget("Enable", f_Enabled,
"Enable teleport-through-list functionality\n" "Enable teleport-through-list functionality.\n"
"Usage:\n" "Usage:\n"
"1. Put Checkmark to the teleports you want to teleport using hotkey\n" "1. Put Checkmark to the teleports you want to teleport using hotkey\n"
"2. Single click the teleport (with checkmark) to select where you want to start\n" "2. Single click the teleport (with checkmark) to select where you want to start\n"
"3. You can now press Next or Previous Hotkey to Teleport through the Checklist\n" "3. You can now press Next or Previous Hotkey to Teleport through the Checklist\n"
"Initially it will teleport the player to the selection made\n" "Initially it will teleport the player to the selection made\n"
"Note: Double click or click the arrow to open teleport details"); "Note: Double click or click the arrow to open teleport details");
ConfigWidget("Enable Interpolation", f_Interpolate, "Enable interpolation between teleports when using keybinds"); ConfigWidget("Enable Interpolation", f_Interpolate, "Enable interpolation between teleports when using keybinds."); ImGui::SameLine(); ImGui::SetNextItemWidth(300.0f);
ConfigWidget("Interpolation Speed", f_Speed, 0.1f, 0.1f, 99.0f, ConfigWidget("Interpolation Speed", f_Speed, 0.1f, 0.1f, 99.0f,
"Interpolation speed.\n recommended setting below or equal to 0.1."); "Interpolation speed.\n recommended setting below or equal to 0.1.");
ConfigWidget("Auto Teleport", f_Auto, "Enable automatic forward teleporation between teleports"); ImGui::SameLine(); ImGui::SetNextItemWidth(300.0f);
ConfigWidget("Delay Time (s)", f_DelayTime, 1, 0, 60, "Delay (in s) between teleport.\n"
"Note: This is not fully tested detection-wise.\nNot recommended with low values.");
if (ImGui::Button("Delete Checked")) if (ImGui::Button("Delete Checked"))
{ {
@ -396,10 +439,13 @@ namespace cheat::feature
if (ImGui::Button(("Select##Button" + stringIndex).c_str())) if (ImGui::Button(("Select##Button" + stringIndex).c_str()))
{ {
auto isChecked = checkedIndices.find(index) != checkedIndices.end();
if (isChecked) {
selectedIndex = index; selectedIndex = index;
selectedByClick = true; selectedByClick = true;
UpdateIndexName(); UpdateIndexName();
} }
}
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::PushStyleColor(ImGuiCol_Text, selected ? IM_COL32(40, 90, 175, 255) : ImGui::ColorConvertFloat4ToU32(ImGui::GetStyle().Colors[ImGuiCol_Text])); ImGui::PushStyleColor(ImGuiCol_Text, selected ? IM_COL32(40, 90, 175, 255) : ImGui::ColorConvertFloat4ToU32(ImGui::GetStyle().Colors[ImGuiCol_Text]));
@ -432,7 +478,7 @@ namespace cheat::feature
void CustomTeleports::DrawStatus() void CustomTeleports::DrawStatus()
{ {
ImGui::Text("Custom Teleport\n[%s]", selectedIndexName); ImGui::Text("Custom Teleport\n[%s|%s]", f_Auto ? "Auto" : "Manual", selectedIndexName);
} }
CustomTeleports &CustomTeleports::GetInstance() CustomTeleports &CustomTeleports::GetInstance()

View File

@ -4,6 +4,7 @@
#include <cheat-base/cheat/Feature.h> #include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/Config.h> #include <cheat-base/config/Config.h>
#include <cheat-base/thread-safe.h>
#include <set> #include <set>
namespace cheat::feature namespace cheat::feature
@ -27,9 +28,11 @@ 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_Interpolate; config::Field<config::Toggle<Hotkey>> f_Interpolate;
config::Field<config::Toggle<Hotkey>> f_Auto;
config::Field<float> f_Speed; config::Field<float> f_Speed;
config::Field<Hotkey> f_Next; config::Field<Hotkey> f_Next;
config::Field<Hotkey> f_Previous; config::Field<Hotkey> f_Previous;
config::Field<int> f_DelayTime;
static CustomTeleports& GetInstance(); static CustomTeleports& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override; const FeatureGUIInfo& GetGUIInfo() const override;
@ -38,12 +41,13 @@ namespace cheat::feature
Teleport Teleport_(std::string name, app::Vector3 position, std::string description); Teleport Teleport_(std::string name, app::Vector3 position, std::string description);
void SerializeTeleport(Teleport t); void SerializeTeleport(Teleport t);
void ReloadTeleports(); void ReloadTeleports();
Teleport SerializeFromJson(std::string json, bool fromfile); std::optional<Teleport> SerializeFromJson(std::string json, bool fromfile);
void DrawMain() override; void DrawMain() override;
virtual bool NeedStatusDraw() const override; virtual bool NeedStatusDraw() const override;
void DrawStatus() override; void DrawStatus() override;
void OnGameUpdate();
std::vector<Teleport> Teleports; std::vector<Teleport> Teleports;
std::filesystem::path dir; std::filesystem::path dir;
@ -55,6 +59,7 @@ namespace cheat::feature
int selectedIndex = -1; int selectedIndex = -1;
std::string selectedName; std::string selectedName;
std::string selectedIndexName; std::string selectedIndexName;
SafeValue<int64_t> nextTime;
CustomTeleports(); CustomTeleports();
void TeleportTo(app::Vector3 position, bool interpolate); void TeleportTo(app::Vector3 position, bool interpolate);
void OnTeleportKeyPressed(bool next); void OnTeleportKeyPressed(bool next);

View File

@ -56,7 +56,7 @@ namespace cheat::feature
void AutoChallenge::OnGameUpdate() void AutoChallenge::OnGameUpdate()
{ {
static uint64_t lastTime = 0; static uint64_t lastTime = 0;
auto timestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr); auto timestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr);
if (!f_Enabled || lastTime + f_Delay > timestamp) if (!f_Enabled || lastTime + f_Delay > timestamp)
return; return;

View File

@ -170,7 +170,7 @@ namespace cheat::feature
{ {
__this->fields._pageMono->fields._qteTime = 0; __this->fields._pageMono->fields._qteTime = 0;
__this->fields._pageMono->fields._autoQteTime = 0; __this->fields._pageMono->fields._autoQteTime = 0;
app::CookingQtePageContext_CloseItemGotPanel(__this, nullptr); // Auto Close Panel app::MoleMole_CookingQtePageContext_CloseItemGotPanel(__this, nullptr); // Auto Close Panel
} }
return CALL_ORIGIN(CookingQtePageContext_UpdateProficiency, __this, method); return CALL_ORIGIN(CookingQtePageContext_UpdateProficiency, __this, method);
} }

View File

@ -91,7 +91,7 @@ namespace cheat::feature
} }
std::lock_guard<std::mutex> catchLock(autoFish.m_BattleFinishTimestampMutex); std::lock_guard<std::mutex> catchLock(autoFish.m_BattleFinishTimestampMutex);
autoFish.m_BattleFinishTimestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr) + autoFish.f_DelayBeforeCatch; autoFish.m_BattleFinishTimestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr) + autoFish.f_DelayBeforeCatch;
} }
void AutoFish::FishingModule_OnFishBattleEndRsp_Hook(void* __this, app::FishBattleEndRsp* rsp, MethodInfo* method) void AutoFish::FishingModule_OnFishBattleEndRsp_Hook(void* __this, app::FishBattleEndRsp* rsp, MethodInfo* method)
@ -115,7 +115,7 @@ namespace cheat::feature
{ {
LOG_WARNING("Failed to catch fish, retrying in %u ms", autoFish.f_DelayBeforeCatch); LOG_WARNING("Failed to catch fish, retrying in %u ms", autoFish.f_DelayBeforeCatch);
std::lock_guard<std::mutex> catchLock(autoFish.m_BattleFinishTimestampMutex); std::lock_guard<std::mutex> catchLock(autoFish.m_BattleFinishTimestampMutex);
autoFish.m_BattleFinishTimestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr) + autoFish.f_DelayBeforeCatch; autoFish.m_BattleFinishTimestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr) + autoFish.f_DelayBeforeCatch;
return; return;
} }
@ -123,7 +123,7 @@ namespace cheat::feature
return; return;
std::lock_guard<std::mutex> _lock(autoFish.m_RecastTimestampMutex); std::lock_guard<std::mutex> _lock(autoFish.m_RecastTimestampMutex);
autoFish.m_RecastTimestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr) + autoFish.f_DelayBeforeRecast; autoFish.m_RecastTimestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr) + autoFish.f_DelayBeforeRecast;
} }
void AutoFish::FishingModule_OnExitFishingRsp_Hook(void* __this, void* rsp, MethodInfo* method) void AutoFish::FishingModule_OnExitFishingRsp_Hook(void* __this, void* rsp, MethodInfo* method)
@ -154,7 +154,7 @@ namespace cheat::feature
void AutoFish::OnGameUpdate() void AutoFish::OnGameUpdate()
{ {
auto timestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr); auto timestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr);
std::lock_guard<std::mutex> _lock(m_BattleFinishTimestampMutex); std::lock_guard<std::mutex> _lock(m_BattleFinishTimestampMutex);
std::lock_guard<std::mutex> _lock2(m_RecastTimestampMutex); std::lock_guard<std::mutex> _lock2(m_RecastTimestampMutex);

View File

@ -13,6 +13,8 @@ namespace cheat::feature
static bool LCSelectPickup_IsInPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method); static bool LCSelectPickup_IsInPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method);
static bool LCSelectPickup_IsOutPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method); static bool LCSelectPickup_IsOutPosition_Hook(void* __this, app::BaseEntity* entity, MethodInfo* method);
float g_default_range = 3.0f;
AutoLoot::AutoLoot() : Feature(), AutoLoot::AutoLoot() : Feature(),
NF(f_AutoPickup, "Auto-pickup drops", "AutoLoot", false), NF(f_AutoPickup, "Auto-pickup drops", "AutoLoot", false),
NF(f_AutoTreasure, "Auto-open treasures", "AutoLoot", false), NF(f_AutoTreasure, "Auto-open treasures", "AutoLoot", false),
@ -26,7 +28,9 @@ namespace cheat::feature
NF(f_Investigate, "Search points", "AutoLoot", false), NF(f_Investigate, "Search points", "AutoLoot", false),
NF(f_QuestInteract, "Quest interacts", "AutoLoot", false), NF(f_QuestInteract, "Quest interacts", "AutoLoot", false),
NF(f_Others, "Other treasures", "AutoLoot", false), NF(f_Others, "Other treasures", "AutoLoot", false),
NF(f_DelayTime, "Delay time (in ms)", "AutoLoot", 150), NF(f_DelayTime, "Delay time (in ms)", "AutoLoot", 200),
NF(f_UseDelayTimeFluctuation, "Use delay fluctuation", "AutoLoot", false),
NF(f_DelayTimeFluctuation, "Delay fluctuation +(in ms)", "AutoLoot", 200),
NF(f_CustomRange, "Pickup Range", "AutoLoot", 5.0f), NF(f_CustomRange, "Pickup Range", "AutoLoot", 5.0f),
toBeLootedItems(), nextLootTime(0) toBeLootedItems(), nextLootTime(0)
{ {
@ -82,6 +86,17 @@ namespace cheat::feature
} }
ImGui::EndGroupPanel(); ImGui::EndGroupPanel();
ImGui::BeginGroupPanel("Looting delay fluctuation");
{
ConfigWidget("Enabled", f_UseDelayTimeFluctuation, "Enable delay fluctuation.\n" \
"Simulates human clicking delay as manual clickling never consistent.");
ImGui::SameLine();
ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!");
ImGui::SetNextItemWidth(100.0f);
ConfigWidget("Delay range +(ms)", f_DelayTimeFluctuation, 1, 0, 1000, "Delay randomly fluctuates between 'Delay Time'+'Delay Time+range'");
}
ImGui::EndGroupPanel();
ImGui::TableSetColumnIndex(1); ImGui::TableSetColumnIndex(1);
ImGui::BeginGroupPanel("Auto-Treasure"); ImGui::BeginGroupPanel("Auto-Treasure");
{ {
@ -120,12 +135,13 @@ namespace cheat::feature
void AutoLoot::DrawStatus() void AutoLoot::DrawStatus()
{ {
ImGui::Text("Auto Loot\n[%s%s%s%s%s]", ImGui::Text("Auto Loot\n[%s%s%s%s%s%s]",
f_AutoPickup ? "AP" : "", f_AutoPickup ? "AP" : "",
f_AutoTreasure ? fmt::format("{}AT", f_AutoPickup ? "|" : "").c_str() : "", f_AutoTreasure ? fmt::format("{}AT", f_AutoPickup ? "|" : "").c_str() : "",
f_UseCustomRange ? fmt::format("{}CR{:.1f}m", f_AutoPickup || f_AutoTreasure ? "|" : "", f_CustomRange.value()).c_str() : "", f_UseCustomRange ? fmt::format("{}CR{:.1f}m", f_AutoPickup || f_AutoTreasure ? "|" : "", f_CustomRange.value()).c_str() : "",
f_PickupFilter ? fmt::format("{}PF", f_AutoPickup || f_AutoTreasure || f_UseCustomRange ? "|" : "").c_str() : "", f_PickupFilter ? fmt::format("{}PF", f_AutoPickup || f_AutoTreasure || f_UseCustomRange ? "|" : "").c_str() : "",
f_AutoPickup || f_AutoTreasure ? fmt::format("|{}ms", f_DelayTime.value()).c_str() : "" f_AutoPickup || f_AutoTreasure ? fmt::format("|{}ms", f_DelayTime.value()).c_str() : "",
f_UseDelayTimeFluctuation ? fmt::format("|FL+{}ms", f_DelayTimeFluctuation.value()).c_str() : ""
); );
} }
@ -171,7 +187,7 @@ namespace cheat::feature
auto& manager = game::EntityManager::instance(); auto& manager = game::EntityManager::instance();
for (auto& entity : manager.entities(game::filters::combined::Chests)) for (auto& entity : manager.entities(game::filters::combined::Chests))
{ {
float range = f_UseCustomRange ? f_CustomRange : 3.5f; float range = f_UseCustomRange ? f_CustomRange : g_default_range;
if (manager.avatar()->distance(entity) >= range) if (manager.avatar()->distance(entity) >= range)
continue; continue;
@ -220,13 +236,20 @@ namespace cheat::feature
return; return;
app::MoleMole_ItemModule_PickItem(itemModule, *entityId, nullptr); app::MoleMole_ItemModule_PickItem(itemModule, *entityId, nullptr);
nextLootTime = currentTime + (int)f_DelayTime;
int fluctuation = 0;
if (f_UseDelayTimeFluctuation)
{
fluctuation = std::rand() % (f_DelayTimeFluctuation + 1);
}
nextLootTime = currentTime + (int)f_DelayTime + fluctuation;
} }
void AutoLoot::OnCheckIsInPosition(bool& result, app::BaseEntity* entity) void AutoLoot::OnCheckIsInPosition(bool& result, app::BaseEntity* entity)
{ {
if (f_AutoPickup || f_UseCustomRange) { if (f_AutoPickup || f_UseCustomRange) {
float pickupRange = f_UseCustomRange ? f_CustomRange : 3.5f; float pickupRange = f_UseCustomRange ? f_CustomRange : g_default_range;
if (f_PickupFilter) if (f_PickupFilter)
{ {
if (!f_PickupFilter_Animals && entity->fields.entityType == app::EntityType__Enum_1::EnvAnimal || if (!f_PickupFilter_Animals && entity->fields.entityType == app::EntityType__Enum_1::EnvAnimal ||

View File

@ -12,9 +12,11 @@ namespace cheat::feature
config::Field<config::Toggle<Hotkey>> f_AutoPickup; config::Field<config::Toggle<Hotkey>> f_AutoPickup;
config::Field<config::Toggle<Hotkey>> f_AutoTreasure; config::Field<config::Toggle<Hotkey>> f_AutoTreasure;
config::Field<config::Toggle<Hotkey>> f_UseCustomRange; config::Field<config::Toggle<Hotkey>> f_UseCustomRange;
config::Field<config::Toggle<Hotkey>> f_UseDelayTimeFluctuation;
config::Field<config::Toggle<Hotkey>> f_PickupFilter; config::Field<config::Toggle<Hotkey>> f_PickupFilter;
config::Field<int> f_DelayTime; config::Field<int> f_DelayTime;
config::Field<int> f_DelayTimeFluctuation;
config::Field<float> f_CustomRange; config::Field<float> f_CustomRange;
config::Field<bool> f_Chest; config::Field<bool> f_Chest;

View File

@ -162,7 +162,7 @@ namespace cheat::feature
static std::unordered_set<app::SceneTreeObject*> s_AttackQueueSet; static std::unordered_set<app::SceneTreeObject*> s_AttackQueueSet;
static uint64_t s_LastAttackTimestamp = 0; static uint64_t s_LastAttackTimestamp = 0;
uint64_t timestamp = app::MoleMole_TimeUtil_get_NowTimeStamp(nullptr); uint64_t timestamp = app::MoleMole_TimeUtil_get_LocalNowMsTimeStamp(nullptr);
if (!m_Enabled || s_LastAttackTimestamp + m_AttackDelay > timestamp) if (!m_Enabled || s_LastAttackTimestamp + m_AttackDelay > timestamp)
return; return;

View File

@ -16,11 +16,14 @@ namespace cheat::feature
KillAura::KillAura() : Feature(), KillAura::KillAura() : Feature(),
NF(f_Enabled, "Kill aura", "KillAura", false), NF(f_Enabled, "Kill aura", "KillAura", false),
NF(f_DamageMode, "Damage mode", "Damage mode", false), NF(f_DamageMode, "Damage mode", "Damage mode", false),
NF(f_PercentDamageMode, "Percent damage mode", "Damage mode", false),
NF(f_InstantDeathMode, "Instant death", "Instant death", false), NF(f_InstantDeathMode, "Instant death", "Instant death", false),
NF(f_OnlyTargeted, "Only targeted", "KillAura", true), NF(f_OnlyTargeted, "Only targeted", "KillAura", true),
NF(f_Range, "Range", "KillAura", 15.0f), NF(f_Range, "Range", "KillAura", 15.0f),
NF(f_AttackDelay, "Attack delay time (in ms)", "KillAura", 100), NF(f_AttackDelay, "Attack delay time (in ms)", "KillAura", 100),
NF(f_RepeatDelay, "Repeat delay time (in ms)", "KillAura", 1000) NF(f_RepeatDelay, "Repeat delay time (in ms)", "KillAura", 1000),
NF(f_DamageValue, "Crash damage value", "Damage mode", 233.0f),
NF(f_PercentDamageTimes, "Times to kill", "Damage mode", 3)
{ {
events::GameUpdateEvent += MY_METHOD_HANDLER(KillAura::OnGameUpdate); events::GameUpdateEvent += MY_METHOD_HANDLER(KillAura::OnGameUpdate);
HookManager::install(app::MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook); HookManager::install(app::MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook);
@ -39,6 +42,20 @@ namespace cheat::feature
ImGui::TextColored(ImColor(255, 165, 0, 255), "Choose any or both modes below."); ImGui::TextColored(ImColor(255, 165, 0, 255), "Choose any or both modes below.");
ConfigWidget("Crash Damage Mode", f_DamageMode, "Kill aura causes crash damage for monster around you."); ConfigWidget("Crash Damage Mode", f_DamageMode, "Kill aura causes crash damage for monster around you.");
ImGui::Indent();
ConfigWidget("Percent mode", f_PercentDamageMode, "Crash damage with percent value.");
if (f_DamageMode)
{
if (!f_PercentDamageMode)
{
ConfigWidget("Damage Value", f_DamageValue, 1, 0, 10000000, "Crash damage value");
}
else
{
ConfigWidget("Kill times", f_PercentDamageTimes, 1, 1, 100, "How many times to kill.");
}
}
ImGui::Unindent();
ConfigWidget("Instant Death Mode", f_InstantDeathMode, "Kill aura will attempt to instagib any valid target."); ConfigWidget("Instant Death Mode", f_InstantDeathMode, "Kill aura will attempt to instagib any valid target.");
ImGui::SameLine(); ImGui::SameLine();
ImGui::TextColored(ImColor(255, 165, 0, 255), "Can get buggy with bosses like PMA and Hydro Hypo."); ImGui::TextColored(ImColor(255, 165, 0, 255), "Can get buggy with bosses like PMA and Hydro Hypo.");
@ -55,8 +72,9 @@ namespace cheat::feature
void KillAura::DrawStatus() void KillAura::DrawStatus()
{ {
ImGui::Text("Kill Aura [%s]\n[%.01fm|%s|%dms|%dms]", ImGui::Text("Kill Aura [%s%s]\n[%.01fm|%s|%dms|%dms]",
f_DamageMode && f_InstantDeathMode ? "Extreme" : f_DamageMode ? "Crash" : f_InstantDeathMode ? "Instant" : "None", f_DamageMode && f_InstantDeathMode ? "Extreme" : f_DamageMode ? "Crash" : f_InstantDeathMode ? "Instant" : "None",
f_DamageMode ? !f_PercentDamageMode ? "|Fixed" : fmt::format("|Rate({})", f_PercentDamageTimes.value()).c_str() : "",
f_Range.value(), f_Range.value(),
f_OnlyTargeted ? "Aggro" : "All", f_OnlyTargeted ? "Aggro" : "All",
f_AttackDelay.value(), f_AttackDelay.value(),
@ -151,12 +169,35 @@ namespace cheat::feature
attackSet.erase(monster->runtimeID()); attackSet.erase(monster->runtimeID());
auto combat = monster->combat(); auto combat = monster->combat();
auto maxHP = app::MoleMole_SafeFloat_get_Value(combat->fields._combatProperty_k__BackingField->fields.maxHP, nullptr);
auto crashEvt = app::MoleMole_EventHelper_Allocate_103(*app::MoleMole_EventHelper_Allocate_103__MethodInfo); auto crashEvt = app::MoleMole_EventHelper_Allocate_103(*app::MoleMole_EventHelper_Allocate_103__MethodInfo);
app::MoleMole_EvtCrash_Init(crashEvt, monster->runtimeID(), nullptr); app::MoleMole_EvtCrash_Init(crashEvt, monster->runtimeID(), nullptr);
crashEvt->fields.maxHp = maxHP;
crashEvt->fields.velChange = 1000; if(!f_PercentDamageMode)
{
//Migita^Rin#1762: Fixed inaccurate damage caused by floating point precision(Maybe)
float FPValue;
if (f_DamageValue <= 10000000) FPValue = 27.0f;
if (f_DamageValue <= 9000000) FPValue = 22.5f;
if (f_DamageValue <= 8000000) FPValue = 20.0f;
if (f_DamageValue <= 7000000) FPValue = 17.5f;
if (f_DamageValue <= 6000000) FPValue = 15.0f;
if (f_DamageValue <= 5000000) FPValue = 12.5f;
if (f_DamageValue <= 4000000) FPValue = 10.0f;
if (f_DamageValue <= 3000000) FPValue = 7.5f;
if (f_DamageValue <= 2000000) FPValue = 5.0f;
if (f_DamageValue <= 1000000) FPValue = 2.5f;
crashEvt->fields.maxHp = f_DamageValue / 0.4f + FPValue;
crashEvt->fields.velChange = 10000000;
}
else
{
auto maxHP = app::MoleMole_SafeFloat_get_Value(combat->fields._combatProperty_k__BackingField->fields.maxHP, nullptr);
// should works. :p
crashEvt->fields.maxHp = maxHP / f_PercentDamageTimes / 0.4f + 5.0f;
crashEvt->fields.velChange = 10000000;
}
crashEvt->fields.hitPos = monster->absolutePosition(); crashEvt->fields.hitPos = monster->absolutePosition();
app::MoleMole_EventManager_FireEvent(eventManager, reinterpret_cast<app::BaseEvent*>(crashEvt), false, nullptr); app::MoleMole_EventManager_FireEvent(eventManager, reinterpret_cast<app::BaseEvent*>(crashEvt), false, nullptr);

View File

@ -10,11 +10,15 @@ 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_DamageMode; config::Field<config::Toggle<Hotkey>> f_DamageMode;
config::Field<config::Toggle<Hotkey>> f_PercentDamageMode;
config::Field<config::Toggle<Hotkey>> f_InstantDeathMode; config::Field<config::Toggle<Hotkey>> f_InstantDeathMode;
config::Field<bool> f_OnlyTargeted; config::Field<bool> f_OnlyTargeted;
config::Field<float> f_Range; config::Field<float> f_Range;
config::Field<int> f_AttackDelay; config::Field<int> f_AttackDelay;
config::Field<int> f_RepeatDelay; config::Field<int> f_RepeatDelay;
config::Field<float> f_DamageValue;
config::Field<int> f_PercentDamageTimes;
static KillAura& GetInstance(); static KillAura& GetInstance();