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
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>

View File

@ -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" />

View File

@ -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>

View File

@ -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
}
}

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
//
#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"
@ -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"
@ -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"
@ -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"
@ -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"
@ -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"
@ -1222,6 +1280,8 @@ PALEREDCRAB PNG "icons\\PaleRedCrab.png"
PERPETUALMECHANICALARRAY PNG "icons\\PerpetualMechanicalArray.png"
PHANTASMALGATE PNG "icons\\PhantasmalGate.png"
PHASEGATE PNG "icons\\PhaseGate.png"
PHILANEMOMUSHROOM PNG "icons\\PhilanemoMushroom.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
/////////////////////////////////////////////////////////////////////////////

View File

@ -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),

View File

@ -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
}

View File

@ -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;

View File

@ -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();
}

View File

@ -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)

View File

@ -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,

View File

@ -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

View File

@ -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

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" \
"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);

View File

@ -20,12 +20,16 @@ namespace cheat::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_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")
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,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;
try { j = nlohmann::json::parse(json); }
@ -87,8 +91,11 @@ namespace cheat::feature
{
LOG_ERROR("Invalid JSON Format");
LOG_ERROR("Failed to parse JSON: %s", e.what());
return std::nullopt;
}
std::string teleportName;
teleportName = j["name"];
if (j["name"].is_null() && fromfile)
{
@ -99,6 +106,7 @@ namespace cheat::feature
if (j["description"].is_null()) description = "";
else description = j["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,10 +197,35 @@ 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);
}
@ -260,26 +294,35 @@ namespace cheat::feature
ImGui::SameLine();
if (ImGui::Button("Load from JSON"))
{
if (!JSONBuffer_.empty()) {
auto t = SerializeFromJson(JSONBuffer_, false);
if (t.has_value()) {
selectedIndex = -1;
UpdateIndexName();
SerializeTeleport(SerializeFromJson(JSONBuffer_, false));
JSONBuffer_ = "";
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,10 +439,13 @@ namespace cheat::feature
if (ImGui::Button(("Select##Button" + stringIndex).c_str()))
{
auto isChecked = checkedIndices.find(index) != checkedIndices.end();
if (isChecked) {
selectedIndex = index;
selectedByClick = true;
UpdateIndexName();
}
}
ImGui::TableNextColumn();
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()
{
ImGui::Text("Custom Teleport\n[%s]", selectedIndexName);
ImGui::Text("Custom Teleport\n[%s|%s]", f_Auto ? "Auto" : "Manual", selectedIndexName);
}
CustomTeleports &CustomTeleports::GetInstance()

View File

@ -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);

View File

@ -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;

View File

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

View File

@ -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);

View File

@ -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)
{
@ -82,6 +86,17 @@ namespace cheat::feature
}
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 ||

View File

@ -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;

View File

@ -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;

View File

@ -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(),
@ -151,12 +169,35 @@ 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);

View File

@ -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();