diff --git a/README.md b/README.md index e8d3907..930dfe3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,17 @@ -

Akebi GC

-The great software for some anime game which is for exploiting with girls (and boys). +

+ + +

+ +

+ + + + +

+ +--- -We opened a [Discord server](https://discord.gg/MmV8hNZB9S)

Getting Started

## Building from source @@ -17,8 +27,8 @@ As well as setting up **`cheat-library`** as startup project. 1. Download the latest binaries ### Requirements -- [Visual C++ Redistributable packages for Visual Studio 2015, 2017, 2019, 2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) (x64) -- [Visual C++ Redistributable packages for Visual Studio 2015, 2017, 2019, 2022](https://aka.ms/vs/17/release/vc_redist.x86.exe) (x86) +- [Visual C++ Redistributable packages for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x64.exe) (x64) +- [Visual C++ Redistributable packages for Visual Studio 2015-2022](https://aka.ms/vs/17/release/vc_redist.x86.exe) (x86) ### Usage (1-2 are optional if you didn't build from source) @@ -26,7 +36,7 @@ As well as setting up **`cheat-library`** as startup project. 1. Open Compiled version (debug, release) -1. Insure that `CLibrary.dll` is in the same folder that `injector.exe`. +1. Ensure that `CLibrary.dll` is in the same folder that `injector.exe`. 1. Run `injector.exe`.

Features

@@ -39,18 +49,25 @@ As well as setting up **`cheat-library`** as startup project. #### Player - Invincible -- Unlimited Stamina -- Dumb Enemies - Attack Modifier - No Cooldown Skill/Ultimate/Sprint +- Unlimited Stamina +- No Clip #### World -- Auto Loot -- Auto Talk -- Killaura -- Auto Tree Farm -- Mob Vacuum +- Auto Seelie +- Vacuum Loot +- Dumb Enemies +- Auto Destroy Objects +- Auto Loot +- Pickup Range +- Auto Talk +- Auto Tree Farm +- Auto Cook +- Fake Time - Auto Fish +- Kill Aura +- Mob Vacuum - Music Event (temporary) #### Teleport @@ -62,11 +79,15 @@ As well as setting up **`cheat-library`** as startup project. - ESP - Interactive Map - Elemental Sight -- Profile Changer -- In-game Embedded Browser -- Hide UI -- Camera Zoom - No Fog +- FPS Unlock +- Camera Zoom +- Chest Indicator +- Hide UI +- In-game Embedded Browser +- Enable Peaking +- Profile Changer +- Texture Changer #### Debugging - Entities Manager @@ -102,7 +123,7 @@ As well as setting up **`cheat-library`** as startup project. -# Bugs +

Bugs

Welcome to the short explanation for bug reporting 1. You Found a bug. diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index 4dafbd1..859d978 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -111,6 +111,7 @@ + @@ -211,6 +212,7 @@ + diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index b44f723..725c14d 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -240,6 +240,9 @@ Header Files + + Header Files + @@ -438,6 +441,9 @@ Source Files + + Source Files + diff --git a/cheat-library/res/icons/Avatar.png b/cheat-library/res/icons/Avatar.png new file mode 100644 index 0000000..227affc Binary files /dev/null and b/cheat-library/res/icons/Avatar.png differ diff --git a/cheat-library/res/icons/Npc.png b/cheat-library/res/icons/Npc.png new file mode 100644 index 0000000..8586d1e Binary files /dev/null and b/cheat-library/res/icons/Npc.png differ diff --git a/cheat-library/res/res.rc b/cheat-library/res/res.rc index ca167ba..e8945e0 100644 --- a/cheat-library/res/res.rc +++ b/cheat-library/res/res.rc @@ -668,6 +668,10 @@ ARCHAICSTONE PNG "icons\\ArchaicStone.png" ARTIFACT PNG "icons\\Artifact.png" +AVATAROWN PNG "icons\\Avatar.png" + +AVATARTEAMMATE PNG "icons\\Avatar.png" + BAKEDANUKI PNG "icons\\BakeDanuki.png" BAMBOOSEGMENT PNG "icons\\BambooSegment.png" @@ -974,6 +978,8 @@ NOBUSHI PNG "icons\\Nobushi.png" NOCTILUCOUSJADE PNG "icons\\NoctilucousJade.png" +NPC PNG "icons\\Npc.png" + OCEANCRAB PNG "icons\\OceanCrab.png" OCEANID PNG "icons\\Oceanid.png" diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp index 044080d..8779c13 100644 --- a/cheat-library/src/user/cheat/cheat.cpp +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -85,6 +86,7 @@ namespace cheat FEAT_INST(AutoTreeFarm), FEAT_INST(AutoDestroy), FEAT_INST(AutoSeelie), + FEAT_INST(VacuumLoot), FEAT_INST(DialogSkip), FEAT_INST(DumbEnemies), FEAT_INST(ElementalSight), diff --git a/cheat-library/src/user/cheat/esp/ESP.cpp b/cheat-library/src/user/cheat/esp/ESP.cpp index 0b4f33f..b6f9d94 100644 --- a/cheat-library/src/user/cheat/esp/ESP.cpp +++ b/cheat-library/src/user/cheat/esp/ESP.cpp @@ -472,6 +472,8 @@ namespace cheat::feature ADD_FILTER_FIELD(guide, Stormstone); ADD_FILTER_FIELD(guide, TriangularMechanism); + ADD_FILTER_FIELD(living, AvatarTeammate); + ADD_FILTER_FIELD(living, AvatarOwn); ADD_FILTER_FIELD(living, BakeDanuki); ADD_FILTER_FIELD(living, BirdEgg); ADD_FILTER_FIELD(living, Boar); @@ -493,6 +495,7 @@ namespace cheat::feature ADD_FILTER_FIELD(living, LizardTail); ADD_FILTER_FIELD(living, LucklightFly); ADD_FILTER_FIELD(living, LuminescentSpine); + ADD_FILTER_FIELD(living, Npc); ADD_FILTER_FIELD(living, Onikabuto); ADD_FILTER_FIELD(living, Pigeon); ADD_FILTER_FIELD(living, Salamander); diff --git a/cheat-library/src/user/cheat/game/filters.cpp b/cheat-library/src/user/cheat/game/filters.cpp index 05a7d00..70f87df 100644 --- a/cheat-library/src/user/cheat/game/filters.cpp +++ b/cheat-library/src/user/cheat/game/filters.cpp @@ -60,6 +60,8 @@ namespace cheat::game::filters namespace living { + SimpleFilter AvatarTeammate = { app::EntityType__Enum_1::Avatar, "authority :False" }; + SimpleFilter AvatarOwn = { app::EntityType__Enum_1::Avatar, "authority :True" }; SimpleFilter BirdEgg = { app::EntityType__Enum_1::GatherObject, "BirdEgg" }; SimpleFilter ButterflyWings = { app::EntityType__Enum_1::EnvAnimal, "Butterfly" }; SimpleFilter Crab = { app::EntityType__Enum_1::EnvAnimal, "Crab" }; @@ -75,6 +77,8 @@ namespace cheat::game::filters SimpleFilter Boar = { app::EntityType__Enum_1::Monster, "Boar" }; SimpleFilter Fox = { app::EntityType__Enum_1::Monster, "Fox" }; SimpleFilter Squirrel = { app::EntityType__Enum_1::Monster, "Squirrel" }; + SimpleFilter Npc = { app::EntityType__Enum_1::NPC, + std::vector { "_Liyue", "_Mengde", "_Inazuma", "_Coop", "_Quest", "_Enkanomiya", "_Animal", "_Guide", "_Homeworld" } }; SimpleFilter Crane = { app::EntityType__Enum_1::Monster, "Crane" }; SimpleFilter Falcon = { app::EntityType__Enum_1::Monster, "Falcon" }; SimpleFilter LucklightFly = { app::EntityType__Enum_1::EnvAnimal, "Boltbug_" }; diff --git a/cheat-library/src/user/cheat/game/filters.h b/cheat-library/src/user/cheat/game/filters.h index a630f36..aafe47e 100644 --- a/cheat-library/src/user/cheat/game/filters.h +++ b/cheat-library/src/user/cheat/game/filters.h @@ -63,6 +63,8 @@ namespace cheat::game::filters namespace living { + extern SimpleFilter AvatarOwn; + extern SimpleFilter AvatarTeammate; extern SimpleFilter BirdEgg; extern SimpleFilter ButterflyWings; extern SimpleFilter Crab; @@ -81,6 +83,7 @@ namespace cheat::game::filters extern SimpleFilter Crane; extern SimpleFilter Falcon; extern SimpleFilter LucklightFly; + extern SimpleFilter Npc; extern SimpleFilter Salamander; extern SimpleFilter Pigeon; extern SimpleFilter Crow; diff --git a/cheat-library/src/user/cheat/visuals/ProfileChanger.cpp b/cheat-library/src/user/cheat/visuals/ProfileChanger.cpp index a1ece9a..3292b04 100644 --- a/cheat-library/src/user/cheat/visuals/ProfileChanger.cpp +++ b/cheat-library/src/user/cheat/visuals/ProfileChanger.cpp @@ -33,6 +33,7 @@ namespace cheat::feature ProfileChanger::ProfileChanger() : Feature(), NF(f_Enabled, "Custom Profile", "Visuals::ProfileChanger", false), NF(f_UID, "UID", "Visuals::ProfileChanger", false), + NF(f_UIDWaterMarkPrefix, "UIDWaterMarkPrefix", "Visuals::ProfileChanger", false), NF(f_NickName, "NickName", "Visuals::ProfileChanger", false), NF(f_Level, "Level", "Visuals::ProfileChanger", false), NF(f_Exp, "Exp", "Visuals::ProfileChanger", false), @@ -60,6 +61,7 @@ namespace cheat::feature { ConfigWidget(f_Enabled, "Custom Profile."); ConfigWidget(f_UID, "Changes the uid visually."); + ConfigWidget("Append \"UID:\" prefix on the water-mark", f_UIDWaterMarkPrefix); ConfigWidget(f_NickName, "Changes the nickname visually."); ConfigWidget(f_Level, "Changes the level visually."); ConfigWidget(f_Exp, "Changes the exp visually."); @@ -113,7 +115,7 @@ namespace cheat::feature Components::WaterMark = app::GameObject_GetComponentByName(GameObject::WaterMark, string_to_il2cppi("Text"), nullptr); if (Components::WaterMark != nullptr) - app::Text_set_text(reinterpret_cast(Components::WaterMark), string_to_il2cppi(f_UID), nullptr); + app::Text_set_text(reinterpret_cast(Components::WaterMark), string_to_il2cppi(f_UID.value().value.empty() ? "" : std::string((f_UIDWaterMarkPrefix ? "UID: " : "") + f_UID.value().value)), nullptr); } nextUpdate = currentTime + (int)f_DelayUpdate; diff --git a/cheat-library/src/user/cheat/visuals/ProfileChanger.h b/cheat-library/src/user/cheat/visuals/ProfileChanger.h index b649af6..facd1f4 100644 --- a/cheat-library/src/user/cheat/visuals/ProfileChanger.h +++ b/cheat-library/src/user/cheat/visuals/ProfileChanger.h @@ -10,6 +10,7 @@ namespace cheat::feature public: config::Field> f_Enabled; config::Field> f_UID; + config::Field f_UIDWaterMarkPrefix; config::Field> f_NickName; config::Field> f_Level; config::Field> f_Exp; diff --git a/cheat-library/src/user/cheat/world/AutoSeelie.cpp b/cheat-library/src/user/cheat/world/AutoSeelie.cpp index 62e139c..f52adf3 100644 --- a/cheat-library/src/user/cheat/world/AutoSeelie.cpp +++ b/cheat-library/src/user/cheat/world/AutoSeelie.cpp @@ -10,7 +10,6 @@ namespace cheat::feature { AutoSeelie::AutoSeelie() : Feature(), NF(f_Enabled, "Auto follow seelie", "AutoSeelie", false) - { events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate); } @@ -22,7 +21,7 @@ namespace cheat::feature void AutoSeelie::DrawMain() { - ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to it home"); + ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to its home"); ImGui::SameLine(); ImGui::TextColored(ImColor(255, 165, 0, 255), "Don't work with Electro Seelies"); } @@ -58,7 +57,6 @@ namespace cheat::feature return false; } - void AutoSeelie::OnGameUpdate() { if (!f_Enabled) diff --git a/cheat-library/src/user/cheat/world/DialogSkip.cpp b/cheat-library/src/user/cheat/world/DialogSkip.cpp index 2593fe4..0d4814a 100644 --- a/cheat-library/src/user/cheat/world/DialogSkip.cpp +++ b/cheat-library/src/user/cheat/world/DialogSkip.cpp @@ -1,4 +1,4 @@ -#include "pch-il2cpp.h" + #include "pch-il2cpp.h" #include "DialogSkip.h" #include @@ -13,7 +13,7 @@ namespace cheat::feature DialogSkip::DialogSkip() : Feature(), NF(f_Enabled, "Auto talk", "AutoTalk", false), NF(f_AutoSelectDialog, "Auto select dialog", "AutoTalk", true), - NF(f_ExcludeImportant, "Exclude Katheryne/Tubby", "AutoTalk", true), + NF(f_ExcludeImportant, "Exclude Katheryne/Tubby/Wagner", "AutoTalk", true), NF(f_FastDialog, "Fast dialog", "AutoTalk", false), NF(f_CutsceneUSM, "Skip Cutscenes", "AutoTalk", false), NF(f_TimeSpeedup, "Time Speed", "AutoTalk", 5.0f) @@ -36,7 +36,7 @@ namespace cheat::feature if (f_AutoSelectDialog) { ImGui::Indent(); - ConfigWidget("Exclude Katheryne/Tubby", f_ExcludeImportant, "Exclude Kath/Tubby from auto-select."); + ConfigWidget("Exclude Katheryne/Tubby/Wagner", f_ExcludeImportant, "Exclude Kath/Tubby/Wagner from auto-select."); ImGui::Unindent(); } ConfigWidget("Fast Dialog", f_FastDialog, "Speeds up Time"); @@ -94,7 +94,8 @@ namespace cheat::feature // speeding up dialog on. std::vector impEntitiesNames = { "Djinn", - "Katheryne" + "Katheryne", + "Wagner" }; auto dialogPartnerID = context->fields._inteeID; auto& manager = game::EntityManager::instance(); @@ -114,7 +115,9 @@ namespace cheat::feature { int32_t value = 0; auto object = il2cpp_value_box((Il2CppClass*)*app::Int32__TypeInfo, &value); - auto notify = app::Notify_CreateNotify_1(app::MoleMole_NotifyTypes__Enum::DialogSelectItemNotify, (app::Object*)object, nullptr); + app::Notify notify{}; + notify.type = app::MoleMole_NotifyTypes__Enum::DialogSelectNotify; + notify.body = (app::Object*)object; app::MoleMole_TalkDialogContext_OnDialogSelectItem(talkDialog, ¬ify, nullptr); } else if (!talkDialog->fields._inSelect) diff --git a/cheat-library/src/user/cheat/world/VacuumLoot.cpp b/cheat-library/src/user/cheat/world/VacuumLoot.cpp new file mode 100644 index 0000000..c5feb20 --- /dev/null +++ b/cheat-library/src/user/cheat/world/VacuumLoot.cpp @@ -0,0 +1,93 @@ +#include "pch-il2cpp.h" +#include "VacuumLoot.h" + +#include +#include +#include +#include + +namespace cheat::feature +{ + VacuumLoot::VacuumLoot() : Feature(), + NF(f_Enabled, "Vacuum Loot", "VacuumLoot", false) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(VacuumLoot::OnGameUpdate); + } + const FeatureGUIInfo& VacuumLoot::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "", "World", true }; + return info; + } + + void VacuumLoot::DrawMain() + { + ConfigWidget("Vacuum Loot", f_Enabled, "Vacuum Loot drops"); + } + + bool VacuumLoot::NeedStatusDraw() const + { + return f_Enabled; + } + + void VacuumLoot::DrawStatus() + { + ImGui::Text ("VacuumLoot"); + } + + VacuumLoot& VacuumLoot::GetInstance() + { + static VacuumLoot instance; + return instance; + } + + bool VacuumLoot::IsEntityForVac(game::Entity* entity) + { + auto& manager = game::EntityManager::instance(); + auto distance = manager.avatar()->distance(entity); + float radius = 100.0f; + + // TODO: Add more on the filter list in the future + static std::vector dropList + { + "SceneObj_DropItem", + "SceneObj_Ore_Drop", + "_Thundercrystaldrop", + "Meat", + "Fishmeat", + "Equip_Sword", + "Equip_Pole", + "Equip_Bow", + "Equip_Catalyst", + "Equip_Claymore", + "Eff_Animal" + }; + + for (auto& dropListNames : dropList) + if (entity->name().find(dropListNames) != std::string::npos) + return distance <= radius; + + return false; + } + + void VacuumLoot::OnGameUpdate() + { + if (!f_Enabled) + return; + + auto currentTime = util::GetCurrentTimeMillisec(); + if (currentTime < nextTime) + return; + + auto& manager = game::EntityManager::instance(); + auto avatarEntity = manager.avatar(); + for (const auto& entity : manager.entities()) + { + if (!IsEntityForVac(entity)) + continue; + + entity->setRelativePosition(avatarEntity->relativePosition()); + } + nextTime = currentTime + 1000; + } + +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/world/VacuumLoot.h b/cheat-library/src/user/cheat/world/VacuumLoot.h new file mode 100644 index 0000000..72bff8b --- /dev/null +++ b/cheat-library/src/user/cheat/world/VacuumLoot.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include + +#include +#include +#include + +namespace cheat::feature +{ + + class VacuumLoot : public Feature + { + public: + config::Field> f_Enabled; + + static VacuumLoot& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + virtual bool NeedStatusDraw() const override; + void DrawStatus() override; + + void OnGameUpdate(); + private: + + std::vector m_Filters; + VacuumLoot(); + int nextTime{}; + bool IsEntityForVac(cheat::game::Entity* entity); + }; +}