Merge branch 'Akebi-Group:master' into master
30
README.md
@ -29,8 +29,15 @@ As well as setting up **`cheat-library`** as startup project.
|
||||
## Latest Release
|
||||
1. Head over to the [action](https://github.com/Akebi-Group/Akebi-GC/actions) page
|
||||
1. Click Publish workflow
|
||||
1. Select most recent workflow with green checkmark ✔
|
||||
1. Download Akebi-GC-release in Artifacts section
|
||||
1. Select most recent workflow with green checkmark ✔ (Choose your client version **GLOBAL/CN/BETA**)
|
||||
<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
|
||||
- [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
|
||||
|
||||
#### Player
|
||||
- Invincible
|
||||
- Attack Modifier
|
||||
- No Cooldown Skill/Ultimate/Sprint/Bow
|
||||
- God Mode(Invincible)
|
||||
- Attack Modifier: Multi-Hit/Target/Animation
|
||||
- No Cooldown: Skill/Ultimate/Sprint/Bow
|
||||
- Unlimited Stamina
|
||||
- No Clip
|
||||
|
||||
#### World
|
||||
- Auto Seelie
|
||||
- Vacuum Loot
|
||||
- Dumb Enemies
|
||||
- Freeze Enemies
|
||||
- Auto Destroy Objects
|
||||
- Auto Loot
|
||||
- Auto Destroy: Ores/Shields/Doodas/Plants
|
||||
- Auto Loot/Open Chests
|
||||
- Pickup Range
|
||||
- Auto Talk
|
||||
- Auto Tree Farm
|
||||
@ -77,6 +83,7 @@ As well as setting up **`cheat-library`** as startup project.
|
||||
- Auto Fish
|
||||
- Kill Aura
|
||||
- Mob Vacuum
|
||||
- Vacuum Loot
|
||||
|
||||
#### Teleport
|
||||
- Chest/Oculi Teleport (Teleports to nearest)
|
||||
@ -94,16 +101,17 @@ As well as setting up **`cheat-library`** as startup project.
|
||||
- Hide UI
|
||||
- In-game Embedded Browser
|
||||
- Enable Peeking
|
||||
- Profile Changer
|
||||
- Profile Changer: UID/Nickname/AR/WorldLevel/Avatar/Namecard
|
||||
- Custom Weather
|
||||
- Free Camera
|
||||
- Texture Changer
|
||||
- Paimon Follow
|
||||
- Texture Changer
|
||||
|
||||
#### Debugging
|
||||
- Entities Manager
|
||||
- Position Info
|
||||
- FPS Graph
|
||||
- Packet Sniffer
|
||||
- [Packet Sniffer](https://github.com/Akebi-Group/Akebi-PacketSniffer)
|
||||
|
||||
|
||||
<h1 align="center">Demo</h1>
|
||||
|
@ -22,6 +22,7 @@
|
||||
<ClInclude Include="src\user\cheat\misc\sniffer\pipe\PipeIO.h" />
|
||||
<ClInclude Include="src\user\cheat\player\AutoRun.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\FreeCamera.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\player\AutoRun.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\FreeCamera.cpp" />
|
||||
<ClCompile Include="src\user\cheat\world\AutoChallenge.cpp" />
|
||||
@ -224,12 +226,19 @@
|
||||
<Image Include="res\iconsHD\Azhdaha.png" />
|
||||
<Image Include="res\iconsHD\Boar.png" />
|
||||
<Image Include="res\iconsHD\BookPage.png" />
|
||||
<Image Include="res\iconsHD\BouncyMushroom.png" />
|
||||
<Image Include="res\iconsHD\Cat.png" />
|
||||
<Image Include="res\iconsHD\Cicin.png" />
|
||||
<Image Include="res\iconsHD\ClusterleafOfCultivation.png" />
|
||||
<Image Include="res\iconsHD\Crane.png" />
|
||||
<Image Include="res\iconsHD\CryoBathysmalVishap.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\DreadfulWithering.png" />
|
||||
<Image Include="res\iconsHD\DunlinsTooth.png" />
|
||||
<Image Include="res\iconsHD\Dvalin.png" />
|
||||
<Image Include="res\iconsHD\Eel.png" />
|
||||
@ -418,6 +427,7 @@
|
||||
<Image Include="res\iconsHD\NilotpalaLotus.png" />
|
||||
<Image Include="res\iconsHD\Nobushi.png" />
|
||||
<Image Include="res\iconsHD\NoctilucousJade.png" />
|
||||
<Image Include="res\iconsHD\NurseriesInTheWilds.png" />
|
||||
<Image Include="res\iconsHD\OceanCrab.png" />
|
||||
<Image Include="res\iconsHD\Oceanid.png" />
|
||||
<Image Include="res\iconsHD\OceanidSummons.png" />
|
||||
@ -427,6 +437,7 @@
|
||||
<Image Include="res\iconsHD\Padisarah.png" />
|
||||
<Image Include="res\iconsHD\PaleRedCrab.png" />
|
||||
<Image Include="res\iconsHD\PerpetualMechanicalArray.png" />
|
||||
<Image Include="res\iconsHD\PhantasmalGate.png" />
|
||||
<Image Include="res\iconsHD\PhaseGate.png" />
|
||||
<Image Include="res\iconsHD\PhilanemoMushroom.png" />
|
||||
<Image Include="res\iconsHD\Pigeon.png" />
|
||||
@ -465,6 +476,7 @@
|
||||
<Image Include="res\iconsHD\RukkhashavaMushrooms.png" />
|
||||
<Image Include="res\iconsHD\RustyKoi.png" />
|
||||
<Image Include="res\iconsHD\SacredSakura.png" />
|
||||
<Image Include="res\iconsHD\SaghiraMachine.png" />
|
||||
<Image Include="res\iconsHD\SakuraBloom.png" />
|
||||
<Image Include="res\iconsHD\Salamander.png" />
|
||||
<Image Include="res\iconsHD\Samachurl.png" />
|
||||
@ -507,6 +519,7 @@
|
||||
<Image Include="res\iconsHD\Starshroom.png" />
|
||||
<Image Include="res\iconsHD\Starsilver.png" />
|
||||
<Image Include="res\iconsHD\StatueofTheSeven.png" />
|
||||
<Image Include="res\iconsHD\StonePillarSeal.png" />
|
||||
<Image Include="res\iconsHD\StormBarrier.png" />
|
||||
<Image Include="res\iconsHD\Stormstone.png" />
|
||||
<Image Include="res\iconsHD\StrangeTooth.png" />
|
||||
@ -530,7 +543,8 @@
|
||||
<Image Include="res\iconsHD\TorchPuzzle.png" />
|
||||
<Image Include="res\iconsHD\TreasureHoarder.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\UniqueRocks.png" />
|
||||
<Image Include="res\iconsHD\UnusualHilichurl.png" />
|
||||
@ -563,12 +577,19 @@
|
||||
<Image Include="res\icons\Azhdaha.png" />
|
||||
<Image Include="res\icons\Boar.png" />
|
||||
<Image Include="res\icons\BookPage.png" />
|
||||
<Image Include="res\icons\BouncyMushroom.png" />
|
||||
<Image Include="res\icons\Cat.png" />
|
||||
<Image Include="res\icons\Cicin.png" />
|
||||
<Image Include="res\icons\ClusterleafOfCultivation.png" />
|
||||
<Image Include="res\icons\Crane.png" />
|
||||
<Image Include="res\icons\CryoBathysmalVishap.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\DreadfulWithering.png" />
|
||||
<Image Include="res\icons\DunlinsTooth.png" />
|
||||
<Image Include="res\icons\Dvalin.png" />
|
||||
<Image Include="res\icons\Eel.png" />
|
||||
@ -757,6 +778,7 @@
|
||||
<Image Include="res\icons\NilotpalaLotus.png" />
|
||||
<Image Include="res\icons\Nobushi.png" />
|
||||
<Image Include="res\icons\NoctilucousJade.png" />
|
||||
<Image Include="res\icons\NurseriesInTheWilds.png" />
|
||||
<Image Include="res\icons\OceanCrab.png" />
|
||||
<Image Include="res\icons\Oceanid.png" />
|
||||
<Image Include="res\icons\OceanidSummons.png" />
|
||||
@ -766,6 +788,7 @@
|
||||
<Image Include="res\icons\Padisarah.png" />
|
||||
<Image Include="res\icons\PaleRedCrab.png" />
|
||||
<Image Include="res\icons\PerpetualMechanicalArray.png" />
|
||||
<Image Include="res\icons\PhantasmalGate.png" />
|
||||
<Image Include="res\icons\PhaseGate.png" />
|
||||
<Image Include="res\icons\PhilanemoMushroom.png" />
|
||||
<Image Include="res\icons\Pigeon.png" />
|
||||
@ -804,6 +827,7 @@
|
||||
<Image Include="res\icons\RukkhashavaMushrooms.png" />
|
||||
<Image Include="res\icons\RustyKoi.png" />
|
||||
<Image Include="res\icons\SacredSakura.png" />
|
||||
<Image Include="res\icons\SaghiraMachine.png" />
|
||||
<Image Include="res\icons\SakuraBloom.png" />
|
||||
<Image Include="res\icons\Salamander.png" />
|
||||
<Image Include="res\icons\Samachurl.png" />
|
||||
@ -846,6 +870,7 @@
|
||||
<Image Include="res\icons\Starshroom.png" />
|
||||
<Image Include="res\icons\Starsilver.png" />
|
||||
<Image Include="res\icons\StatueofTheSeven.png" />
|
||||
<Image Include="res\icons\StonePillarSeal.png" />
|
||||
<Image Include="res\icons\StormBarrier.png" />
|
||||
<Image Include="res\icons\Stormstone.png" />
|
||||
<Image Include="res\icons\StrangeTooth.png" />
|
||||
@ -869,7 +894,8 @@
|
||||
<Image Include="res\icons\TorchPuzzle.png" />
|
||||
<Image Include="res\icons\TreasureHoarder.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\UniqueRocks.png" />
|
||||
<Image Include="res\icons\UnusualHilichurl.png" />
|
||||
|
@ -255,6 +255,9 @@
|
||||
<ClInclude Include="src\user\cheat\visuals\AnimationChanger.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\user\cheat\player\FallControl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\user\cheat\world\AutoChallenge.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@ -471,6 +474,9 @@
|
||||
<ClCompile Include="src\user\cheat\visuals\AnimationChanger.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\user\cheat\player\FallControl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\user\cheat\world\AutoChallenge.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -2409,9 +2415,6 @@
|
||||
<Image Include="res\iconsHD\SumeruRose.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
<Image Include="res\iconsHD\Tukan.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
<Image Include="res\iconsHD\Viparyas.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
@ -2439,9 +2442,6 @@
|
||||
<Image Include="res\iconsHD\RukkhashavaMushrooms.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
<Image Include="res\icons\Tukan.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
<Image Include="res\icons\Viparyas.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</Image>
|
||||
@ -2526,5 +2526,83 @@
|
||||
<Image Include="res\icons\BookPage.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</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>
|
||||
</Project>
|
@ -1,12 +1,12 @@
|
||||
{
|
||||
"game_version": "2.8",
|
||||
"game_version": "3.0",
|
||||
"modules": {
|
||||
"UnityPlayer.dll": {
|
||||
"checksum": 4999961552328781053,
|
||||
"checksum": 18225598526199471527,
|
||||
"timestamp": 0
|
||||
},
|
||||
"UserAssembly.dll": {
|
||||
"checksum": 807890720029543258,
|
||||
"checksum": 10799527772725786707,
|
||||
"timestamp": 0
|
||||
}
|
||||
}
|
||||
|
BIN
cheat-library/res/icons/BouncyMushroom.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
cheat-library/res/icons/ClusterleafOfCultivation.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
cheat-library/res/icons/DendroGranum.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
cheat-library/res/icons/DendroPile.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
cheat-library/res/icons/DendroPuzzles.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
cheat-library/res/icons/DendroRock.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
cheat-library/res/icons/DreadfulWithering.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
cheat-library/res/icons/NurseriesInTheWilds.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
cheat-library/res/icons/PhantasmalGate.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
cheat-library/res/icons/SaghiraMachine.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
cheat-library/res/icons/StonePillarSeal.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
cheat-library/res/icons/TriYanaSeeds.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
cheat-library/res/iconsHD/BouncyMushroom.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
cheat-library/res/iconsHD/ClusterleafOfCultivation.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
cheat-library/res/iconsHD/DendroGranum.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
cheat-library/res/iconsHD/DendroPile.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
cheat-library/res/iconsHD/DendroPuzzles.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
cheat-library/res/iconsHD/DendroRock.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
cheat-library/res/iconsHD/DreadfulWithering.png
Normal file
After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
BIN
cheat-library/res/iconsHD/NurseriesInTheWilds.png
Normal file
After Width: | Height: | Size: 120 KiB |
BIN
cheat-library/res/iconsHD/PhantasmalGate.png
Normal file
After Width: | Height: | Size: 118 KiB |
BIN
cheat-library/res/iconsHD/SaghiraMachine.png
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
cheat-library/res/iconsHD/StonePillarSeal.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
cheat-library/res/iconsHD/TriYanaSeeds.png
Normal file
After Width: | Height: | Size: 27 KiB |
@ -72,6 +72,8 @@ AssemblyChecksums RCDATA "assembly_checksum.json"
|
||||
// PNG
|
||||
//
|
||||
|
||||
#pragma region iconsHD
|
||||
|
||||
HDABIDINGANGELFISH PNG "iconsHD\\AbidingAngelfish.png"
|
||||
|
||||
HDABYSSMAGE PNG "iconsHD\\AbyssMage.png"
|
||||
@ -144,6 +146,8 @@ HDBOOKPAGE PNG "iconsHD\\BookPage.png"
|
||||
|
||||
HDBOOTWEASEL PNG "iconsHD\\BootWeasel.png"
|
||||
|
||||
HDBOUNCYMUSHROOM PNG "iconsHD\\BouncyMushroom.png"
|
||||
|
||||
HDBRIGHTCROWNPIGEON PNG "iconsHD\\BrightcrownPigeon.png"
|
||||
|
||||
HDBROWNSHIRAKODAI PNG "iconsHD\\BrownShirakodai.png"
|
||||
@ -166,6 +170,10 @@ HDCHILLEDMEAT PNG "iconsHD\\ChilledMeat.png"
|
||||
|
||||
HDCICIN PNG "iconsHD\\Cicin.png"
|
||||
|
||||
HDCLOUDLEISURESTEPS PNG "iconsHD\\CloudleisureSteps.png"
|
||||
|
||||
HDCLUSTERLEAFOFCULTIVATION PNG "iconsHD\\ClusterleafOfCultivation.png"
|
||||
|
||||
HDCOMMONCHEST PNG "iconsHD\\CommonChest.png"
|
||||
|
||||
HDCOOKINGINGREDIENT PNG "iconsHD\\CookingIngredient.png"
|
||||
@ -212,7 +220,7 @@ HDDANDY PNG "iconsHD\\Dandy.png"
|
||||
|
||||
HDDAWNCATCHER PNG "iconsHD\\Dawncatcher.png"
|
||||
|
||||
HDDAYNIGHTSWITCHINGMECHANISM PNG "iconsHD\\DayNightSwitchingMechanism.png"
|
||||
HDDAYNIGHTSWITCHINGMECHANISM PNG "iconsHD\\DayNightSwitchingMechanism.png"
|
||||
|
||||
HDDEEPSEAUNAGI PNG "iconsHD\\DeepSeaUnagi.png"
|
||||
|
||||
@ -220,14 +228,28 @@ HDDENDROBIUM PNG "iconsHD\\Dendrobium.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"
|
||||
|
||||
HDDOG PNG "iconsHD\\Dog.png"
|
||||
|
||||
HDDOMAIN PNG "iconsHD\\Domain.png"
|
||||
|
||||
HDDREADFULWITHERING PNG "iconsHD\\DreadfulWithering.png"
|
||||
|
||||
HDDREAMFORM PNG "iconsHD\\DreamForm.png"
|
||||
|
||||
HDDUNLINSTOOTH PNG "iconsHD\\DunlinsTooth.png"
|
||||
|
||||
HDDUSKBIRD PNG "iconsHD\\DuskBird.png"
|
||||
|
||||
HDDVALIN PNG "iconsHD\\Dvalin.png"
|
||||
|
||||
HDECHOINGCONCH PNG "iconsHD\\EchoingConch.png"
|
||||
@ -240,7 +262,7 @@ HDELECTRICCONDUCTION PNG "iconsHD\\ElectricConduction.png
|
||||
|
||||
HDELECTROABYSSLECTOR PNG "iconsHD\\ElectroAbyssLector.png"
|
||||
|
||||
HDELECTROBATHYSMALVISHAP PNG "iconsHD\\ElectroBathysmalVishap.png"
|
||||
HDELECTROBATHYSMALVISHAP PNG "iconsHD\\ElectroBathysmalVishap.png"
|
||||
|
||||
HDELECTROCRYSTAL PNG "iconsHD\\ElectroCrystal.png"
|
||||
|
||||
@ -260,7 +282,7 @@ HDELEMENTALMONUMENT PNG "iconsHD\\ElementalMonument.png"
|
||||
|
||||
HDEMERALDFINCH PNG "iconsHD\\EmeraldFinch.png"
|
||||
|
||||
HDENEMIESFIRSTTIMEVICTORY PNG "iconsHD\\EnemiesFirstTimeVictory.png"
|
||||
HDENEMIESFIRSTTIMEVICTORY PNG "iconsHD\\EnemiesFirstTimeVictory.png"
|
||||
|
||||
HDENKANOMIYAPHASEGATE PNG "iconsHD\\EnkanomiyaPhaseGate.png"
|
||||
|
||||
@ -362,6 +384,8 @@ HDHORSETAIL PNG "iconsHD\\Horsetail.png"
|
||||
|
||||
HDHYDROABYSSHERALD PNG "iconsHD\\HydroAbyssHerald.png"
|
||||
|
||||
HDHYDROBATHYSMALVISHAP PNG "iconsHD\\HydroBathysmalVishap.png"
|
||||
|
||||
HDHYDROHYPOSTASIS PNG "iconsHD\\HydroHypostasis.png"
|
||||
|
||||
HDILLUSION PNG "iconsHD\\Illusion.png"
|
||||
@ -426,7 +450,7 @@ HDLUMINESCENTSPINE PNG "iconsHD\\LuminescentSpine.png"
|
||||
|
||||
HDLUNGEDSTICKLEBACK PNG "iconsHD\\LungedStickleback.png"
|
||||
|
||||
HDLUPUSBOREASDOMINATOROFWOLVES PNG "iconsHD\\LupusBoreasDominatorofWolves.png"
|
||||
HDLUPUSBOREASDOMINATOROFWOLVES PNG "iconsHD\\LupusBoreasDominatorofWolves.png"
|
||||
|
||||
HDLUXURIOUSCHEST PNG "iconsHD\\LuxuriousChest.png"
|
||||
|
||||
@ -442,6 +466,8 @@ HDMATSUTAKE PNG "iconsHD\\Matsutake.png"
|
||||
|
||||
HDMEDAKA PNG "iconsHD\\Medaka.png"
|
||||
|
||||
HDMELODICBLOOM PNG "iconsHD\\MelodicBloom.png"
|
||||
|
||||
HDMERCHANT PNG "iconsHD\\Merchant.png"
|
||||
|
||||
HDMILLELITH PNG "iconsHD\\Millelith.png"
|
||||
@ -474,6 +500,8 @@ HDNOBUSHI PNG "iconsHD\\Nobushi.png"
|
||||
|
||||
HDNOCTILUCOUSJADE PNG "iconsHD\\NoctilucousJade.png"
|
||||
|
||||
HDNURSERIESINTHEWILDS PNG "iconsHD\\NurseriesInTheWilds.png"
|
||||
|
||||
HDOCEANCRAB PNG "iconsHD\\OceanCrab.png"
|
||||
|
||||
HDOCEANID PNG "iconsHD\\Oceanid.png"
|
||||
@ -506,6 +534,8 @@ HDPALEREDCRAB PNG "iconsHD\\PaleRedCrab.png"
|
||||
|
||||
HDPERPETUALMECHANICALARRAY PNG "iconsHD\\PerpetualMechanicalArray.png"
|
||||
|
||||
HDPHANTASMALGATE PNG "iconsHD\\PhantasmalGate.png"
|
||||
|
||||
HDPHASEGATE PNG "iconsHD\\PhaseGate.png"
|
||||
|
||||
HDPHILANEMOMUSHROOM PNG "iconsHD\\PhilanemoMushroom.png"
|
||||
@ -584,6 +614,8 @@ HDRUSTYKOI PNG "iconsHD\\RustyKoi.png"
|
||||
|
||||
HDSACREDSAKURA PNG "iconsHD\\SacredSakura.png"
|
||||
|
||||
HDSAGHIRAMACHINE PNG "iconsHD\\SaghiraMachine.png"
|
||||
|
||||
HDSAKURABLOOM PNG "iconsHD\\SakuraBloom.png"
|
||||
|
||||
HDSALAMANDER PNG "iconsHD\\Salamander.png"
|
||||
@ -606,8 +638,6 @@ HDSEAGRASS PNG "iconsHD\\Seagrass.png"
|
||||
|
||||
HDSEALEDCHEST PNG "iconsHD\\SealedChest.png"
|
||||
|
||||
HDSEALLOCATIONS PNG "iconsHD\\SealLocationI.png"
|
||||
|
||||
HDSEALLOCATIONI PNG "iconsHD\\SealLocationI.png"
|
||||
|
||||
HDSEALLOCATIONII PNG "iconsHD\\SealLocationII.png"
|
||||
@ -616,6 +646,8 @@ HDSEALLOCATIONIII PNG "iconsHD\\SealLocationIII.png"
|
||||
|
||||
HDSEALLOCATIONIV PNG "iconsHD\\SealLocationIV.png"
|
||||
|
||||
HDSEALLOCATIONS PNG "iconsHD\\SealLocationI.png"
|
||||
|
||||
HDSEALLOCATIONV PNG "iconsHD\\SealLocationV.png"
|
||||
|
||||
HDSEELIE PNG "iconsHD\\Seelie.png"
|
||||
@ -664,12 +696,16 @@ HDSQUIRREL PNG "iconsHD\\Squirrel.png"
|
||||
|
||||
HDSTARCONCH PNG "iconsHD\\Starconch.png"
|
||||
|
||||
HDSTARLIGHTCOALESCENCE PNG "iconsHD\\StarlightCoalescence.png"
|
||||
|
||||
HDSTARSHROOM PNG "iconsHD\\Starshroom.png"
|
||||
|
||||
HDSTARSILVER PNG "iconsHD\\Starsilver.png"
|
||||
|
||||
HDSTATUEOFTHESEVEN PNG "iconsHD\\StatueofTheSeven.png"
|
||||
|
||||
HDSTONEPILLARSEAL PNG "iconsHD\\StonePillarSeal.png"
|
||||
|
||||
HDSTORMBARRIER PNG "iconsHD\\StormBarrier.png"
|
||||
|
||||
HDSTORMSTONE PNG "iconsHD\\Stormstone.png"
|
||||
@ -704,6 +740,8 @@ HDTHECRUXTHEALCOR PNG "iconsHD\\TheCruxTheAlcor.png"
|
||||
|
||||
HDTHEGREATSNOWBOARKING PNG "iconsHD\\TheGreatSnowboarKing.png"
|
||||
|
||||
HDTHERAVENFORUM PNG "iconsHD\\TheRavenForum.png"
|
||||
|
||||
HDTHREEBOXES PNG "iconsHD\\ThreeBoxes.png"
|
||||
|
||||
HDTHUNDERMANIFESTATION PNG "iconsHD\\ThunderManifestation.png"
|
||||
@ -716,7 +754,7 @@ HDTREASUREHOARDER PNG "iconsHD\\TreasureHoarder.png"
|
||||
|
||||
HDTRIANGULARMECHANISM PNG "iconsHD\\TriangularMechanism.png"
|
||||
|
||||
HDTUKAN PNG "iconsHD\\Tukan.png"
|
||||
HDTRIYANASEEDS PNG "iconsHD\\TriYanaSeeds.png"
|
||||
|
||||
HDUNAGIMEAT PNG "iconsHD\\UnagiMeat.png"
|
||||
|
||||
@ -771,17 +809,11 @@ HDWORLDQUESTS PNG "iconsHD\\WorldQuests.png"
|
||||
HDYUMEMIRUWOOD PNG "iconsHD\\YumemiruWood.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"
|
||||
|
||||
ABYSSMAGE PNG "icons\\AbyssMage.png"
|
||||
@ -858,6 +890,8 @@ BOOKPAGE PNG "icons\\BookPage.png"
|
||||
|
||||
BOOTWEASEL PNG "icons\\BootWeasel.png"
|
||||
|
||||
BOUNCYMUSHROOM PNG "icons\\BouncyMushroom.png"
|
||||
|
||||
BRIGHTCROWNPIGEON PNG "icons\\BrightcrownPigeon.png"
|
||||
|
||||
BROWNSHIRAKODAI PNG "icons\\BrownShirakodai.png"
|
||||
@ -880,6 +914,10 @@ CHILLEDMEAT PNG "icons\\ChilledMeat.png"
|
||||
|
||||
CICIN PNG "icons\\Cicin.png"
|
||||
|
||||
CLOUDLEISURESTEPS PNG "icons\\CloudleisureSteps.png"
|
||||
|
||||
CLUSTERLEAFOFCULTIVATION PNG "icons\\ClusterleafOfCultivation.png"
|
||||
|
||||
COMMONCHEST PNG "icons\\CommonChest.png"
|
||||
|
||||
COOKINGINGREDIENT PNG "icons\\CookingIngredient.png"
|
||||
@ -934,14 +972,28 @@ DENDROBIUM PNG "icons\\Dendrobium.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"
|
||||
|
||||
DOG PNG "icons\\Dog.png"
|
||||
|
||||
DOMAIN PNG "icons\\Domain.png"
|
||||
|
||||
DREADFULWITHERING PNG "icons\\DreadfulWithering.png"
|
||||
|
||||
DREAMFORM PNG "icons\\DreamForm.png"
|
||||
|
||||
DUNLINSTOOTH PNG "icons\\DunlinsTooth.png"
|
||||
|
||||
DUSKBIRD PNG "icons\\DuskBird.png"
|
||||
|
||||
DVALIN PNG "icons\\Dvalin.png"
|
||||
|
||||
ECHOINGCONCH PNG "icons\\EchoingConch.png"
|
||||
@ -1076,6 +1128,8 @@ HORSETAIL PNG "icons\\Horsetail.png"
|
||||
|
||||
HYDROABYSSHERALD PNG "icons\\HydroAbyssHerald.png"
|
||||
|
||||
HYDROBATHYSMALVISHAP PNG "icons\\HydroBathysmalVishap.png"
|
||||
|
||||
HYDROHYPOSTASIS PNG "icons\\HydroHypostasis.png"
|
||||
|
||||
ILLUSION PNG "icons\\Illusion.png"
|
||||
@ -1140,7 +1194,7 @@ LUMINESCENTSPINE PNG "icons\\LuminescentSpine.png"
|
||||
|
||||
LUNGEDSTICKLEBACK PNG "icons\\LungedStickleback.png"
|
||||
|
||||
LUPUSBOREASDOMINATOROFWOLVES PNG "icons\\LupusBoreasDominatorofWolves.png"
|
||||
LUPUSBOREASDOMINATOROFWOLVES PNG "icons\\LupusBoreasDominatorofWolves.png"
|
||||
|
||||
LUXURIOUSCHEST PNG "icons\\LuxuriousChest.png"
|
||||
|
||||
@ -1156,6 +1210,8 @@ MATSUTAKE PNG "icons\\Matsutake.png"
|
||||
|
||||
MEDAKA PNG "icons\\Medaka.png"
|
||||
|
||||
MELODICBLOOM PNG "icons\\MelodicBloom.png"
|
||||
|
||||
MERCHANT PNG "icons\\Merchant.png"
|
||||
|
||||
MILLELITH PNG "icons\\Millelith.png"
|
||||
@ -1182,7 +1238,7 @@ MYSTERIOUSCARVINGS PNG "icons\\MysteriousCarvings.png"
|
||||
|
||||
NAKUWEED PNG "icons\\NakuWeed.png"
|
||||
|
||||
NILOTPALALOTUS PNG "icons\\NilotpalaLotus.png"
|
||||
NILOTPALALOTUS PNG "icons\\NilotpalaLotus.png"
|
||||
|
||||
NOBUSHI PNG "icons\\Nobushi.png"
|
||||
|
||||
@ -1190,6 +1246,8 @@ NOCTILUCOUSJADE PNG "icons\\NoctilucousJade.png"
|
||||
|
||||
NPC PNG "icons\\Npc.png"
|
||||
|
||||
NURSERIESINTHEWILDS PNG "icons\\NurseriesInTheWilds.png"
|
||||
|
||||
OCEANCRAB PNG "icons\\OceanCrab.png"
|
||||
|
||||
OCEANID PNG "icons\\Oceanid.png"
|
||||
@ -1220,7 +1278,9 @@ PADISARAH PNG "icons\\Padisarah.png"
|
||||
|
||||
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"
|
||||
|
||||
@ -1300,6 +1360,8 @@ RUSTYKOI PNG "icons\\RustyKoi.png"
|
||||
|
||||
SACREDSAKURA PNG "icons\\SacredSakura.png"
|
||||
|
||||
SAGHIRAMACHINE PNG "icons\\SaghiraMachine.png"
|
||||
|
||||
SAKURABLOOM PNG "icons\\SakuraBloom.png"
|
||||
|
||||
SALAMANDER PNG "icons\\Salamander.png"
|
||||
@ -1322,8 +1384,6 @@ SEAGRASS PNG "icons\\Seagrass.png"
|
||||
|
||||
SEALEDCHEST PNG "icons\\SealedChest.png"
|
||||
|
||||
SEALLOCATIONS PNG "icons\\SealLocationI.png"
|
||||
|
||||
SEALLOCATIONI PNG "icons\\SealLocationI.png"
|
||||
|
||||
SEALLOCATIONII PNG "icons\\SealLocationII.png"
|
||||
@ -1332,6 +1392,8 @@ SEALLOCATIONIII PNG "icons\\SealLocationIII.png"
|
||||
|
||||
SEALLOCATIONIV PNG "icons\\SealLocationIV.png"
|
||||
|
||||
SEALLOCATIONS PNG "icons\\SealLocationI.png"
|
||||
|
||||
SEALLOCATIONV PNG "icons\\SealLocationV.png"
|
||||
|
||||
SEELIE PNG "icons\\Seelie.png"
|
||||
@ -1380,12 +1442,16 @@ SQUIRREL PNG "icons\\Squirrel.png"
|
||||
|
||||
STARCONCH PNG "icons\\Starconch.png"
|
||||
|
||||
STARLIGHTCOALESCENCE PNG "icons\\StarlightCoalescence.png"
|
||||
|
||||
STARSHROOM PNG "icons\\Starshroom.png"
|
||||
|
||||
STARSILVER PNG "icons\\Starsilver.png"
|
||||
|
||||
STATUEOFTHESEVEN PNG "icons\\StatueofTheSeven.png"
|
||||
|
||||
STONEPILLARSEAL PNG "icons\\StonePillarSeal.png"
|
||||
|
||||
STORMBARRIER PNG "icons\\StormBarrier.png"
|
||||
|
||||
STORMSTONE PNG "icons\\Stormstone.png"
|
||||
@ -1420,6 +1486,8 @@ THECRUXTHEALCOR PNG "icons\\TheCruxTheAlcor.png"
|
||||
|
||||
THEGREATSNOWBOARKING PNG "icons\\TheGreatSnowboarKing.png"
|
||||
|
||||
THERAVENFORUM PNG "icons\\TheRavenForum.png"
|
||||
|
||||
THREEBOXES PNG "icons\\ThreeBoxes.png"
|
||||
|
||||
THUNDERMANIFESTATION PNG "icons\\ThunderManifestation.png"
|
||||
@ -1432,7 +1500,7 @@ TREASUREHOARDER PNG "icons\\TreasureHoarder.png"
|
||||
|
||||
TRIANGULARMECHANISM PNG "icons\\TriangularMechanism.png"
|
||||
|
||||
TUKAN PNG "icons\\Tukan.png"
|
||||
TRIYANASEEDS PNG "icons\\TriYanaSeeds.png"
|
||||
|
||||
UNAGIMEAT PNG "icons\\UnagiMeat.png"
|
||||
|
||||
@ -1487,16 +1555,7 @@ WORLDQUESTS PNG "icons\\WorldQuests.png"
|
||||
YUMEMIRUWOOD PNG "icons\\YumemiruWood.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"
|
||||
#pragma endregion
|
||||
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -57,6 +57,7 @@
|
||||
#include <cheat/visuals/TextureChanger.h>
|
||||
#include <cheat/visuals/FreeCamera.h>
|
||||
#include <cheat/visuals/AnimationChanger.h>
|
||||
#include <cheat/player/FallControl.h>
|
||||
|
||||
#include "GenshinCM.h"
|
||||
|
||||
@ -87,6 +88,7 @@ namespace cheat
|
||||
FEAT_INST(NoClip),
|
||||
FEAT_INST(RapidFire),
|
||||
FEAT_INST(AutoRun),
|
||||
FEAT_INST(FallControl),
|
||||
|
||||
FEAT_INST(AutoLoot),
|
||||
FEAT_INST(AutoTreeFarm),
|
||||
|
@ -581,27 +581,30 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(chest, LuxuriousChest);
|
||||
ADD_FILTER_FIELD(chest, RemarkableChest);
|
||||
// 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(featured, Anemoculus);
|
||||
ADD_FILTER_FIELD(featured, CrimsonAgate);
|
||||
ADD_FILTER_FIELD(featured, Electroculus);
|
||||
ADD_FILTER_FIELD(featured, Dendroculus);
|
||||
ADD_FILTER_FIELD(featured, EchoingConch);
|
||||
ADD_FILTER_FIELD(featured, Electroculus);
|
||||
ADD_FILTER_FIELD(featured, Electrogranum);
|
||||
ADD_FILTER_FIELD(featured, FishingPoint);
|
||||
ADD_FILTER_FIELD(featured, Geoculus);
|
||||
ADD_FILTER_FIELD(featured, ImagingConch);
|
||||
ADD_FILTER_FIELD(featured, ItemDrops);
|
||||
ADD_FILTER_FIELD(featured, KeySigil);
|
||||
ADD_FILTER_FIELD(featured, Lumenspar);
|
||||
ADD_FILTER_FIELD(featured, ShrineOfDepth);
|
||||
ADD_FILTER_FIELD(featured, TimeTrialChallenge);
|
||||
|
||||
ADD_FILTER_FIELD(guide, BouncyMushroom);
|
||||
ADD_FILTER_FIELD(guide, CampfireTorch);
|
||||
ADD_FILTER_FIELD(guide, ClusterleafOfCultivation);
|
||||
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, MysteriousCarvings);
|
||||
ADD_FILTER_FIELD(guide, PhaseGate);
|
||||
@ -623,6 +626,7 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(living, Crow);
|
||||
ADD_FILTER_FIELD(living, CrystalCore);
|
||||
ADD_FILTER_FIELD(living, Dog);
|
||||
ADD_FILTER_FIELD(living, DuskBird);
|
||||
ADD_FILTER_FIELD(living, Eel);
|
||||
ADD_FILTER_FIELD(living, Falcon);
|
||||
ADD_FILTER_FIELD(living, Finch);
|
||||
@ -640,7 +644,6 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(living, Salamander);
|
||||
ADD_FILTER_FIELD(living, Squirrel);
|
||||
ADD_FILTER_FIELD(living, Starconch);
|
||||
ADD_FILTER_FIELD(living, Tukan);
|
||||
ADD_FILTER_FIELD(living, Weasel);
|
||||
ADD_FILTER_FIELD(living, Wigeon);
|
||||
|
||||
@ -710,7 +713,6 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(monster, Hilichurl);
|
||||
ADD_FILTER_FIELD(monster, HydroAbyssHerald);
|
||||
ADD_FILTER_FIELD(monster, HydroBathysmalVishap);
|
||||
ADD_FILTER_FIELD(monster, HydroHypostasisSummon);
|
||||
ADD_FILTER_FIELD(monster, Kairagi);
|
||||
ADD_FILTER_FIELD(monster, Millelith);
|
||||
ADD_FILTER_FIELD(monster, Mitachurl);
|
||||
@ -789,7 +791,7 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(plant, SweetFlower);
|
||||
ADD_FILTER_FIELD(plant, Valberry);
|
||||
ADD_FILTER_FIELD(plant, Violetgrass);
|
||||
//ADD_FILTER_FIELD(plant, Viparyas);
|
||||
ADD_FILTER_FIELD(plant, Viparyas);
|
||||
ADD_FILTER_FIELD(plant, WindwheelAster);
|
||||
ADD_FILTER_FIELD(plant, Wolfhook);
|
||||
ADD_FILTER_FIELD(plant, ZaytunPeach);
|
||||
@ -798,39 +800,41 @@ namespace cheat::feature
|
||||
ADD_FILTER_FIELD(puzzle, BakeDanuki);
|
||||
ADD_FILTER_FIELD(puzzle, BloattyFloatty);
|
||||
ADD_FILTER_FIELD(puzzle, CubeDevices);
|
||||
ADD_FILTER_FIELD(puzzle, DendroPuzzles);
|
||||
ADD_FILTER_FIELD(puzzle, DreadfulWithering);
|
||||
ADD_FILTER_FIELD(puzzle, EightStoneTablets);
|
||||
ADD_FILTER_FIELD(puzzle, ElectricConduction);
|
||||
ADD_FILTER_FIELD(puzzle, RelayStone);
|
||||
ADD_FILTER_FIELD(puzzle, ElectroSeelie);
|
||||
ADD_FILTER_FIELD(puzzle, ElementalMonument);
|
||||
ADD_FILTER_FIELD(puzzle, FloatingAnemoSlime);
|
||||
ADD_FILTER_FIELD(puzzle, Geogranum);
|
||||
ADD_FILTER_FIELD(puzzle, GeoPuzzle);
|
||||
ADD_FILTER_FIELD(puzzle, LargeRockPile);
|
||||
ADD_FILTER_FIELD(puzzle, LightUpTilePuzzle);
|
||||
ADD_FILTER_FIELD(puzzle, LightningStrikeProbe);
|
||||
ADD_FILTER_FIELD(puzzle, LightUpTilePuzzle);
|
||||
ADD_FILTER_FIELD(puzzle, LumenCage);
|
||||
ADD_FILTER_FIELD(puzzle, LuminousSeelie);
|
||||
ADD_FILTER_FIELD(puzzle, MistBubble);
|
||||
ADD_FILTER_FIELD(puzzle, NurseriesInTheWilds);
|
||||
ADD_FILTER_FIELD(puzzle, OozingConcretions);
|
||||
ADD_FILTER_FIELD(puzzle, PhantasmalGate);
|
||||
ADD_FILTER_FIELD(puzzle, PirateHelm);
|
||||
ADD_FILTER_FIELD(puzzle, PressurePlate);
|
||||
ADD_FILTER_FIELD(puzzle, RelayStone);
|
||||
ADD_FILTER_FIELD(puzzle, SaghiraMachine);
|
||||
ADD_FILTER_FIELD(puzzle, SealLocations);
|
||||
ADD_FILTER_FIELD(puzzle, Seelie);
|
||||
ADD_FILTER_FIELD(puzzle, SeelieLamp);
|
||||
ADD_FILTER_FIELD(puzzle, SmallRockPile);
|
||||
ADD_FILTER_FIELD(puzzle, StonePillarSeal);
|
||||
ADD_FILTER_FIELD(puzzle, StormBarrier);
|
||||
ADD_FILTER_FIELD(puzzle, SwordHilt);
|
||||
ADD_FILTER_FIELD(puzzle, Temari);
|
||||
ADD_FILTER_FIELD(puzzle, TorchPuzzle);
|
||||
ADD_FILTER_FIELD(puzzle, TriYanaSeeds);
|
||||
ADD_FILTER_FIELD(puzzle, UniqueRocks);
|
||||
ADD_FILTER_FIELD(puzzle, WarmingSeelie);
|
||||
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
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace cheat::game
|
||||
entityFilters[filter] = { false, 0 };
|
||||
|
||||
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)
|
||||
return entry.first;
|
||||
|
||||
|
@ -229,7 +229,7 @@ namespace cheat::game
|
||||
SAFE_END();
|
||||
}
|
||||
|
||||
app::Vector3 Entity::forward()
|
||||
app::Vector3 Entity::forward() const
|
||||
{
|
||||
if (m_RawEntity == nullptr)
|
||||
return {};
|
||||
@ -237,12 +237,12 @@ namespace cheat::game
|
||||
return app::MoleMole_BaseEntity_GetForward(m_RawEntity, nullptr);
|
||||
}
|
||||
|
||||
app::Vector3 Entity::back()
|
||||
app::Vector3 Entity::back() const
|
||||
{
|
||||
return -forward();
|
||||
}
|
||||
|
||||
app::Vector3 Entity::right()
|
||||
app::Vector3 Entity::right() const
|
||||
{
|
||||
if (m_RawEntity == nullptr)
|
||||
return {};
|
||||
@ -250,12 +250,12 @@ namespace cheat::game
|
||||
return app::MoleMole_BaseEntity_GetRight(m_RawEntity, nullptr);
|
||||
}
|
||||
|
||||
app::Vector3 Entity::left()
|
||||
app::Vector3 Entity::left() const
|
||||
{
|
||||
return -right();
|
||||
}
|
||||
|
||||
app::Vector3 Entity::up()
|
||||
app::Vector3 Entity::up() const
|
||||
{
|
||||
if (m_RawEntity == nullptr)
|
||||
return {};
|
||||
@ -263,7 +263,7 @@ namespace cheat::game
|
||||
return app::MoleMole_BaseEntity_GetUp(m_RawEntity, nullptr);
|
||||
}
|
||||
|
||||
app::Vector3 Entity::down()
|
||||
app::Vector3 Entity::down() const
|
||||
{
|
||||
return -up();
|
||||
}
|
||||
|
@ -39,12 +39,12 @@ namespace cheat::game
|
||||
app::Rigidbody* rigidbody();
|
||||
app::Animator* animator();
|
||||
|
||||
app::Vector3 forward();
|
||||
app::Vector3 back();
|
||||
app::Vector3 right();
|
||||
app::Vector3 left();
|
||||
app::Vector3 up();
|
||||
app::Vector3 down();
|
||||
app::Vector3 forward() const;
|
||||
app::Vector3 back() const;
|
||||
app::Vector3 right() const;
|
||||
app::Vector3 left() const;
|
||||
app::Vector3 up() const;
|
||||
app::Vector3 down() const;
|
||||
|
||||
template<class T>
|
||||
T* plugin(void* pClass)
|
||||
|
@ -75,6 +75,11 @@ namespace cheat::game::filters
|
||||
SimpleFilter RuinBrazier = { EntityType__Enum_1::Gadget, "_AncientHeatSource" };
|
||||
SimpleFilter Stormstone = { EntityType__Enum_1::Gadget, "_ReginLamp" };
|
||||
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
|
||||
@ -101,7 +106,7 @@ namespace cheat::game::filters
|
||||
SimpleFilter Falcon = { EntityType__Enum_1::Monster, "Falcon" };
|
||||
SimpleFilter LucklightFly = { EntityType__Enum_1::EnvAnimal, "Boltbug_" };
|
||||
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 Crow = { EntityType__Enum_1::Monster, "Crow" };
|
||||
SimpleFilter Finch = { EntityType__Enum_1::Monster, "Tit" };
|
||||
@ -277,7 +282,7 @@ namespace cheat::game::filters
|
||||
SimpleFilter Padisarah = { EntityType__Enum_1::GatherObject, "_Pasusalan" };
|
||||
SimpleFilter RukkhashavaMushrooms = { EntityType__Enum_1::GatherObject, "_HolyMushroom" };
|
||||
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" };
|
||||
}
|
||||
|
||||
@ -320,8 +325,15 @@ namespace cheat::game::filters
|
||||
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" };
|
||||
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 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
|
||||
@ -332,7 +344,8 @@ namespace cheat::game::filters
|
||||
featured::Electroculus,
|
||||
featured::Geoculus,
|
||||
featured::Lumenspar,
|
||||
featured::KeySigil
|
||||
featured::KeySigil,
|
||||
featured::Dendroculus
|
||||
};
|
||||
SimpleFilter Chests = { EntityType__Enum_1::Chest };
|
||||
SimpleFilter Ores = {
|
||||
@ -395,7 +408,7 @@ namespace cheat::game::filters
|
||||
living::Squirrel,
|
||||
living::Boar,
|
||||
living::Weasel,
|
||||
living::Tukan
|
||||
living::DuskBird
|
||||
};
|
||||
SimpleFilter AnimalPickUp = {
|
||||
living::CrystalCore,
|
||||
|
@ -76,6 +76,11 @@ namespace cheat::game::filters
|
||||
extern SimpleFilter RuinBrazier;
|
||||
extern SimpleFilter Stormstone;
|
||||
extern SimpleFilter TriangularMechanism;
|
||||
extern SimpleFilter DendroGranum;
|
||||
extern SimpleFilter BouncyMushroom;
|
||||
extern SimpleFilter ClusterleafOfCultivation;
|
||||
extern SimpleFilter DendroRock;
|
||||
extern SimpleFilter DendroPile;
|
||||
}
|
||||
|
||||
namespace living
|
||||
@ -102,7 +107,7 @@ namespace cheat::game::filters
|
||||
extern SimpleFilter LucklightFly;
|
||||
extern SimpleFilter Npc;
|
||||
extern SimpleFilter Salamander;
|
||||
extern SimpleFilter Tukan;
|
||||
extern SimpleFilter DuskBird;
|
||||
extern SimpleFilter Pigeon;
|
||||
extern SimpleFilter Crow;
|
||||
extern SimpleFilter Finch;
|
||||
@ -277,7 +282,7 @@ namespace cheat::game::filters
|
||||
extern SimpleFilter Padisarah;
|
||||
extern SimpleFilter RukkhashavaMushrooms;
|
||||
extern SimpleFilter SumeruRose;
|
||||
//extern SimpleFilter Viparyas;
|
||||
extern SimpleFilter Viparyas;
|
||||
extern SimpleFilter ZaytunPeach;
|
||||
}
|
||||
|
||||
@ -322,6 +327,13 @@ namespace cheat::game::filters
|
||||
extern SimpleFilter TheRavenForum;
|
||||
extern WhitelistFilter TimeTrialChallengeCollection;
|
||||
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
|
||||
@ -345,4 +357,4 @@ namespace cheat::game::filters
|
||||
extern SimpleFilter OrganicTargets;
|
||||
extern SimpleFilter Lightning;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1787,9 +1787,11 @@ namespace cheat::feature
|
||||
INIT_FILTER(chest, RemarkableChest);
|
||||
INIT_FILTER(featured, Anemoculus);
|
||||
INIT_FILTER(featured, CrimsonAgate);
|
||||
INIT_FILTER(featured, Dendroculus);
|
||||
INIT_FILTER(featured, Electroculus);
|
||||
//INIT_FILTER(featured, Electrogranum);
|
||||
INIT_FILTER(featured, Geoculus);
|
||||
INIT_FILTER(featured, KeySigil);
|
||||
INIT_FILTER(featured, Lumenspar);
|
||||
//INIT_FILTER(featured, KeySigil);
|
||||
//INIT_FILTER(featured, ShrineOfDepth);
|
||||
@ -1925,8 +1927,10 @@ namespace cheat::feature
|
||||
|
||||
INIT_DETECT_ITEM(Anemoculus);
|
||||
INIT_DETECT_ITEM(CrimsonAgate);
|
||||
INIT_DETECT_ITEM(Dendroculus);
|
||||
INIT_DETECT_ITEM(Electroculus);
|
||||
INIT_DETECT_ITEM(Geoculus);
|
||||
INIT_DETECT_ITEM(KeySigil);
|
||||
INIT_DETECT_ITEM(Lumenspar);
|
||||
|
||||
#undef INIT_DETECT_ITEM
|
||||
|
121
cheat-library/src/user/cheat/player/FallControl.cpp
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
32
cheat-library/src/user/cheat/player/FallControl.h
Normal 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;
|
||||
};
|
||||
}
|
@ -45,8 +45,7 @@ namespace cheat::feature
|
||||
ConfigWidget("Multi-hit Mode", f_MultiHit, "Enables multi-hit.\n" \
|
||||
"Multiplies your attack count.\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" \
|
||||
"Known issues with certain multi-hit attacks, e.g. Xiao E, Ayaka CA, etc.");
|
||||
"Not recommended to be used with main accounts or used with high values.\n");
|
||||
|
||||
ImGui::Indent();
|
||||
|
||||
@ -205,7 +204,7 @@ namespace cheat::feature
|
||||
// Taiga#5555: IDs can be found in ConfigAbility_Avatar_*.json or GadgetExcelConfigData.json
|
||||
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)
|
||||
@ -269,7 +268,6 @@ namespace cheat::feature
|
||||
for (int i = 0; i < attackCount; i++)
|
||||
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);
|
||||
|
@ -17,15 +17,19 @@
|
||||
namespace cheat::feature
|
||||
{
|
||||
CustomTeleports::CustomTeleports() : Feature(),
|
||||
NF(f_Enabled, "Custom Teleport", "CustomTeleports", false),
|
||||
NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)),
|
||||
NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)),
|
||||
NF(f_Interpolate, "Custom Teleport", "CustomTeleports", false),
|
||||
NF(f_Speed, "Interpolation Speed", "CustomTeleports", 10.0f),
|
||||
dir(util::GetCurrentPath() / "teleports")
|
||||
NF(f_Enabled, "Custom Teleport", "CustomTeleports", false),
|
||||
NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)),
|
||||
NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)),
|
||||
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),
|
||||
dir(util::GetCurrentPath() /= "teleports"),
|
||||
nextTime(0)
|
||||
{
|
||||
f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext);
|
||||
f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious);
|
||||
events::GameUpdateEvent += MY_METHOD_HANDLER(CustomTeleports::OnGameUpdate);
|
||||
}
|
||||
|
||||
const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const
|
||||
@ -79,16 +83,19 @@ namespace cheat::feature
|
||||
}
|
||||
}
|
||||
|
||||
Teleport CustomTeleports::SerializeFromJson(std::string json, bool fromfile)
|
||||
std::optional<Teleport> CustomTeleports::SerializeFromJson(std::string json, bool fromfile)
|
||||
{
|
||||
nlohmann::json j;
|
||||
try { j = nlohmann::json::parse(json);}
|
||||
catch (nlohmann::json::parse_error &e)
|
||||
try { j = nlohmann::json::parse(json); }
|
||||
catch (nlohmann::json::parse_error& e)
|
||||
{
|
||||
LOG_ERROR("Invalid JSON Format");
|
||||
LOG_ERROR("Failed to parse JSON: %s", e.what());
|
||||
return std::nullopt;
|
||||
}
|
||||
std::string teleportName;
|
||||
|
||||
std::string teleportName;
|
||||
|
||||
teleportName = j["name"];
|
||||
if (j["name"].is_null() && fromfile)
|
||||
{
|
||||
@ -98,7 +105,8 @@ namespace cheat::feature
|
||||
std::string description;
|
||||
if (j["description"].is_null()) 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()
|
||||
@ -113,7 +121,8 @@ namespace cheat::feature
|
||||
std::ifstream ifs(file.path());
|
||||
std::string json;
|
||||
std::getline(ifs, json);
|
||||
SerializeTeleport(SerializeFromJson(json, true));
|
||||
auto t = SerializeFromJson(json, true);
|
||||
if(t.has_value()) SerializeTeleport(t.value());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -188,13 +197,38 @@ namespace cheat::feature
|
||||
|
||||
void CustomTeleports::OnPrevious()
|
||||
{
|
||||
if (f_Auto) return;
|
||||
OnTeleportKeyPressed(false);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
void itr(std::regex exp, std::string name, std::string s)
|
||||
{
|
||||
std::sregex_iterator itr(name.begin(), name.end(), exp);
|
||||
@ -260,26 +294,35 @@ namespace cheat::feature
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Load from JSON"))
|
||||
{
|
||||
selectedIndex = -1;
|
||||
UpdateIndexName();
|
||||
SerializeTeleport(SerializeFromJson(JSONBuffer_, false));
|
||||
JSONBuffer_ = "";
|
||||
if (!JSONBuffer_.empty()) {
|
||||
auto t = SerializeFromJson(JSONBuffer_, false);
|
||||
if (t.has_value()) {
|
||||
selectedIndex = -1;
|
||||
UpdateIndexName();
|
||||
SerializeTeleport(t.value());
|
||||
}
|
||||
JSONBuffer_.clear();
|
||||
}
|
||||
|
||||
}
|
||||
ImGui::InputTextMultiline("JSON input", &JSONBuffer_, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput);
|
||||
|
||||
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 Next", f_Next, true, "Press to teleport next of selected.");
|
||||
ConfigWidget("Teleport Previous", f_Previous, true, "Press to teleport previous of selected.");
|
||||
ConfigWidget("Enable", f_Enabled,
|
||||
"Enable teleport-through-list functionality\n"
|
||||
"Enable teleport-through-list functionality.\n"
|
||||
"Usage:\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"
|
||||
"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"
|
||||
"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,
|
||||
"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"))
|
||||
{
|
||||
@ -396,9 +439,12 @@ namespace cheat::feature
|
||||
|
||||
if (ImGui::Button(("Select##Button" + stringIndex).c_str()))
|
||||
{
|
||||
selectedIndex = index;
|
||||
selectedByClick = true;
|
||||
UpdateIndexName();
|
||||
auto isChecked = checkedIndices.find(index) != checkedIndices.end();
|
||||
if (isChecked) {
|
||||
selectedIndex = index;
|
||||
selectedByClick = true;
|
||||
UpdateIndexName();
|
||||
}
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
@ -432,7 +478,7 @@ namespace cheat::feature
|
||||
|
||||
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()
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include <cheat-base/cheat/Feature.h>
|
||||
#include <cheat-base/config/Config.h>
|
||||
#include <cheat-base/thread-safe.h>
|
||||
#include <set>
|
||||
|
||||
namespace cheat::feature
|
||||
@ -27,9 +28,11 @@ namespace cheat::feature
|
||||
public:
|
||||
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||
config::Field<config::Toggle<Hotkey>> f_Interpolate;
|
||||
config::Field<config::Toggle<Hotkey>> f_Auto;
|
||||
config::Field<float> f_Speed;
|
||||
config::Field<Hotkey> f_Next;
|
||||
config::Field<Hotkey> f_Previous;
|
||||
config::Field<int> f_DelayTime;
|
||||
static CustomTeleports& GetInstance();
|
||||
const FeatureGUIInfo& GetGUIInfo() const override;
|
||||
|
||||
@ -38,12 +41,13 @@ namespace cheat::feature
|
||||
Teleport Teleport_(std::string name, app::Vector3 position, std::string description);
|
||||
void SerializeTeleport(Teleport t);
|
||||
void ReloadTeleports();
|
||||
Teleport SerializeFromJson(std::string json, bool fromfile);
|
||||
std::optional<Teleport> SerializeFromJson(std::string json, bool fromfile);
|
||||
|
||||
|
||||
void DrawMain() override;
|
||||
virtual bool NeedStatusDraw() const override;
|
||||
void DrawStatus() override;
|
||||
void OnGameUpdate();
|
||||
|
||||
std::vector<Teleport> Teleports;
|
||||
std::filesystem::path dir;
|
||||
@ -55,6 +59,7 @@ namespace cheat::feature
|
||||
int selectedIndex = -1;
|
||||
std::string selectedName;
|
||||
std::string selectedIndexName;
|
||||
SafeValue<int64_t> nextTime;
|
||||
CustomTeleports();
|
||||
void TeleportTo(app::Vector3 position, bool interpolate);
|
||||
void OnTeleportKeyPressed(bool next);
|
||||
|
@ -56,7 +56,7 @@ namespace cheat::feature
|
||||
void AutoChallenge::OnGameUpdate()
|
||||
{
|
||||
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)
|
||||
return;
|
||||
|
@ -170,7 +170,7 @@ namespace cheat::feature
|
||||
{
|
||||
__this->fields._pageMono->fields._qteTime = 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);
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ namespace cheat::feature
|
||||
}
|
||||
|
||||
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)
|
||||
@ -115,7 +115,7 @@ namespace cheat::feature
|
||||
{
|
||||
LOG_WARNING("Failed to catch fish, retrying in %u ms", autoFish.f_DelayBeforeCatch);
|
||||
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;
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ namespace cheat::feature
|
||||
return;
|
||||
|
||||
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)
|
||||
@ -154,7 +154,7 @@ namespace cheat::feature
|
||||
|
||||
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> _lock2(m_RecastTimestampMutex);
|
||||
|
@ -13,6 +13,8 @@ namespace cheat::feature
|
||||
static bool LCSelectPickup_IsInPosition_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(),
|
||||
NF(f_AutoPickup, "Auto-pickup drops", "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_QuestInteract, "Quest interacts", "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),
|
||||
toBeLootedItems(), nextLootTime(0)
|
||||
{
|
||||
@ -81,6 +85,17 @@ namespace cheat::feature
|
||||
"Values under 200ms are unsafe.\nNot used if no auto-functions are on.");
|
||||
}
|
||||
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::BeginGroupPanel("Auto-Treasure");
|
||||
@ -120,12 +135,13 @@ namespace cheat::feature
|
||||
|
||||
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_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_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();
|
||||
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)
|
||||
continue;
|
||||
|
||||
@ -220,13 +236,20 @@ namespace cheat::feature
|
||||
return;
|
||||
|
||||
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)
|
||||
{
|
||||
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_Animals && entity->fields.entityType == app::EntityType__Enum_1::EnvAnimal ||
|
||||
|
@ -12,9 +12,11 @@ namespace cheat::feature
|
||||
config::Field<config::Toggle<Hotkey>> f_AutoPickup;
|
||||
config::Field<config::Toggle<Hotkey>> f_AutoTreasure;
|
||||
config::Field<config::Toggle<Hotkey>> f_UseCustomRange;
|
||||
config::Field<config::Toggle<Hotkey>> f_UseDelayTimeFluctuation;
|
||||
config::Field<config::Toggle<Hotkey>> f_PickupFilter;
|
||||
|
||||
config::Field<int> f_DelayTime;
|
||||
config::Field<int> f_DelayTimeFluctuation;
|
||||
config::Field<float> f_CustomRange;
|
||||
|
||||
config::Field<bool> f_Chest;
|
||||
|
@ -162,7 +162,7 @@ namespace cheat::feature
|
||||
static std::unordered_set<app::SceneTreeObject*> s_AttackQueueSet;
|
||||
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)
|
||||
return;
|
||||
|
||||
|
@ -16,11 +16,14 @@ namespace cheat::feature
|
||||
KillAura::KillAura() : Feature(),
|
||||
NF(f_Enabled, "Kill aura", "KillAura", 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_OnlyTargeted, "Only targeted", "KillAura", true),
|
||||
NF(f_Range, "Range", "KillAura", 15.0f),
|
||||
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);
|
||||
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.");
|
||||
|
||||
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.");
|
||||
ImGui::SameLine();
|
||||
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()
|
||||
{
|
||||
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_PercentDamageMode ? "|Fixed" : fmt::format("|Rate({})", f_PercentDamageTimes.value()).c_str() : "",
|
||||
f_Range.value(),
|
||||
f_OnlyTargeted ? "Aggro" : "All",
|
||||
f_AttackDelay.value(),
|
||||
@ -94,7 +112,7 @@ namespace cheat::feature
|
||||
|
||||
auto& manager = game::EntityManager::instance();
|
||||
|
||||
for (const auto& monster : manager.entities(game::filters::combined::Monsters))
|
||||
for (const auto& monster : manager.entities(game::filters::combined::Monsters))
|
||||
{
|
||||
auto monsterID = monster->runtimeID();
|
||||
|
||||
@ -149,14 +167,37 @@ namespace cheat::feature
|
||||
}
|
||||
|
||||
attackSet.erase(monster->runtimeID());
|
||||
|
||||
|
||||
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);
|
||||
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();
|
||||
|
||||
app::MoleMole_EventManager_FireEvent(eventManager, reinterpret_cast<app::BaseEvent*>(crashEvt), false, nullptr);
|
||||
|
@ -10,11 +10,15 @@ namespace cheat::feature
|
||||
public:
|
||||
config::Field<config::Toggle<Hotkey>> f_Enabled;
|
||||
config::Field<config::Toggle<Hotkey>> f_DamageMode;
|
||||
config::Field<config::Toggle<Hotkey>> f_PercentDamageMode;
|
||||
config::Field<config::Toggle<Hotkey>> f_InstantDeathMode;
|
||||
config::Field<bool> f_OnlyTargeted;
|
||||
config::Field<float> f_Range;
|
||||
config::Field<int> f_AttackDelay;
|
||||
config::Field<int> f_RepeatDelay;
|
||||
config::Field<float> f_DamageValue;
|
||||
config::Field<int> f_PercentDamageTimes;
|
||||
|
||||
|
||||
static KillAura& GetInstance();
|
||||
|
||||
|