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