From e5ca75e0d370da50998ec075bc9a6b1f7cd9b2f4 Mon Sep 17 00:00:00 2001 From: LouisLiu <8723614@gmail.com> Date: Sun, 3 Jul 2022 15:17:00 +0800 Subject: [PATCH 01/27] Forge the parent process as "explorer", and support starting the bilibili server through the injector --- injector/src/main.cpp | 145 +++++++++++++++++++++++++----------------- 1 file changed, 88 insertions(+), 57 deletions(-) diff --git a/injector/src/main.cpp b/injector/src/main.cpp index f70dbfb..d9168bb 100644 --- a/injector/src/main.cpp +++ b/injector/src/main.cpp @@ -18,79 +18,110 @@ bool OpenGenshinProcess(HANDLE* phProcess, HANDLE* phThread); int main(int argc, char* argv[]) { - Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger); + Logger::SetLevel(Logger::Level::Debug, Logger::LoggerType::ConsoleLogger); - auto path = std::filesystem::path(argv[0]).parent_path(); - current_path(path); - - WaitForCloseProcess(GlobalGenshinProcName); - WaitForCloseProcess(ChinaGenshinProcName); + auto path = std::filesystem::path(argv[0]).parent_path(); + current_path(path); - Sleep(1000); // Wait for unloading all dlls. + WaitForCloseProcess(GlobalGenshinProcName); + WaitForCloseProcess(ChinaGenshinProcName); - ini.SetUnicode(); - ini.LoadFile("cfg.ini"); + Sleep(1000); // Wait for unloading all dlls. - HANDLE hProcess, hThread; - if (!OpenGenshinProcess(&hProcess, &hThread)) - { - std::cout << "Failed to open GenshinImpact process." << std::endl; - return 1; - } + ini.SetUnicode(); + ini.LoadFile("cfg.ini"); - current_path(path); - ini.SaveFile("cfg.ini"); + HANDLE hProcess, hThread; + if (!OpenGenshinProcess(&hProcess, &hThread)) + { + std::cout << "Failed to open GenshinImpact process." << std::endl; + system("pause"); + return 1; + } - std::string filename = (argc == 2 ? argv[1] : "CLibrary.dll"); - std::filesystem::path currentDllPath = std::filesystem::current_path() / filename; + current_path(path); + ini.SaveFile("cfg.ini"); + + std::string filename = (argc == 2 ? argv[1] : "CLibrary.dll"); + std::filesystem::path currentDllPath = std::filesystem::current_path() / filename; #ifdef _DEBUG - std::filesystem::path tempDllPath = std::filesystem::temp_directory_path() / filename; + std::filesystem::path tempDllPath = std::filesystem::temp_directory_path() / filename; - std::error_code ec; - std::filesystem::copy_file(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing, ec); - if (ec) - { - LOG_ERROR("Copy dll failed: %s", ec.message().c_str()); - std::system("pause"); - } + std::error_code ec; + std::filesystem::copy_file(currentDllPath, tempDllPath, std::filesystem::copy_options::update_existing, ec); + if (ec) + { + LOG_ERROR("Copy dll failed: %s", ec.message().c_str()); + std::system("pause"); + } - InjectDLL(hProcess, tempDllPath.string()); + InjectDLL(hProcess, tempDllPath.string()); #else - InjectDLL(hProcess, currentDllPath.string()); + InjectDLL(hProcess, currentDllPath.string()); #endif - Sleep(2000); - ResumeThread(hThread); + Sleep(2000); + ResumeThread(hThread); - CloseHandle(hProcess); + CloseHandle(hProcess); } -bool OpenGenshinProcess(HANDLE *phProcess, HANDLE* phThread) +bool OpenGenshinProcess(HANDLE* phProcess, HANDLE* phThread) { - STARTUPINFOA startInfo{}; - PROCESS_INFORMATION processInformation{}; - auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0"); - auto commandline = ini.GetValue("Inject", "GenshinCommandLine"); - - LPSTR lpstr = commandline == nullptr ? nullptr : const_cast(commandline); - - if (!filePath) - return false; - - BOOL result = CreateProcessA(filePath->c_str(), - lpstr, 0, 0, FALSE, CREATE_SUSPENDED, nullptr, nullptr, &startInfo, &processInformation); - if (result == FALSE) - { - LOG_LAST_ERROR("Failed to create game process."); - LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini."); - return false; - } - - ini.SaveFile("cfg.ini"); - - *phThread = processInformation.hThread; - *phProcess = processInformation.hProcess; - return true; + HANDLE hToken; + BOOL TokenRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken); + if (!TokenRet) { + LOG_LAST_ERROR("Privilege escalation failed!"); + return false; + } + bool OpenRet = false; + auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0"); + auto commandline = ini.GetValue("Inject", "GenshinCommandLine"); + LPSTR lpstr = commandline == nullptr ? nullptr : const_cast(commandline); + if (!filePath) + return false; + DWORD pid = FindProcessId("explorer.exe"); + if (pid == 0) + { + LOG_ERROR("Can't find 'explorer' pid!"); + return false; + } + std::string CurrentDirectory = filePath.value(); + int pos = CurrentDirectory.rfind("\\", CurrentDirectory.length()); + CurrentDirectory = CurrentDirectory.substr(0, pos); + LOG_INFO("%s", CurrentDirectory.data()); + HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); + STARTUPINFOEXA si; + ZeroMemory(&si, sizeof(si)); + si.StartupInfo.cb = sizeof(si); + SIZE_T lpsize = 0; + InitializeProcThreadAttributeList(NULL, 1, 0, &lpsize); + char* temp = new char[lpsize]; + LPPROC_THREAD_ATTRIBUTE_LIST AttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST)temp; + InitializeProcThreadAttributeList(AttributeList, 1, 0, &lpsize); + if (!UpdateProcThreadAttribute(AttributeList, 0, PROC_THREAD_ATTRIBUTE_PARENT_PROCESS, &handle, sizeof(HANDLE), NULL, NULL)) + { + LOG_WARNING("UpdateProcThreadAttribute failed ! (%d).\n", GetLastError()); + } + si.lpAttributeList = AttributeList; + PROCESS_INFORMATION pi; + ZeroMemory(&pi, sizeof(pi)); + BOOL result = CreateProcessAsUserA(hToken, const_cast(filePath->data()), lpstr, + 0, 0, 0, EXTENDED_STARTUPINFO_PRESENT | CREATE_SUSPENDED, 0, (LPSTR)CurrentDirectory.data(), (LPSTARTUPINFOA)&si, &pi); + if (result == FALSE) + { + LOG_LAST_ERROR("Failed to create game process."); + LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini."); + goto End; + } + ini.SaveFile("cfg.ini"); + *phThread = pi.hThread; + *phProcess = pi.hProcess; + OpenRet = true; +End: + DeleteProcThreadAttributeList(AttributeList); + delete temp; + return OpenRet; } From d89c2003460a9f6f28444697eef9ae40b6732631 Mon Sep 17 00:00:00 2001 From: Fanixtar <96950043+Fanixtar@users.noreply.github.com> Date: Sat, 9 Jul 2022 21:10:24 +0700 Subject: [PATCH 02/27] Fix Interactive Map input bug --- cheat-library/src/user/cheat/imap/InteractiveMap.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp index 2ffd2d3..af2d044 100644 --- a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp +++ b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp @@ -190,6 +190,13 @@ namespace cheat::feature if (m_ScenesData.count(sceneID) == 0) ImGui::Text("Sorry. Current scene is not supported."); + // If any InputText is focused, the game will not respond any keyboard input. + auto ctx = ImGui::GetCurrentContext(); + if (ctx->IO.WantCaptureKeyboard) + renderer::SetInputLock(this, true); + else + renderer::SetInputLock(this, false); + ImGui::InputText("Search", &m_SearchText); ImGui::SameLine(); HelpMarker( "This page following with filters for items.\n" From ffff66fa3e9253e1d89854306b76faa2c750012b Mon Sep 17 00:00:00 2001 From: m0nkrel Date: Sun, 10 Jul 2022 15:58:58 +0300 Subject: [PATCH 03/27] Added ElectroSeelie with separate button --- .../src/user/cheat/world/AutoSeelie.cpp | 84 ++++++++++++------- .../src/user/cheat/world/AutoSeelie.h | 7 +- 2 files changed, 60 insertions(+), 31 deletions(-) diff --git a/cheat-library/src/user/cheat/world/AutoSeelie.cpp b/cheat-library/src/user/cheat/world/AutoSeelie.cpp index f52adf3..482bfbb 100644 --- a/cheat-library/src/user/cheat/world/AutoSeelie.cpp +++ b/cheat-library/src/user/cheat/world/AutoSeelie.cpp @@ -9,22 +9,33 @@ namespace cheat::feature { AutoSeelie::AutoSeelie() : Feature(), - NF(f_Enabled, "Auto follow seelie", "AutoSeelie", false) - { - events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate); - } + NF(f_Enabled, "Auto seelie", "Auto Seelie", false), + NF(f_ElectroSeelie, "Auto Electro seelie", "Auto Seelie", false), + nextTime(0) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate); + } const FeatureGUIInfo& AutoSeelie::GetGUIInfo() const { static const FeatureGUIInfo info{ "", "World", true }; return info; } - void AutoSeelie::DrawMain() - { - 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"); - } + void AutoSeelie::DrawMain() + { + ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to its home"); + + if (f_Enabled) + { + ImGui::Indent(); + ConfigWidget("Auto Electro seelie", f_ElectroSeelie, "Since you don't need to manually start electroseelie, \n" + "they start moving automatically with this option within 100m radius."); + ImGui::SameLine(); + ImGui::TextColored(ImColor(255, 165, 0, 255), "Read the note!"); + ImGui::Unindent(); + } + + } bool AutoSeelie::NeedStatusDraw() const { @@ -33,7 +44,7 @@ namespace cheat::feature void AutoSeelie::DrawStatus() { - ImGui::Text ("AutoSeelie"); + ImGui::Text("AutoSeelie %s", f_ElectroSeelie ? "+ Electro" : ""); } AutoSeelie& AutoSeelie::GetInstance() @@ -47,35 +58,52 @@ namespace cheat::feature auto& manager = game::EntityManager::instance(); auto distance = manager.avatar()->distance(entity); float radius = 100.0f; - - if (entity->name().find("Gear_Seelie") != std::string::npos || entity->name().find("_FireSeelie") != std::string::npos || - entity->name().find("_LitSeelie") != std::string::npos) + + if (entity->name().find("Seelie") != std::string::npos) { + if (entity->name().find("ElectricSeelie") != std::string::npos) + { + + if (f_ElectroSeelie) + { + auto EntityGameObject = app::MoleMole_BaseEntity_get_rootGameObject(entity->raw(), nullptr); + auto Transform = app::GameObject_GetComponentByName(EntityGameObject, string_to_il2cppi("Transform"), nullptr); + auto child = app::Transform_GetChild(reinterpret_cast(Transform), 1, nullptr); + auto pre_status = app::Component_1_get_gameObject(reinterpret_cast(child), nullptr); + auto status = app::GameObject_get_active(reinterpret_cast(pre_status), nullptr); + + if (status) + { + return false; + } + return distance <= radius; + } + return false; + } return distance <= radius; } - return false; } - void AutoSeelie::OnGameUpdate() - { - if (!f_Enabled) - return; + void AutoSeelie::OnGameUpdate() + { + if (!f_Enabled) + return; auto currentTime = util::GetCurrentTimeMillisec(); if (currentTime < nextTime) return; - auto& manager = game::EntityManager::instance(); + auto& manager = game::EntityManager::instance(); auto avatarEntity = manager.avatar(); - for (const auto& entity : manager.entities()) - { - if (!IsEntityForVac(entity)) - continue; + for (const auto& entity : manager.entities()) + { + if (!IsEntityForVac(entity)) + continue; - entity->setRelativePosition(avatarEntity->relativePosition()); - } + entity->setRelativePosition(avatarEntity->relativePosition()); + } nextTime = currentTime + 1000; - } - + } + } \ No newline at end of file diff --git a/cheat-library/src/user/cheat/world/AutoSeelie.h b/cheat-library/src/user/cheat/world/AutoSeelie.h index 0b02057..f2c751d 100644 --- a/cheat-library/src/user/cheat/world/AutoSeelie.h +++ b/cheat-library/src/user/cheat/world/AutoSeelie.h @@ -4,8 +4,10 @@ #include #include +#include #include + namespace cheat::feature { @@ -13,6 +15,7 @@ namespace cheat::feature { public: config::Field> f_Enabled; + config::Field f_ElectroSeelie; static AutoSeelie& GetInstance(); @@ -24,10 +27,8 @@ namespace cheat::feature void OnGameUpdate(); private: - - std::vector m_Filters; AutoSeelie(); - int nextTime{}; + SafeValue nextTime; bool IsEntityForVac(cheat::game::Entity* entity); }; } From d1ab2ce916d4b491c7a90a0804672d287a893c80 Mon Sep 17 00:00:00 2001 From: Liko Date: Sun, 10 Jul 2022 16:30:02 +0200 Subject: [PATCH 04/27] Added AutoRun feature --- cheat-library/cheat-library.vcxproj | 2 + cheat-library/cheat-library.vcxproj.filters | 6 ++ cheat-library/src/user/cheat/cheat.cpp | 2 + .../src/user/cheat/player/AutoRun.cpp | 93 +++++++++++++++++++ cheat-library/src/user/cheat/player/AutoRun.h | 28 ++++++ 5 files changed, 131 insertions(+) create mode 100644 cheat-library/src/user/cheat/player/AutoRun.cpp create mode 100644 cheat-library/src/user/cheat/player/AutoRun.h diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index fa7f177..2ada415 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -20,6 +20,7 @@ + @@ -110,6 +111,7 @@ + diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index 91bba0d..de81a31 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -246,6 +246,9 @@ Header Files + + Header Files + @@ -450,6 +453,9 @@ Source Files + + Source Files + diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp index 40d90bc..9cad842 100644 --- a/cheat-library/src/user/cheat/cheat.cpp +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -82,6 +83,7 @@ namespace cheat FEAT_INST(NoCD), FEAT_INST(NoClip), FEAT_INST(RapidFire), + FEAT_INST(AutoRun), FEAT_INST(AutoLoot), FEAT_INST(AutoTreeFarm), diff --git a/cheat-library/src/user/cheat/player/AutoRun.cpp b/cheat-library/src/user/cheat/player/AutoRun.cpp new file mode 100644 index 0000000..c01cac4 --- /dev/null +++ b/cheat-library/src/user/cheat/player/AutoRun.cpp @@ -0,0 +1,93 @@ +#include "pch-il2cpp.h" +#include "AutoRun.h" + +#include +#include +#include +#include +#include + +namespace cheat::feature +{ + //bool isAutoRunEnabled = false; + + AutoRun::AutoRun() : Feature(), + NF(f_Enabled, "Auto Run", "Player::AutoRun", false), + NF(f_Speed, "Speed", "Player::AutoRun",1.0f), + NF(f_CameraRelative, "Relative to camera", "Player::AutoRun" , false) + { + events::GameUpdateEvent += MY_METHOD_HANDLER(AutoRun::OnGameUpdate); + } + + const FeatureGUIInfo& AutoRun::GetGUIInfo() const + { + static const FeatureGUIInfo info{ "Auto Run", "Player", true }; + return info; + } + + void AutoRun::DrawMain() + { + ConfigWidget("Enable", f_Enabled); + ConfigWidget("Auto Run speed", f_Speed, 0.01f, 0.01f, 1000.0f, "Speed of character \n Not recommended going above 5"); + ConfigWidget("Movement relative to camera", f_CameraRelative); + } + + bool AutoRun::NeedStatusDraw() const + { + return f_Enabled; + } + void AutoRun::DrawStatus() + { + ImGui::Text("Auto Run[%.01f]",f_Speed.value()); + } + + AutoRun& AutoRun::GetInstance() + { + static AutoRun instance; + return instance; + } + + void enableAutoRun(float speed, bool cameraRelative) { + + auto& manager = game::EntityManager::instance(); + auto avatarEntity = manager.avatar(); + + auto baseMove = avatarEntity->moveComponent(); + auto rigidBody = avatarEntity->rigidbody(); + + app::Rigidbody_set_detectCollisions(rigidBody, true, nullptr); + + auto cameraEntity = game::Entity(reinterpret_cast(manager.mainCamera())); + auto relativeEntity = cameraRelative ? &cameraEntity : avatarEntity; + + if (baseMove == nullptr) + return; + + if (rigidBody == nullptr) + return; + + if (renderer::IsInputLocked()) + return; + + app::Vector3 dir = {}; + dir = dir + relativeEntity->forward(); + + app::Vector3 prevPos = avatarEntity->relativePosition(); + if (IsVectorZero(prevPos)) + return; + + float deltaTime = app::Time_get_deltaTime(nullptr); + + app::Vector3 newPos = prevPos + dir * speed * deltaTime; + + avatarEntity->setRelativePosition(newPos); + } + + void AutoRun::OnGameUpdate() { + if (f_Enabled) { + float speed = f_Speed.value(); + bool cameraRelative = f_CameraRelative.value(); + enableAutoRun(speed, cameraRelative); + } + } +} \ No newline at end of file diff --git a/cheat-library/src/user/cheat/player/AutoRun.h b/cheat-library/src/user/cheat/player/AutoRun.h new file mode 100644 index 0000000..fb78efb --- /dev/null +++ b/cheat-library/src/user/cheat/player/AutoRun.h @@ -0,0 +1,28 @@ +#pragma once +#include +#include + + +namespace cheat::feature +{ + class AutoRun : public Feature + { + public: + config::Field> f_Enabled; + config::Field f_Speed; + config::Field f_CameraRelative; + + static AutoRun& GetInstance(); + + const FeatureGUIInfo& GetGUIInfo() const override; + void DrawMain() override; + + bool NeedStatusDraw() const override; + void DrawStatus() override; + + void OnGameUpdate(); + + private: + AutoRun(); + }; +} \ No newline at end of file From ffe83503658971f5d5089fea6ee423461b3cd29a Mon Sep 17 00:00:00 2001 From: m0nkrel Date: Mon, 11 Jul 2022 00:42:46 +0300 Subject: [PATCH 05/27] Added items to ESP --- cheat-library/src/user/cheat/esp/ESP.cpp | 2 ++ cheat-library/src/user/cheat/game/filters.cpp | 2 ++ cheat-library/src/user/cheat/game/filters.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/cheat-library/src/user/cheat/esp/ESP.cpp b/cheat-library/src/user/cheat/esp/ESP.cpp index 2165fed..a81f445 100644 --- a/cheat-library/src/user/cheat/esp/ESP.cpp +++ b/cheat-library/src/user/cheat/esp/ESP.cpp @@ -417,6 +417,8 @@ namespace cheat::feature ADD_FILTER_FIELD(collection, RadiantSpincrystal); ADD_FILTER_FIELD(collection, BookPage); ADD_FILTER_FIELD(collection, QuestInteract); + ADD_FILTER_FIELD(collection, WoodenCrate); + ADD_FILTER_FIELD(collection, GeoSigil); ADD_FILTER_FIELD(chest, CommonChest); ADD_FILTER_FIELD(chest, ExquisiteChest); diff --git a/cheat-library/src/user/cheat/game/filters.cpp b/cheat-library/src/user/cheat/game/filters.cpp index d3e54d0..7591011 100644 --- a/cheat-library/src/user/cheat/game/filters.cpp +++ b/cheat-library/src/user/cheat/game/filters.cpp @@ -11,6 +11,8 @@ namespace cheat::game::filters ChestFilter RadiantSpincrystal = ChestFilter(game::Chest::ItemType::BGM); ChestFilter BookPage = ChestFilter(game::Chest::ItemType::BookPage); ChestFilter QuestInteract = ChestFilter(game::Chest::ItemType::QuestInteract); + SimpleFilter WoodenCrate = { app::EntityType__Enum_1::Chest, "Searchpoint_OnWater" }; + SimpleFilter GeoSigil = { app::EntityType__Enum_1::Chest, "Prop_Search_Point" }; } namespace chest diff --git a/cheat-library/src/user/cheat/game/filters.h b/cheat-library/src/user/cheat/game/filters.h index 20617bf..9553cf1 100644 --- a/cheat-library/src/user/cheat/game/filters.h +++ b/cheat-library/src/user/cheat/game/filters.h @@ -10,6 +10,8 @@ namespace cheat::game::filters { extern SimpleFilter Book; extern SimpleFilter Viewpoint; + extern SimpleFilter WoodenCrate; + extern SimpleFilter GeoSigil; extern ChestFilter RadiantSpincrystal; extern ChestFilter BookPage; From c13a79900f956c83d07007c4340b53fa263444e2 Mon Sep 17 00:00:00 2001 From: Joaquin <67109235+Taiga74164@users.noreply.github.com> Date: Mon, 11 Jul 2022 01:05:25 -0600 Subject: [PATCH 06/27] Akebi 2.8 --- README.md | 2 +- cheat-library/cheat-library.vcxproj | 6 +- cheat-library/cheat-library.vcxproj.filters | 6 - cheat-library/src/appdata/il2cpp-functions.h | 512 +++++++++--------- cheat-library/src/appdata/il2cpp-types-ptr.h | 14 +- cheat-library/src/appdata/il2cpp-types.h | 474 ++++++++-------- .../appdata/il2cpp-unityplayer-functions.h | 5 +- cheat-library/src/user/cheat/cheat.cpp | 2 - cheat-library/src/user/cheat/player/NoCD.cpp | 4 +- .../src/user/cheat/world/KillAura.cpp | 2 +- 10 files changed, 515 insertions(+), 512 deletions(-) diff --git a/README.md b/README.md index 167ec55..8c55ce0 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,6 @@ As well as setting up **`cheat-library`** as startup project. - Auto Fish - Kill Aura - Mob Vacuum -- Music Event (temporary) #### Teleport - Chest/Oculi Teleport (Teleports to nearest) @@ -89,6 +88,7 @@ As well as setting up **`cheat-library`** as startup project. - In-game Embedded Browser - Enable Peaking - Profile Changer +- Free Camera - Texture Changer - Paimon Follow diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index fa7f177..606ac6d 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -96,7 +96,6 @@ - @@ -183,7 +182,6 @@ - @@ -880,8 +878,8 @@ - "$(OutDir)injector.exe" -powershell -nop -c "& {sleep 20}" + + $(OutDir)_noexist.nope;%(Outputs) $(TargetPath);%(Inputs) diff --git a/cheat-library/cheat-library.vcxproj.filters b/cheat-library/cheat-library.vcxproj.filters index 91bba0d..5e6915f 100644 --- a/cheat-library/cheat-library.vcxproj.filters +++ b/cheat-library/cheat-library.vcxproj.filters @@ -213,9 +213,6 @@ Header Files - - Header Files - Header Files @@ -417,9 +414,6 @@ Source Files - - Source Files - Source Files diff --git a/cheat-library/src/appdata/il2cpp-functions.h b/cheat-library/src/appdata/il2cpp-functions.h index 87a320f..e7a94dc 100644 --- a/cheat-library/src/appdata/il2cpp-functions.h +++ b/cheat-library/src/appdata/il2cpp-functions.h @@ -8,366 +8,356 @@ using namespace app; // Map hooks -DO_APP_FUNC(0x02E9F9E0, void, MoleMole_InLevelMapPageContext_OnMarkClicked, (InLevelMapPageContext* __this, MonoMapMark* mark, MethodInfo* method)); -DO_APP_FUNC(0x02E85EC0, void, MoleMole_InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method)); -DO_APP_FUNC(0x00F0DCE0, bool, MoleMole_MapModule_IsAreaUnlock, (MoleMole_MapModule* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method)); +DO_APP_FUNC(0x034CC320, void, MoleMole_InLevelMapPageContext_OnMarkClicked, (InLevelMapPageContext* __this, MonoMapMark* mark, MethodInfo* method)); +DO_APP_FUNC(0x034DE970, void, MoleMole_InLevelMapPageContext_OnMapClicked, (InLevelMapPageContext* __this, Vector2 screenPos, MethodInfo* method)); +DO_APP_FUNC(0x00B6AEA0, bool, MoleMole_MapModule_IsAreaUnlock, (MoleMole_MapModule* __this, uint32_t sceneID, uint32_t areaID, MethodInfo* method)); -// changed to: -// DO_APP_FUNC(0x01B0A910, uint16_t, MoleMole_SimpleSafeUInt16_DBDMOONJALD_1, (MoleMole_SimpleSafeUInt16 v, MethodInfo * method)); -// DBDMOONJALD => op_Implicit -DO_APP_FUNC(0x01B0A910, uint16_t, MoleMole_SimpleSafeUInt16_get_Value, (SimpleSafeUInt16 v, MethodInfo* method)); -DO_APP_FUNC(0x0400F280, uint32_t, MoleMole_SimpleSafeUInt32_get_Value, (SimpleSafeUInt32 v, MethodInfo* method)); -DO_APP_FUNC(0x05DF4590, String*, Marshal_PtrToStringAnsi, (void* ptr, MethodInfo* method)); + +// should be 'op_Implicit' not 'get_value' +DO_APP_FUNC(0x02356530, uint16_t, MoleMole_SimpleSafeUInt16_get_Value, (SimpleSafeUInt16 v, MethodInfo* method)); +DO_APP_FUNC(0x02B0B560, uint32_t, MoleMole_SimpleSafeUInt32_get_Value, (SimpleSafeUInt32 v, MethodInfo* method)); +DO_APP_FUNC(0x0501E650, String*, Marshal_PtrToStringAnsi, (void* ptr, MethodInfo* method)); // Map utility -DO_APP_FUNC(0x00E866B0, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method)); -DO_APP_FUNC(0x00E86680, Transform*, MonoInLevelMapPage_get_mapBackground, (MonoInLevelMapPage* __this, MethodInfo* method)); +DO_APP_FUNC(0x01690060, Rect, MonoInLevelMapPage_get_mapRect, (MonoInLevelMapPage* __this, MethodInfo* method)); +DO_APP_FUNC(0x01690030, Transform*, MonoInLevelMapPage_get_mapBackground, (MonoInLevelMapPage* __this, MethodInfo* method)); // Teleport hooks -DO_APP_FUNC(0x028AD260, void, GameManager_Update, (GameManager* __this, MethodInfo* method)); -DO_APP_FUNC(0x01F54110, void, MoleMole_LoadingManager_SceneGoto, (MoleMole_LoadingManager* __this, PlayerEnterSceneNotify* notify, MethodInfo* method)); -DO_APP_FUNC(0x01F55300, void, MoleMole_LoadingManager_PerformPlayerTransmit, (MoleMole_LoadingManager* __this, Vector3 targetPos, EnterType__Enum enterType, uint32_t token, EvtTransmitAvatar_EvtTransmitAvatar_TransmitType__Enum transType, uint32_t enterReason, MethodInfo* method)); -DO_APP_FUNC(0x01F563C0, void, MoleMole_LoadingManager_RequestSceneTransToPoint, (MoleMole_LoadingManager* __this, uint32_t sceneId, uint32_t pointId, void* finishCallBackInForceDrag, MethodInfo* method)); -DO_APP_FUNC(0x01F57E60, bool, MoleMole_LoadingManager_NeedTransByServer, (MoleMole_LoadingManager* __this, uint32_t sceneId, Vector3 position, MethodInfo* method)); -DO_APP_FUNC(0x0104A6D0, Vector3, MoleMole_LocalEntityInfoData_get_initPos, (LocalEntityInfoData* __this, MethodInfo* method)); // shared offset +DO_APP_FUNC(0x0164D930, void, GameManager_Update, (GameManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x00ABA150, void, MoleMole_LoadingManager_SceneGoto, (MoleMole_LoadingManager* __this, PlayerEnterSceneNotify* notify, MethodInfo* method)); +DO_APP_FUNC(0x00AB9730, void, MoleMole_LoadingManager_PerformPlayerTransmit, (MoleMole_LoadingManager* __this, Vector3 targetPos, EnterType__Enum enterType, uint32_t token, EvtTransmitAvatar_EvtTransmitAvatar_TransmitType__Enum transType, uint32_t enterReason, MethodInfo* method)); +DO_APP_FUNC(0x00AB5910, void, MoleMole_LoadingManager_RequestSceneTransToPoint, (MoleMole_LoadingManager* __this, uint32_t sceneId, uint32_t pointId, void* finishCallBackInForceDrag, MethodInfo* method)); +DO_APP_FUNC(0x00ABC980, bool, MoleMole_LoadingManager_NeedTransByServer, (MoleMole_LoadingManager* __this, uint32_t sceneId, Vector3 position, MethodInfo* method)); +DO_APP_FUNC(0x02BBC4E0, Vector3, MoleMole_LocalEntityInfoData_get_initPos, (LocalEntityInfoData* __this, MethodInfo* method)); // shared offset // Unlimited stamina -DO_APP_FUNC(0x01F17820, void, MoleMole_LevelSyncCombatPlugin_RequestSceneEntityMoveReq, (LevelSyncCombatPlugin* __this, uint32_t entityId, MotionInfo* syncInfo, bool isReliable, uint32_t HAOCOEMOMBG, MethodInfo* method)); -DO_APP_FUNC(0x016189E0, void, MoleMole_DataItem_HandleNormalProp, (DataItem* __this, uint32_t type, int64_t value, DataPropOp__Enum state, MethodInfo* method)); +DO_APP_FUNC(0x01A89B80, void, MoleMole_LevelSyncCombatPlugin_RequestSceneEntityMoveReq, (LevelSyncCombatPlugin* __this, uint32_t entityId, MotionInfo* syncInfo, bool isReliable, uint32_t HAOCOEMOMBG, MethodInfo* method)); +DO_APP_FUNC(0x03907A10, void, MoleMole_DataItem_HandleNormalProp, (DataItem* __this, uint32_t type, int64_t value, DataPropOp__Enum state, MethodInfo* method)); // God mode -DO_APP_FUNC(0x027DB100, void, VCHumanoidMove_NotifyLandVelocity, (VCHumanoidMove* __this, Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method)); -DO_APP_FUNC(0x036889B0, bool, Miscs_CheckTargetAttackable, (BaseEntity* attackerEntity, BaseEntity* targetEntity, MethodInfo* method)); -DO_APP_FUNC(0x00D0CA90, void, MoleMole_LCBaseCombat_FireBeingHitEvent, (LCBaseCombat* __this, uint32_t attackeeRuntimeID, AttackResult* attackResult, MethodInfo* method)); -DO_APP_FUNC(0x02383880, bool, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, (ActorAbilityPlugin* __this, float delay, Object* arg, MethodInfo* method)); +DO_APP_FUNC(0x02A6BF10, void, VCHumanoidMove_NotifyLandVelocity, (VCHumanoidMove* __this, Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method)); +DO_APP_FUNC(0x0279BE90, bool, Miscs_CheckTargetAttackable, (BaseEntity* attackerEntity, BaseEntity* targetEntity, MethodInfo* method)); +DO_APP_FUNC(0x02C3D800, void, MoleMole_LCBaseCombat_FireBeingHitEvent, (LCBaseCombat* __this, uint32_t attackeeRuntimeID, AttackResult* attackResult, MethodInfo* method)); +DO_APP_FUNC(0x02DCBA70, bool, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, (ActorAbilityPlugin* __this, float delay, Object* arg, MethodInfo* method)); // Cooldown cheats -DO_APP_FUNC(0x00C69910, bool, MoleMole_HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method)); -DO_APP_FUNC(0x01530C80, bool, MoleMole_LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method)); -DO_APP_FUNC(0x01530480, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method)); -DO_APP_FUNC(0x0152DC10, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method)); -DO_APP_FUNC(0x01530210, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method)); +DO_APP_FUNC(0x011640B0, bool, MoleMole_HumanoidMoveFSM_CheckSprintCooldown, (/* HumanoidMoveFSM */void* __this, MethodInfo* method)); +DO_APP_FUNC(0x026F0820, bool, MoleMole_LCAvatarCombat_IsEnergyMax, (void* __this, MethodInfo* method)); +DO_APP_FUNC(0x026F0500, void, MoleMole_LCAvatarCombat_ChangeEnergy_1, (LCAvatarCombat* __this, ElementType__Enum type, float value, DataPropOp__Enum state, MethodInfo* method)); +DO_APP_FUNC(0x026F13C0, bool, MoleMole_LCAvatarCombat_OnSkillStart, (LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method)); +DO_APP_FUNC(0x026F54A0, bool, MoleMole_LCAvatarCombat_IsSkillInCD_1, (LCAvatarCombat* __this, LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method)); -DO_APP_FUNC(0x02385800, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method)); +DO_APP_FUNC(0x02DB4680, void, MoleMole_ActorAbilityPlugin_AddDynamicFloatWithRange, (void* __this, String* key, float value, float min, float max, bool forceDoAtRemote, MethodInfo* method)); // Rapid fire -DO_APP_FUNC(0x00D12040, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method)); -DO_APP_FUNC(0x01F0D930, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method)); +DO_APP_FUNC(0x017B1D50, void, MoleMole_LCBaseCombat_DoHitEntity, (LCBaseCombat* __this, uint32_t targetID, AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method)); +DO_APP_FUNC(0x019DDF40, void, MoleMole_Formula_CalcAttackResult, (CombatProperty* attackCombatProperty, CombatProperty* defenseCombatProperty, AttackResult* attackResult, BaseEntity* attackerEntity, BaseEntity* attackeeEntity, MethodInfo* method)); // World cheats -DO_APP_FUNC(0x022C3450, void, MoleMole_VCMonsterAIController_TryDoSkill, (/* VCMonsterAIController */ void* __this, uint32_t skillID, MethodInfo* method)); // Manual -DO_APP_FUNC(0x020FA730, void, MoleMole_LCSelectPickup_AddInteeBtnByID, (void* __this, BaseEntity* entity, MethodInfo* method)); -DO_APP_FUNC(0x020FA090, bool, MoleMole_LCSelectPickup_IsInPosition, (void* __this, BaseEntity* entity, MethodInfo* method)); -DO_APP_FUNC(0x020FC120, bool, MoleMole_LCSelectPickup_IsOutPosition, (void* __this, BaseEntity* entity, MethodInfo* method)); -DO_APP_FUNC(0x0219B8E0, void, MoleMole_ItemModule_PickItem, (MoleMole_ItemModule* __this, uint32_t entityID, MethodInfo* method)); -DO_APP_FUNC(0x00C2F710, void, MoleMole_LevelSceneElementViewPlugin_Tick, (LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method)); +DO_APP_FUNC(0x01A784B0, void, MoleMole_VCMonsterAIController_TryDoSkill, (/* VCMonsterAIController */ void* __this, uint32_t skillID, MethodInfo* method)); // Manual +DO_APP_FUNC(0x02A851C0, void, MoleMole_LCSelectPickup_AddInteeBtnByID, (void* __this, BaseEntity* entity, MethodInfo* method)); +DO_APP_FUNC(0x02A86D80, bool, MoleMole_LCSelectPickup_IsInPosition, (void* __this, BaseEntity* entity, MethodInfo* method)); +DO_APP_FUNC(0x02A86410, bool, MoleMole_LCSelectPickup_IsOutPosition, (void* __this, BaseEntity* entity, MethodInfo* method)); +DO_APP_FUNC(0x034AD740, void, MoleMole_ItemModule_PickItem, (MoleMole_ItemModule* __this, uint32_t entityID, MethodInfo* method)); +DO_APP_FUNC(0x00916CD0, void, MoleMole_LevelSceneElementViewPlugin_Tick, (LevelSceneElementViewPlugin* __this, float inDeltaTime, MethodInfo* method)); // Dialog skipping -DO_APP_FUNC(0x00F95350, bool, MoleMole_TalkDialogContext_get_canClick, (TalkDialogContext* __this, MethodInfo* method)); // delete -DO_APP_FUNC(0x00F932D0, bool, MoleMole_TalkDialogContext_get_canAutoClick, (TalkDialogContext* __this, MethodInfo* method)); -DO_APP_FUNC(0x00F97D70, void, MoleMole_TalkDialogContext_OnDialogSelectItem, (TalkDialogContext* __this, Notify* notify, MethodInfo* method)); -DO_APP_FUNC(0x02BF0040, void, MoleMole_InLevelCutScenePageContext_OnFreeClick, (InLevelCutScenePageContext* __this, MethodInfo* method)); -DO_APP_FUNC(0x02BF1AC0, void, MoleMole_InLevelCutScenePageContext_UpdateView, (InLevelCutScenePageContext* __this, MethodInfo* method)); -DO_APP_FUNC(0x02BEF110, void, MoleMole_InLevelCutScenePageContext_ClearView, (InLevelCutScenePageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x032B0360, bool, MoleMole_TalkDialogContext_get_canClick, (TalkDialogContext* __this, MethodInfo* method)); // delete +DO_APP_FUNC(0x032B1F60, bool, MoleMole_TalkDialogContext_get_canAutoClick, (TalkDialogContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x032AE7D0, void, MoleMole_TalkDialogContext_OnDialogSelectItem, (TalkDialogContext* __this, Notify* notify, MethodInfo* method)); +DO_APP_FUNC(0x03C0DEF0, void, MoleMole_InLevelCutScenePageContext_OnFreeClick, (InLevelCutScenePageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x03C0F7D0, void, MoleMole_InLevelCutScenePageContext_UpdateView, (InLevelCutScenePageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x03C0D4F0, void, MoleMole_InLevelCutScenePageContext_ClearView, (InLevelCutScenePageContext* __this, MethodInfo* method)); // Skip Cutscene | RyujinZX#6666 -DO_APP_FUNC(0x0363A300, void, CriwareMediaPlayer_Update, (CriwareMediaPlayer* __this, MethodInfo* method)); -DO_APP_FUNC(0x0363A0D0, void, CriwareMediaPlayer_Skip, (CriwareMediaPlayer* __this, MethodInfo* method)); +DO_APP_FUNC(0x014C4720, void, CriwareMediaPlayer_Update, (CriwareMediaPlayer* __this, MethodInfo* method)); +DO_APP_FUNC(0x014C44F0, void, CriwareMediaPlayer_Skip, (CriwareMediaPlayer* __this, MethodInfo* method)); // Protection bypass -DO_APP_FUNC(0x066218D0, Byte__Array*, Application_RecordUserData, (int32_t nType, MethodInfo* method)); +DO_APP_FUNC(0x058838C0, Byte__Array*, Application_RecordUserData, (int32_t nType, MethodInfo* method)); // Networking -DO_APP_FUNC(0x01251620, void, Kcp_KcpNative_kcp_packet_destroy, (KcpPacket_1* packet, MethodInfo* method)); -DO_APP_FUNC(0x01251820, KcpPacket_1*, Kcp_KcpNative_kcp_packet_create, (uint8_t* data, int32_t len, MethodInfo* method)); -DO_APP_FUNC(0x012519C0, int32_t, Kcp_KcpNative_kcp_client_send_packet, (void* kcp_client, KcpPacket_1* packet, MethodInfo* method)); -DO_APP_FUNC(0x00BD08A0, bool, MoleMole_KcpClient_TryDequeueEvent, (void* __this, ClientKcpEvent* evt, MethodInfo* method)); -DO_APP_FUNC(0x029C3D60, void, MoleMole_Packet_XorEncrypt, (Byte__Array** bytes, int32_t length, MethodInfo* method)); +DO_APP_FUNC(0x0193C630, void, Kcp_KcpNative_kcp_packet_destroy, (KcpPacket_1* packet, MethodInfo* method)); +DO_APP_FUNC(0x0193C740, KcpPacket_1*, Kcp_KcpNative_kcp_packet_create, (uint8_t* data, int32_t len, MethodInfo* method)); +DO_APP_FUNC(0x0193C7D0, int32_t, Kcp_KcpNative_kcp_client_send_packet, (void* kcp_client, KcpPacket_1* packet, MethodInfo* method)); +DO_APP_FUNC(0x029F05C0, bool, MoleMole_KcpClient_TryDequeueEvent, (void* __this, ClientKcpEvent* evt, MethodInfo* method)); +DO_APP_FUNC(0x018293F0, void, MoleMole_Packet_XorEncrypt, (Byte__Array** bytes, int32_t length, MethodInfo* method)); // Lua functions -DO_APP_FUNC(0x02D59730, Byte__Array*, LuaManager_LoadCustomLuaFile, (LuaManager* __this, String** filePath, bool* recycleBytes, MethodInfo* method)); -DO_APP_FUNC(0x0655E850, void, Lua_xlua_pushasciistring, (void* L, String* str, MethodInfo* method)); -DO_APP_FUNC(0x01D8D5D0, void, MoleMole_LuaShellManager_DoString, (void* __this, Byte__Array* byteArray, MethodInfo* method)); -DO_APP_FUNC(0x0600AFF0, void*, LuaEnv_DoString, (void* __this, Byte__Array* chunk, String* chunkName, void* env, MethodInfo* method)); -DO_APP_FUNC(0x01D8DCA0, void, MoleMole_LuaShellManager_ReportLuaShellResult, (void* __this, String* type, String* value, MethodInfo* method)); // Anticheat info +DO_APP_FUNC(0x010B0CA0, Byte__Array*, LuaManager_LoadCustomLuaFile, (LuaManager* __this, String** filePath, bool* recycleBytes, MethodInfo* method)); +DO_APP_FUNC(0x03A481B0, void, Lua_xlua_pushasciistring, (void* L, String* str, MethodInfo* method)); +DO_APP_FUNC(0x00E5EE40, void, MoleMole_LuaShellManager_DoString, (void* __this, Byte__Array* byteArray, MethodInfo* method)); +DO_APP_FUNC(0x053D9D40, void*, LuaEnv_DoString, (void* __this, Byte__Array* chunk, String* chunkName, void* env, MethodInfo* method)); +DO_APP_FUNC(0x00E5E300, void, MoleMole_LuaShellManager_ReportLuaShellResult, (void* __this, String* type, String* value, MethodInfo* method)); // Anticheat info // Debug hooks -DO_APP_FUNC(0x02D3FA40, AttackResult_1*, MoleMole_AttackResult_FillProtoAttackResult, (AttackResult* __this, uint32_t attackerID, uint32_t defenseId, AttackResult_1* protoAttackResult, MethodInfo* method)); -DO_APP_FUNC(0x01F16210, void, MoleMole_LevelSyncCombatPlugin_SendFaceToDir, (void* __this, uint32_t runtimeID, Vector3 forward, MethodInfo* method)); -DO_APP_FUNC(0x035D4180, void, MoleMole_BaseEntity_FireEvent, (BaseEntity* __this, BaseEvent* e, bool immediately, MethodInfo* method)); -DO_APP_FUNC(0x023D4A90, bool, MoleMole_ActorAbilityPlugin_OnEvent, (void* __this, BaseEvent* e, MethodInfo* method)); +DO_APP_FUNC(0x02C2F060, AttackResult_1*, MoleMole_AttackResult_FillProtoAttackResult, (AttackResult* __this, uint32_t attackerID, uint32_t defenseId, AttackResult_1* protoAttackResult, MethodInfo* method)); +DO_APP_FUNC(0x01A884F0, void, MoleMole_LevelSyncCombatPlugin_SendFaceToDir, (void* __this, uint32_t runtimeID, Vector3 forward, MethodInfo* method)); +DO_APP_FUNC(0x031A89D0, void, MoleMole_BaseEntity_FireEvent, (BaseEntity* __this, BaseEvent* e, bool immediately, MethodInfo* method)); +DO_APP_FUNC(0x02DE38B0, bool, MoleMole_ActorAbilityPlugin_OnEvent, (void* __this, BaseEvent* e, MethodInfo* method)); // Kill aura -DO_APP_FUNC(0x03A52200, void, MoleMole_EvtCrash_Init, (EvtCrash* __this, uint32_t targetID, MethodInfo* method)); // Manual offset -DO_APP_FUNC(0x00941E80, void, MoleMole_EventManager_FireEvent, (MoleMole_EventManager* __this, BaseEvent* e, bool immediately, MethodInfo* method)); -DO_APP_FUNC(0x0167B1A0, bool, MoleMole_FixedBoolStack_get_value, (FixedBoolStack* __this, MethodInfo* method)); +DO_APP_FUNC(0x01013540, void, MoleMole_EvtCrash_Init, (EvtCrash* __this, uint32_t targetID, MethodInfo* method)); // Manual offset +DO_APP_FUNC(0x016C3F50, void, MoleMole_EventManager_FireEvent, (MoleMole_EventManager* __this, BaseEvent* e, bool immediately, MethodInfo* method)); +DO_APP_FUNC(0x00BC25D0, bool, MoleMole_FixedBoolStack_get_value, (FixedBoolStack* __this, MethodInfo* method)); -// cannot find actual function name: MoleMole_EventHelper_Allocate_103 -// shared offset -// possible: -// DO_APP_FUNC(0x039E2030, MoleMole_EvtCrash_1 *, EventHelper_Allocate_103, (MethodInfo * method)); -DO_APP_FUNC(0x039E2030, EvtCrash*, MoleMole_EventHelper_Allocate_103, (MethodInfo* method)); -DO_APP_FUNC_METHODINFO(0x09723528, MoleMole_EventHelper_Allocate_103__MethodInfo); +// 2.8 changed to 'MoleMole_EventHelper_Allocate_144' +DO_APP_FUNC(0x0595D6F0, EvtCrash*, MoleMole_EventHelper_Allocate_103, (MethodInfo* method)); +DO_APP_FUNC_METHODINFO(0x09A4E310, MoleMole_EventHelper_Allocate_103__MethodInfo); -DO_APP_FUNC(0x034BC360, void, MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, (BaseMoveSyncPlugin* __this, MethodInfo* method)); +DO_APP_FUNC(0x017F3E90, void, MoleMole_BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo, (BaseMoveSyncPlugin* __this, MethodInfo* method)); // Fishing -DO_APP_FUNC(0x0292F8D0, void, MoleMole_FishingModule_RequestFishCastRod, (void* __this, uint32_t baitId, uint32_t rodId, Vector3 pos, uint32_t rodEntityId, MethodInfo* method)); +DO_APP_FUNC(0x02695850, void, MoleMole_FishingModule_RequestFishCastRod, (void* __this, uint32_t baitId, uint32_t rodId, Vector3 pos, uint32_t rodEntityId, MethodInfo* method)); -DO_APP_FUNC(0x0292D6D0, void, MoleMole_FishingModule_RequestFishBite, (void* __this, MethodInfo* method)); -DO_APP_FUNC(0x02930440, void, MoleMole_FishingModule_OnFishBiteRsp, (void* __this, FishBiteRsp* rsp, MethodInfo* method)); +DO_APP_FUNC(0x02698820, void, MoleMole_FishingModule_RequestFishBite, (void* __this, MethodInfo* method)); +DO_APP_FUNC(0x02696680, void, MoleMole_FishingModule_OnFishBiteRsp, (void* __this, FishBiteRsp* rsp, MethodInfo* method)); -DO_APP_FUNC(0x0292F470, void, MoleMole_FishingModule_RequestFishBattleBegin, (void* __this, MethodInfo* method)); -DO_APP_FUNC(0x0292CAE0, void, MoleMole_FishingModule_OnFishBattleBeginRsp, (void* __this, FishBattleBeginRsp* rsp, MethodInfo* method)); +DO_APP_FUNC(0x02695A60, void, MoleMole_FishingModule_RequestFishBattleBegin, (void* __this, MethodInfo* method)); +DO_APP_FUNC(0x02698920, void, MoleMole_FishingModule_OnFishBattleBeginRsp, (void* __this, FishBattleBeginRsp* rsp, MethodInfo* method)); -DO_APP_FUNC(0x0292D090, void, MoleMole_FishingModule_RequestFishBattleEnd, (void* __this, FishBattleResult__Enum result, bool isAlwaysBonus, float mxBonusTime, MethodInfo* method)); -DO_APP_FUNC(0x0292DBD0, void, MoleMole_FishingModule_OnFishBattleEndRsp, (void* __this, FishBattleEndRsp* rsp, MethodInfo* method)); +DO_APP_FUNC(0x02694C20, void, MoleMole_FishingModule_RequestFishBattleEnd, (void* __this, FishBattleResult__Enum result, bool isAlwaysBonus, float mxBonusTime, MethodInfo* method)); +DO_APP_FUNC(0x02694F90, void, MoleMole_FishingModule_OnFishBattleEndRsp, (void* __this, FishBattleEndRsp* rsp, MethodInfo* method)); -DO_APP_FUNC(0x0292F190, void, MoleMole_FishingModule_OnExitFishingRsp, (void* __this, void* rsp, MethodInfo* method)); -DO_APP_FUNC(0x0292C7F0, void, MoleMole_FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method)); +DO_APP_FUNC(0x02694DB0, void, MoleMole_FishingModule_OnExitFishingRsp, (void* __this, void* rsp, MethodInfo* method)); +DO_APP_FUNC(0x02696DE0, void, MoleMole_FishingModule_onFishChosenNotify, (void* __this, void* notify, MethodInfo* method)); // Visuals -DO_APP_FUNC(0x013FC090, void, MoleMole_SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method)); -DO_APP_FUNC(0x01B8DC20, void, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, (MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x03A1D1A0, void, MoleMole_SCameraModuleInitialize_SetWarningLocateRatio, (SCameraModuleInitialize* __this, double deltaTime, CameraShareData* data, MethodInfo* method)); +DO_APP_FUNC(0x008E01A0, void, MoleMole_VCBaseSetDitherValue_set_ManagerDitherAlphaValue, (MoleMole_VCBaseSetDitherValue* __this, float value, MethodInfo* method)); // Chest Indicator | RyujinZX#6666 -DO_APP_FUNC(0x04C9B450, bool, MoleMole_LCIndicatorPlugin_DoCheck, (LCIndicatorPlugin* __this, MethodInfo* method)); -DO_APP_FUNC(0x04C9B830, void, MoleMole_LCIndicatorPlugin_ShowIcon, (LCIndicatorPlugin* __this, MethodInfo* method)); -DO_APP_FUNC(0x04C9A750, void, MoleMole_LCIndicatorPlugin_HideIcon, (LCIndicatorPlugin* __this, MethodInfo* method)); +DO_APP_FUNC(0x00F1DE90, bool, MoleMole_LCIndicatorPlugin_DoCheck, (LCIndicatorPlugin* __this, MethodInfo* method)); +DO_APP_FUNC(0x00F1E2B0, void, MoleMole_LCIndicatorPlugin_ShowIcon, (LCIndicatorPlugin* __this, MethodInfo* method)); +DO_APP_FUNC(0x00F1F610, void, MoleMole_LCIndicatorPlugin_HideIcon, (LCIndicatorPlugin* __this, MethodInfo* method)); // Auto Cooking | RyujinZX#6666 -DO_APP_FUNC(0x02854E30, void, MoleMole_PlayerModule_RequestPlayerCook, (MoleMole_PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method)); -DO_APP_FUNC(0x02858180, void, MoleMole_PlayerModule_OnPlayerCookRsp, (MoleMole_PlayerModule* __this, PlayerCookRsp* rsp, MethodInfo* method)); -DO_APP_FUNC(0x033F5820, void, MoleMole_CookingQtePageContext_UpdateProficiency, (CookingQtePageContext* __this, MethodInfo* method)); -DO_APP_FUNC(0x008ECD70, uint32_t, MoleMole_Config_CookRecipeExcelConfig_CheckCookFoodMaxNum, (uint32_t UpdateCookRecipeDic, MethodInfo* method)); -DO_APP_FUNC(0x032256C0, void, CookingQtePageContext_CloseItemGotPanel, (CookingQtePageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x02982660, void, MoleMole_PlayerModule_RequestPlayerCook, (MoleMole_PlayerModule* __this, uint32_t recipeId, uint32_t avatarId, uint32_t qteQuality, uint32_t count, MethodInfo* method)); +DO_APP_FUNC(0x029905A0, void, MoleMole_PlayerModule_OnPlayerCookRsp, (MoleMole_PlayerModule* __this, PlayerCookRsp* rsp, MethodInfo* method)); +DO_APP_FUNC(0x012C3890, void, MoleMole_CookingQtePageContext_UpdateProficiency, (CookingQtePageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x01765DB0, uint32_t, MoleMole_Config_CookRecipeExcelConfig_CheckCookFoodMaxNum, (uint32_t UpdateCookRecipeDic, MethodInfo* method)); +DO_APP_FUNC(0x012BC260, void, CookingQtePageContext_CloseItemGotPanel, (CookingQtePageContext* __this, MethodInfo* method)); // Profile Changer | RyujinZX#6666 -DO_APP_FUNC(0x027A41A0, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton -DO_APP_FUNC(0x016A77B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon +DO_APP_FUNC(0x02A37D50, Button_1*, ProfilePage, (MonoInLevelPlayerProfilePage* __this, MethodInfo* method)); // MonoInLevelPlayerProfilePage_get_logoutButton +DO_APP_FUNC(0x01B101B0, void, ProfileEditPage, (MonoFriendInformationDialog* __this, Sprite* value, MethodInfo* method)); // MonoFriendInformationDialog_set_icon // Free Camera -DO_APP_FUNC(0x06595250, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method)); -DO_APP_FUNC(0x065956C0, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x065949D0, void, Camera_CopyFrom, (Camera* __this, Camera* other, MethodInfo* method)); +DO_APP_FUNC(0x057E9C00, float, Camera_get_fieldOfView, (Camera* __this, MethodInfo* method)); +DO_APP_FUNC(0x057EA060, void, Camera_set_fieldOfView, (Camera* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x057E9460, void, Camera_CopyFrom, (Camera* __this, Camera* other, MethodInfo* method)); // Game Object, Component, Transform Utility -DO_APP_FUNC(0x0662F130, GameObject*, GameObject_Find, (String* name, MethodInfo* method)); -DO_APP_FUNC(0x0662F190, Component_1*, GameObject_GetComponentByName, (GameObject* __this, String* type, MethodInfo* method)); -DO_APP_FUNC(0x0662F660, bool, GameObject_get_active, (GameObject* __this, MethodInfo* method)); -DO_APP_FUNC(0x0662F720, void, GameObject_set_active, (GameObject* __this, bool value, MethodInfo* method)); -DO_APP_FUNC(0x065546E0, Transform*, Transform_GetChild, (Transform* __this, int32_t index, MethodInfo* method)); -DO_APP_FUNC(0x0652EA10, Component_1*, Component_1_GetComponent_1, (Component_1* __this, String* type, MethodInfo* method)); -DO_APP_FUNC(0x0662F520, void, GameObject_SetActive, (GameObject* __this, bool value, MethodInfo* method)); -DO_APP_FUNC(0x0662F100, GameObject*, GameObject_CreatePrimitive, (PrimitiveType__Enum type, MethodInfo* method)); -DO_APP_FUNC(0x0662F700, Transform*, GameObject_get_transform, (GameObject* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555A60, Quaternion, Transform_get_localRotation, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555EF0, void, Transform_set_localRotation, (Transform* __this, Quaternion value, MethodInfo* method)); -DO_APP_FUNC(0x06555AA0, Vector3, Transform_get_localScale, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x065548E0, void, Transform_set_localScale, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06555A20, Vector3, Transform_get_localPosition, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555EE0, void, Transform_set_localPosition, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x0662F090, Component_1*, GameObject_AddComponentInternal, (GameObject* __this, String* className, MethodInfo* method)); -DO_APP_FUNC(0x0662F0A0, Component_1*, GameObject_AddComponent, (GameObject* __this, Type* componentType, MethodInfo* method)); -DO_APP_FUNC(0x065508C0, void, Object_1_DestroyImmediate_1, (Object_1* obj, MethodInfo* method)); -DO_APP_FUNC(0x06550C00, Object_1*, Object_1_Instantiate_2, (Object_1* original, MethodInfo* method)); -DO_APP_FUNC(0x041B0BB0, Object*, Object_1_Instantiate_5, (Object* original, MethodInfo* method)); -DO_APP_FUNC(0x041B0BB0, GameObject*, Object_1_Instantiate_11, (GameObject* original, MethodInfo* method)); -DO_APP_FUNC(0x06555870, int32_t, Transform_get_childCount, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x0652EBC0, GameObject*, Component_1_get_gameObject, (Component_1* __this, MethodInfo* method)); -DO_APP_FUNC(0x06551030, String*, Object_1_get_name, (Object_1* __this, MethodInfo* method)); -DO_APP_FUNC(0x0665DA90, Material__Array*, Renderer_GetMaterialArray, (Renderer* __this, MethodInfo* method)); -DO_APP_FUNC(0x0652FB40, void, Material_set_mainTexture, (Material* __this, Texture* value, MethodInfo* method)); -DO_APP_FUNC(0x0664E800, Vector3, Vector3_Lerp, (Vector3 a, Vector3 b, float t, MethodInfo* method)); -DO_APP_FUNC(0x06555890, Vector3, Transform_get_eulerAngles, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555DD0, void, Transform_set_eulerAngles, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06555BE0, Vector3, Transform_get_right, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555F70, void, Transform_set_right, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06555CC0, Vector3, Transform_get_up, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555FF0, void, Transform_set_up, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06555900, Vector3, Transform_get_forward, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555E20, void, Transform_set_forward, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06555FE0, void, Transform_set_rotation, (Transform* __this, Quaternion value, MethodInfo* method)); -DO_APP_FUNC(0x065E1EC0, float, Mathf_Lerp, (float a, float b, float t, MethodInfo* method)); -DO_APP_FUNC(0x065F56F0, float, Input_GetAxis, (String* axisName, MethodInfo* method)); -DO_APP_FUNC(0x06550910, void, Object_1_Destroy_1, (Object_1* obj, MethodInfo* method)); - - -// Music game event -DO_APP_FUNC(0x00FFE490, void, MusicGamePlayComponent_OnPlayerUpdate, (MusicGamePlayComponent* __this, MethodInfo* method)); -DO_APP_FUNC(0x00FFE600, void, MusicGamePlayComponent_OnStart, (MusicGamePlayComponent* __this, BeatMapData* beatMapData, MusicMetaInfo* musicMetaInfo, MethodInfo* method)); -DO_APP_FUNC(0x00FFE310, void, MusicGamePlayComponent_OnMiss, (MusicGamePlayComponent* __this, MethodInfo* method)); -DO_APP_FUNC(0x00FFEE40, void, MusicGamePlayComponent_set_combo, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method)); -DO_APP_FUNC(0x00FFF050, void, MusicGamePlayComponent_set_score, (MusicGamePlayComponent* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x01B5AEB0, void, MusicGamePlayComponent_set_maxCombo, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method)); -DO_APP_FUNC(0x02C749E0, void, MusicGamePlayComponent_set_perfectCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method)); -DO_APP_FUNC(0x035C4E50, void, MusicGamePlayComponent_set_greatCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method)); -DO_APP_FUNC(0x017A31C0, void, MusicGamePlayComponent_set_missCnt, (MusicGamePlayComponent* __this, uint32_t value, MethodInfo* method)); -DO_APP_FUNC(0x00FFDE90, void, MusicGamePlayComponent_OnHit, (MusicGamePlayComponent* __this, float score, MethodInfo* method)); +DO_APP_FUNC(0x05890060, GameObject*, GameObject_Find, (String* name, MethodInfo* method)); +DO_APP_FUNC(0x05890070, Component_1*, GameObject_GetComponentByName, (GameObject* __this, String* type, MethodInfo* method)); +DO_APP_FUNC(0x058905A0, bool, GameObject_get_active, (GameObject* __this, MethodInfo* method)); +DO_APP_FUNC(0x05890660, void, GameObject_set_active, (GameObject* __this, bool value, MethodInfo* method)); +DO_APP_FUNC(0x05890460, void, GameObject_SetActive, (GameObject* __this, bool value, MethodInfo* method)); +DO_APP_FUNC(0x057BA950, Transform*, Transform_GetChild, (Transform* __this, int32_t index, MethodInfo* method)); +DO_APP_FUNC(0x05799870, Component_1*, Component_1_GetComponent_1, (Component_1* __this, String* type, MethodInfo* method)); +DO_APP_FUNC(0x05890030, GameObject*, GameObject_CreatePrimitive, (PrimitiveType__Enum type, MethodInfo* method)); +DO_APP_FUNC(0x05890640, Transform*, GameObject_get_transform, (GameObject* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BBCE0, Quaternion, Transform_get_localRotation, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BAB20, void, Transform_set_localRotation, (Transform* __this, Quaternion value, MethodInfo* method)); +DO_APP_FUNC(0x057BBD20, Vector3, Transform_get_localScale, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BAB30, void, Transform_set_localScale, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x057BBCA0, Vector3, Transform_get_localPosition, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BC160, void, Transform_set_localPosition, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x0588FFD0, Component_1*, GameObject_AddComponentInternal, (GameObject* __this, String* className, MethodInfo* method)); +DO_APP_FUNC(0x05890380, Component_1*, GameObject_AddComponent, (GameObject* __this, Type* componentType, MethodInfo* method)); +DO_APP_FUNC(0x057B6B30, void, Object_1_DestroyImmediate_1, (Object_1* obj, MethodInfo* method)); +DO_APP_FUNC(0x057B6E80, Object_1*, Object_1_Instantiate_2, (Object_1* original, MethodInfo* method)); +DO_APP_FUNC(0x05A5FA20, Object*, Object_1_Instantiate_5, (Object* original, MethodInfo* method)); +DO_APP_FUNC(0x05A5FA20, GameObject*, Object_1_Instantiate_10, (GameObject* original, MethodInfo* method)); +DO_APP_FUNC(0x057BBAF0, int32_t, Transform_get_childCount, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x05799A20, GameObject*, Component_1_get_gameObject, (Component_1* __this, MethodInfo* method)); +DO_APP_FUNC(0x057B72A0, String*, Object_1_get_name, (Object_1* __this, MethodInfo* method)); +DO_APP_FUNC(0x058BBC70, Material__Array*, Renderer_GetMaterialArray, (Renderer* __this, MethodInfo* method)); +DO_APP_FUNC(0x0579AA20, void, Material_set_mainTexture, (Material* __this, Texture* value, MethodInfo* method)); +DO_APP_FUNC(0x058AFCD0, Vector3, Vector3_Lerp, (Vector3 a, Vector3 b, float t, MethodInfo* method)); +DO_APP_FUNC(0x057BBB10, Vector3, Transform_get_eulerAngles, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BC050, void, Transform_set_eulerAngles, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x057BBE60, Vector3, Transform_get_right, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BC1E0, void, Transform_set_right, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x057BBF40, Vector3, Transform_get_up, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BC260, void, Transform_set_up, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x057BBB80, Vector3, Transform_get_forward, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BC0A0, void, Transform_set_forward, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x057BC250, void, Transform_set_rotation, (Transform* __this, Quaternion value, MethodInfo* method)); +DO_APP_FUNC(0x0583CA40, float, Mathf_Lerp, (float a, float b, float t, MethodInfo* method)); +DO_APP_FUNC(0x058502D0, float, Input_GetAxis, (String* axisName, MethodInfo* method)); +DO_APP_FUNC(0x057B6B80, void, Object_1_Destroy_1, (Object_1* obj, MethodInfo* method)); // Utility -DO_APP_FUNC(0x03551B60, String*, Text_get_text, (Text* __this, MethodInfo* method)); -DO_APP_FUNC(0x06568060, void, Text_set_text, (Text* __this, String* value, MethodInfo* method)); -DO_APP_FUNC(0x0658D6B0, void, Slider_1_set_value, (Slider_1* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x0658D560, void, Slider_1_set_maxValue, (Slider_1* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x0658D5E0, void, Slider_1_set_minValue, (Slider_1* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x065F6470, Rect, Sprite_get_rect, (Sprite* __this, MethodInfo* method)); -DO_APP_FUNC(0x0667D6A0, Texture2D*, NativeGallery_LoadImageAtPath, (String* imagePath, int32_t maxSize, bool markTextureNonReadable, bool generateMipmaps, bool linearColorSpace, MethodInfo* method)); -DO_APP_FUNC(0x065F6270, Sprite*, Sprite_Create, (Texture2D* texture, Rect rect, Vector2 pivot, float pixelsPerUnit, MethodInfo* method)); -DO_APP_FUNC(0x06567B70, void, Text_set_alignment, (Text* __this, TextAnchor__Enum value, MethodInfo* method)); -DO_APP_FUNC(0x06567E10, void, Text_set_horizontalOverflow, (Text* __this, HorizontalWrapMode__Enum value, MethodInfo* method)); -DO_APP_FUNC(0x06568110, void, Text_set_verticalOverflow, (Text* __this, VerticalWrapMode__Enum value, MethodInfo* method)); -DO_APP_FUNC(0x06567A80, bool, Text_get_resizeTextForBestFit, (Text* __this, MethodInfo* method)); -DO_APP_FUNC(0x06567EE0, void, Text_set_resizeTextForBestFit, (Text* __this, bool value, MethodInfo* method)); -DO_APP_FUNC(0x06567450, int32_t, Text_get_fontSize, (Text* __this, MethodInfo* method)); -DO_APP_FUNC(0x06567CC0, void, Text_set_fontSize, (Text* __this, int32_t value, MethodInfo* method)); +DO_APP_FUNC(0x03480F40, String*, Text_get_text, (Text* __this, MethodInfo* method)); +DO_APP_FUNC(0x057C4340, void, Text_set_text, (Text* __this, String* value, MethodInfo* method)); +DO_APP_FUNC(0x057E20F0, void, Slider_1_set_minValue, (Slider_1* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x057E2070, void, Slider_1_set_maxValue, (Slider_1* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x057E14F0, void, Slider_1_set_value, (Slider_1* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x05851060, Rect, Sprite_get_rect, (Sprite* __this, MethodInfo* method)); +DO_APP_FUNC(0x058DC9E0, Texture2D*, NativeGallery_LoadImageAtPath, (String* imagePath, int32_t maxSize, bool markTextureNonReadable, bool generateMipmaps, bool linearColorSpace, MethodInfo* method)); +DO_APP_FUNC(0x05850E60, Sprite*, Sprite_Create, (Texture2D* texture, Rect rect, Vector2 pivot, float pixelsPerUnit, MethodInfo* method)); +DO_APP_FUNC(0x057C3E50, void, Text_set_alignment, (Text* __this, TextAnchor__Enum value, MethodInfo* method)); +DO_APP_FUNC(0x057C40F0, void, Text_set_horizontalOverflow, (Text* __this, HorizontalWrapMode__Enum value, MethodInfo* method)); +DO_APP_FUNC(0x057C43F0, void, Text_set_verticalOverflow, (Text* __this, VerticalWrapMode__Enum value, MethodInfo* method)); +DO_APP_FUNC(0x057C3D60, bool, Text_get_resizeTextForBestFit, (Text* __this, MethodInfo* method)); +DO_APP_FUNC(0x057C41C0, void, Text_set_resizeTextForBestFit, (Text* __this, bool value, MethodInfo* method)); +DO_APP_FUNC(0x057C36A0, int32_t, Text_get_fontSize, (Text* __this, MethodInfo* method)); +DO_APP_FUNC(0x057C3FA0, void, Text_set_fontSize, (Text* __this, int32_t value, MethodInfo* method)); -DO_APP_FUNC(0x036865D0, float, Miscs_CalcCurrentGroundWaterHeight, (float x, float z, MethodInfo* method)); -DO_APP_FUNC(0x03685E00, float, Miscs_CalcCurrentGroundHeight, (float x, float z, MethodInfo* method)); -DO_APP_FUNC(0x03685F10, float, Miscs_CalcCurrentGroundHeight_1, (float x, float z, float rayStartHeight, float rayDetectLength, int32_t layer, MethodInfo* method)); -DO_APP_FUNC(0x03686170, Vector3, Miscs_CalcCurrentGroundNorm, (Vector3 pos, MethodInfo* method)); -DO_APP_FUNC(0x01A4E0E0, Vector3, Miscs_GenWorldPos, (Vector2 levelMapPos, MethodInfo* method)); -DO_APP_FUNC(0x01A4DA90, Vector2, Miscs_GenLevelPos_1, (Vector3 worldPos, MethodInfo* method)); -DO_APP_FUNC(0x0369D590, int32_t, Miscs_GetSceneGroundLayerMask, (MethodInfo* method)); +DO_APP_FUNC(0x02798730, float, Miscs_CalcCurrentGroundWaterHeight, (float x, float z, MethodInfo* method)); +DO_APP_FUNC(0x02797F60, float, Miscs_CalcCurrentGroundHeight, (float x, float z, MethodInfo* method)); +DO_APP_FUNC(0x02798070, float, Miscs_CalcCurrentGroundHeight_1, (float x, float z, float rayStartHeight, float rayDetectLength, int32_t layer, MethodInfo* method)); +DO_APP_FUNC(0x027982D0, Vector3, Miscs_CalcCurrentGroundNorm, (Vector3 pos, MethodInfo* method)); +DO_APP_FUNC(0x027A24B0, Vector3, Miscs_GenWorldPos, (Vector2 levelMapPos, MethodInfo* method)); +DO_APP_FUNC(0x027A1F90, Vector2, Miscs_GenLevelPos_1, (Vector3 worldPos, MethodInfo* method)); +DO_APP_FUNC(0x027B6BF0, int32_t, Miscs_GetSceneGroundLayerMask, (MethodInfo* method)); -DO_APP_FUNC(0x056202E0, Vector3, WorldShiftManager_GetRelativePosition, (Vector3 pos, MethodInfo* method)); -DO_APP_FUNC(0x05620130, Vector3, WorldShiftManager_GetAbsolutePosition, (Vector3 pos, MethodInfo* method)); +DO_APP_FUNC(0x04D7B430, Vector3, WorldShiftManager_GetAbsolutePosition, (Vector3 pos, MethodInfo* method)); +DO_APP_FUNC(0x04D7B5E0, Vector3, WorldShiftManager_GetRelativePosition, (Vector3 pos, MethodInfo* method)); -DO_APP_FUNC(0x02DAB410, Vector3, ActorUtils_GetAvatarPos, (MethodInfo* method)); -DO_APP_FUNC(0x02DAF680, void, ActorUtils_SetAvatarPos, (Vector3 pos, MethodInfo* method)); -DO_APP_FUNC(0x02DB0AF0, void, ActorUtils_SyncAvatarMotion, (int32_t state, MethodInfo* method)); +DO_APP_FUNC(0x01F6B8F0, Vector3, ActorUtils_GetAvatarPos, (MethodInfo* method)); +DO_APP_FUNC(0x01F72080, void, ActorUtils_SetAvatarPos, (Vector3 pos, MethodInfo* method)); +DO_APP_FUNC(0x01F74C50, void, ActorUtils_SyncAvatarMotion, (int32_t state, MethodInfo* method)); -DO_APP_FUNC(0x01AA5200, Notify, Notify_CreateNotify_1, (MoleMole_NotifyTypes__Enum type, Object* body, MethodInfo* method)); +DO_APP_FUNC(0x02B87390, Notify, Notify_CreateNotify_1, (MoleMole_NotifyTypes__Enum type, Object* body, MethodInfo* method)); -// DO_APP_FUNC(0x020C7AA0, float, MoleMole_SafeFloat_DBDMOONJALD_1, (MoleMole_SafeFloat v, MethodInfo * method)); -// DBDMOONJALD => op_Implicit -DO_APP_FUNC(0x020C7AA0, float, MoleMole_SafeFloat_get_Value, (SafeFloat safeFloat, MethodInfo* method)); -// DO_APP_FUNC(0x020C7920, MoleMole_SafeFloat, MoleMole_SafeFloat_DBDMOONJALD, (float IGFNEICJINB, MethodInfo * method)); -DO_APP_FUNC(0x020C7920, SafeFloat, MoleMole_SafeFloat_set_Value, (float value, MethodInfo* method)); -DO_APP_FUNC(0x039E2290, LCBaseCombat*, MoleMole_BaseEntity_GetLogicCombatComponent_1, (BaseEntity* __this, MethodInfo* method)); +// should be 'op_Implicit' not 'get_value' +DO_APP_FUNC(0x0228EB70, float, MoleMole_SafeFloat_get_Value, (SafeFloat safeFloat, MethodInfo* method)); +// should be 'op_Implicit' not 'set_value' +DO_APP_FUNC(0x0228EC70, SafeFloat, MoleMole_SafeFloat_set_Value, (float value, MethodInfo* method)); -DO_APP_FUNC(0x035CC430, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035AC7B0, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method)); -DO_APP_FUNC(0x035C0AA0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method)); -DO_APP_FUNC(0x035C4B00, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035BE810, Vector3, MoleMole_BaseEntity_GetRelativePosition, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035B1EF0, Vector3, MoleMole_BaseEntity_GetForward, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035D4BA0, Vector3, MoleMole_BaseEntity_GetForwardFast, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035C08A0, Vector3, MoleMole_BaseEntity_GetRight, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035CB210, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035D5B30, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035C7A50, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x039E22C0, VCBaseMove*, MoleMole_BaseEntity_GetMoveComponent_1, (BaseEntity* __this, MethodInfo* method)); // double check +DO_APP_FUNC(0x0596AFF0, LCBaseCombat*, MoleMole_BaseEntity_GetLogicCombatComponent_1, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC_METHODINFO(0x099D4410, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo); -DO_APP_FUNC(0x035C3850, List_1_MoleMole_BaseComponent_*, MoleMole_BaseEntity_GetAllLogicComponents, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x0187FDC0, GameObject*, MoleMole_BaseEntity_get_gameObject, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x035ACC70, GameObject*, MoleMole_BaseEntity_get_rootGameObject, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC_METHODINFO(0x096EAD20, MoleMole_BaseEntity_GetMoveComponent_1__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096EC0B8, MoleMole_BaseEntity_GetLogicCombatComponent_1__MethodInfo); -DO_APP_FUNC(0x01BF68A0, BaseEntity*, MoleMole_EntityManager_GetLocalAvatarEntity, (MoleMole_EntityManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x031ACE30, String*, MoleMole_BaseEntity_ToStringRelease, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x03180C10, void, MoleMole_BaseEntity_SetRelativePosition, (BaseEntity* __this, Vector3 position, bool forceSyncToRigidbody, MethodInfo* method)); +DO_APP_FUNC(0x0319D8B0, void, MoleMole_BaseEntity_SetAbsolutePosition, (BaseEntity* __this, Vector3 abpos, bool forceSyncToRigidbody, MethodInfo* method)); +DO_APP_FUNC(0x031AA160, Vector3, MoleMole_BaseEntity_GetAbsolutePosition, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x0318A430, Vector3, MoleMole_BaseEntity_GetRelativePosition, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x03197170, Vector3, MoleMole_BaseEntity_GetForward, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x0319BCC0, Vector3, MoleMole_BaseEntity_GetForwardFast, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x03187C30, Vector3, MoleMole_BaseEntity_GetRight, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x03185DC0, Vector3, MoleMole_BaseEntity_GetUp, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x031A5120, bool, MoleMole_BaseEntity_IsActive, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x031AFEE0, Rigidbody*, MoleMole_BaseEntity_GetRigidbody, (BaseEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x01BF4E50, CameraEntity*, MoleMole_EntityManager_GetMainCameraEntity, (MoleMole_EntityManager* __this, MethodInfo* method)); -DO_APP_FUNC(0x01BEB030, BaseEntity*, MoleMole_EntityManager_GetValidEntity, (MoleMole_EntityManager* __this, uint32_t runtimeID, MethodInfo* method)); -DO_APP_FUNC(0x01BF2D60, bool, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, uint32_t specifiedRuntimeID, MethodInfo* method)); -DO_APP_FUNC(0x01C02800, bool, MoleMole_EntityManager_IsCachedEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, MethodInfo* method)); -DO_APP_FUNC(0x01BF01F0, List_1_MoleMole_BaseEntity_*, MoleMole_EntityManager_GetEntities, (MoleMole_EntityManager* __this, MethodInfo* method)); -DO_APP_FUNC(0x044B8970, Bounds, Utils_4_GetBounds, (GameObject* go, MethodInfo* method)); +// type should be 'MoleMole_VCCharacterCombat' not 'MoleMole_VCBaseMove' +// function name should be 'GetVisualCombatComponent' not 'GetMoveComponent' +DO_APP_FUNC(0x0596AEC0, VCBaseMove*, MoleMole_BaseEntity_GetMoveComponent_1, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC_METHODINFO(0x099DBAE8, MoleMole_BaseEntity_GetMoveComponent_1__MethodInfo); + +DO_APP_FUNC(0x03188270, List_1_MoleMole_BaseComponent_*, MoleMole_BaseEntity_GetAllLogicComponents, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x01E3E4F0, GameObject*, MoleMole_BaseEntity_get_gameObject, (BaseEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x031A3550, GameObject*, MoleMole_BaseEntity_get_rootGameObject, (BaseEntity* __this, MethodInfo* method)); + +// type should be 'MoleMole_AvatarEntity' not 'MoleMole_BaseEntity' +DO_APP_FUNC(0x02F5E1C0, BaseEntity*, MoleMole_EntityManager_GetLocalAvatarEntity, (MoleMole_EntityManager* __this, MethodInfo* method)); + +DO_APP_FUNC(0x02F56C80, CameraEntity*, MoleMole_EntityManager_GetMainCameraEntity, (MoleMole_EntityManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x02F682B0, BaseEntity*, MoleMole_EntityManager_GetValidEntity, (MoleMole_EntityManager* __this, uint32_t runtimeID, MethodInfo* method)); +// should be: DO_APP_FUNC(0x02F5F490, void, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager * __this, bool entity, MethodInfo * method)); +DO_APP_FUNC(0x02F5F490, bool, MoleMole_EntityManager_RemoveEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, uint32_t specifiedRuntimeID, MethodInfo* method)); +DO_APP_FUNC(0x02F60A10, bool, MoleMole_EntityManager_IsCachedEntity, (MoleMole_EntityManager* __this, BaseEntity* entity, MethodInfo* method)); +DO_APP_FUNC(0x02F65570, List_1_MoleMole_BaseEntity_*, MoleMole_EntityManager_GetEntities, (MoleMole_EntityManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x045E15B0, Bounds, Utils_4_GetBounds, (GameObject* go, MethodInfo* method)); // Modify | RyujinZX#6666 -DO_APP_FUNC(0x00C6C780, void, MoleMole_HumanoidMoveFSM_LateTick, (HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method)); +DO_APP_FUNC(0x0116C440, void, MoleMole_HumanoidMoveFSM_LateTick, (HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method)); -DO_APP_FUNC(0x01DD2070, bool, MoleMole_ScenePropManager_GetTreeTypeByPattern, (MoleMole_ScenePropManager* __this, String* pattern, MoleMole_Config_TreeType__Enum* treeType, MethodInfo* method)); +DO_APP_FUNC(0x013B7790, bool, MoleMole_ScenePropManager_GetTreeTypeByPattern, (MoleMole_ScenePropManager* __this, String* pattern, MoleMole_Config_TreeType__Enum* treeType, MethodInfo* method)); +DO_APP_FUNC(0x018C5CE0, void, MoleMole_NetworkManager_RequestHitTreeDropNotify, (MoleMole_NetworkManager* __this, Vector3 position, Vector3 hitPostion, MoleMole_Config_TreeType__Enum treeType, MethodInfo* method)); +// function should be 'MoleMole_TimeUtil_get_LocalNowMsTimeStamp' +DO_APP_FUNC(0x0266BFF0, uint64_t, MoleMole_TimeUtil_get_NowTimeStamp, (MethodInfo* method)); -DO_APP_FUNC(0x00C3F160, void, MoleMole_NetworkManager_RequestHitTreeDropNotify, (MoleMole_NetworkManager* __this, Vector3 position, Vector3 hitPostion, MoleMole_Config_TreeType__Enum treeType, MethodInfo* method)); -DO_APP_FUNC(0x0291FEF0, uint64_t, MoleMole_TimeUtil_get_NowTimeStamp, (MethodInfo* method)); - -DO_APP_FUNC(0x01F5BA10, bool, MoleMole_LoadingManager_IsLoaded, (MoleMole_LoadingManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x00AB5620, bool, MoleMole_LoadingManager_IsLoaded, (MoleMole_LoadingManager* __this, MethodInfo* method)); // Thanks to | RyujinZX -DO_APP_FUNC(0x01337F70, void, MoleMole_LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method)); +DO_APP_FUNC(0x00D87B20, void, MoleMole_LCAbilityElement_ReduceModifierDurability, (LCAbilityElement* __this, int32_t modifierDurabilityIndex, float reduceDurability, Nullable_1_Single_ deltaTime, MethodInfo* method)); -DO_APP_FUNC(0x01FF2880, BaseEntity*, MoleMole_GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method)); +DO_APP_FUNC(0x023B07C0, BaseEntity*, MoleMole_GadgetEntity_GetOwnerEntity, (GadgetEntity* __this, MethodInfo* method)); -DO_APP_FUNC(0x02E826A0, void, MoleMole_InLevelMapPageContext_ZoomMap, (InLevelMapPageContext* __this, float value, MethodInfo* method)); -DO_APP_FUNC(0x02EC7730, void, MoleMole_InLevelMapPageContext_UpdateView, (InLevelMapPageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x034D77C0, void, MoleMole_InLevelMapPageContext_ZoomMap, (InLevelMapPageContext* __this, float value, MethodInfo* method)); +DO_APP_FUNC(0x0350F300, void, MoleMole_InLevelMapPageContext_UpdateView, (InLevelMapPageContext* __this, MethodInfo* method)); -DO_APP_FUNC(0x01A36960, bool, MoleMole_UIManager_HasEnableMapCamera, (MoleMole_UIManager* __this, MethodInfo* method)); +DO_APP_FUNC(0x014A97A0, bool, MoleMole_UIManager_HasEnableMapCamera, (MoleMole_UIManager* __this, MethodInfo* method)); -DO_APP_FUNC(0x00E8E700, void, MonoMiniMap_Update, (MonoMiniMap* __this, MethodInfo* method)); -DO_APP_FUNC(0x0635A470, MonoMiniMap*, MonoInLevelMainPage_get_miniMap, (void* __this, MethodInfo* method)); -DO_APP_FUNC(0x024A3570, void, MoleMole_GadgetModule_OnGadgetInteractRsp, (void* __this, GadgetInteractRsp* notify, MethodInfo* method)); -DO_APP_FUNC(0x00A8D650, float, MoleMole_InLevelMainPageContext_get_miniMapScale, (InLevelMainPageContext* __this, MethodInfo* method)); +DO_APP_FUNC(0x016981E0, void, MonoMiniMap_Update, (MonoMiniMap* __this, MethodInfo* method)); +DO_APP_FUNC(0x02CB6CA0, MonoMiniMap*, MonoInLevelMainPage_get_miniMap, (void* __this, MethodInfo* method)); +DO_APP_FUNC(0x0265C390, void, MoleMole_GadgetModule_OnGadgetInteractRsp, (void* __this, GadgetInteractRsp* notify, MethodInfo* method)); +DO_APP_FUNC(0x009E9F50, float, MoleMole_InLevelMainPageContext_get_miniMapScale, (InLevelMainPageContext* __this, MethodInfo* method)); // UnityEngine -DO_APP_FUNC(0x065ECB70, void, RenderSettings_set_fog, (bool value, MethodInfo* method)); -DO_APP_FUNC(0x06621FF0, void, Application_set_targetFrameRate, (int32_t value, MethodInfo* method)); -DO_APP_FUNC(0x06621D80, int32_t, Application_get_targetFrameRate, (MethodInfo* method)); +DO_APP_FUNC(0x058476D0, void, RenderSettings_set_fog, (bool value, MethodInfo* method)); +DO_APP_FUNC(0x05883D80, int32_t, Application_get_targetFrameRate, (MethodInfo* method)); +DO_APP_FUNC(0x05883FE0, void, Application_set_targetFrameRate, (int32_t value, MethodInfo* method)); -DO_APP_FUNC(0x06678780, bool, RectTransformUtility_ScreenPointToLocalPointInRectangle, (void* rect, Vector2 screenPoint, void* cam, Vector2* localPoint, MethodInfo* method)); +DO_APP_FUNC(0x058D7A10, bool, RectTransformUtility_ScreenPointToLocalPointInRectangle, (void* rect, Vector2 screenPoint, void* cam, Vector2* localPoint, MethodInfo* method)); -DO_APP_FUNC(0x06555BA0, Vector3, Transform_get_position, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x065548F0, void, Transform_set_position, (Transform* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x0664E3A0, float, Vector3_Distance, (Vector3 a, Vector3 b, MethodInfo* method)); -DO_APP_FUNC(0x06534FE0, float, Vector2_Distance, (Vector2 a, Vector2 b, MethodInfo* method)); +DO_APP_FUNC(0x057BBE20, Vector3, Transform_get_position, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BAB40, void, Transform_set_position, (Transform* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x058AF880, float, Vector3_Distance, (Vector3 a, Vector3 b, MethodInfo* method)); +DO_APP_FUNC(0x0579FEB0, float, Vector2_Distance, (Vector2 a, Vector2 b, MethodInfo* method)); -DO_APP_FUNC(0x0658F980, void, Cursor_set_visible, (bool value, MethodInfo* method)); -DO_APP_FUNC(0x0658F970, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method)); -DO_APP_FUNC(0x0658F960, bool, Cursor_get_visible, (MethodInfo* method)); +DO_APP_FUNC(0x057E4470, void, Cursor_set_visible, (bool value, MethodInfo* method)); +DO_APP_FUNC(0x057E4460, void, Cursor_set_lockState, (CursorLockMode__Enum value, MethodInfo* method)); +DO_APP_FUNC(0x057E4450, bool, Cursor_get_visible, (MethodInfo* method)); -DO_APP_FUNC(0x064B3A00, void, Rigidbody_set_detectCollisions, (Rigidbody* __this, bool value, MethodInfo* method)); -DO_APP_FUNC(0x064B3A40, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method)); -DO_APP_FUNC(0x064B3740, void, Rigidbody_set_velocity, (Rigidbody* __this, Vector3 value, MethodInfo* method)); +DO_APP_FUNC(0x0571E9A0, void, Rigidbody_set_detectCollisions, (Rigidbody* __this, bool value, MethodInfo* method)); +DO_APP_FUNC(0x0571E9E0, void, Rigidbody_set_isKinematic, (Rigidbody* __this, bool value, MethodInfo* method)); +DO_APP_FUNC(0x0571E8F0, Vector3, Rigidbody_get_velocity, (Rigidbody* __this, MethodInfo* method)); +DO_APP_FUNC(0x0571EA60, void, Rigidbody_set_velocity, (Rigidbody* __this, Vector3 value, MethodInfo* method)); -DO_APP_FUNC(0x06631190, float, Time_get_timeScale, (MethodInfo* method)); -DO_APP_FUNC(0x06631240, void, Time_set_timeScale, (float value, MethodInfo* method)); -DO_APP_FUNC(0x066310B0, float, Time_get_deltaTime, (MethodInfo* method)); +DO_APP_FUNC(0x058922C0, float, Time_get_timeScale, (MethodInfo* method)); +DO_APP_FUNC(0x05892370, void, Time_set_timeScale, (float value, MethodInfo* method)); +DO_APP_FUNC(0x058921E0, float, Time_get_deltaTime, (MethodInfo* method)); -DO_APP_FUNC(0x06594F40, Vector3, Camera_WorldToScreenPoint, (Camera* __this, Vector3 position, MethodInfo* method)); -DO_APP_FUNC(0x06595270, Camera*, Camera_get_main, (MethodInfo* method)); -DO_APP_FUNC(0x065953B0, int32_t, Camera_get_pixelWidth, (Camera* __this, MethodInfo* method)); -DO_APP_FUNC(0x06595360, int32_t, Camera_get_pixelHeight, (Camera* __this, MethodInfo* method)); +DO_APP_FUNC(0x057E98F0, Vector3, Camera_WorldToScreenPoint, (Camera* __this, Vector3 position, MethodInfo* method)); +DO_APP_FUNC(0x057E9C20, Camera*, Camera_get_main, (MethodInfo* method)); +DO_APP_FUNC(0x057E9D60, int32_t, Camera_get_pixelWidth, (Camera* __this, MethodInfo* method)); +DO_APP_FUNC(0x057E9D10, int32_t, Camera_get_pixelHeight, (Camera* __this, MethodInfo* method)); -DO_APP_FUNC(0x06533CA0, int32_t, Screen_get_width, (MethodInfo* method)); -DO_APP_FUNC(0x06533C30, int32_t, Screen_get_height, (MethodInfo* method)); +DO_APP_FUNC(0x0579EB70, int32_t, Screen_get_width, (MethodInfo* method)); +DO_APP_FUNC(0x0579EB00, int32_t, Screen_get_height, (MethodInfo* method)); -DO_APP_FUNC(0x0664CF50, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method)); +DO_APP_FUNC(0x058AE2D0, bool, Behaviour_get_isActiveAndEnabled, (Behaviour* __this, MethodInfo* method)); -DO_APP_FUNC(0x066306D0, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method)); -DO_APP_FUNC(0x066309A0, Vector3, Quaternion_get_eulerAngles, (Quaternion__Boxed* __this, MethodInfo* method)); -DO_APP_FUNC(0x06555C70, Quaternion, Transform_get_rotation, (Transform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06552F50, Rect, RectTransform_get_rect, (RectTransform* __this, MethodInfo* method)); -DO_APP_FUNC(0x06677BD0, float, Canvas_get_scaleFactor, (/*Canvas**/void* __this, MethodInfo* method)); +DO_APP_FUNC(0x05891610, Vector3, Quaternion_ToEulerAngles, (Quaternion rotation, MethodInfo* method)); +DO_APP_FUNC(0x05891AD0, Vector3, Quaternion_get_eulerAngles, (Quaternion__Boxed* __this, MethodInfo* method)); +DO_APP_FUNC(0x057BBEF0, Quaternion, Transform_get_rotation, (Transform* __this, MethodInfo* method)); +DO_APP_FUNC(0x057B91C0, Rect, RectTransform_get_rect, (RectTransform* __this, MethodInfo* method)); +DO_APP_FUNC(0x058D6E60, float, Canvas_get_scaleFactor, (/*Canvas**/void* __this, MethodInfo* method)); -DO_APP_FUNC(0x00935700, void, LevelTimeManager_SetInternalTimeOfDay, (/*LevelTimeManager**/void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method)); +DO_APP_FUNC(0x00E3D750, void, LevelTimeManager_SetInternalTimeOfDay, (/*LevelTimeManager**/void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method)); // Singletons -DO_APP_FUNC(0x05189A90, void*, Singleton_GetInstance, (MethodInfo* method)); -DO_APP_FUNC_METHODINFO(0x096EA3B0, Singleton_1_MoleMole_MapModule__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096EA470, Singleton_1_MoleMole_LoadingManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E5D68, Singleton_1_MoleMole_EntityManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E6D98, Singleton_1_InteractionManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E5C20, Singleton_1_MoleMole_UIManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E9868, Singleton_1_MoleMole_ItemModule__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E7148, Singleton_1_MoleMole_EventManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E5C58, Singleton_1_MoleMole_PlayerModule__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E5EE8, Singleton_1_MoleMole_MapManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E8A10, Singleton_1_MoleMole_ScenePropManager__get_Instance__MethodInfo); -DO_APP_FUNC_METHODINFO(0x096E63A0, Singleton_1_MoleMole_NetworkManager__get_Instance__MethodInfo); +DO_APP_FUNC(0x06074140, void*, Singleton_GetInstance, (MethodInfo* method)); +DO_APP_FUNC_METHODINFO(0x099D0B08, Singleton_1_MoleMole_MapModule__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D2620, Singleton_1_MoleMole_LoadingManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099CFF50, Singleton_1_MoleMole_EntityManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D3190, Singleton_1_InteractionManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099CFF78, Singleton_1_MoleMole_UIManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099DDF00, Singleton_1_MoleMole_ItemModule__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099CFF60, Singleton_1_MoleMole_EventManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D0570, Singleton_1_MoleMole_PlayerModule__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D4130, Singleton_1_MoleMole_MapManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D1CA8, Singleton_1_MoleMole_ScenePropManager__get_Instance__MethodInfo); +DO_APP_FUNC_METHODINFO(0x099D49D0, Singleton_1_MoleMole_NetworkManager__get_Instance__MethodInfo); diff --git a/cheat-library/src/appdata/il2cpp-types-ptr.h b/cheat-library/src/appdata/il2cpp-types-ptr.h index dfe6565..c62d5c4 100644 --- a/cheat-library/src/appdata/il2cpp-types-ptr.h +++ b/cheat-library/src/appdata/il2cpp-types-ptr.h @@ -5,14 +5,14 @@ // * IL2CPP application-specific type definition addresses // ****************************************************************************** -DO_TYPEDEF(0x0967B618, Byte); -DO_TYPEDEF(0x09688C08, GameManager); -DO_TYPEDEF(0x0967B508, Int32); +DO_TYPEDEF(0x09961DA8, Byte); +DO_TYPEDEF(0x0996F680, GameManager); +DO_TYPEDEF(0x09961C98, Int32); -// v 2.7 -DO_TYPEDEF(0x0968AD88, LCChestPlugin); -DO_TYPEDEF(0x09688FD8, SceneTreeObject); -DO_TYPEDEF(0x0969D1F8, MoleMole_ActorModifier); +// v 2.8 +DO_TYPEDEF(0x099843E8, LCChestPlugin); +DO_TYPEDEF(0x0997B320, SceneTreeObject); +DO_TYPEDEF(0x09977D70, MoleMole_ActorModifier); //// v 2.6 //DO_SINGLETONEDEF(0x0B3442D8, Singleton_1_MoleMole_MapModule_); diff --git a/cheat-library/src/appdata/il2cpp-types.h b/cheat-library/src/appdata/il2cpp-types.h index fd5b020..b5f7ebc 100644 --- a/cheat-library/src/appdata/il2cpp-types.h +++ b/cheat-library/src/appdata/il2cpp-types.h @@ -4160,8 +4160,8 @@ namespace app { // Entity fields struct __declspec(align(8)) BaseEntity__Fields { struct Dictionary_2_System_UInt32_AIPerceptionInfo_* _aiPerceptionDic; - struct ConfigEntity* jsonConfig; - struct EntityExcelConfig* excelConfig; + struct Config_ConfigEntity* jsonConfig; + struct Config_EntityExcelConfig* excelConfig; uint32_t _runtimeID_k__BackingField; uint32_t _preRuntimeID_k__BackingField; uint32_t _configID_k__BackingField; @@ -4175,6 +4175,8 @@ namespace app { struct String* alias; int32_t order; bool isForceClientSynced; + int32_t LBLOKJMMJJP; + bool MAHNGBKEEAD; struct ComponentManager* _logicComponentManager; struct ComponentManager* _visualComponentManager; bool _isInited; @@ -4184,12 +4186,12 @@ namespace app { struct EntityQueryIndex* _queryIndex; struct AbilityComponentProxy* _abilityProxy; struct TokenManager* _tokenMgr; - VisionType__Enum _MCNHBKKJDCL_k__BackingField; + VisionType__Enum _NLFDIGCIFIA_k__BackingField; bool _createDuringReconnectingSceneInitFinish_k__BackingField; bool _isCleared; bool _checkRemoveifCached_k__BackingField; bool _hasAddedInitialComponents; - float BNPPLOPNGLD; + float HLJJGAOMCGC; bool _isEntityReady; struct Action_1_BaseEntity_* onComponentInitPostCallback; struct Action_1_BaseEntity_* onEntityReadyPreCallback; @@ -4228,8 +4230,8 @@ namespace app { EntityType__Enum_1 entityType; bool _isAuthority; uint32_t authorityPeerId; - bool FEFIECBENHD; - bool MGNKEDPIJKG; + bool LODAGLOBAMF; + bool DEMKIIJDAAC; struct HashList_1_BaseComponent_* _componentsForEntityTickManager; float _lastTickTime_k__BackingField; struct List_1_BaseEntity_BaseEntity_ComponentInitNotifyData_* _notifyListOnComponentInit; @@ -4243,13 +4245,13 @@ namespace app { struct Action_3_UnityEngine_TickState_Boolean_Boolean_* onAnimatorTickStateChange; struct HashList_1_IRenderable_* _extraRenderers; struct HashSet_1_IRequestOwnerEntityNoPauseTask_* _noPauseTaskRequests; - bool PNBKIOPIIKA; - bool IMKKHNIODFJ; + bool AHKEFAMPGBJ; + bool KPEBDCGGBGE; TickState__Enum _currentAnimatorTickState; struct EntityTickBalanceProxy* _tickBalanceProxy; bool isKinematicRigidbody; - bool _PNECEMJLAHN_k__BackingField; - bool _IFOBCICMOJM_k__BackingField; + bool _bIgnoreIntervalTick_k__BackingField; + bool _AFKDABPOMLB_k__BackingField; float __fullTickSqrMag_k__BackingField; int32_t _greaterToDisableInterval_k__BackingField; struct Func_1_Single_* _getBalanceTickDeltaTimeHandler; @@ -4311,18 +4313,18 @@ namespace app { struct FixedFloatStack* _massRatio; bool _enableSetPostiion; struct Vector3 _lastPosInParent; - struct Collider__Array* LIFJOPNILOC; - int32_t LPNNDJDEGMI; - int32_t GFMAMAGCBNE; - int32_t IPKBDFGENOE; - bool _isForceDisableEffect; - bool _isActorHided; - bool _isRoomHided; - struct Vector3 LMBBHMDGPGE; - struct Quaternion BFHGMCMIANA; - float LMACHNHENOB; - bool FJBBJDDFOIA; - struct Vector3 PDCOCJPHGAK; + struct Collider__Array* JFCGANLNHPN; + int32_t JJJMCJIFFBM; + int32_t LNECJMABKIH; + int32_t EICAFOKBIPN; + bool KJFPMNMJPJA; + bool CLFLKBNIMOK; + bool OECPMFJFHDB; + struct Vector3 IHBCGPKALHL; + struct Quaternion JOCEPMPLAAG; + float JDCJJGPMLEN; + bool ONMFCCDOJHO; + struct Vector3 PPAFPACBENC; struct RuntimeAnimatorController* _authorityRuntimeAnimatorController; struct RuntimeAnimatorController* _remoteRuntimeAnimatorController; uint32_t _authorityRuntimeAnimatorHandler; @@ -4909,12 +4911,12 @@ namespace app { struct GameObject* playerIndicator; struct RectTransform* playerIndicatorParent; struct MonoMapCursor* _monoMapCursor; - struct InputField* _customMarkTipsInputField; + struct MonoInputFieldExtention* _customMarkTipsInputField; struct MonoMaterialItemRow* _resin; struct RectTransform* _cycleDungeonLookupGrp; struct MonoUIContainer* _cycleDungeonLookupToggle; struct Text* _cycleDungeonLookupText; - struct List_1_Queue_1_MoleMole_MonoMapMark_* KEIOHDAFIOC; + struct List_1_Queue_1_MoleMole_MonoMapMark_* LMNPEFNMFIJ; struct GameObject* _exploreDegreeGrp; struct Text* _exploreArea; struct Text* _exploreDegree; @@ -4933,7 +4935,7 @@ namespace app { struct Button_1* homeworldVisitorBtn; struct Text* _homeworldVisitorLabel; struct MonoUIContainer* _homeworldVisitorPS4Container; - struct Animator* NFGDFFBFOCF; + struct Animator* _cursorAnimator; }; struct MonoInLevelMapPage { @@ -5011,9 +5013,10 @@ namespace app { uint32_t _dungeonIconTipsHandle; struct GameObject* _dungeonIconTips; struct GeneralMarkData* generalMapData; - bool NLCJDMBMKPC; + bool ADIBPKEGJOK; int32_t floor; bool _up; + struct UnityAction_1_UnityEngine_RectTransform_* OODIIHNIPFN; struct String* _currEffectName; struct ParticleSystem* _currEffect; float markAreaRadius; @@ -5094,7 +5097,7 @@ namespace app { EnterGotoByPortal = 0x00000008, EnterSelfHome = 0x00000009, EnterOtherHome = 0x0000000a, - FCBBIIAOAGG = 0x0000000b, + EnterGotoRecreate = 0x0000000b, }; struct UInt32__Array { @@ -5257,6 +5260,7 @@ namespace app { Quick = 0x00000002, DirectlySetPos = 0x00000003, QuickWithoutPaimonReminder = 0x00000004, + QuickV2 = 0x00000005, }; enum class MoleMole_NotifyTypes__Enum : int32_t { @@ -6259,27 +6263,28 @@ namespace app { struct String* _activityLimitRegion; struct String* _homeworldLimitRegion; uint32_t _checkScenePointTimer; - uint32_t _HENAPPPHGFA_k__BackingField; - uint32_t _IDKLCPBKKMC_k__BackingField; - uint32_t _HAIMNNOMKFE_k__BackingField; - uint32_t _BEGGBAFACOG_k__BackingField; - uint32_t _LJCHGOJHIBN_k__BackingField; - uint32_t _CEJAIKKNKEF_k__BackingField; + uint32_t _OOBPJNGLEFD_k__BackingField; + uint32_t _MKEGCMJMGPN_k__BackingField; + uint32_t _POPAMGIKPFK_k__BackingField; + uint32_t _NADDOMFDIMH_k__BackingField; + uint32_t _JEKJBGCPAPP_k__BackingField; + uint32_t _BILGKHAIEPL_k__BackingField; bool _isTowerUnlocked_k__BackingField; struct List_1_System_UInt32_* dungeonDataLevelConfigIdList; struct Nullable_1_UnityEngine_Vector3_ curClientAvatarRebornPoint; struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_System_UInt32_* toBeExploredDungeonEntryDic; struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_System_UInt32_* canNotBeExploredDungeonEntryDic; - struct HashSet_1_System_UInt32_* PGNGEOMEDEI; + struct HashSet_1_System_UInt32_* HPNBAKBANGB; struct Dictionary_2_System_UInt32_MoleMole_Config_ConfigScene_* _cfgSceneDic; struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_Config_ConfigScenePoint_* _cfgPointDic; struct List_1_System_UInt32_* _currTransPointList; struct List_1_System_UInt32_* _currFunctionalPointList; - struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_LJADJIPKKIK_* CJJCAAMGCOM; + struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_LPANCMBHIPC_* DKHELEOJLPD; uint32_t _activityPlayId_k__BackingField; float MAX_IN_LIMIT_REGION_TIME; float _startInLimitRegionTime; uint32_t _homeworldRegionSceneId_k__BackingField; + uint32_t _FNGKDENFBGH_k__BackingField; struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_MoleMole_MapModule_CityData_* _cityDataDic; struct Dictionary_2_System_UInt32_Dictionary_2_System_UInt32_MoleMole_MapModule_MoleMole_MapModule_WorldAreaData_* _worldAreaDataDic; struct Dictionary_2_System_UInt32_System_UInt32_* _areaId2ExplorePointDic; @@ -6294,7 +6299,7 @@ namespace app { struct HashSet_1_System_UInt32_* _activatedDungeonWayPoint; bool _dungeonEntryOpen; struct Dictionary_2_System_UInt32_System_Boolean_* _sceneUnlockDic; - struct Dictionary_2_System_UInt32_List_1_System_UInt32_* _sceneTagList; + struct Dictionary_2_System_UInt32_List_1_System_UInt32_* FOAIHHEHFHF; struct List_1_MoleMole_MapModule_MoleMole_MapModule_ScannerInfo_* _scannerInfoList; struct List_1_MoleMole_MapAreaMistData_* _mistDataList; struct List_1_MoleMole_MapAreaMistData_* _openMistDataList; @@ -7225,9 +7230,9 @@ namespace app { bool muteElementHurt; struct String* onHitEffectName; uint32_t attackTimeStamp; - struct Nullable_1_MoleMole_Config_TargetType_ targetType; + struct Nullable_1_MoleMole_Config_TargetType_ targetType; AttackResult_AttackSpecific__Enum attackType; - struct AttackResult_HitCollsion hitCollision; + struct AttackResult_HitCollsion hitCollision; HitBoxType__Enum hitPosType; struct String* animEventId; struct String* attackTag; @@ -7246,7 +7251,7 @@ namespace app { ElementReactionType__Enum elementReactionType; struct ConfigAttackProperty* _attackerAttackProperty; void* modifiedAttackProperty; - float AMJDLLOENNI; + float BNKPGFGKGBF; ElementType__Enum _origElementType; float _origElementDurability; float endureDelta; @@ -7259,11 +7264,11 @@ namespace app { float bulletFlyTime; struct ConfigBulletWane* bulletWane; int32_t rejectState; - struct SafeUInt32 AADHIMJJCHK; - struct SafeUInt32 CMNNNKEGKFI; - struct SafeUInt32 KBDMDNEKOLK; - struct SafeUInt32 HLIIHHNHHNP; - struct SafeUInt32 EMBFNJJJPNG; + struct SafeUInt32 MFFILNNNLDL; + struct SafeUInt32 EAGOJOOBMJO; + struct SafeUInt32 AMJNKBHPBDE; + struct SafeUInt32 OCFODICMFFH; + struct SafeUInt32 EDOGNDNPJDB; struct Vector3 hitRetreatDir; }; @@ -8997,7 +9002,6 @@ namespace app { struct MJNGIMLAOFN* _spriteLoadProxy; }; - //BLDKFDKIPLL__Fields struct BasePageContext__Fields { struct BaseContext__Fields _; struct List_1_BaseDialogContext_* dialogContextList; @@ -9035,31 +9039,31 @@ namespace app { struct Vector3 _customMarkWorldPos; struct String* _customMarkTitle; MoleMole_Config_MarkIconType__Enum _customMarktype; - bool KHDDHMIGLMH; - bool AGABBDCCGPJ; - bool GBCMNPNHCBH; + bool IFJIPEEPJJI; + bool OKNKCOJCKLN; + bool OGKHNHIHOFP; uint32_t _customMarkTrackMonsterID; uint32_t _customMarkTrackQuestID; - MoleMole_CustomMarkTrackReasonType__Enum NHIIHLLCJAI; + MoleMole_CustomMarkTrackReasonType__Enum _customMarkTrackReasonType; bool _isAdventureHandbookOpened; float _slideValue; struct MoleMole_ResinViewComponent* _resinComp; struct MoleMole_ZoomAudioComponent* _zoomAudioComp; struct Dictionary_2_MoleMole_MonoMapMark_UnityEngine_GameObject_* trackingIndictor; - struct Coroutine* ELELLFBCPFM; - bool _NJHAEHLFGNP_k__BackingField; - bool JNBIIIHNPOL; - float FMNNMKICFCN; - struct Vector2 JIEJCHOKMCH; - float EGDCGHPCIGD; - float NNGIPKNIHHL; - struct Vector2 MABOFOAAIDK; - float OOOKLDFFEOK; - bool DAMOBDBBBPD; + struct Coroutine* JFIOMECANNL; + bool _LFIJLCKEKMP_k__BackingField; + bool DJMGCGDBLHD; + float PKBLMNBGCLL; + struct Vector2 ENLNCLPCFHE; + float CPFIIODOHKA; + float MOJEDIFFFIJ; + struct Vector2 ADLDFCKPLGI; + float EMOHKNNFADF; + bool FHBMGCDNMBE; struct Vector2 _currRectPos; struct Vector2 _currRectSize; struct Dictionary_2_System_UInt32_UnityEngine_GameObject_* _companionIndicators; - struct List_1_System_UInt32_* EDDEMHGPOBD; + struct List_1_System_UInt32_* GPLMGCNDKOP; struct GameObject* _playerIndicator; struct Vector2 _newPos; struct Dictionary_2_System_UInt32_UnityEngine_GameObject_* _questAreaMarkDic; @@ -9085,14 +9089,16 @@ namespace app { MoleMole_InLevelMapPageContext_MoleMole_InLevelMapPageContext_MarkTipsContentType__Enum _markTipsContentType; struct List_1_MoleMole_BagItem_* _reward; struct List_1_MoleMole_Config_IdCountStrConfig_* _rewardPreviewList; - float BCHEAHAGENA; - uint32_t _dungeonEntryPointID; + float IOHJENGJBFM; + uint32_t HHIHNGGOIFP; struct MoleMole_Config_DungeonEntry* _selectedDungeonEntry; MoleMole_InLevelMapPageContext_MoleMole_InLevelMapPageContext_DungeonEntryState__Enum _selectDungeonEntryState; struct Coroutine* _updateDungeonCooldownTipsCoroutine; struct MoleMole_ItemTipsDialogHelper _itemTipsHelper; struct Coroutine* _updateFarmFieldCoroutine; struct GameObject* _newMaxLevelGO; + bool IICOGPJKJKL; + bool LIGALMCPKNI; struct MoleMole_RewardPreviewComponent* _moonfinTrialRewardPreviewComponent; struct Coroutine* _updateReviveCooldownCoroutine; int32_t _selectedMapTagIndex; @@ -9101,8 +9107,8 @@ namespace app { int32_t _customMarkCount; struct MoleMole_Config_MarkIconType__Enum__Array* _customMarkIcons; struct Vector2 _currMapPos; - struct Dictionary_2_System_UInt32_List_1_MoleMole_InLevelMapPageContext_BKKFEMNNBMG_* LOLNIIFFJON; - int32_t MAPJENKCNNE; + struct Dictionary_2_System_UInt32_List_1_MoleMole_InLevelMapPageContext_EACHJPIDJND_* IOLJGOCGPHB; + int32_t GBKLEGIFLAI; }; struct InLevelMapPageContext { @@ -9138,8 +9144,8 @@ namespace app { struct List_1_SelectItemParam_* _selectParamList; struct Action* _updateGrpSelectBottom; struct List_1_System_UInt32_* _selectDialogIdList; - bool EHOPIEOHBIJ; - bool IEFCCCNLHFG; + bool OBDPLKKDFBN; + bool GGFOHLGGCHI; struct Action* _onFreeClick; float _interactableTime; float _autoTalkInteractableTime; @@ -9456,26 +9462,26 @@ namespace app { struct BaseMoveSyncPlugin__Fields { struct BaseComponentPlugin__Fields _; - struct JEACJCEKBMO__Array* JFHIPAJNCEH; - struct MoveSyncTask moveSyncTask; - int32_t EBAFCLPDNOA; - struct PAGLNCJFJAB* EGOGHHCEKBI; - uint32_t BMEKGDMGLDM; - float BPNLDBMLCPG; - int32_t IMGAJKMBICM; - int32_t JFNJPLBNEAH; - uint64_t LDHCFEHMENK; - struct MoveSyncTask PKJLBFAGDPG; - float KHDFGOBLNOH; - bool BAHIDGDKDPG; - bool MPNMLBJNIJK; - float BPNMMCBBPDO; - uint32_t DANEEGOIAOE; - struct HBGKJGFOBDG* HHAPKOKPBPN; - bool KCODNABDGKC; - uint64_t PHBBAMKNKEH; - uint32_t JEKLOEMBBJB; - struct MoveSyncTask GPOABHBBEGL; + struct Proto_MotionInfo__Array* _motion; + struct MoveSyncTask _syncTask; + MotionState__Enum _prevMotionState; + struct MoleMole_VCBaseMove* _ownerMove; + uint32_t _lod; + float _lastSendSyncTaskTime; + int32_t _fixedTickCount; + int32_t _intervalVelocityCheckCount; + uint64_t _intervalVelocityCheckBits; + struct MoveSyncTask _lastSendMoveSyncTask; + float _intervalTime; + bool _canIgnoreTickSync; + bool _reliableSendWhenSameComparablePart; + float _reliableSendWhenSameComparablePartTime; + uint32_t _lastSendReliabledPacketSeq; + struct MoleMole_LCSyncMotion* _lcSyncMotion; + bool _hasInitializedSyncMove; + uint64_t _lastHandledTaskTimeStamp; + uint32_t _lastHandledReliableTaskSeq; + struct MoveSyncTask tempPeekGetMoveSyncTask; }; struct BaseMoveSyncPlugin { @@ -9485,17 +9491,17 @@ namespace app { }; struct __declspec(align(8)) ADOCDLJKPGF__Fields { - struct Dictionary_2_UniRx_Tuple_2_Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1_* PKPGAJELFJP; - struct Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1__2* EPNNKHDPMKN; - struct Dictionary_2_System_UInt32_Dictionary_2_System_Type_ADOCDLJKPGF_NCKPKBOOPAE_* NHLMDJCPBOI; - struct List_1_NLHGPLIGNNJ_* OCCMKONNAFF; - struct List_1_NLHGPLIGNNJ_* ODMMGNLPPKO; - struct List_1_NLHGPLIGNNJ_* FMJOCJEEDNA; - struct Dictionary_2_System_Type_MoleMole_IndexHandleObjectList_1_* BGCNGICCMNG; - bool IKIHCFFFACC; - struct List_1_UniRx_Tuple_5__1* AOENJPJCHCP; - int32_t AANDAKJMONI; - bool GEPOJPNFMKO; + struct Dictionary_2_System_ValueTuple_2_Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1_* JJHMKFJMIFN; + struct Dictionary_2_System_UInt32_MoleMole_IndexHandleObjectList_1__2* EABFBNIMFPP; + struct Dictionary_2_System_UInt32_Dictionary_2_System_Type_MoleMole_EventManager_ListenerRegistry_* _runtimeId2ListenerDic; + struct List_1_MoleMole_BaseEvent_* _queuedFrameEvents; + struct List_1_MoleMole_BaseEvent_* _queuedNextEvents; + struct List_1_MoleMole_BaseEvent_* _queuedNextEventsToAdd; + struct Dictionary_2_System_Type_MoleMole_IndexHandleObjectList_1_* _evtListeners; + bool _isStopped; + struct List_1_System_ValueTuple_5__1* IEJKHEKFBII; + int32_t BGHBKPIABOK; + bool _dispatchPaused; }; struct MoleMole_EventManager { @@ -9509,14 +9515,15 @@ namespace app { struct Action_3_BaseEntity_Config_AddGlobalValue_ActorAbility_* _addGlobalValueHandlerClosureDelegate; struct Action_3_BaseEntity_Config_SetGlobalValue_ActorAbility_* _setGlobalValueHandlerClosureDelegate; struct Action_3_BaseEntity_Config_MultiplyGlobalValue_ActorAbility_* _multiplyGlobalValueHandlerClosureDelegate; - struct Action_4_BaseEntity_Config_SetTargetNumToGlobalValue_ActorAbility_Single_* BFCGFMBGIHB; - struct Action_4_BaseEntity_String_Single_GJKAGOLAHKK_* OJKOMJEBCLM; + struct Action_4_BaseEntity_Config_MultiplyGlobalValue_ActorAbility_Single_* MEEAPCINNBE; + struct Action_4_BaseEntity_String_Single_CPKJHKOJDIF_* LLAIOCNHNPM; struct List_1_MonoEffectProxyHandle_* _effectProxyListCache; struct List_1_MonoEffectProxyHandle_* _effectProxyListCacheForChangFollowDampTime; struct List_1_UnityEngine_Vector3_* _pushedPosList; struct LCAbility* _owner; struct List_1_ActorAbility_* _appliedAbilities; struct Dictionary_2_System_UInt32_System_Int32_* _appliedAbilitiesIndex; + struct Dictionary_2_System_String_ActorAbility_* CKDBIBGCPOB; uint32_t nextValidAbilityID; struct List_1_ActorModifier_* _appliedModifiers; struct List_1_ActorModifier_* _deadModifiers; @@ -9556,7 +9563,7 @@ namespace app { struct Dictionary_2_System_Int32_List_1_BaseAbilityMixin_* _listenEventMixins; struct List_1_BaseAbilityMixin_* _addListenEventMixins; struct List_1_BaseAbilityMixin_* _removeListenEventMixins; - int32_t ECLCGLCLPPD; + int32_t CGNCPHPNGDB; bool IsImmuneDebuff; bool _isDuringInitAbility_k__BackingField; bool _isDuringChangeAbility_k__BackingField; @@ -9592,7 +9599,7 @@ namespace app { FAIL_COOLDOWN = 0x0000000c, }; - struct __declspec(align(8)) GMNHONOINDB__Fields { + struct __declspec(align(8)) MoleMole_CharacterModule__Fields { struct Dictionary_2_System_UInt32_Dictionary_2_System_Int32_List_1_CFKBGDNLDGP_* MFEPPBMCAGP; }; @@ -9680,64 +9687,68 @@ namespace app { struct BEKFICFOHKL__Fields fields; }; - struct NEOGDEDNDHF__Fields { - struct GMNHONOINDB__Fields _; + struct MoleMole_PlayerModule__Fields { + struct MoleMole_CharacterModule__Fields _; struct AccountDataItem* _accountData_k__BackingField; - struct HBFICKPEILE* openState; + struct PlayerOpenStateData* openState; uint32_t curWorldType; uint32_t curSceneID; - struct OGNHDKJOONG* _curSceneConfig; - bool isSereverLevelPaused; + struct Config_SceneExcelConfig* _curSceneConfig; + bool isServerLevelPaused; uint32_t extraAbilityId; bool extraAbilityEnable; uint64_t extraAbilityUseTime; - float AJMFBGNGPIB; - float KJKAPGLEELE; - struct List_1_UniRx_Tuple_3_* INANHBPCBLC; - bool MAOHENNPOMB; - bool HEJLGFNHKND; - bool NABCGFBLKDJ; - bool PNGMLKJFKND; - bool MNMODNDPIDD; - uint32_t OODBAMHAGPO; - uint32_t JPKIAEFDHMD; - bool NFMOCKLFAOF; - float JJLIHANGKEO; - struct Dictionary_2_System_UInt64_System_UInt32_* ICPIOBFBPGA; - struct LGPKIADMOBE_System_UInt64_CJFLLIKJGLF_* BDBFEGIMOFI; - struct DPHDLLFCIBC* HDOGLGNGMAP; - struct PHHEDBDLADE* ANDABFFFNHE; - struct Action_1_Single_* KGABFCPEBDG; - struct Dictionary_2_System_UInt32_System_UInt32_* EPNCJKKPNIN; - struct List_1_System_UInt64_* IDPDPDAENDP; - bool HJOJBIBHGEC; - struct List_1_JBONEPGMKAD_* ODDFKLCINLC; - struct Coroutine* FCJOEAPBMHB; - Miscs_ChangeAvatarFailType__Enum FDFCHGCAIPL; - uint32_t MFKCKBGCADE; - struct String* DMMKLMDFDLE; - struct String* JKFKIOAJPKF; - struct Dictionary_2_System_UInt32_System_UInt32_* FMMDIGIIBJB; - float NDFMECJGCKK; - float BHAMGAPDFEH; - uint32_t AFIIDKIKKMB; - struct List_1_System_UInt32_* DNKMPLJPOHG; - uint32_t MAPMNIDOJCG; - bool MIMGJGCADKB; - uint32_t LCMMMGHFEGG; - uint32_t DCGJMGBIDLD; - uint32_t GGJMEBPNECC; - uint32_t PIJHFCGJBJM; - struct CAIMHKHHLHK_LJBGLAADLNC_* FFMOHPPEKLN; - struct CAIMHKHHLHK_LJBGLAADLNC_* BLPNAPNOPFN; - uint64_t ONAPAACFOBM; - struct JIBKJBJNFED* LGADGGJMODA; + float lastSendChangeAvatarTime; + float lastPressSkillButtonTime; + float PMAMAHGBLBJ; + struct List_1_System_ValueTuple_3_* teamEntityAbilitiesFromServer; + bool IMCBNAMPBPG; + bool PNCFBAOIKHB; + bool IBNOIPGDGAG; + bool MILPALJGOLD; + bool PNBHCGNHOFB; + uint32_t ALCHAOANODE; + uint32_t FPBJOLBEJGO; + bool enterSceneFromLogin; + float _nextLoginReqTime; + struct Dictionary_2_System_UInt64_System_UInt32_* _backgroundAvatarRecoverTime; + struct Google_Protobuf_Collections_MessageMapField_2_System_UInt64_Proto_AvatarExpeditionInfo_* _currExpeditionInfo; + struct Proto_AvatarExpeditionAllDataRsp* _currAllDataRsp; + struct Proto_ExclusiveRuleNotify* _exclusiveRuleNotify; + struct Action_1_Single_* LENAIDKELJE; + void* DDFMMKJJENE; + void* CHNAOGEHNGB; + struct Dictionary_2_System_UInt32_System_UInt32_* HENIBLEKILJ; + struct List_1_System_UInt64_* _teamToLoad; + bool needRecoverAbilities; + struct List_1_Proto_SceneEntityInfo_* _needAppearAvatars; + struct Coroutine* _changeAvatarCoroutine; + Miscs_ChangeAvatarFailType__Enum _failType; + uint32_t _sceneOwnerUid; + struct String* CBTEST_TOOL_PATH; + struct String* WATER_MASK_PATH; + struct Dictionary_2_System_UInt32_System_UInt32_* _openstateDic; + float _satiationCriticalValue; + float _satiationRecoverySpeed; + uint32_t _nextRecoveryTimestampOfResin; + struct List_1_System_UInt32_* _buyResinCost; + uint32_t _dailyBoughtCountOfResin; + bool _resinParamsParsed; + uint32_t _resinTotalLimit; + uint32_t _autoRecoveryResinLimit; + uint32_t _resinAutoRecoverySpeed; + uint32_t _resinCountPerPurchase; + struct Google_Protobuf_Collections_RepeatedMessageField_1_Proto_FriendBrief_* _tempFriendBriefListInGame; + struct Google_Protobuf_Collections_RepeatedMessageField_1_Proto_FriendBrief_* _tempFriendBriefListPSN; + uint64_t _lastGetPlayerFriendListTime; + struct Proto_AntiAddictNotify* _antiAddictNotify; + struct GeneralDialogContext* KIEGHJDFLFD; }; struct MoleMole_PlayerModule { struct PlayerModule__Class* klass; MonitorData* monitor; - struct NEOGDEDNDHF__Fields fields; + struct MoleMole_PlayerModule__Fields fields; }; enum class MapManager_FEDPCJIHAJJ__Enum : int32_t { @@ -9801,7 +9812,7 @@ namespace app { struct MHCEDJLGNMG__Fields fields; }; - struct ANPOFFEGJHG__Fields { + struct GadgetEntity__Fields { struct BaseEntity__Fields _; uint32_t groupId; uint32_t markFlag; @@ -9826,7 +9837,7 @@ namespace app { struct GadgetEntity { struct GadgetEntity__Class* klass; MonitorData* monitor; - struct ANPOFFEGJHG__Fields fields; + struct GadgetEntity__Fields fields; }; struct BaseComponent__Array { @@ -10056,8 +10067,7 @@ namespace app { struct LCChestPlugin__Fields fields; }; - struct __declspec(align(8)) FKHDAEKGMKC__Fields - { + struct __declspec(align(8)) MoleMole_ScenePropManager__Fields { struct ScenePropEffectConfigs* _scenePropEffectConfigs; uint32_t _scenePropEffectConfigsHandle; struct SceneChairConfigs* _sceneChairConfigs; @@ -10066,35 +10076,35 @@ namespace app { uint32_t _sceneBushConfigsHandle; struct SceneTreeConfigs* _sceneTreeConfigs; uint32_t _sceneTreeConfigsHandle; - struct SceneStoneTintConfigs* IJAJFDDPIBF; - uint32_t MPGIOKCAEDG; - struct Dictionary_2_System_Int32_IIJMGCIOIAP_* _treeBushCollection; - struct List_1_NAKCOANCOHK_* _treeBushList; + struct SceneStoneTintConfigs* AIOHDMBGHEI; + uint32_t LCLFKLDHKIM; + struct Dictionary_2_System_Int32_MoleMole_ZOrderCollection_3_* _treeBushCollection; + struct List_1_MoleMole_ICombatSceneProp_* _treeBushList; struct Dictionary_2_System_Int32_UnityEngine_Vector3_* _treeBushId2Pos; struct Vector3 _rangeQueryLen; - struct Dictionary_2_System_Int32_NAKCOANCOHK_* _scenePropDict; - struct Dictionary_2_System_Int32_ECGLPBEEEAA_* _treeTypeDict; + struct Dictionary_2_System_Int32_MoleMole_ICombatSceneProp_* _scenePropDict; + struct Dictionary_2_System_Int32_MoleMole_Config_TreeType_* _treeTypeDict; struct List_1_MoleMole_MonoEnviroLight_* _pointLights; struct List_1_MoleMole_MonoEnviroCityLight_* _cityLights; + struct List_1_NPOOODHAHMF_* BAKKEOKNFOI; struct Vector3 _lastSectorPos; - struct FKHDAEKGMKC_DEGEMNHILIP__Array* _treeLeafInfos; + struct MoleMole_ScenePropManager_MoleMole_ScenePropManager_TreeLeafInfo__Array* _treeLeafInfos; int32_t _treeLeafNum; struct MaterialPropertyBlock* _mpb; struct Camera* _mainCam; struct List_1_UnityEngine_Material_* _leafDitherMaterials; struct Dictionary_2_System_Int32_UnityEngine_Vector3__1* _shakeAnims; - struct List_1_NAKCOANCOHK_* _playingScenePropShakes; - struct List_1_JNFKAAAPLGE_* _chairs; + struct List_1_MoleMole_ICombatSceneProp_* _playingScenePropShakes; + struct List_1_MoleMole_IChair_* _chairs; struct GameObject* iceBlockRoot; struct GameObject* _surfaceMeshObjectRoot; struct GameObject* _tileMeshObjectRoot; }; - struct MoleMole_ScenePropManager - { - struct FKHDAEKGMKC__Class* klass; + struct MoleMole_ScenePropManager { + struct MoleMole_ScenePropManager__Class* klass; MonitorData* monitor; - struct FKHDAEKGMKC__Fields fields; + struct MoleMole_ScenePropManager__Fields fields; }; @@ -10212,30 +10222,29 @@ namespace app { bool has_value; }; - struct IDPLOHKAJML__Fields { + struct LCAbilityElement__Fields { struct LCBase__Fields _; - struct Dictionary_2_System_Int32_List_1_MLAAELGDIJH_* _elementModifierMap; - struct Action* _act; - struct List_1_System_Nullable_1_* _modifierDurabilities; - struct List_1_UniRx_Tuple_3__1* _elemAccuDurabilities; - struct OJGKFFDAGON* _levelAbilityCom; - struct OJGKFFDAGON* _selfLCAbility; - struct KMALPDEBPFP* _lcAbilityState; - struct DGLICFPOFBE* _vcBillboard; + struct Dictionary_2_System_Int32_List_1_MoleMole_ActorModifier_* _elementModifierMap; + struct Action* onElementModifierChanged; + struct List_1_System_Nullable_1__2* _modifierDurabilities; + struct List_1_System_ValueTuple_3__3* _elemOverloadDurabilities; + struct MoleMole_LCAbility* _levelAbilityCom; + struct MoleMole_LCAbility* _selfLCAbility; + struct MoleMole_LCAbilityState* _lcAbilityState; + struct MoleMole_VCBillboard* _vcBillboard; float _purgeRate; float _purgeIncement; bool _ignorePurgeRate; - struct EDDKNGCGJFI* _grassScenePlugin; - struct EADDBDCPBMJ* _waterScenePlugin; - struct EBLDCCEGAOF* _bushScenePlugin; - struct BDFMIJCPDIC* _shakeInterval; + struct MoleMole_LevelSceneGrassPlugin* _grassScenePlugin; + struct MoleMole_LevelSceneWaterPlugin* _waterScenePlugin; + struct MoleMole_LevelSceneBushPlugin* _bushScenePlugin; + struct MoleMole_EntityTimerReceiver* _shakeInterval; bool _showReactionText; struct String* elementDecrateGroup; - bool BHDLGGOBAME; - bool AKLPKDONCJH; - struct Func_2_MLAAELGDIJH_Boolean_* NEMHEFJLFEA; - struct Action_3_GLPNBMKEPPD_CCAMDLAOBAA_Nullable_1_UnityEngine_Vector3_* FDHMHGFNCFD; - struct Action_3_GLPNBMKEPPD_CCAMDLAOBAA_Nullable_1_UnityEngine_Vector3_* NIHADNAGOND; + bool LDAPBJPCDHC; + struct Func_2_MoleMole_ActorModifier_Boolean_* HGAAHMCALBE; + struct Action_3_MoleMole_Config_ElementReactionType_MoleMole_BaseEntity_Nullable_1_UnityEngine_Vector3_* GGOGFKDBFHJ; + struct Action_3_MoleMole_Config_ElementReactionType_MoleMole_BaseEntity_Nullable_1_UnityEngine_Vector3_* MIIBJEAOIJI; struct Vector3 elementReactionPos; bool triggerFrozenBroken; float _lastCrystallizeTime; @@ -10244,7 +10253,7 @@ namespace app { struct LCAbilityElement { struct LCAbilityElement__Class* klass; MonitorData* monitor; - struct IDPLOHKAJML__Fields fields; + struct LCAbilityElement__Fields fields; }; struct Camera__Fields { @@ -10761,35 +10770,42 @@ namespace app { struct LCCharacterCombat__Fields fields; }; - struct __declspec(align(8)) LCAvatarCombat_OMIIMOJOHIP__Fields { + enum class Config_MonitorType__Enum : int32_t { + MONITOR_NEVER = 0x00000000, + MONITOR_OFF_STAGE = 0x00000001, + MONITOR_ON_STAGE = 0x00000002, + MONITOR_ALWAYS = 0x00000003, + }; + + struct __declspec(align(8)) MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Fields { uint32_t skillID; - struct AvatarSkillExcelConfig* config; + struct Config_AvatarSkillExcelConfig* config; struct SafeFloat cdTimer; - struct SafeFloat currChargeCount; + struct SafeInt32 currChargeCount; struct SafeFloat costStamina; bool canHold; bool canTrigger; bool useInAir; struct HashSet_1_System_Int32_* canUseSkillStateWhiteList; - int32_t needMonitor; + Config_MonitorType__Enum needMonitor; bool isLocked; bool ignoreCDMinusRatio; bool forceCanDoSkill; - struct SafeFloat NFNMNLKPNHD; - struct SafeFloat EBIABBHAFFD; - struct SafeFloat HPDKMHFJFMI; - struct SafeFloat IBKPGNDMDBJ; - struct SafeFloat GBGBNALDDFM; + struct SafeFloat KMKHNLHFIOL; + struct SafeFloat KBLGNPCEMON; + struct SafeFloat BKNLEDABNBI; + struct SafeFloat HADJBEOJAAI; + struct SafeFloat DJHJCNGKFMC; int32_t skillIndex; int32_t prority; float _costElem_k__BackingField; int32_t _maxChargeCount_k__BackingField; }; - struct LCAvatarCombat_OMIIMOJOHIP { - struct LCAvatarCombat_OMIIMOJOHIP__Class* klass; + struct LCAvatarCombat_LCAvatarCombat_SkillInfo { + struct MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Class* klass; MonitorData* monitor; - struct LCAvatarCombat_OMIIMOJOHIP__Fields fields; + struct MoleMole_LCAvatarCombat_MoleMole_LCAvatarCombat_SkillInfo__Fields fields; }; struct LCAvatarCombat__Fields { @@ -10845,17 +10861,17 @@ namespace app { struct HumanoidMoveFSM__Fields { struct BaseComponentPlugin__Fields _; - struct HumanoidMoveFSMBaseMoveState* _curState; + struct MoleMole_HumanoidMoveFSMBaseMoveState* _curState; int32_t fallOnGroundFirstFrame; - struct Dictionary_2_MoleMole_HumanoidMoveFSM_JJLCCKKCHPD_MoleMole_HumanoidMoveFSMBaseMoveState_* stateMapInfo; + struct Dictionary_2_MoleMole_HumanoidMoveFSM_MoleMole_HumanoidMoveFSM_FSMStateID_MoleMole_HumanoidMoveFSMBaseMoveState_* stateMapInfo; struct VCHumanoidMoveData* _moveData; - struct VCHumanoidMoveConfig* _moveConfig; + struct MoleMole_VCHumanoidMoveConfig* _moveConfig; struct VCHumanoidMove* _ownerMove; struct Animator* _animator; struct Rigidbody* _rigidbody; struct AnimatorController* _animatorController; - void* OnMoveUpdateCallback; - void* OnAirUpdateCallback; + struct Action_1_MoleMole_HumanoidMoveFSMCallBackInfo_* OnMoveUpdateCallback; + struct Action_1_MoleMole_HumanoidMoveFSMCallBackInfo_* OnAirUpdateCallback; bool _initSyncWithCurrentTask; bool _behaviourSet; float _sendCombatNotifyTime; @@ -10870,6 +10886,7 @@ namespace app { bool ignoreOverallMoveWallProtectionCurrentFrame; bool stopMoveWhenGoupstairs; bool lastStopMoveWhenGoupstairs; + bool IMLLBMBBEJI; float climbGlobalRecovery; bool autoGoUpstair; bool forceDoNotSyncWhenReset; @@ -10879,20 +10896,23 @@ namespace app { bool _firstLatetick; bool _lastInForbiddenToggleMoveState; bool _disableMotion4hiUpdateCurrentFrame; + bool NGPIBEPBPKA; int32_t _flyStateHash; - struct VCMoveIKController* _ikComp; + struct MoleMole_VCMoveIKController* _ikComp; struct Transform* _lCalf; struct Transform* _rCalf; void* _weaponStandbyIKParams; void* _normalStandbyIKParams; void* _params; - float _lastSkirtBlendParam; - float _idealSkirtBlendParam; - float _lastIdealSkirtBlendParam; - float _lastSkirtWeight; - float _idealSkirtWeight; - float _lastSkirtPos; - float _idealSkirtPos; + float BLLOGGMCMIA; + float HNOACEPONMF; + float HDBOJNOFKFN; + float EGHOEFBGDKA; + float MCJGBJLKODK; + float LACOILFNJGC; + float EKNIHOJIDKN; + float COEEDFNDFEH; + float CDCJMAELEKE; void* _lastFrameAnimSpeedInfo; void* _currentFrameAnimSpeedInfo; bool _isInSprintCheckInterval; @@ -10993,22 +11013,14 @@ namespace app { struct Vector3d_1 _smoothingTransformLookAtPoint; struct SimpleKalmanFilter* _dirKfilter; bool _isDirectionFilterInitialized; - struct Vector3d__Array* _faceDirectionTrace; + struct Vector3d_1__Array* _faceDirectionTrace; bool _isFaceDirectionTraceInitialized; struct Vector3d_1 _lastFrameSmoothFaceDirection; bool _hasEnteredAvatarClimb; bool _hasBeenConsistent; double _timerForWaitingFacingToWallNoraml; -#if defined(_CPLUSPLUS_) HumanoidMoveFSM_HumanoidMoveFSM_FSMStateID__Enum _curFSMState; -#else - int32_t _curFSMState; -#endif -#if defined(_CPLUSPLUS_) HumanoidMoveFSM_HumanoidMoveFSM_FSMStateID__Enum _lastFSMState; -#else - int32_t _lastFSMState; -#endif struct Vector3d_1 _climbWallNormal; bool _climbWallNormalGetted; int32_t _LayerIndex; @@ -11029,11 +11041,11 @@ namespace app { double _inputMoveAngle; double _inputMoveMold; double _defaultCameraDistanceAdjust; - float HOBOHFMFPPG; - float POIEBBJDKKF; - bool DJDBLKBDMAH; + float KNJMIPJHINJ; + float DFGOMAELPBC; + bool KNHDJFKJJDC; struct Dictionary_2_UnityEngine_Vector2_System_Double_* _animStateChangePair; - struct Dictionary_2_UnityEngine_Vector2_SCameraModuleInitialize_SCameraModuleInitialize_FilterKeepType_* _animStateChangeType; + struct Dictionary_2_UnityEngine_Vector2_MoleMole_SCameraModuleInitialize_MoleMole_SCameraModuleInitialize_FilterKeepType_* _animStateChangeType; struct Dictionary_2_UnityEngine_Vector2_System_Double_* _animStateChangeTime; double _preNormalRadiusTarget; double _preNormalRadiusStart; @@ -11307,7 +11319,8 @@ namespace app { float _perfectRangeStart; float _perfectRangeEnd; bool _qteStart; - float _qteTime; + float OGOGOAJEFFI; + bool _qteTime; float _qteBonusRange; bool _isAuto; int32_t _foodKind; @@ -11702,19 +11715,19 @@ namespace app { }; struct MoleMole_VCBaseSetDitherValue__Fields { - void* _; + struct VCBase__Fields _; bool _usingDitherAlpha; float _ditherAlphaValue; float _managerDitherAlphaValue; float _localDitherAlphaValue; - bool IBKAJMBMGAE; + bool HCPHLKHJEBI; struct MoleMole_VCBaseModel* _modelComponent; float _showStartDitherDuration; bool _needStartDitherAction; float _detectDitherRangeBetweenCameraAndAvatar; float _detectDitherRangeNormalBetweenCamera; float _detectDitherRangeNormalBetweenCameraInTimeLine; - bool GCEGGKLBFPG; + bool LGEKBIFMMLF; struct List_1_MoleMole_BaseDither_* _dithers; bool _isDitherChangeStarted; float _spd; @@ -11957,6 +11970,15 @@ namespace app { Overflow = 0x00000001, }; + struct Avatar__Fields { + struct Object_1__Fields _; + }; + + struct Avatar { + struct Avatar__Class* klass; + MonitorData* monitor; + struct Avatar__Fields fields; + }; #if !defined(_GHIDRA_) && !defined(_IDA_) } diff --git a/cheat-library/src/appdata/il2cpp-unityplayer-functions.h b/cheat-library/src/appdata/il2cpp-unityplayer-functions.h index ae33e61..49e1837 100644 --- a/cheat-library/src/appdata/il2cpp-unityplayer-functions.h +++ b/cheat-library/src/appdata/il2cpp-unityplayer-functions.h @@ -1,4 +1,5 @@ using namespace app; -DO_APP_FUNC(0x00B64280, app::Byte__Array*, Unity_RecordUserData, (int32_t nType)); -DO_APP_FUNC(0x00AFCB60, Il2CppClass**, GetIl2Classes, ()); \ No newline at end of file +DO_APP_FUNC(0x00B7B980, app::Byte__Array*, Unity_RecordUserData, (int32_t nType)); +DO_APP_FUNC(0x00B1B220, Il2CppClass**, GetIl2Classes, ()); +DO_APP_FUNC(0x00DCE2B0, void, Animator_set_avatar, (Animator* __this, Avatar* value, MethodInfo* method)); \ No newline at end of file diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp index 40d90bc..090c612 100644 --- a/cheat-library/src/user/cheat/cheat.cpp +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -40,7 +40,6 @@ #include #include -#include #include #include @@ -106,7 +105,6 @@ namespace cheat FEAT_INST(AutoFish), FEAT_INST(AutoCook), - FEAT_INST(MusicEvent), FEAT_INST(NoFog), FEAT_INST(FPSUnlock), diff --git a/cheat-library/src/user/cheat/player/NoCD.cpp b/cheat-library/src/user/cheat/player/NoCD.cpp index 926be06..d18ffa0 100644 --- a/cheat-library/src/user/cheat/player/NoCD.cpp +++ b/cheat-library/src/user/cheat/player/NoCD.cpp @@ -9,7 +9,7 @@ namespace cheat::feature static bool HumanoidMoveFSM_CheckSprintCooldown_Hook(void* __this, MethodInfo* method); static bool LCAvatarCombat_IsEnergyMax_Hook(void* __this, MethodInfo* method); static bool LCAvatarCombat_OnSkillStart(app::LCAvatarCombat* __this, uint32_t skillID, float cdMultipler, MethodInfo* method); - static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method); + static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method); static void ActorAbilityPlugin_AddDynamicFloatWithRange_Hook(void* __this, app::String* key, float value, float minValue, float maxValue, bool forceDoAtRemote, MethodInfo* method); @@ -124,7 +124,7 @@ namespace cheat::feature } // Timer Speed Up / CoolDown Reduce New | RyujinZX#6666 - static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_OMIIMOJOHIP* skillInfo, MethodInfo* method) { + static bool LCAvatarCombat_IsSkillInCD_1(app::LCAvatarCombat* __this, app::LCAvatarCombat_LCAvatarCombat_SkillInfo* skillInfo, MethodInfo* method) { NoCD& noCD = NoCD::GetInstance(); if (noCD.f_AbilityReduce) { diff --git a/cheat-library/src/user/cheat/world/KillAura.cpp b/cheat-library/src/user/cheat/world/KillAura.cpp index 451d235..b772e69 100644 --- a/cheat-library/src/user/cheat/world/KillAura.cpp +++ b/cheat-library/src/user/cheat/world/KillAura.cpp @@ -190,7 +190,7 @@ namespace cheat::feature if (manager.avatar()->distance(monster) > killAura.f_Range) return; - moveSync->fields.moveSyncTask.position.x = 1000000.0f; + moveSync->fields._syncTask.position.x = 1000000.0f; } static void BaseMoveSyncPlugin_ConvertSyncTaskToMotionInfo_Hook(app::BaseMoveSyncPlugin* __this, MethodInfo* method) From d64e5c8b36e4b22faacce23da4e6bf8dbf9ed0bf Mon Sep 17 00:00:00 2001 From: Joaquin <67109235+Taiga74164@users.noreply.github.com> Date: Mon, 11 Jul 2022 01:08:04 -0600 Subject: [PATCH 07/27] Custom Build Setup oops forgot to restore lol --- cheat-library/cheat-library.vcxproj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cheat-library/cheat-library.vcxproj b/cheat-library/cheat-library.vcxproj index 606ac6d..a605bca 100644 --- a/cheat-library/cheat-library.vcxproj +++ b/cheat-library/cheat-library.vcxproj @@ -878,8 +878,7 @@ - - + "$(OutDir)injector.exe" powershell -nop -c "&amp; {sleep 20}" $(OutDir)_noexist.nope;%(Outputs) $(TargetPath);%(Inputs) From ad166eea2d3a160c08cfbe331a47397b64d0cfed Mon Sep 17 00:00:00 2001 From: Joaquin <67109235+Taiga74164@users.noreply.github.com> Date: Mon, 11 Jul 2022 01:16:52 -0600 Subject: [PATCH 08/27] api functions :skull: I FORGOT LOL :skull: --- .../src/appdata/il2cpp-api-functions-ptr.h | 493 +++++----- .../src/appdata/il2cpp-api-functions.h | 905 ++++++------------ 2 files changed, 550 insertions(+), 848 deletions(-) diff --git a/cheat-library/src/appdata/il2cpp-api-functions-ptr.h b/cheat-library/src/appdata/il2cpp-api-functions-ptr.h index 3cfc9b2..4349ae4 100644 --- a/cheat-library/src/appdata/il2cpp-api-functions-ptr.h +++ b/cheat-library/src/appdata/il2cpp-api-functions-ptr.h @@ -5,249 +5,250 @@ // * IL2CPP API function pointers // ****************************************************************************** -#define il2cpp_add_internal_call_ptr 0x006CB6F0 -#define il2cpp_alloc_ptr 0x006CB700 -#define il2cpp_allocation_granularity_ptr 0x0019E6E0 -#define il2cpp_array_class_get_ptr 0x006CB710 -#define il2cpp_array_element_size_ptr 0x006CB720 -#define il2cpp_array_get_byte_length_ptr 0x006EEA60 -#define il2cpp_array_length_ptr 0x006CB730 -#define il2cpp_array_new_ptr 0x006CB740 -#define il2cpp_array_new_full_ptr 0x006CB750 -#define il2cpp_array_new_specific_ptr 0x006CB760 -#define il2cpp_array_object_header_size_ptr 0x006CB770 -#define il2cpp_assembly_get_image_ptr 0x006CB8B0 -#define il2cpp_bounded_array_class_get_ptr 0x006CB780 -#define il2cpp_capture_memory_snapshot_ptr 0x006CB790 -#define il2cpp_class_array_element_size_ptr 0x006CB7A0 -#define il2cpp_class_enum_basetype_ptr 0x006CB7B0 -#define il2cpp_class_for_each_ptr 0x006CB7C0 -#define il2cpp_class_from_il2cpp_type_ptr 0x006CB7D0 -#define il2cpp_class_from_name_ptr 0x006CB7E0 -#define il2cpp_class_from_system_type_ptr 0x006CB7F0 -#define il2cpp_class_from_type_ptr 0x006CB7D0 -#define il2cpp_class_get_assemblyname_ptr 0x006CB800 -#define il2cpp_class_get_bitmap_ptr 0x006CB810 -#define il2cpp_class_get_bitmap_size_ptr 0x006CB830 -#define il2cpp_class_get_data_size_ptr 0x006CB840 -#define il2cpp_class_get_declaring_type_ptr 0x006CB850 -#define il2cpp_class_get_element_class_ptr 0x006CB860 -#define il2cpp_class_get_events_ptr 0x006CB870 -#define il2cpp_class_get_field_from_name_ptr 0x006CB880 -#define il2cpp_class_get_fields_ptr 0x006CB890 -#define il2cpp_class_get_flags_ptr 0x006CB8A0 -#define il2cpp_class_get_image_ptr 0x006CB8B0 -#define il2cpp_class_get_interfaces_ptr 0x006CB8C0 -#define il2cpp_class_get_method_from_name_ptr 0x006CB8D0 -#define il2cpp_class_get_methods_ptr 0x006CB8E0 -#define il2cpp_class_get_name_ptr 0x006CBFB0 -#define il2cpp_class_get_namespace_ptr 0x006CC330 -#define il2cpp_class_get_nested_types_ptr 0x006CB8F0 -#define il2cpp_class_get_parent_ptr 0x006CB900 -#define il2cpp_class_get_properties_ptr 0x006CB910 -#define il2cpp_class_get_property_from_name_ptr 0x006CB920 -#define il2cpp_class_get_rank_ptr 0x006CB930 -#define il2cpp_class_get_static_field_data_ptr 0x00129FB0 -#define il2cpp_class_get_type_ptr 0x006E7340 -#define il2cpp_class_get_type_token_ptr 0x006CB940 -#define il2cpp_class_get_userdata_offset_ptr 0x006CB950 -#define il2cpp_class_has_attribute_ptr 0x006CB960 -#define il2cpp_class_has_parent_ptr 0x006CB970 -#define il2cpp_class_has_references_ptr 0x006CB980 -#define il2cpp_class_instance_size_ptr 0x006CB990 -#define il2cpp_class_is_abstract_ptr 0x006CB9A0 -#define il2cpp_class_is_assignable_from_ptr 0x006CB9B0 -#define il2cpp_class_is_blittable_ptr 0x006CB9C0 -#define il2cpp_class_is_enum_ptr 0x006CB9D0 -#define il2cpp_class_is_generic_ptr 0x006CB9E0 -#define il2cpp_class_is_inflated_ptr 0x006CB9F0 -#define il2cpp_class_is_interface_ptr 0x006CBA00 -#define il2cpp_class_is_subclass_of_ptr 0x006CBA10 -#define il2cpp_class_is_valuetype_ptr 0x006CBA20 -#define il2cpp_class_num_fields_ptr 0x006CBA30 -#define il2cpp_class_set_userdata_ptr 0x006CBA40 -#define il2cpp_class_value_size_ptr 0x006CBA50 -#define il2cpp_current_thread_get_frame_at_ptr 0x006CBA60 -#define il2cpp_current_thread_get_stack_depth_ptr 0x006CBA70 -#define il2cpp_current_thread_get_top_frame_ptr 0x006CBA90 -#define il2cpp_current_thread_walk_frame_stack_ptr 0x006CBAA0 -#define il2cpp_custom_attrs_construct_ptr 0x006CBAB0 -#define il2cpp_custom_attrs_free_ptr 0x001C8D70 -#define il2cpp_custom_attrs_from_class_ptr 0x006CBAC0 -#define il2cpp_custom_attrs_from_method_ptr 0x006CBAE0 -#define il2cpp_custom_attrs_get_attr_ptr 0x006CBB00 -#define il2cpp_custom_attrs_has_attr_ptr 0x006CBB10 -#define il2cpp_debug_get_method_info_ptr 0x006CBB20 -#define il2cpp_debugger_set_agent_options_ptr 0x001C8D70 -#define il2cpp_domain_assembly_open_ptr 0x006CBB30 -#define il2cpp_domain_get_ptr 0x006CBB40 -#define il2cpp_domain_get_assemblies_ptr 0x006CBB50 -#define il2cpp_enable_object_type_mutex_ptr 0x006CBB80 -#define il2cpp_exception_from_name_msg_ptr 0x006CBB90 -#define il2cpp_field_get_flags_ptr 0x006CBBA0 -#define il2cpp_field_get_name_ptr 0x006CB8B0 -#define il2cpp_field_get_offset_ptr 0x006CBBB0 -#define il2cpp_field_get_parent_ptr 0x006CBFB0 -#define il2cpp_field_get_type_ptr 0x006CBBC0 -#define il2cpp_field_get_value_ptr 0x006CBBD0 -#define il2cpp_field_get_value_object_ptr 0x006CBBE0 -#define il2cpp_field_has_attribute_ptr 0x006CBBF0 -#define il2cpp_field_is_literal_ptr 0x006CBC00 -#define il2cpp_field_set_value_ptr 0x006CBC10 -#define il2cpp_field_set_value_object_ptr 0x006CBC20 -#define il2cpp_field_static_get_value_ptr 0x006CBC30 -#define il2cpp_field_static_set_value_ptr 0x006CBC40 -#define il2cpp_format_exception_ptr 0x006CBC50 -#define il2cpp_format_stack_trace_ptr 0x006CBD00 -#define il2cpp_free_ptr 0x006E2A60 -#define il2cpp_free_captured_memory_snapshot_ptr 0x006CBDB0 -#define il2cpp_gc_collect_ptr 0x006CBDC0 -#define il2cpp_gc_collect_a_little_ptr 0x006CBDD0 -#define il2cpp_gc_disable_ptr 0x006CBDE0 -#define il2cpp_gc_dump_append_text_to_log_ptr 0x006CBDF0 -#define il2cpp_gc_dump_info_ptr 0x006CBE00 -#define il2cpp_gc_dump_set_large_allocated_block_found_callback_ptr 0x006CBE10 -#define il2cpp_gc_dump_set_small_allocated_block_found_callback_ptr 0x006CBE20 -#define il2cpp_gc_enable_ptr 0x006CBE30 -#define il2cpp_gc_foreach_heap_ptr 0x006CBE40 -#define il2cpp_gc_get_heap_size_ptr 0x006CBE70 -#define il2cpp_gc_get_max_time_slice_ns_ptr 0x006CBE80 -#define il2cpp_gc_get_used_size_ptr 0x006CBE90 -#define il2cpp_gc_has_strict_wbarriers_ptr 0x006D35C0 -#define il2cpp_gc_is_disabled_ptr 0x006CBEA0 -#define il2cpp_gc_is_incremental_ptr 0x006CBEB0 -#define il2cpp_gc_set_external_allocation_tracker_ptr 0x001C8D70 -#define il2cpp_gc_set_external_wbarrier_tracker_ptr 0x001C8D70 -#define il2cpp_gc_set_max_time_slice_ns_ptr 0x006CBEC0 -#define il2cpp_gc_set_object_malloc_callback_ptr 0x006CBED0 -#define il2cpp_gc_set_object_return_freelist_callback_ptr 0x006CBEE0 -#define il2cpp_gc_wbarrier_set_field_ptr 0x006CBEF0 -#define il2cpp_gchandle_foreach_get_target_ptr 0x006CBF00 -#define il2cpp_gchandle_free_ptr 0x006E2A50 -#define il2cpp_gchandle_get_target_ptr 0x006CBF30 -#define il2cpp_gchandle_new_ptr 0x006CBF40 -#define il2cpp_gchandle_new_weakref_ptr 0x006CBF50 -#define il2cpp_get_committed_memory_size_ptr 0x006CBF60 -#define il2cpp_get_corlib_ptr 0x006CBF70 -#define il2cpp_get_exception_argument_null_ptr 0x00757750 -#define il2cpp_get_hash_table_memory_ptr 0x006CBF80 -#define il2cpp_get_meta_data_pool_memory_ptr 0x006CBF90 -#define il2cpp_image_get_assembly_ptr 0x006CBFB0 -#define il2cpp_image_get_class_ptr 0x006CBFC0 -#define il2cpp_image_get_class_count_ptr 0x006CBFD0 -#define il2cpp_image_get_entry_point_ptr 0x006CBFE0 -#define il2cpp_image_get_filename_ptr 0x006CB8B0 -#define il2cpp_image_get_name_ptr 0x006CB8B0 -#define il2cpp_init_ptr 0x006CBFF0 -#define il2cpp_init_security_ptr 0x006CC020 -#define il2cpp_init_utf16_ptr 0x006CC040 -#define il2cpp_is_debugger_attached_ptr 0x006CC0F0 -#define il2cpp_is_vm_thread_ptr 0x006CC100 -#define il2cpp_method_get_class_ptr 0x006CC330 -#define il2cpp_method_get_declaring_type_ptr 0x006CC330 -#define il2cpp_method_get_flags_ptr 0x006CC110 -#define il2cpp_method_get_from_reflection_ptr 0x006CBFB0 -#define il2cpp_method_get_name_ptr 0x006CBFB0 -#define il2cpp_method_get_object_ptr 0x006CC140 -#define il2cpp_method_get_param_ptr 0x006CC150 -#define il2cpp_method_get_param_count_ptr 0x006CC160 -#define il2cpp_method_get_param_name_ptr 0x006CC170 -#define il2cpp_method_get_return_type_ptr 0x006CC180 -#define il2cpp_method_get_token_ptr 0x006CC190 -#define il2cpp_method_has_attribute_ptr 0x006CC1A0 -#define il2cpp_method_is_generic_ptr 0x006CC1B0 -#define il2cpp_method_is_inflated_ptr 0x006CC1C0 -#define il2cpp_method_is_instance_ptr 0x006CC1D0 -#define il2cpp_monitor_enter_ptr 0x006CC1E0 -#define il2cpp_monitor_exit_ptr 0x006CC1F0 -#define il2cpp_monitor_pulse_ptr 0x006CC200 -#define il2cpp_monitor_pulse_all_ptr 0x006CC210 -#define il2cpp_monitor_try_enter_ptr 0x006CC220 -#define il2cpp_monitor_try_wait_ptr 0x006CC230 -#define il2cpp_monitor_wait_ptr 0x006CC240 -#define il2cpp_object_get_class_ptr 0x006CB8B0 -#define il2cpp_object_get_size_ptr 0x006CC250 -#define il2cpp_object_get_virtual_method_ptr 0x006CC260 -#define il2cpp_object_header_size_ptr 0x0019E6E0 -#define il2cpp_object_new_ptr 0x006CC270 -#define il2cpp_object_unbox_ptr 0x006CC290 -#define il2cpp_offset_of_array_bounds_in_array_object_header_ptr 0x0019E6E0 -#define il2cpp_offset_of_array_length_in_array_object_header_ptr 0x00121970 -#define il2cpp_override_stack_backtrace_ptr 0x006CC2A0 -#define il2cpp_profiler_install_ptr 0x006CC2B0 -#define il2cpp_profiler_install_allocation_ptr 0x006CC2C0 -#define il2cpp_profiler_install_enter_leave_ptr 0x006CC2D0 -#define il2cpp_profiler_install_fileio_ptr 0x006CC2E0 -#define il2cpp_profiler_install_gc_ptr 0x006CC2F0 -#define il2cpp_profiler_install_thread_ptr 0x006CC300 -#define il2cpp_profiler_set_events_ptr 0x006CC310 -#define il2cpp_property_get_flags_ptr 0x006CC320 -#define il2cpp_property_get_get_method_ptr 0x006CBFB0 -#define il2cpp_property_get_name_ptr 0x006CBBC0 -#define il2cpp_property_get_parent_ptr 0x006CB8B0 -#define il2cpp_property_get_set_method_ptr 0x006CC330 -#define il2cpp_raise_exception_ptr 0x006CC340 -#define il2cpp_register_debugger_agent_transport_ptr 0x001C8D70 -#define il2cpp_register_filedelete_callback_ptr 0x006CC350 -#define il2cpp_register_filemodify_callback_ptr 0x006CC360 -#define il2cpp_register_log_callback_ptr 0x006CC370 -#define il2cpp_resolve_icall_ptr 0x006CC380 -#define il2cpp_runtime_class_init_ptr 0x00757A20 -#define il2cpp_runtime_invoke_ptr 0x006CC390 -#define il2cpp_runtime_invoke_convert_args_ptr 0x006CC3B0 -#define il2cpp_runtime_object_init_ptr 0x006CC3D0 -#define il2cpp_runtime_object_init_exception_ptr 0x006CC3E0 -#define il2cpp_runtime_unhandled_exception_policy_set_ptr 0x006CC3F0 -#define il2cpp_set_commandline_arguments_ptr 0x006CC400 -#define il2cpp_set_commandline_arguments_utf16_ptr 0x006CC410 -#define il2cpp_set_config_ptr 0x006CC420 -#define il2cpp_set_config_dir_ptr 0x006CC430 -#define il2cpp_set_config_utf16_ptr 0x006CC440 -#define il2cpp_set_data_dir_ptr 0x006CC450 -#define il2cpp_set_default_thread_affinity_ptr 0x006CC460 -#define il2cpp_set_disable_gc_parallel_mark_ptr 0x006CC470 -#define il2cpp_set_find_plugin_callback_ptr 0x006CC480 -#define il2cpp_set_memory_callbacks_ptr 0x006CC490 -#define il2cpp_set_output_redirected_file_path_ptr 0x006CC4A0 -#define il2cpp_set_parallel_android_affinity_ptr 0x006CC4B0 -#define il2cpp_set_parallel_android_cupcount_ptr 0x006CC4C0 -#define il2cpp_set_temp_dir_ptr 0x006CC4D0 -#define il2cpp_shutdown_ptr 0x006CC4E0 -#define il2cpp_start_gc_world_ptr 0x006CC4F0 -#define il2cpp_stats_dump_to_file_ptr 0x006D35C0 -#define il2cpp_stats_get_value_ptr 0x006E2AF0 -#define il2cpp_stop_gc_world_ptr 0x006CC500 -#define il2cpp_string_chars_ptr 0x006CC510 -#define il2cpp_string_intern_ptr 0x006CC520 -#define il2cpp_string_is_interned_ptr 0x006CC530 -#define il2cpp_string_length_ptr 0x006CC540 -#define il2cpp_string_new_ptr 0x00757A30 -#define il2cpp_string_new_len_ptr 0x006CC550 -#define il2cpp_string_new_utf16_ptr 0x006CC560 -#define il2cpp_string_new_wrapper_ptr 0x00757A30 -#define il2cpp_thread_attach_ptr 0x006CC570 -#define il2cpp_thread_current_ptr 0x006CC580 -#define il2cpp_thread_detach_ptr 0x006CC590 -#define il2cpp_thread_get_all_attached_threads_ptr 0x006CC5A0 -#define il2cpp_thread_get_frame_at_ptr 0x006CC5B0 -#define il2cpp_thread_get_stack_depth_ptr 0x006CC5C0 -#define il2cpp_thread_get_top_frame_ptr 0x006CC5D0 -#define il2cpp_thread_walk_frame_stack_ptr 0x006CC5E0 -#define il2cpp_type_equals_ptr 0x006CC5F0 -#define il2cpp_type_get_assembly_qualified_name_ptr 0x006CC600 -#define il2cpp_type_get_attrs_ptr 0x006CC6C0 -#define il2cpp_type_get_class_or_element_class_ptr 0x006CC6D0 -#define il2cpp_type_get_name_ptr 0x006CC6E0 -#define il2cpp_type_get_name_chunked_ptr 0x006CC7A0 -#define il2cpp_type_get_object_ptr 0x00757A50 -#define il2cpp_type_get_type_ptr 0x006CC7B0 -#define il2cpp_type_is_byref_ptr 0x006CC7C0 -#define il2cpp_type_is_pointer_type_ptr 0x006CC7D0 -#define il2cpp_type_is_static_ptr 0x006CC7E0 -#define il2cpp_unhandled_exception_ptr 0x006EC170 -#define il2cpp_unity_install_unitytls_interface_ptr 0x006CC7F0 -#define il2cpp_unity_liveness_calculation_begin_ptr 0x006CC800 -#define il2cpp_unity_liveness_calculation_end_ptr 0x006CC810 -#define il2cpp_unity_liveness_calculation_from_root_ptr 0x006CC820 -#define il2cpp_unity_liveness_calculation_from_statics_ptr 0x006CC830 -#define il2cpp_value_box_ptr 0x007575C0 +#define il2cpp_add_internal_call_ptr 0x0065EF30 +#define il2cpp_alloc_ptr 0x0065EF40 +#define il2cpp_allocation_granularity_ptr 0x00710530 +#define il2cpp_array_class_get_ptr 0x0065EF50 +#define il2cpp_array_element_size_ptr 0x0065EF60 +#define il2cpp_array_get_byte_length_ptr 0x00681860 +#define il2cpp_array_length_ptr 0x0065EF70 +#define il2cpp_array_new_ptr 0x0065EF80 +#define il2cpp_array_new_full_ptr 0x0065EF90 +#define il2cpp_array_new_specific_ptr 0x0065EFA0 +#define il2cpp_array_object_header_size_ptr 0x0065EFB0 +#define il2cpp_assembly_get_image_ptr 0x0065F830 +#define il2cpp_bounded_array_class_get_ptr 0x0065EFC0 +#define il2cpp_capture_memory_snapshot_ptr 0x0065EFD0 +#define il2cpp_class_array_element_size_ptr 0x0065EFE0 +#define il2cpp_class_enum_basetype_ptr 0x0065EFF0 +#define il2cpp_class_for_each_ptr 0x0065F000 +#define il2cpp_class_from_il2cpp_type_ptr 0x0065F010 +#define il2cpp_class_from_name_ptr 0x0065F020 +#define il2cpp_class_from_system_type_ptr 0x0065F030 +#define il2cpp_class_from_type_ptr 0x0065F010 +#define il2cpp_class_get_assemblyname_ptr 0x0065F040 +#define il2cpp_class_get_bitmap_ptr 0x0065F050 +#define il2cpp_class_get_bitmap_size_ptr 0x0065F070 +#define il2cpp_class_get_data_size_ptr 0x0065F080 +#define il2cpp_class_get_declaring_type_ptr 0x0065F090 +#define il2cpp_class_get_element_class_ptr 0x0065F0A0 +#define il2cpp_class_get_events_ptr 0x0065F0B0 +#define il2cpp_class_get_field_from_name_ptr 0x0065F0C0 +#define il2cpp_class_get_fields_ptr 0x0065F0D0 +#define il2cpp_class_get_flags_ptr 0x0065F0E0 +#define il2cpp_class_get_image_ptr 0x0065F830 +#define il2cpp_class_get_interfaces_ptr 0x0065F0F0 +#define il2cpp_class_get_method_from_name_ptr 0x0065F100 +#define il2cpp_class_get_methods_ptr 0x0065F110 +#define il2cpp_class_get_name_ptr 0x0065F7F0 +#define il2cpp_class_get_namespace_ptr 0x0065FB70 +#define il2cpp_class_get_nested_types_ptr 0x0065F120 +#define il2cpp_class_get_parent_ptr 0x0065F130 +#define il2cpp_class_get_properties_ptr 0x0065F140 +#define il2cpp_class_get_property_from_name_ptr 0x0065F150 +#define il2cpp_class_get_rank_ptr 0x0065F160 +#define il2cpp_class_get_static_field_data_ptr 0x0065F170 +#define il2cpp_class_get_type_ptr 0x0065F180 +#define il2cpp_class_get_type_token_ptr 0x0065F190 +#define il2cpp_class_get_userdata_offset_ptr 0x0065F1A0 +#define il2cpp_class_has_attribute_ptr 0x0065F1B0 +#define il2cpp_class_has_parent_ptr 0x0065F1C0 +#define il2cpp_class_has_references_ptr 0x0065F1D0 +#define il2cpp_class_instance_size_ptr 0x0065F1E0 +#define il2cpp_class_is_abstract_ptr 0x0065F1F0 +#define il2cpp_class_is_assignable_from_ptr 0x0065F200 +#define il2cpp_class_is_blittable_ptr 0x0065F210 +#define il2cpp_class_is_enum_ptr 0x0065F220 +#define il2cpp_class_is_generic_ptr 0x0065F230 +#define il2cpp_class_is_inflated_ptr 0x0065F240 +#define il2cpp_class_is_interface_ptr 0x0065F250 +#define il2cpp_class_is_subclass_of_ptr 0x0065F260 +#define il2cpp_class_is_valuetype_ptr 0x006EA550 +#define il2cpp_class_num_fields_ptr 0x0065F270 +#define il2cpp_class_set_userdata_ptr 0x0015A460 +#define il2cpp_class_value_size_ptr 0x0065F280 +#define il2cpp_current_thread_get_frame_at_ptr 0x0065F290 +#define il2cpp_current_thread_get_stack_depth_ptr 0x0065F2A0 +#define il2cpp_current_thread_get_top_frame_ptr 0x0065F2C0 +#define il2cpp_current_thread_walk_frame_stack_ptr 0x0065F2D0 +#define il2cpp_custom_attrs_construct_ptr 0x0065F2E0 +#define il2cpp_custom_attrs_free_ptr 0x00161B80 +#define il2cpp_custom_attrs_from_class_ptr 0x0065F2F0 +#define il2cpp_custom_attrs_from_method_ptr 0x0065F310 +#define il2cpp_custom_attrs_get_attr_ptr 0x0065F330 +#define il2cpp_custom_attrs_has_attr_ptr 0x0065F340 +#define il2cpp_debug_get_method_info_ptr 0x0065F350 +#define il2cpp_debugger_set_agent_options_ptr 0x00161B80 +#define il2cpp_domain_assembly_open_ptr 0x0065F360 +#define il2cpp_domain_get_ptr 0x0065F370 +#define il2cpp_domain_get_assemblies_ptr 0x0065F380 +#define il2cpp_enable_object_type_mutex_ptr 0x0065F3B0 +#define il2cpp_exception_from_name_msg_ptr 0x0065F3C0 +#define il2cpp_field_get_flags_ptr 0x0065F3D0 +#define il2cpp_field_get_name_ptr 0x0065F830 +#define il2cpp_field_get_offset_ptr 0x0065F3E0 +#define il2cpp_field_get_parent_ptr 0x0065F7F0 +#define il2cpp_field_get_type_ptr 0x0065FB60 +#define il2cpp_field_get_value_ptr 0x0065F3F0 +#define il2cpp_field_get_value_object_ptr 0x0065F400 +#define il2cpp_field_has_attribute_ptr 0x0065F410 +#define il2cpp_field_is_literal_ptr 0x0065F420 +#define il2cpp_field_set_value_ptr 0x0065F430 +#define il2cpp_field_set_value_object_ptr 0x0065F440 +#define il2cpp_field_static_get_value_ptr 0x0065F450 +#define il2cpp_field_static_set_value_ptr 0x0065F460 +#define il2cpp_format_exception_ptr 0x0065F470 +#define il2cpp_format_stack_trace_ptr 0x0065F520 +#define il2cpp_free_ptr 0x0065F5D0 +#define il2cpp_free_captured_memory_snapshot_ptr 0x0065F5E0 +#define il2cpp_gc_collect_ptr 0x0067AC20 +#define il2cpp_gc_collect_a_little_ptr 0x0065F5F0 +#define il2cpp_gc_disable_ptr 0x0065F600 +#define il2cpp_gc_dump_append_text_to_log_ptr 0x0065F610 +#define il2cpp_gc_dump_info_ptr 0x0065F620 +#define il2cpp_gc_dump_set_large_allocated_block_found_callback_ptr 0x0065F630 +#define il2cpp_gc_dump_set_small_allocated_block_found_callback_ptr 0x0065F640 +#define il2cpp_gc_enable_ptr 0x0065F650 +#define il2cpp_gc_foreach_heap_ptr 0x0065F660 +#define il2cpp_gc_get_heap_size_ptr 0x0065F690 +#define il2cpp_gc_get_max_time_slice_ns_ptr 0x0065F6A0 +#define il2cpp_gc_get_used_size_ptr 0x0065F6B0 +#define il2cpp_gc_has_strict_wbarriers_ptr 0x006665C0 +#define il2cpp_gc_is_disabled_ptr 0x0065F6C0 +#define il2cpp_gc_is_incremental_ptr 0x0065F6D0 +#define il2cpp_gc_set_enable_get_mem_address_hint_ptr 0x0065F6E0 +#define il2cpp_gc_set_external_allocation_tracker_ptr 0x00161B80 +#define il2cpp_gc_set_external_wbarrier_tracker_ptr 0x00161B80 +#define il2cpp_gc_set_max_time_slice_ns_ptr 0x0065F6F0 +#define il2cpp_gc_set_object_malloc_callback_ptr 0x0065F700 +#define il2cpp_gc_set_object_return_freelist_callback_ptr 0x0065F710 +#define il2cpp_gc_wbarrier_set_field_ptr 0x0065F720 +#define il2cpp_gchandle_foreach_get_target_ptr 0x0065F730 +#define il2cpp_gchandle_free_ptr 0x006758B0 +#define il2cpp_gchandle_get_target_ptr 0x0065F760 +#define il2cpp_gchandle_new_ptr 0x0065F770 +#define il2cpp_gchandle_new_weakref_ptr 0x0065F780 +#define il2cpp_get_committed_memory_size_ptr 0x0065F790 +#define il2cpp_get_corlib_ptr 0x0065F7A0 +#define il2cpp_get_exception_argument_null_ptr 0x0065F7B0 +#define il2cpp_get_hash_table_memory_ptr 0x0065F7C0 +#define il2cpp_get_meta_data_pool_memory_ptr 0x0065F7D0 +#define il2cpp_image_get_assembly_ptr 0x0065F7F0 +#define il2cpp_image_get_class_ptr 0x0065F800 +#define il2cpp_image_get_class_count_ptr 0x0065F810 +#define il2cpp_image_get_entry_point_ptr 0x0065F820 +#define il2cpp_image_get_filename_ptr 0x0065F830 +#define il2cpp_image_get_name_ptr 0x0065F830 +#define il2cpp_init_ptr 0x0065F840 +#define il2cpp_init_security_ptr 0x0065F870 +#define il2cpp_init_utf16_ptr 0x0065F890 +#define il2cpp_is_debugger_attached_ptr 0x0067BF10 +#define il2cpp_is_vm_thread_ptr 0x0065F940 +#define il2cpp_method_get_class_ptr 0x0065FB70 +#define il2cpp_method_get_declaring_type_ptr 0x0065FB70 +#define il2cpp_method_get_flags_ptr 0x0065F950 +#define il2cpp_method_get_from_reflection_ptr 0x0065F7F0 +#define il2cpp_method_get_name_ptr 0x0065F7F0 +#define il2cpp_method_get_object_ptr 0x0065F980 +#define il2cpp_method_get_param_ptr 0x0065F990 +#define il2cpp_method_get_param_count_ptr 0x0065F9A0 +#define il2cpp_method_get_param_name_ptr 0x0065F9B0 +#define il2cpp_method_get_return_type_ptr 0x0065F9C0 +#define il2cpp_method_get_token_ptr 0x0065F9D0 +#define il2cpp_method_has_attribute_ptr 0x0065F9E0 +#define il2cpp_method_is_generic_ptr 0x0065F9F0 +#define il2cpp_method_is_inflated_ptr 0x0065FA00 +#define il2cpp_method_is_instance_ptr 0x0065FA10 +#define il2cpp_monitor_enter_ptr 0x0065FA20 +#define il2cpp_monitor_exit_ptr 0x0065FA30 +#define il2cpp_monitor_pulse_ptr 0x0065FA40 +#define il2cpp_monitor_pulse_all_ptr 0x0065FA50 +#define il2cpp_monitor_try_enter_ptr 0x0065FA60 +#define il2cpp_monitor_try_wait_ptr 0x0065FA70 +#define il2cpp_monitor_wait_ptr 0x0065FA80 +#define il2cpp_object_get_class_ptr 0x0065F830 +#define il2cpp_object_get_size_ptr 0x0065FA90 +#define il2cpp_object_get_virtual_method_ptr 0x0065FAA0 +#define il2cpp_object_header_size_ptr 0x00710530 +#define il2cpp_object_new_ptr 0x0065FAB0 +#define il2cpp_object_unbox_ptr 0x006EA540 +#define il2cpp_offset_of_array_bounds_in_array_object_header_ptr 0x00710530 +#define il2cpp_offset_of_array_length_in_array_object_header_ptr 0x00137CE0 +#define il2cpp_override_stack_backtrace_ptr 0x0065FAD0 +#define il2cpp_profiler_install_ptr 0x0065FAE0 +#define il2cpp_profiler_install_allocation_ptr 0x0065FAF0 +#define il2cpp_profiler_install_enter_leave_ptr 0x0065FB00 +#define il2cpp_profiler_install_fileio_ptr 0x0065FB10 +#define il2cpp_profiler_install_gc_ptr 0x0065FB20 +#define il2cpp_profiler_install_thread_ptr 0x0065FB30 +#define il2cpp_profiler_set_events_ptr 0x0065FB40 +#define il2cpp_property_get_flags_ptr 0x0065FB50 +#define il2cpp_property_get_get_method_ptr 0x0065F7F0 +#define il2cpp_property_get_name_ptr 0x0065FB60 +#define il2cpp_property_get_parent_ptr 0x0065F830 +#define il2cpp_property_get_set_method_ptr 0x0065FB70 +#define il2cpp_raise_exception_ptr 0x0065FB80 +#define il2cpp_register_debugger_agent_transport_ptr 0x00161B80 +#define il2cpp_register_filedelete_callback_ptr 0x0065FB90 +#define il2cpp_register_filemodify_callback_ptr 0x0065FBA0 +#define il2cpp_register_log_callback_ptr 0x0065FBB0 +#define il2cpp_resolve_icall_ptr 0x0065FBC0 +#define il2cpp_runtime_class_init_ptr 0x006EA900 +#define il2cpp_runtime_invoke_ptr 0x0065FBD0 +#define il2cpp_runtime_invoke_convert_args_ptr 0x0065FBF0 +#define il2cpp_runtime_object_init_ptr 0x0065FC10 +#define il2cpp_runtime_object_init_exception_ptr 0x0065FC20 +#define il2cpp_runtime_unhandled_exception_policy_set_ptr 0x0065FC30 +#define il2cpp_set_commandline_arguments_ptr 0x0065FC40 +#define il2cpp_set_commandline_arguments_utf16_ptr 0x0065FC50 +#define il2cpp_set_config_ptr 0x0065FC60 +#define il2cpp_set_config_dir_ptr 0x0065FC70 +#define il2cpp_set_config_utf16_ptr 0x0065FC80 +#define il2cpp_set_data_dir_ptr 0x0065FC90 +#define il2cpp_set_default_thread_affinity_ptr 0x0065FCA0 +#define il2cpp_set_disable_gc_parallel_mark_ptr 0x0065FCB0 +#define il2cpp_set_find_plugin_callback_ptr 0x0065FCC0 +#define il2cpp_set_memory_callbacks_ptr 0x0065FCD0 +#define il2cpp_set_output_redirected_file_path_ptr 0x0065FCE0 +#define il2cpp_set_parallel_android_affinity_ptr 0x0065FCF0 +#define il2cpp_set_parallel_android_cupcount_ptr 0x0065FD00 +#define il2cpp_set_temp_dir_ptr 0x0065FD10 +#define il2cpp_shutdown_ptr 0x0065FD20 +#define il2cpp_start_gc_world_ptr 0x0065FD30 +#define il2cpp_stats_dump_to_file_ptr 0x006665C0 +#define il2cpp_stats_get_value_ptr 0x006E7420 +#define il2cpp_stop_gc_world_ptr 0x0065FD40 +#define il2cpp_string_chars_ptr 0x0065FD50 +#define il2cpp_string_intern_ptr 0x0065FD60 +#define il2cpp_string_is_interned_ptr 0x0065FD70 +#define il2cpp_string_length_ptr 0x0065FD80 +#define il2cpp_string_new_ptr 0x006EA910 +#define il2cpp_string_new_len_ptr 0x0065FD90 +#define il2cpp_string_new_utf16_ptr 0x0065FDA0 +#define il2cpp_string_new_wrapper_ptr 0x006EA910 +#define il2cpp_thread_attach_ptr 0x0065FDB0 +#define il2cpp_thread_current_ptr 0x00676210 +#define il2cpp_thread_detach_ptr 0x0065FDC0 +#define il2cpp_thread_get_all_attached_threads_ptr 0x0065FDD0 +#define il2cpp_thread_get_frame_at_ptr 0x0065FDE0 +#define il2cpp_thread_get_stack_depth_ptr 0x0065FDF0 +#define il2cpp_thread_get_top_frame_ptr 0x0065FE00 +#define il2cpp_thread_walk_frame_stack_ptr 0x0065FE10 +#define il2cpp_type_equals_ptr 0x0065FE20 +#define il2cpp_type_get_assembly_qualified_name_ptr 0x0065FE30 +#define il2cpp_type_get_attrs_ptr 0x0065FEF0 +#define il2cpp_type_get_class_or_element_class_ptr 0x0065FF00 +#define il2cpp_type_get_name_ptr 0x0065FF10 +#define il2cpp_type_get_name_chunked_ptr 0x0065FFD0 +#define il2cpp_type_get_object_ptr 0x0065FFE0 +#define il2cpp_type_get_type_ptr 0x0065FFF0 +#define il2cpp_type_is_byref_ptr 0x00660000 +#define il2cpp_type_is_pointer_type_ptr 0x00660010 +#define il2cpp_type_is_static_ptr 0x00660020 +#define il2cpp_unhandled_exception_ptr 0x00660030 +#define il2cpp_unity_install_unitytls_interface_ptr 0x00660040 +#define il2cpp_unity_liveness_calculation_begin_ptr 0x00660050 +#define il2cpp_unity_liveness_calculation_end_ptr 0x00660060 +#define il2cpp_unity_liveness_calculation_from_root_ptr 0x00660070 +#define il2cpp_unity_liveness_calculation_from_statics_ptr 0x00660080 +#define il2cpp_value_box_ptr 0x00660090 diff --git a/cheat-library/src/appdata/il2cpp-api-functions.h b/cheat-library/src/appdata/il2cpp-api-functions.h index ad50602..c16075d 100644 --- a/cheat-library/src/appdata/il2cpp-api-functions.h +++ b/cheat-library/src/appdata/il2cpp-api-functions.h @@ -1,602 +1,303 @@ -// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty -// Target Unity version: 2019.4.21 - 2019.4.24 - -#ifndef DO_API_NO_RETURN - -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) - -#endif - - - -DO_API(int, il2cpp_init, (const char* domain_name)); - -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); - -DO_API(void, il2cpp_shutdown, ()); - -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); - -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); - -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); - -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); - -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); - -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); - -DO_API(void, il2cpp_set_config, (const char* executablePath)); - - - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); - -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); - -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); - -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - - - -DO_API(void*, il2cpp_alloc, (size_t size)); - -DO_API(void, il2cpp_free, (void* ptr)); - - - -// array - -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); - -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); - -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); - -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); - -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); - -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); - -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); - -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - - - -// assembly - -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - - - -// class - -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); - -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); - -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); - -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); - -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); - -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); - -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); - -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); - -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); - -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); - -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); - -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); - -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); - -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); - -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); - -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); - -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); - -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); - -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); - -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); - -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); - -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); - -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); - -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); - -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); - -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); - -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); - -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); - -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); - -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); - -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); - -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); - -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); - -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); - -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); - -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); - -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); - -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - - - -// testing only - -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); - -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - - - -// stats - -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); - -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - - - -// domain - -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); - -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); - -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - - - -// exception - -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); - -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); - -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); - -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); - -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); - -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - - - -// field - -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); - -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); - -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); - -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); - -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); - -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); - -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); - -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); - -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); - -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); - -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); - -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); - -// gc - -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); - -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); - -DO_API(void, il2cpp_gc_disable, ()); - -DO_API(void, il2cpp_gc_enable, ()); - -DO_API(bool, il2cpp_gc_is_disabled, ()); - -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); - -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); - -DO_API(bool, il2cpp_gc_is_incremental, ()); - -DO_API(int64_t, il2cpp_gc_get_used_size, ()); - -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); - -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); - -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); - -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); - -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); - -DO_API(void, il2cpp_stop_gc_world, ()); - -DO_API(void, il2cpp_start_gc_world, ()); - -// gchandle - -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); - -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); - -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); - -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - - - -// vm runtime info - -DO_API(uint32_t, il2cpp_object_header_size, ()); - -DO_API(uint32_t, il2cpp_array_object_header_size, ()); - -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); - -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); - -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - - - -// liveness - -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); - -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); - -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); - -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - - - -// method - -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); - -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); - -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); - -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); - -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); - -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); - -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); - -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); - -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); - -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); - -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); - -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); - -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); - -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); - -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - - - -// profiler - -#if IL2CPP_ENABLE_PROFILER - - - - - -#endif - - - -// property - -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); - -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); - -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); - -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); - -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - - - -// object - -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); - -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); - -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); - -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - - - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - - - -// monitor - -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); - -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); - -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); - -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); - -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); - -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); - -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - - - -// runtime - -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); - -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); - -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); - -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - - - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - - - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - - - -// string - -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); - -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); - -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); - -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); - -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); - -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); - -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); - -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - - - -// thread - -DO_API(Il2CppThread*, il2cpp_thread_current, ()); - -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); - -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - - - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); - -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - - - -// stacktrace - -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); - -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); - -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); - -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); - -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); - -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); - -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); - -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - - - -// type - -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); - -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); - -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); - -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); - -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); - -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); - -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); - -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); - -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); - -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - - - -// image - -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); - -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); - -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); - -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - - - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); - -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - - - -// Memory information - -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); - -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - - - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - - - -// Logging - -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - - - -// Debugger - -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); - -DO_API(bool, il2cpp_is_debugger_attached, ()); - -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - - - -// Debug metadata - -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - - - -// TLS module - -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - - - -// custom attributes - -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); - -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - - - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); - -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); - -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - - - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - - - -// Il2CppClass user data for GetComponent optimization - -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); - -DO_API(int, il2cpp_class_get_userdata_offset, ()); - - - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); - - +// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty +// Target Unity version: 2019.4.21 - 2019.4.24 + +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); + From 93a93e3352ad969d2bfca4c75dcbcaf01431136b Mon Sep 17 00:00:00 2001 From: Liko Date: Mon, 11 Jul 2022 15:25:02 +0200 Subject: [PATCH 09/27] Fixed stuff that was pointed out to me --- .../src/user/cheat/player/AutoRun.cpp | 23 +++++-------------- cheat-library/src/user/cheat/player/AutoRun.h | 5 ++-- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/cheat-library/src/user/cheat/player/AutoRun.cpp b/cheat-library/src/user/cheat/player/AutoRun.cpp index c01cac4..cc3da23 100644 --- a/cheat-library/src/user/cheat/player/AutoRun.cpp +++ b/cheat-library/src/user/cheat/player/AutoRun.cpp @@ -9,12 +9,10 @@ namespace cheat::feature { - //bool isAutoRunEnabled = false; AutoRun::AutoRun() : Feature(), NF(f_Enabled, "Auto Run", "Player::AutoRun", false), - NF(f_Speed, "Speed", "Player::AutoRun",1.0f), - NF(f_CameraRelative, "Relative to camera", "Player::AutoRun" , false) + NF(f_Speed, "Speed", "Player::AutoRun",1.0f) { events::GameUpdateEvent += MY_METHOD_HANDLER(AutoRun::OnGameUpdate); } @@ -29,7 +27,6 @@ namespace cheat::feature { ConfigWidget("Enable", f_Enabled); ConfigWidget("Auto Run speed", f_Speed, 0.01f, 0.01f, 1000.0f, "Speed of character \n Not recommended going above 5"); - ConfigWidget("Movement relative to camera", f_CameraRelative); } bool AutoRun::NeedStatusDraw() const @@ -47,7 +44,7 @@ namespace cheat::feature return instance; } - void enableAutoRun(float speed, bool cameraRelative) { + void enableAutoRun(float speed) { auto& manager = game::EntityManager::instance(); auto avatarEntity = manager.avatar(); @@ -55,11 +52,6 @@ namespace cheat::feature auto baseMove = avatarEntity->moveComponent(); auto rigidBody = avatarEntity->rigidbody(); - app::Rigidbody_set_detectCollisions(rigidBody, true, nullptr); - - auto cameraEntity = game::Entity(reinterpret_cast(manager.mainCamera())); - auto relativeEntity = cameraRelative ? &cameraEntity : avatarEntity; - if (baseMove == nullptr) return; @@ -69,15 +61,13 @@ namespace cheat::feature if (renderer::IsInputLocked()) return; - app::Vector3 dir = {}; - dir = dir + relativeEntity->forward(); + auto cameraEntity = game::Entity(reinterpret_cast(manager.mainCamera())); + auto relativeEntity = &cameraEntity; + app::Vector3 dir = relativeEntity->forward(); app::Vector3 prevPos = avatarEntity->relativePosition(); - if (IsVectorZero(prevPos)) - return; float deltaTime = app::Time_get_deltaTime(nullptr); - app::Vector3 newPos = prevPos + dir * speed * deltaTime; avatarEntity->setRelativePosition(newPos); @@ -86,8 +76,7 @@ namespace cheat::feature void AutoRun::OnGameUpdate() { if (f_Enabled) { float speed = f_Speed.value(); - bool cameraRelative = f_CameraRelative.value(); - enableAutoRun(speed, cameraRelative); + enableAutoRun(speed); } } } \ No newline at end of file diff --git a/cheat-library/src/user/cheat/player/AutoRun.h b/cheat-library/src/user/cheat/player/AutoRun.h index fb78efb..6943018 100644 --- a/cheat-library/src/user/cheat/player/AutoRun.h +++ b/cheat-library/src/user/cheat/player/AutoRun.h @@ -10,8 +10,7 @@ namespace cheat::feature public: config::Field> f_Enabled; config::Field f_Speed; - config::Field f_CameraRelative; - + static AutoRun& GetInstance(); const FeatureGUIInfo& GetGUIInfo() const override; @@ -23,6 +22,6 @@ namespace cheat::feature void OnGameUpdate(); private: - AutoRun(); + AutoRun(); }; } \ No newline at end of file From ce1e1338d2578617eb854c239365f5db6f268979 Mon Sep 17 00:00:00 2001 From: Joaquin <67109235+Taiga74164@users.noreply.github.com> Date: Tue, 12 Jul 2022 02:45:00 -0600 Subject: [PATCH 10/27] fix Alt God Mode crash --- cheat-library/res/assembly_checksum.json | 10 +++++----- cheat-library/src/appdata/il2cpp-types.h | 25 ++++++++++++------------ cheat-library/src/user/cheat/cheat.cpp | 1 - 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cheat-library/res/assembly_checksum.json b/cheat-library/res/assembly_checksum.json index f6d10ba..beadfe5 100644 --- a/cheat-library/res/assembly_checksum.json +++ b/cheat-library/res/assembly_checksum.json @@ -1,13 +1,13 @@ { - "game_version": "2.7", + "game_version": "2.8", "modules": { "UnityPlayer.dll": { - "checksum": 17900298344514688789, - "timestamp": 132967628640000000 + "checksum": 0, + "timestamp": 0 }, "UserAssembly.dll": { - "checksum": 7306786341503590701, - "timestamp": 132967628640000000 + "checksum": 0, + "timestamp": 0 } } } \ No newline at end of file diff --git a/cheat-library/src/appdata/il2cpp-types.h b/cheat-library/src/appdata/il2cpp-types.h index b5f7ebc..8093753 100644 --- a/cheat-library/src/appdata/il2cpp-types.h +++ b/cheat-library/src/appdata/il2cpp-types.h @@ -11874,23 +11874,24 @@ namespace app { struct MoleMole_Config_ConfigAbilityModifier__Fields fields; }; - struct __declspec(align(8)) HKMHAGBLLMK__Fields { - struct MoleMole_BaseAbilityMixin__Array* JGLDNAPGGGC; - struct List_1_System_ValueTuple_2__1* JFLGBBBFBLF; - struct List_1_System_ValueTuple_2__2* EFOPNOEMFBI; - struct List_1_MoleMole_Config_ConfigAbilityAction__1* PGICFJEDMAE; - struct List_1_System_ValueTuple_3__1* CGBNAMBLDOE; - struct IList_1_MoleMole_BaseAbilityMixin_* LOGOJNMHLIF; - }; + struct __declspec(align(8)) MoleMole_BaseActorActionContext__Fields { + struct MoleMole_BaseAbilityMixin__Array* instancedMixins; + struct List_1_UniRx_Tuple_2__1* _attachedPatternIndices; + struct List_1_UniRx_Tuple_2__2* _attachedResistanceBuffDebuffs; + struct List_1_MoleMole_Config_ConfigAbilityAction__1* _attachedAbilityActions; + struct List_1_UniRx_Tuple_3__1* _attachedElementTypeResistance; + struct IList_1_MoleMole_BaseAbilityMixin_* _tickMixins; + }; struct MoleMole_ActorModifier__Fields { - HKMHAGBLLMK__Fields _; + struct MoleMole_BaseActorActionContext__Fields _; struct MoleMole_ActorAbility* parentAbility; uint32_t parentAbilityInstanceID; struct MoleMole_Config_ConfigAbility* _parentAbilityConfig; uint32_t parentAbilityEntityID; uint32_t _applyEntityId_k__BackingField; struct MoleMole_LCAbility* owner; + struct Action* ADBOKMOBNAN; struct MoleMole_Config_ConfigAbilityModifier* _config; struct Dictionary_2_MoleMole_EncryptedString_System_Int32_* stackIndices; int32_t _parentOwnedIx; @@ -11901,17 +11902,17 @@ namespace app { bool attachedModifierIsServerBuff; int32_t attachedModifierNameHash; bool isAttachedParentAbility; - bool PBDIKHPKHLF; + bool GDKHIMOECNI; struct Action_1_MoleMole_ActorModifier_* onDetached; uint32_t serverBuffUid; - struct Action_1_Nullable_1_Single_* onDurabilityEmpty; + struct Action_2_Nullable_1_Single_Single_* onDurabilityEmpty; bool _isValid_k__BackingField; uint64_t _modifierStartTime_k__BackingField; bool isModifierInvalidByServer; bool hasAddedAbilityState; float thinkInterval; float reduceElementRatio; - float PHKNIPMALFB; + float JCCKKCLDNLF; }; struct MoleMole_ActorModifier { diff --git a/cheat-library/src/user/cheat/cheat.cpp b/cheat-library/src/user/cheat/cheat.cpp index 090c612..2fc8172 100644 --- a/cheat-library/src/user/cheat/cheat.cpp +++ b/cheat-library/src/user/cheat/cheat.cpp @@ -93,7 +93,6 @@ namespace cheat FEAT_INST(KillAura), FEAT_INST(MobVacuum), FEAT_INST(FakeTime), - FEAT_INST(ChestTeleport), FEAT_INST(OculiTeleport), From 8f48ff5c197ad04a128735e0c3034205f5063132 Mon Sep 17 00:00:00 2001 From: Callow <105681690+CPP-Callow@users.noreply.github.com> Date: Wed, 13 Jul 2022 09:40:05 +0300 Subject: [PATCH 11/27] add warning about 2.8 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8c55ce0..e1fec4c 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,10 @@ --- +

Warning

+Currently the support for 2.8 is under testing. So you can have bug with it. Also known issue with crashes for CN version. +If you want to help us to do update faster - create PR for problem what you have after updating to 2.8, but of course, check if nobody created it already. +

Getting Started

## Building from source From 6fd7a2e2ef9d096230f4fe83bf4d7ba2f2ee0f9c Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 10:38:27 +0300 Subject: [PATCH 12/27] fix dx11 hardware bug (old fix by @WitchGod) --- cheat-base/src/cheat-base/render/backend/dx11-hook.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp b/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp index 1f3837d..010c238 100644 --- a/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp +++ b/cheat-base/src/cheat-base/render/backend/dx11-hook.cpp @@ -82,10 +82,10 @@ static IDXGISwapChainPresent findDirect11Present() ID3D11DeviceContext* pContext = nullptr; ID3D11Device* pDevice = nullptr; - if (/*FAILED(D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_WARP, NULL, NULL, &featureLevel, 1, - D3D11_SDK_VERSION, &swapChainDesc, &pSwapChain, &pDevice, NULL, &pContext)) &&*/ + if (FAILED(D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_WARP, nullptr, 0, nullptr, 1, D3D11_SDK_VERSION, + &swapChainDesc, &pSwapChain, &pDevice, &featureLevel, &pContext)) && FAILED(D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, - &swapChainDesc, &pSwapChain, &pDevice, &featureLevel, nullptr))) + &swapChainDesc, &pSwapChain, &pDevice, &featureLevel, &pContext))) { DestroyWindow(swapChainDesc.OutputWindow); UnregisterClass(wc.lpszClassName, GetModuleHandle(nullptr)); From 83ed9eda9652540535e24bc7487d43981669dff5 Mon Sep 17 00:00:00 2001 From: Nanako <00sh.chiha+github@gmail.com> Date: Mon, 4 Jul 2022 00:07:02 +0900 Subject: [PATCH 13/27] Changes (check description) - Teleports Table View, Instead of Tree View - Fix JSON Errors when there's a wrong file - Description, and Some TryCatching - Some Cool OOP sorry for triggering your ocd @harlanx ;) --- .../user/cheat/teleport/CustomTeleports.cpp | 548 ++++++++++-------- .../src/user/cheat/teleport/CustomTeleports.h | 35 +- 2 files changed, 329 insertions(+), 254 deletions(-) diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp index b99dd18..cb29205 100644 --- a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp @@ -22,8 +22,8 @@ namespace cheat::feature NF(f_Next, "Teleport Next", "CustomTeleports", Hotkey(VK_OEM_6)), NF(f_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)) { - f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNextKeyPressed); - f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPreviousKeyPressed); + f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext); + f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious); } const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const { @@ -31,244 +31,373 @@ namespace cheat::feature return info; } + void CustomTeleports::CheckFolder() + { + if (!std::filesystem::exists(dir)) + std::filesystem::create_directory(dir); + else return; + } + + bool CustomTeleports::ValidateTeleport(std::string name) + { + for (auto &Teleport : Teleports) + if (Teleport.name == name) + return false; + if (name.find_first_of("\\/:*?\"<>|") != std::string::npos) + return false; + return true; + } + + Teleport CustomTeleports::Teleport_(std::string name, app::Vector3 position, std::string description) + { + Teleport t(name, position, description); + return t; + } + + void CustomTeleports::SerializeTeleport(Teleport t) + { + Teleports.push_back(t); + LOG_INFO("Teleport '%s' Loaded", t.name.c_str()); + CheckFolder(); + std::ofstream ofs(dir / (t.name + ".json")); + nlohmann::json j; + try + { + j["name"] = t.name; + j["position"] = {t.position.x, t.position.y, t.position.z}; + j["description"] = t.description; + ofs << j; + ofs.close(); + LOG_INFO("Teleport '%s' Serialized.", t.name.c_str()); + } catch (std::exception e) + { + ofs.close(); + LOG_ERROR("Failed to serialize teleport: %s: %s", t.name.c_str(), e.what()); + } + } + + Teleport CustomTeleports::SerializeFromJson(std::string json, bool fromfile) + { + nlohmann::json j; + 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()); + } + std::string teleportName; + teleportName = j["name"]; + if (j["name"].is_null() && fromfile) + { + LOG_ERROR("No name found! Using File Name"); + teleportName = std::filesystem::path(json).stem().filename().string(); + } + 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); + } + + void CustomTeleports::ReloadTeleports() + { + auto result = std::filesystem::directory_iterator(dir); + Teleports.clear(); + + for (auto &file : result) + { + if (file.path().extension() == ".json") + { + std::ifstream ifs(file.path()); + std::string json; + std::getline(ifs, json); + SerializeTeleport(SerializeFromJson(json, true)); + } + } + } + + float PositionDistance(app::Vector3 a, app::Vector3 b) + { + return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2) + pow(a.z - b.z, 2)); + } + + void CustomTeleports::OnTeleportKeyPressed(bool next) + { + if (!f_Enabled || selectedIndex < 0) + return; + + auto &mapTeleport = MapTeleport::GetInstance(); + app::Vector3 position; + + if (selectedByClick) + { + position = Teleports.at(selectedIndex).position; + selectedByClick = false; + } + else + { + std::vector list(checkedIndices.begin(), checkedIndices.end()); + if (selectedIndex == list.back() ? next : selectedIndex == list.front()) + return; + auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex)); + position = Teleports.at(list.at(index + (next ? 1 : -1))).position; + selectedIndex = list.at(index + (next ? 1 : -1)); + } + mapTeleport.TeleportTo(position); + UpdateIndexName(); + } + + void CustomTeleports::OnPrevious() + { + OnTeleportKeyPressed(false); + } + void CustomTeleports::OnNext() + { + OnTeleportKeyPressed(true); + } + + + void CustomTeleports::UpdateIndexName() + { + std::string name(selectedIndex == -1 || checkedIndices.empty() ? "" : Teleports.at(selectedIndex).name); + + // abbreviate teleport names that are too long + if (name.length() > 15) + { + std::string shortened; + std::regex numsExp("[\\d]+"); + std::regex firstCharsExp("\\b[A-Za-z]"); + + std::sregex_iterator wordItr(name.begin(), name.end(), firstCharsExp); + while (wordItr != std::sregex_iterator()) + { + for (unsigned i = 0; i < wordItr->size(); i++) + { + shortened.append((*wordItr)[i]); + } + wordItr++; + } + + std::sregex_iterator numItr(name.begin(), name.end(), numsExp); + while (numItr != std::sregex_iterator()) + { + for (unsigned i = 0; i < numItr->size(); i++) + { + shortened.append(" "); + shortened.append((*numItr)[i]); + } + numItr++; + } + name = shortened; + } + selectedIndexName = name; + } + void CustomTeleports::DrawMain() { - auto& entityManager = game::EntityManager::instance(); - auto& MapTeleport = MapTeleport::GetInstance(); - static std::string teleportName; - static std::string search; - app::Vector3 pos = app::ActorUtils_GetAvatarPos(nullptr); + // Buffers + static std::string nameBuffer_; + static std::string searchBuffer_; + static std::string JSONBuffer_; + static std::string descriptionBuffer_; - ImGui::InputText("Teleport name", &teleportName); + ImGui::InputText("Name", &nameBuffer_); + ImGui::InputText("Description", &descriptionBuffer_); if (ImGui::Button("Add Teleport")) { - // check if name is valid and doesnt contain special characters - if (teleportName.find_first_of("\\/:*?\"<>|") != std::string::npos) - return; - - // check if already added - if (std::any_of(teleports.begin(), teleports.end(), [](const auto& pair) - { return pair.first == teleportName; })) - return; - selectedIndex = -1; UpdateIndexName(); - teleports.push_back({ teleportName, pos }); - - auto dir = std::filesystem::current_path(); - dir /= "teleports"; - if (!std::filesystem::exists(dir)) - std::filesystem::create_directory(dir); - std::ofstream ofs(dir / (teleportName + ".json")); - nlohmann::json j; - j["name"] = teleportName; - j["position"] = { pos.x, pos.y, pos.z }; - ofs << j; - teleportName.clear(); + SerializeTeleport(Teleport_(nameBuffer_, app::ActorUtils_GetAvatarPos(nullptr), descriptionBuffer_)); + nameBuffer_ = ""; + descriptionBuffer_ = ""; } ImGui::SameLine(); + if (ImGui::Button("Reload")) { selectedIndex = -1; UpdateIndexName(); checkedIndices.clear(); - auto dir = std::filesystem::current_path(); - dir /= "teleports"; - auto result = std::filesystem::directory_iterator(dir); - teleports.clear(); - for (auto& file : result) - { - if (file.path().extension() != ".json") - continue; - - std::string name = file.path().stem().string(); - if (file.is_directory()) - continue; - - std::ifstream ifs(file.path()); - nlohmann::json j; - ifs >> j; - teleports.push_back({ j["name"], {j["position"][0], j["position"][1], j["position"][2]} }); - LOG_INFO("Loaded teleport %s", name.c_str()); - } + ReloadTeleports(); } + ImGui::SameLine(); - // open directory if (ImGui::Button("Open Folder")) { - auto dir = std::filesystem::current_path(); - dir /= "teleports"; + CheckFolder(); ShellExecuteA(NULL, "open", dir.string().c_str(), NULL, NULL, SW_SHOW); } + ImGui::SameLine(); - static std::string jsonInput; if (ImGui::Button("Load from JSON")) { selectedIndex = -1; UpdateIndexName(); - auto dir = std::filesystem::current_path(); - dir /= "teleports"; - LOG_INFO("Defined dir"); - if (!std::filesystem::exists(dir)) - std::filesystem::create_directory(dir); - nlohmann::json j; - try - { - j = nlohmann::json::parse(jsonInput); - } - catch (nlohmann::json::parse_error& e) - { - LOG_ERROR("Failed to parse JSON: %s", e.what()); - return; - } - LOG_INFO("Parsed JSON"); - std::string teleportName = j["name"]; - app::Vector3 pos = { j["position"][0], j["position"][1], j["position"][2] }; - teleports.push_back({ teleportName, pos }); - LOG_INFO("Loaded teleport %s", teleportName.c_str()); - std::ofstream ofs(dir / (teleportName + ".json")); - ofs << jsonInput; - jsonInput.clear(); + SerializeTeleport(SerializeFromJson(JSONBuffer_, false)); + JSONBuffer_ = ""; } - ImGui::InputTextMultiline("JSON input", &jsonInput, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput); + ImGui::InputTextMultiline("JSON input", &JSONBuffer_, ImVec2(0, 50), ImGuiInputTextFlags_AllowTabInput); ConfigWidget("Teleport Next", f_Next, true, "Press to teleport next of selected"); ConfigWidget("Teleport Previous", f_Previous, true, "Press to teleport previous of selected"); - ConfigWidget("Enable", - f_Enabled, - "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", f_Enabled, + "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"); ImGui::SameLine(); + if (ImGui::Button("Delete Checked")) { - if (!teleports.empty()) { - std::vector teleportNames; - // get all teleport names by index - for (auto& i : checkedIndices) { - teleportNames.push_back(teleports.at(i).first); - if (selectedIndex == i) selectedIndex = -1; + if (!Teleports.empty()) + { + if (checkedIndices.empty()) + { + LOG_INFO("No teleports selected"); + return; } - - for (auto& name : teleportNames) { - auto dir = std::filesystem::current_path(); - dir /= "teleports"; - // delete file - std::filesystem::remove(dir / (name + ".json")); - // remove from list - teleports.erase(std::remove_if(teleports.begin(), teleports.end(), [&name](const auto& pair) - { return pair.first == name; }), teleports.end()); + std::vector teleportNames; + for (auto &Teleport : Teleports) + teleportNames.push_back(Teleport.name); + for (auto &index : checkedIndices) + { + std::filesystem::remove(dir / (teleportNames[index] + ".json")); + LOG_INFO("Deleted teleport %s", teleportNames[index].c_str()); } checkedIndices.clear(); UpdateIndexName(); - } - + ReloadTeleports(); + } else {LOG_INFO("No teleports to delete");} } ImGui::SameLine(); - HelpMarker("Warning: This will delete the file from the directory and\nremove the teleport from the list. It will be lost forever."); + HelpMarker("Warning: This will delete the file from the directory and\n \ + remove the teleport from the list. It will be lost forever."); if (ImGui::TreeNode("Teleports")) { - - // using natural sort instead of ascii sort - std::sort(teleports.begin(), teleports.end(), [](const auto& a, const auto& b) - { return StrCmpLogicalW(std::wstring(a.first.begin(), a.first.end()).c_str(), std::wstring(b.first.begin(), b.first.end()).c_str()) < 0; }); - - bool allSearchChecked = std::includes(checkedIndices.begin(), checkedIndices.end() ,searchIndices.begin(), searchIndices.end()) && !searchIndices.empty(); - bool allChecked = (checkedIndices.size() == teleports.size() && !teleports.empty()) || allSearchChecked; + std::sort(Teleports.begin(), Teleports.end(), [](const auto &a, const auto &b) + { return StrCmpLogicalW(std::wstring(a.name.begin(), a.name.end()).c_str(), std::wstring(b.name.begin(), b.name.end()).c_str()) < 0; }); + bool allChecked = checkedIndices.size() == Teleports.size() && !Teleports.empty(); + bool allSearchChecked = checkedIndices.size() == searchIndices.size() && !searchIndices.empty(); ImGui::Checkbox("All", &allChecked); - if (ImGui::IsItemClicked()) { - if (!teleports.empty()) { - if (allChecked) { + if (ImGui::IsItemClicked()) + { + if (!Teleports.empty()) + { + if (allChecked) + { selectedIndex = -1; - if (!searchIndices.empty()) { - for (const auto& i : searchIndices) { + if (!searchIndices.empty()) + for (const auto &i : searchIndices) checkedIndices.erase(i); - } - } - else { + else checkedIndices.clear(); - } - } - else { - if (!searchIndices.empty()) { - checkedIndices.insert(searchIndices.begin(), searchIndices.end()); - } - else { - for (int i = 0; i < teleports.size(); i++) - checkedIndices.insert(i); - } } + else if (!searchIndices.empty()) + checkedIndices.insert(searchIndices.begin(), searchIndices.end()); + else + for (int i = 0; i < Teleports.size(); i++) + checkedIndices.insert(i); UpdateIndexName(); } } ImGui::SameLine(); - ImGui::InputText("Search", &search); + ImGui::InputText("Search", &searchBuffer_); unsigned int index = 0; searchIndices.clear(); - for (const auto& [teleportName, position] : teleports) - { - // find without case sensitivity - if (search.empty() || std::search(teleportName.begin(), teleportName.end(), search.begin(), search.end(), [](char a, char b) - { return std::tolower(a) == std::tolower(b); }) != teleportName.end()) - { - // sets are sorted by default and does not allow duplicates - // which works in favor here. - if (!search.empty()) { - searchIndices.insert(index); - } - bool checked = std::any_of(checkedIndices.begin(), checkedIndices.end(), [&index](const auto& i) { return i == index; }); + unsigned int maxNameLength = 0; + for (auto &Teleport : Teleports) + if (Teleport.name.length() > maxNameLength) + maxNameLength = Teleport.name.length(); + ImGui::BeginTable("Teleports", 4, ImGuiTableFlags_Borders | ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable | ImGuiTableFlags_NoSavedSettings); + ImGui::TableSetupColumn("#", ImGuiTableColumnFlags_WidthFixed, 20); + ImGui::TableSetupColumn("Commands", ImGuiTableColumnFlags_WidthFixed, 100); + ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_WidthFixed, maxNameLength * 8 + 10); + ImGui::TableSetupColumn("Position"); + ImGui::TableHeadersRow(); + ImGuiTreeNodeFlags nodeFlags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_SpanAvailWidth; + + for (const auto &[name, position, description] : Teleports) + { + if (searchBuffer_.empty() || std::search(name.begin(), name.end(), searchBuffer_.begin(), searchBuffer_.end(), [](char a, char b) + { return std::tolower(a) == std::tolower(b); }) != name.end()) + { + if (!searchBuffer_.empty()) + searchIndices.insert(index); + bool checked = std::any_of(checkedIndices.begin(), checkedIndices.end(), [&index](const auto &i) + { return i == index; }); bool selected = index == selectedIndex; + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::Text("%d", index); + ImGui::TableNextColumn(); ImGui::Checkbox(("##Index" + std::to_string(index)).c_str(), &checked); - if (ImGui::IsItemClicked(0)) { - if (checked) { - if (selected) selectedIndex = -1; + if (ImGui::IsItemClicked(0)) + { + if (checked) + { + if (selected) + selectedIndex = -1; checkedIndices.erase(index); } - else { + else checkedIndices.insert(index); - } UpdateIndexName(); } + ImGui::SameLine(); if (ImGui::Button(("TP##Button" + std::to_string(index)).c_str())) { - auto& mapTeleport = MapTeleport::GetInstance(); - mapTeleport.TeleportTo(position); + auto &manager = game::EntityManager::instance(); + auto avatar = manager.avatar(); + if (avatar->moveComponent() == nullptr) + { + LOG_ERROR("Avatar has no move component, Is scene loaded?"); + return; + } + if (PositionDistance(position, app::ActorUtils_GetAvatarPos(nullptr)) > 60.0f) + MapTeleport::GetInstance().TeleportTo(position); + else + manager.avatar()->setAbsolutePosition(position); + } + + ImGui::SameLine(); + if (ImGui::Button(("Select##Button" + std::to_string(index)).c_str())) + { + selectedIndex = index; + selectedByClick = true; + UpdateIndexName(); } ImGui::SameLine(); ImGui::PushStyleColor(ImGuiCol_Text, selected ? IM_COL32(40, 90, 175, 255) : IM_COL32(255, 255, 255, 255)); - ImGuiTreeNodeFlags nodeFlags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_SpanAvailWidth; - if (selected) nodeFlags |= ImGuiTreeNodeFlags_Selected; - bool node_open = ImGui::TreeNodeEx(teleportName.data(), nodeFlags); - if (ImGui::IsItemClicked() && checked) { - if (!selected) { - selectedIndex = index; - selectedByClick = true; - } - else { - selectedIndex = -1; - selectedByClick = false; - } - UpdateIndexName(); - } - if (node_open) - { - ImGui::Text("Position: %.3f, %.3f, %.3f", position.x, position.y, position.z); - ImGui::TreePop(); - } + + if (selected) + nodeFlags |= ImGuiTreeNodeFlags_Selected; ImGui::PopStyleColor(); + ImGui::TableNextColumn(); + + ImGui::Text("%s", name.c_str()); + if (ImGui::IsItemHovered()) + { + ImGui::BeginTooltip(); + ImGui::Text("%s", description.c_str()); + ImGui::Text("Distance: %.2f", PositionDistance(position, app::ActorUtils_GetAvatarPos(nullptr))); + ImGui::EndTooltip(); + } + ImGui::TableNextColumn(); + ImGui::Text("%f, %f, %f", position.x, position.y, position.z); } index++; } - ImGui::TreePop(); + ImGui::EndTable(); } + + if (selectedIndex != -1) + ImGui::Text("Selected: [%d] %s", selectedIndex, Teleports[selectedIndex].name.c_str()); } bool CustomTeleports::NeedStatusDraw() const @@ -281,88 +410,7 @@ namespace cheat::feature ImGui::Text("Custom Teleport\n[%s]", selectedIndexName); } - void CustomTeleports::OnNextKeyPressed() - { - if (!f_Enabled || selectedIndex < 0) - return; - - auto& mapTeleport = MapTeleport::GetInstance(); - app::Vector3 position; - - if (selectedByClick) { - position = teleports.at(selectedIndex).second; - selectedByClick = false; - } - else { - std::vector list(checkedIndices.begin(), checkedIndices.end()); - if (selectedIndex == list.back()) - return; - - auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex)); - position = teleports.at(list.at(index + 1)).second; - selectedIndex = list.at(index + 1); - } - mapTeleport.TeleportTo(position); - UpdateIndexName(); - } - - void CustomTeleports::OnPreviousKeyPressed() - { - if (!f_Enabled || selectedIndex < 0) - return; - - auto& mapTeleport = MapTeleport::GetInstance(); - app::Vector3 position; - - if (selectedByClick) { - position = teleports.at(selectedIndex).second; - selectedByClick = false; - } - else { - std::vector list(checkedIndices.begin(), checkedIndices.end()); - if (selectedIndex == list.front()) - return; - - auto index = std::distance(list.begin(), std::find(list.begin(), list.end(), selectedIndex)); - position = teleports.at(list.at(index - 1)).second; - selectedIndex = list.at(index - 1); - } - mapTeleport.TeleportTo(position); - UpdateIndexName(); - } - - void CustomTeleports::UpdateIndexName() { - std::string name(selectedIndex == -1 || checkedIndices.empty() ? "" : teleports.at(selectedIndex).first); - - // abbreviate teleport names that are too long - if (name.length() > 15) { - std::string shortened; - std::regex numsExp("[\\d]+"); - std::regex firstCharsExp("\\b[A-Za-z]"); - - std::sregex_iterator wordItr(name.begin(), name.end(), firstCharsExp); - while (wordItr != std::sregex_iterator()) { - for (unsigned i = 0; i < wordItr->size(); i++) { - shortened.append((*wordItr)[i]); - } - wordItr++; - } - - std::sregex_iterator numItr(name.begin(), name.end(), numsExp); - while (numItr != std::sregex_iterator()) { - for (unsigned i = 0; i < numItr->size(); i++) { - shortened.append(" "); - shortened.append((*numItr)[i]); - } - numItr++; - } - name = shortened; - } - selectedIndexName = name; - - } - - CustomTeleports& CustomTeleports::GetInstance() + CustomTeleports &CustomTeleports::GetInstance() { static CustomTeleports instance; return instance; diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.h b/cheat-library/src/user/cheat/teleport/CustomTeleports.h index aba3865..eb03b34 100644 --- a/cheat-library/src/user/cheat/teleport/CustomTeleports.h +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.h @@ -8,6 +8,20 @@ namespace cheat::feature { + class Teleport + { + public: + Teleport(std::string name, app::Vector3 position, std::string description) + { + this->name = name; + this->position = position; + this->description = description; + } + std::string name; + app::Vector3 position; + std::string description; + }; + class CustomTeleports : public Feature { public: @@ -17,21 +31,34 @@ namespace cheat::feature config::Field f_Previous; static CustomTeleports& GetInstance(); const FeatureGUIInfo& GetGUIInfo() const override; - void DrawMain() override; + void CheckFolder(); + bool ValidateTeleport(std::string name); + Teleport Teleport_(std::string name, app::Vector3 position, std::string description); + void SerializeTeleport(Teleport t); + void ReloadTeleports(); + Teleport SerializeFromJson(std::string json, bool fromfile); + + + void DrawMain() override; virtual bool NeedStatusDraw() const override; void DrawStatus() override; + + std::vector Teleports; + std::filesystem::path dir = std::filesystem::current_path() / "teleports"; private: - std::vector> teleports; std::set checkedIndices; std::set searchIndices; bool selectedByClick = false; int selectedIndex = -1; + std::string selectedName; std::string selectedIndexName; CustomTeleports(); - void OnNextKeyPressed(); - void OnPreviousKeyPressed(); + void OnTeleportKeyPressed(bool next); + void OnPrevious(); + void OnNext(); void UpdateIndexName(); }; + } \ No newline at end of file From 08b1257ebf96c35068d00a4c552053964658a1ff Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 10:45:20 +0300 Subject: [PATCH 14/27] update checksum for 2.8 --- cheat-library/res/assembly_checksum.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cheat-library/res/assembly_checksum.json b/cheat-library/res/assembly_checksum.json index beadfe5..7408106 100644 --- a/cheat-library/res/assembly_checksum.json +++ b/cheat-library/res/assembly_checksum.json @@ -2,11 +2,11 @@ "game_version": "2.8", "modules": { "UnityPlayer.dll": { - "checksum": 0, + "checksum": 4999961552328781053, "timestamp": 0 }, "UserAssembly.dll": { - "checksum": 0, + "checksum": 807890720029543258, "timestamp": 0 } } From e379fb21618789ba3cae67964853b21f4e719f3c Mon Sep 17 00:00:00 2001 From: Andrei Abrudan Date: Wed, 13 Jul 2022 08:43:54 +0100 Subject: [PATCH 15/27] Use initializer_list in constructors --- .../src/user/cheat/game/AdvancedFilter.h | 6 +- .../src/user/cheat/game/SimpleFilter.cpp | 20 +- .../src/user/cheat/game/SimpleFilter.h | 9 +- cheat-library/src/user/cheat/game/filters.cpp | 752 +++++++++--------- 4 files changed, 391 insertions(+), 396 deletions(-) diff --git a/cheat-library/src/user/cheat/game/AdvancedFilter.h b/cheat-library/src/user/cheat/game/AdvancedFilter.h index 4a8abec..051b04d 100644 --- a/cheat-library/src/user/cheat/game/AdvancedFilter.h +++ b/cheat-library/src/user/cheat/game/AdvancedFilter.h @@ -26,8 +26,10 @@ namespace cheat::game public IEntityFilter { public: - AdvancedFilter(const std::vector& types = {}, const std::vector& names = {}) : m_Names(names), m_Types(types) {} - AdvancedFilter(const app::EntityType__Enum_1 type, const std::string name) : AdvancedFilter(std::vector{type}, std::vector{name}) {} + AdvancedFilter(std::initializer_list types = {}, std::initializer_list names = {}) : m_Names(names), m_Types(types) {} + AdvancedFilter(std::initializer_list types, const std::string& name) : AdvancedFilter(types, { name }) {} + AdvancedFilter(const app::EntityType__Enum_1 type, std::initializer_list name) : AdvancedFilter({ type }, name) {} + AdvancedFilter(const app::EntityType__Enum_1 type, const std::string& name) : AdvancedFilter({ type }, { name }) {} friend AdvancedFilter operator+(AdvancedFilter lFilter, const AdvancedFilter& rFilter); bool IsValid(Entity* entity) const override { diff --git a/cheat-library/src/user/cheat/game/SimpleFilter.cpp b/cheat-library/src/user/cheat/game/SimpleFilter.cpp index 887766b..59a8dc1 100644 --- a/cheat-library/src/user/cheat/game/SimpleFilter.cpp +++ b/cheat-library/src/user/cheat/game/SimpleFilter.cpp @@ -3,6 +3,13 @@ namespace cheat::game { + SimpleFilter::SimpleFilter(std::initializer_list names) + : m_Type(names.begin()->m_Type) + { + std::for_each(names.begin(), names.end(), [this](const SimpleFilter& other) { + m_Names.insert(m_Names.begin(), other.m_Names.begin(), other.m_Names.end()); + }); + } bool SimpleFilter::IsValid(Entity* entity) const { @@ -24,15 +31,4 @@ namespace cheat::game return false; } - - SimpleFilter::SimpleFilter(app::EntityType__Enum_1 type, const std::vector& names) : m_Names(names), m_Type(type) - { - - } - - SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter) - { - lFilter.m_Names.insert(lFilter.m_Names.end(), rFilter.m_Names.begin(), rFilter.m_Names.end()); - return lFilter; - } -} \ No newline at end of file +} diff --git a/cheat-library/src/user/cheat/game/SimpleFilter.h b/cheat-library/src/user/cheat/game/SimpleFilter.h index ee380f1..b2c3db3 100644 --- a/cheat-library/src/user/cheat/game/SimpleFilter.h +++ b/cheat-library/src/user/cheat/game/SimpleFilter.h @@ -10,12 +10,11 @@ namespace cheat::game public IEntityFilter { public: - - SimpleFilter(app::EntityType__Enum_1 type, const std::vector& names = {}); - SimpleFilter(app::EntityType__Enum_1 type, const std::string name) : SimpleFilter(type, std::vector{name}) {} + SimpleFilter(app::EntityType__Enum_1 type, std::initializer_list names = {}) : m_Type(type), m_Names{ names } {} + SimpleFilter(app::EntityType__Enum_1 type, const std::string& name) : SimpleFilter(type, {name}) {} + SimpleFilter(std::initializer_list lst); bool IsValid(Entity* entity) const override; - friend SimpleFilter operator+(SimpleFilter lFilter, const SimpleFilter& rFilter); - private: + protected: app::EntityType__Enum_1 m_Type; std::vector m_Names; }; diff --git a/cheat-library/src/user/cheat/game/filters.cpp b/cheat-library/src/user/cheat/game/filters.cpp index d3e54d0..1601c7c 100644 --- a/cheat-library/src/user/cheat/game/filters.cpp +++ b/cheat-library/src/user/cheat/game/filters.cpp @@ -4,317 +4,317 @@ namespace cheat::game::filters { + using namespace game; + using namespace app; + namespace collection { - SimpleFilter Book = { app::EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" }; - SimpleFilter Viewpoint = { app::EntityType__Enum_1::ViewPoint, "SkillObj_EmptyGadget" }; - ChestFilter RadiantSpincrystal = ChestFilter(game::Chest::ItemType::BGM); - ChestFilter BookPage = ChestFilter(game::Chest::ItemType::BookPage); - ChestFilter QuestInteract = ChestFilter(game::Chest::ItemType::QuestInteract); + SimpleFilter Book = { EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" }; + SimpleFilter Viewpoint = { EntityType__Enum_1::ViewPoint, "SkillObj_EmptyGadget" }; + ChestFilter RadiantSpincrystal = ChestFilter(Chest::ItemType::BGM); + ChestFilter BookPage = ChestFilter(Chest::ItemType::BookPage); + ChestFilter QuestInteract = ChestFilter(Chest::ItemType::QuestInteract); } namespace chest { - ChestFilter CommonChest = ChestFilter(game::Chest::ChestRarity::Common); - ChestFilter ExquisiteChest = ChestFilter(game::Chest::ChestRarity::Exquisite); - ChestFilter PreciousChest = ChestFilter(game::Chest::ChestRarity::Precious); - ChestFilter LuxuriousChest = ChestFilter(game::Chest::ChestRarity::Luxurious); - ChestFilter RemarkableChest = ChestFilter(game::Chest::ChestRarity::Remarkable); - ChestFilter SearchPoint = ChestFilter(game::Chest::ItemType::Investigate); + ChestFilter CommonChest = ChestFilter(Chest::ChestRarity::Common); + ChestFilter ExquisiteChest = ChestFilter(Chest::ChestRarity::Exquisite); + ChestFilter PreciousChest = ChestFilter(Chest::ChestRarity::Precious); + ChestFilter LuxuriousChest = ChestFilter(Chest::ChestRarity::Luxurious); + ChestFilter RemarkableChest = ChestFilter(Chest::ChestRarity::Remarkable); + ChestFilter SearchPoint = ChestFilter(Chest::ItemType::Investigate); - ChestFilter SLocked = ChestFilter(game::Chest::ChestState::Locked); - ChestFilter SInLock = ChestFilter(game::Chest::ChestState::InRock); - ChestFilter SFrozen = ChestFilter(game::Chest::ChestState::Frozen); - ChestFilter SBramble = ChestFilter(game::Chest::ChestState::Bramble); - ChestFilter STrap = ChestFilter(game::Chest::ChestState::Trap); + ChestFilter SLocked = ChestFilter(Chest::ChestState::Locked); + ChestFilter SInLock = ChestFilter(Chest::ChestState::InRock); + ChestFilter SFrozen = ChestFilter(Chest::ChestState::Frozen); + ChestFilter SBramble = ChestFilter(Chest::ChestState::Bramble); + ChestFilter STrap = ChestFilter(Chest::ChestState::Trap); } namespace equipment { - SimpleFilter Artifacts = { app::EntityType__Enum_1::DropItem, "_Relic" }; - SimpleFilter Bow = { app::EntityType__Enum_1::DropItem, "_Bow" }; - SimpleFilter Claymore = { app::EntityType__Enum_1::DropItem, "_Claymore" }; - SimpleFilter Catalyst = { app::EntityType__Enum_1::DropItem, "_Catalyst" }; - SimpleFilter Pole = { app::EntityType__Enum_1::DropItem, "_Pole" }; - SimpleFilter Sword = { app::EntityType__Enum_1::DropItem, "_Sword" }; + SimpleFilter Artifacts = { EntityType__Enum_1::DropItem, "_Relic" }; + SimpleFilter Bow = { EntityType__Enum_1::DropItem, "_Bow" }; + SimpleFilter Claymore = { EntityType__Enum_1::DropItem, "_Claymore" }; + SimpleFilter Catalyst = { EntityType__Enum_1::DropItem, "_Catalyst" }; + SimpleFilter Pole = { EntityType__Enum_1::DropItem, "_Pole" }; + SimpleFilter Sword = { EntityType__Enum_1::DropItem, "_Sword" }; } namespace featured { - SimpleFilter Anemoculus = { app::EntityType__Enum_1::GatherObject, "WindCrystalShell" }; - SimpleFilter CrimsonAgate = { app::EntityType__Enum_1::GatherObject, "Prop_Essence" }; - SimpleFilter Electroculus = { app::EntityType__Enum_1::GatherObject, "Prop_ElectricCrystal" }; - SimpleFilter Electrogranum = { app::EntityType__Enum_1::Gadget, "ThunderSeedCreate" }; - SimpleFilter FishingPoint = { app::EntityType__Enum_1::FishPool, "_FishingShoal" }; - SimpleFilter Geoculus = { app::EntityType__Enum_1::GatherObject, "RockCrystalShell" }; - WhitelistFilter ItemDrops = { std::vector {app::EntityType__Enum_1::GatherObject, app::EntityType__Enum_1::DropItem }, std::vector {"_Food_BirdMeat", "_Food_Meat", "_DropItem" } }; - SimpleFilter Lumenspar = { app::EntityType__Enum_1::GatherObject, "CelestiaSplinter" }; - SimpleFilter KeySigil = { app::EntityType__Enum_1::GatherObject, "RuneContent" }; - SimpleFilter ShrineOfDepth = { app::EntityType__Enum_1::Gadget, "Temple" }; - SimpleFilter TimeTrialChallenge = { app::EntityType__Enum_1::Field, "Challengestarter_" }; + SimpleFilter Anemoculus = { EntityType__Enum_1::GatherObject, "WindCrystalShell" }; + SimpleFilter CrimsonAgate = { EntityType__Enum_1::GatherObject, "Prop_Essence" }; + SimpleFilter Electroculus = { EntityType__Enum_1::GatherObject, "Prop_ElectricCrystal" }; + SimpleFilter Electrogranum = { EntityType__Enum_1::Gadget, "ThunderSeedCreate" }; + SimpleFilter FishingPoint = { EntityType__Enum_1::FishPool, "_FishingShoal" }; + SimpleFilter Geoculus = { EntityType__Enum_1::GatherObject, "RockCrystalShell" }; + WhitelistFilter ItemDrops = { {EntityType__Enum_1::GatherObject, EntityType__Enum_1::DropItem }, {"_Food_BirdMeat", "_Food_Meat", "_DropItem" } }; + SimpleFilter Lumenspar = { EntityType__Enum_1::GatherObject, "CelestiaSplinter" }; + SimpleFilter KeySigil = { EntityType__Enum_1::GatherObject, "RuneContent" }; + SimpleFilter ShrineOfDepth = { EntityType__Enum_1::Gadget, "Temple" }; + SimpleFilter TimeTrialChallenge = { EntityType__Enum_1::Field, "Challengestarter_" }; } namespace guide { - SimpleFilter CampfireTorch = { app::EntityType__Enum_1::Gadget, "_FireBasin" }; - SimpleFilter DayNightSwitchingMechanism = { app::EntityType__Enum_1::Field, "_CircleConsole" }; - SimpleFilter EnkanomiyaPhaseGate = { app::EntityType__Enum_1::Gadget, "_Singularity" }; - SimpleFilter MysteriousCarvings = { app::EntityType__Enum_1::Gadget, "_ReginStatue" }; - SimpleFilter PhaseGate = { app::EntityType__Enum_1::Field, "_TeleportHighway" }; - SimpleFilter PlacesofEssenceWorship = { app::EntityType__Enum_1::Field, "_EnergySource" }; - SimpleFilter Pot = { app::EntityType__Enum_1::Gadget, "_Cooking_" }; - SimpleFilter RuinBrazier = { app::EntityType__Enum_1::Gadget, "_AncientHeatSource" }; - SimpleFilter Stormstone = { app::EntityType__Enum_1::Gadget, "_ReginLamp" }; - SimpleFilter TriangularMechanism = { app::EntityType__Enum_1::Field, "_TuningFork" }; + SimpleFilter CampfireTorch = { EntityType__Enum_1::Gadget, "_FireBasin" }; + SimpleFilter DayNightSwitchingMechanism = { EntityType__Enum_1::Field, "_CircleConsole" }; + SimpleFilter EnkanomiyaPhaseGate = { EntityType__Enum_1::Gadget, "_Singularity" }; + SimpleFilter MysteriousCarvings = { EntityType__Enum_1::Gadget, "_ReginStatue" }; + SimpleFilter PhaseGate = { EntityType__Enum_1::Field, "_TeleportHighway" }; + SimpleFilter PlacesofEssenceWorship = { EntityType__Enum_1::Field, "_EnergySource" }; + SimpleFilter Pot = { EntityType__Enum_1::Gadget, "_Cooking_" }; + SimpleFilter RuinBrazier = { EntityType__Enum_1::Gadget, "_AncientHeatSource" }; + SimpleFilter Stormstone = { EntityType__Enum_1::Gadget, "_ReginLamp" }; + SimpleFilter TriangularMechanism = { EntityType__Enum_1::Field, "_TuningFork" }; } 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" }; - SimpleFilter CrystalCore = { app::EntityType__Enum_1::EnvAnimal, "Wisp" }; - SimpleFilter Fish = { app::EntityType__Enum_1::EnvAnimal, "Fish" }; - SimpleFilter Frog = { app::EntityType__Enum_1::EnvAnimal, "Frog" }; - SimpleFilter LizardTail = { app::EntityType__Enum_1::EnvAnimal, "Lizard" }; - SimpleFilter LuminescentSpine = { app::EntityType__Enum_1::EnvAnimal, "FireFly" }; - SimpleFilter Onikabuto = { app::EntityType__Enum_1::GatherObject, "Electrohercules" }; - SimpleFilter Starconch = { app::EntityType__Enum_1::GatherObject, "_Shell" }; - SimpleFilter Eel = { app::EntityType__Enum_1::EnvAnimal, "Eel_" }; - SimpleFilter Inu = { app::EntityType__Enum_1::EnvAnimal, "_Inu_Shihandai" }; - 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_" }; - SimpleFilter Salamander = { app::EntityType__Enum_1::EnvAnimal, "Salamander" }; - SimpleFilter Pigeon = { app::EntityType__Enum_1::Monster, "Pigeon" }; - SimpleFilter Crow = { app::EntityType__Enum_1::Monster, "Crow" }; - SimpleFilter Finch = { app::EntityType__Enum_1::Monster, "Tit" }; - SimpleFilter Wigeon = { app::EntityType__Enum_1::Monster, "Wigeon" }; - SimpleFilter Dog = { app::EntityType__Enum_1::Monster, "DogPrick" }; - SimpleFilter Cat = { app::EntityType__Enum_1::Monster, "Cat" }; - SimpleFilter Weasel = { app::EntityType__Enum_1::Monster, "Marten" }; - SimpleFilter WeaselThief = { app::EntityType__Enum_1::Monster, "Thoarder_Weasel" }; - SimpleFilter Kitsune = { app::EntityType__Enum_1::EnvAnimal, "Vulpes" }; - SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Inu_Tanuki" }; - SimpleFilter Meat = { app::EntityType__Enum_1::GatherObject , std::vector { "_Food_BirdMeat", "_Food_Meat", "_Fishmeat" }}; + SimpleFilter AvatarTeammate = { EntityType__Enum_1::Avatar, "authority :False" }; + SimpleFilter AvatarOwn = { EntityType__Enum_1::Avatar, "authority :True" }; + SimpleFilter BirdEgg = { EntityType__Enum_1::GatherObject, "BirdEgg" }; + SimpleFilter ButterflyWings = { EntityType__Enum_1::EnvAnimal, "Butterfly" }; + SimpleFilter Crab = { EntityType__Enum_1::EnvAnimal, "Crab" }; + SimpleFilter CrystalCore = { EntityType__Enum_1::EnvAnimal, "Wisp" }; + SimpleFilter Fish = { EntityType__Enum_1::EnvAnimal, "Fish" }; + SimpleFilter Frog = { EntityType__Enum_1::EnvAnimal, "Frog" }; + SimpleFilter LizardTail = { EntityType__Enum_1::EnvAnimal, "Lizard" }; + SimpleFilter LuminescentSpine = { EntityType__Enum_1::EnvAnimal, "FireFly" }; + SimpleFilter Onikabuto = { EntityType__Enum_1::GatherObject, "Electrohercules" }; + SimpleFilter Starconch = { EntityType__Enum_1::GatherObject, "_Shell" }; + SimpleFilter Eel = { EntityType__Enum_1::EnvAnimal, "Eel_" }; + SimpleFilter Inu = { EntityType__Enum_1::EnvAnimal, "_Inu_Shihandai" }; + SimpleFilter Boar = { EntityType__Enum_1::Monster, "Boar" }; + SimpleFilter Fox = { EntityType__Enum_1::Monster, "Fox" }; + SimpleFilter Squirrel = { EntityType__Enum_1::Monster, "Squirrel" }; + SimpleFilter Npc = { EntityType__Enum_1::NPC, { "_Liyue", "_Mengde", "_Inazuma", "_Coop", "_Quest", "_Enkanomiya", "_Animal", "_Guide", "_Homeworld" } }; + SimpleFilter Crane = { EntityType__Enum_1::Monster, "Crane" }; + SimpleFilter Falcon = { EntityType__Enum_1::Monster, "Falcon" }; + SimpleFilter LucklightFly = { EntityType__Enum_1::EnvAnimal, "Boltbug_" }; + SimpleFilter Salamander = { EntityType__Enum_1::EnvAnimal, "Salamander" }; + SimpleFilter Pigeon = { EntityType__Enum_1::Monster, "Pigeon" }; + SimpleFilter Crow = { EntityType__Enum_1::Monster, "Crow" }; + SimpleFilter Finch = { EntityType__Enum_1::Monster, "Tit" }; + SimpleFilter Wigeon = { EntityType__Enum_1::Monster, "Wigeon" }; + SimpleFilter Dog = { EntityType__Enum_1::Monster, "DogPrick" }; + SimpleFilter Cat = { EntityType__Enum_1::Monster, "Cat" }; + SimpleFilter Weasel = { EntityType__Enum_1::Monster, "Marten" }; + SimpleFilter WeaselThief = { EntityType__Enum_1::Monster, "Thoarder_Weasel" }; + SimpleFilter Kitsune = { EntityType__Enum_1::EnvAnimal, "Vulpes" }; + SimpleFilter BakeDanuki = { EntityType__Enum_1::Monster, "Inu_Tanuki" }; + SimpleFilter Meat = { EntityType__Enum_1::GatherObject , { "_Food_BirdMeat", "_Food_Meat", "_Fishmeat" }}; } namespace mineral { - SimpleFilter AmethystLump = { app::EntityType__Enum_1::GatherObject, "_Thundercrystal" }; - SimpleFilter ArchaicStone = { app::EntityType__Enum_1::GatherObject, "_AncientOre" }; - SimpleFilter CorLapis = { app::EntityType__Enum_1::GatherObject, "_ElementRock" }; - SimpleFilter CrystalChunk = { app::EntityType__Enum_1::GatherObject, - std::vector { "_OreCrystal", "_ShiningCrystalOre" } }; - SimpleFilter CrystalMarrow = { app::EntityType__Enum_1::GatherObject, "_Crystalizedmarrow" }; - SimpleFilter ElectroCrystal = { app::EntityType__Enum_1::GatherObject, "_OreElectricRock" }; - SimpleFilter IronChunk = { app::EntityType__Enum_1::GatherObject, "_OreStone" }; - SimpleFilter NoctilucousJade = { app::EntityType__Enum_1::GatherObject, - std::vector { "_OreNightBerth", "_ShiningNightBerthOre" } }; - SimpleFilter MagicalCrystalChunk = { app::EntityType__Enum_1::GatherObject, "_OreMagicCrystal" }; - SimpleFilter ScarletQuartz = { app::EntityType__Enum_1::GatherObject, "_OreDulinsBlood" }; - SimpleFilter Starsilver = { app::EntityType__Enum_1::GatherObject, "_OreMoonMeteor" }; - SimpleFilter WhiteIronChunk = { app::EntityType__Enum_1::GatherObject, "_OreMetal" }; - SimpleFilter DunlinsTooth = { app::EntityType__Enum_1::GatherObject, "_DunlinsTooth" }; + SimpleFilter AmethystLump = { EntityType__Enum_1::GatherObject, "_Thundercrystal" }; + SimpleFilter ArchaicStone = { EntityType__Enum_1::GatherObject, "_AncientOre" }; + SimpleFilter CorLapis = { EntityType__Enum_1::GatherObject, "_ElementRock" }; + SimpleFilter CrystalChunk = { EntityType__Enum_1::GatherObject, { "_OreCrystal", "_ShiningCrystalOre" } }; + SimpleFilter CrystalMarrow = { EntityType__Enum_1::GatherObject, "_Crystalizedmarrow" }; + SimpleFilter ElectroCrystal = { EntityType__Enum_1::GatherObject, "_OreElectricRock" }; + SimpleFilter IronChunk = { EntityType__Enum_1::GatherObject, "_OreStone" }; + SimpleFilter NoctilucousJade = { EntityType__Enum_1::GatherObject, { "_OreNightBerth", "_ShiningNightBerthOre" } }; + SimpleFilter MagicalCrystalChunk = { EntityType__Enum_1::GatherObject, "_OreMagicCrystal" }; + SimpleFilter ScarletQuartz = { EntityType__Enum_1::GatherObject, "_OreDulinsBlood" }; + SimpleFilter Starsilver = { EntityType__Enum_1::GatherObject, "_OreMoonMeteor" }; + SimpleFilter WhiteIronChunk = { EntityType__Enum_1::GatherObject, "_OreMetal" }; + SimpleFilter DunlinsTooth = { EntityType__Enum_1::GatherObject, "_DunlinsTooth" }; - SimpleFilter AmethystLumpDrop = { app::EntityType__Enum_1::GatherObject, "_Thundercrystaldrop" }; - SimpleFilter CrystalChunkDrop = { app::EntityType__Enum_1::GatherObject,"_Drop_Crystal"}; - SimpleFilter ElectroCrystalDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Ore_ElectricRock" }; - SimpleFilter IronChunkDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Stone" }; - SimpleFilter NoctilucousJadeDrop = { app::EntityType__Enum_1::GatherObject,"_NightBerth" }; - SimpleFilter MagicalCrystalChunkDrop = { app::EntityType__Enum_1::GatherObject, "_DropMagicCrystal" }; - SimpleFilter ScarletQuartzDrop = { app::EntityType__Enum_1::GatherObject, "_DropDulinsBlood" }; - SimpleFilter StarsilverDrop = { app::EntityType__Enum_1::GatherObject, "_DropMoonMeteor" }; - SimpleFilter WhiteIronChunkDrop = { app::EntityType__Enum_1::GatherObject, "_Drop_Metal" }; + SimpleFilter AmethystLumpDrop = { EntityType__Enum_1::GatherObject, "_Thundercrystaldrop" }; + SimpleFilter CrystalChunkDrop = { EntityType__Enum_1::GatherObject,"_Drop_Crystal"}; + SimpleFilter ElectroCrystalDrop = { EntityType__Enum_1::GatherObject, "_Drop_Ore_ElectricRock" }; + SimpleFilter IronChunkDrop = { EntityType__Enum_1::GatherObject, "_Drop_Stone" }; + SimpleFilter NoctilucousJadeDrop = { EntityType__Enum_1::GatherObject,"_NightBerth" }; + SimpleFilter MagicalCrystalChunkDrop = { EntityType__Enum_1::GatherObject, "_DropMagicCrystal" }; + SimpleFilter ScarletQuartzDrop = { EntityType__Enum_1::GatherObject, "_DropDulinsBlood" }; + SimpleFilter StarsilverDrop = { EntityType__Enum_1::GatherObject, "_DropMoonMeteor" }; + SimpleFilter WhiteIronChunkDrop = { EntityType__Enum_1::GatherObject, "_Drop_Metal" }; } namespace monster { - SimpleFilter AbyssMage = { app::EntityType__Enum_1::Monster, "_Abyss" }; - SimpleFilter FatuiAgent = { app::EntityType__Enum_1::Monster, "_Fatuus" }; - SimpleFilter FatuiCicinMage = { app::EntityType__Enum_1::Monster, "_Fatuus_Summoner" }; - SimpleFilter FatuiMirrorMaiden = { app::EntityType__Enum_1::Monster, "_Fatuus_Maiden" }; - SimpleFilter FatuiSkirmisher = { app::EntityType__Enum_1::Monster, "_Skirmisher" }; - SimpleFilter Geovishap = { app::EntityType__Enum_1::Monster, "_Drake_Rock" }; - SimpleFilter GeovishapHatchling = { app::EntityType__Enum_1::Monster, "_Wyrm_Rock" }; - SimpleFilter Hilichurl = { app::EntityType__Enum_1::Monster, "_Hili" }; - SimpleFilter Mitachurl = { app::EntityType__Enum_1::Monster, "_Brute" }; - SimpleFilter Nobushi = { app::EntityType__Enum_1::Monster, "_Ronin" }; - SimpleFilter Kairagi = { app::EntityType__Enum_1::Monster, "_Kairagi" }; - SimpleFilter RuinGuard = { app::EntityType__Enum_1::Monster, "_Defender" }; - SimpleFilter RuinHunter = { app::EntityType__Enum_1::Monster, "_Formathr" }; - SimpleFilter RuinGrader = { app::EntityType__Enum_1::Monster, "_Konungmathr" }; - SimpleFilter RuinSentinel = { app::EntityType__Enum_1::Monster, "_Apparatus_Enigma" }; - SimpleFilter Samachurl = { app::EntityType__Enum_1::Monster, "_Shaman" }; - SimpleFilter ShadowyHusk = { app::EntityType__Enum_1::Monster, "ForlornVessel_Strong" }; - SimpleFilter Slime = { app::EntityType__Enum_1::Monster, "_Slime" }; - SimpleFilter FloatingFungus = { app::EntityType__Enum_1::Monster, "_Fungus" }; - SimpleFilter Specter = { app::EntityType__Enum_1::Monster, "_Sylph" }; - SimpleFilter TreasureHoarder = { app::EntityType__Enum_1::Monster, "_Thoarder" }; - SimpleFilter UnusualHilichurl = { app::EntityType__Enum_1::Monster, "_Hili_Wei" }; - SimpleFilter Whopperflower = { app::EntityType__Enum_1::Monster, "_Mimik" }; - SimpleFilter RifthoundWhelp = { app::EntityType__Enum_1::Monster, "_Hound_Kanis" }; - SimpleFilter Rifthound = { app::EntityType__Enum_1::Monster, "_Hound_Riftstalker" }; - SimpleFilter Dvalin = { app::EntityType__Enum_1::Monster, "_Dragon_Dvalin" }; - SimpleFilter Andrius = { app::EntityType__Enum_1::Monster, "_Wolf_LupiBoreas" }; - SimpleFilter Tartaglia = { app::EntityType__Enum_1::Monster, "_Tartaglia" }; - SimpleFilter Azhdaha = { app::EntityType__Enum_1::Monster, "_Dahaka" }; - SimpleFilter Signora = { app::EntityType__Enum_1::Monster, "_LaSignora" }; - SimpleFilter Shogun = { app::EntityType__Enum_1::Monster, "_Shougun" }; - SimpleFilter EyeOfTheStorm = { app::EntityType__Enum_1::Monster, "_Elemental_Wind" }; - SimpleFilter ElectroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Electric" }; - SimpleFilter AnemoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Wind" }; - SimpleFilter GeoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Rock" }; - SimpleFilter HydroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Water" }; - SimpleFilter CryoHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Ice" }; - SimpleFilter PyroHypostasis = { app::EntityType__Enum_1::Monster, "_Effigy_Fire" }; - SimpleFilter HydroHypostasisSummon = { app::EntityType__Enum_1::Monster, "_Effigy_Water_Underling_Ooze" }; - SimpleFilter Oceanid = { app::EntityType__Enum_1::Monster, "_Oceanid" }; - SimpleFilter OceanidBoar = { app::EntityType__Enum_1::Monster, "_Oceanid_Boar" }; - SimpleFilter OceanidCrane = { app::EntityType__Enum_1::Monster, "_Oceanid_Crane" }; - SimpleFilter OceanidCrab = { app::EntityType__Enum_1::Monster, "_Oceanid_Crab" }; - SimpleFilter OceanidFinch = { app::EntityType__Enum_1::Monster, "_Oceanid_Tit" }; - SimpleFilter OceanidWigeon = { app::EntityType__Enum_1::Monster, "_Oceanid_Wigeon" }; - SimpleFilter OceanidSquirrel = { app::EntityType__Enum_1::Monster, "_Oceanid_Squirrel" }; - SimpleFilter OceanidFrog = { app::EntityType__Enum_1::Monster, "_Oceanid_Frog" }; - SimpleFilter OceanidFalcon = { app::EntityType__Enum_1::Monster, "_Oceanid_Falcon" }; - SimpleFilter PerpetualMechanicalArray = { app::EntityType__Enum_1::Monster, "_Apparatus_Perpetual" }; - SimpleFilter PrimoGeovishap = { app::EntityType__Enum_1::Monster, "_Drake_Primo_Rock" }; - SimpleFilter HydroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Water" }; - SimpleFilter CryoBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Ice" }; - SimpleFilter ElectroBathysmalVishap = { app::EntityType__Enum_1::Monster, "_Drake_Deepsea_Electric" }; - SimpleFilter ThunderManifestation = { app::EntityType__Enum_1::Monster, "_Raijin" }; - SimpleFilter HydroAbyssHerald = { app::EntityType__Enum_1::Monster, "_Invoker_Herald_Water" }; - SimpleFilter ElectroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Electric" }; - SimpleFilter PyroAbyssLector = { app::EntityType__Enum_1::Monster, "_Invoker_Deacon_Fire" }; - SimpleFilter BlackSerpentKnight = { app::EntityType__Enum_1::Monster, "_Darkwraith_Strong_Wind" }; - SimpleFilter GoldenWolflord = { app::EntityType__Enum_1::Monster, "_Hound_Planelurker" }; - SimpleFilter RuinSerpent = { app::EntityType__Enum_1::Monster, "_Nithhoggr" }; - SimpleFilter Millelith = { app::EntityType__Enum_1::Monster, "_Millelith_" }; - SimpleFilter ShogunateInfantry = { app::EntityType__Enum_1::Monster, "_Aahigaru_" }; - SimpleFilter SangonomiyaCohort = { app::EntityType__Enum_1::Monster, "_AahigaruTaisho_" }; - SimpleFilter CryoRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Ice" }; - SimpleFilter PyroRegisvine = { app::EntityType__Enum_1::Monster, "_Regisvine_Fire" }; - SimpleFilter MaguuKenki = { app::EntityType__Enum_1::Monster, "_Ningyo" }; - SimpleFilter Cicin = { app::EntityType__Enum_1::Monster, "_Cicin" }; - SimpleFilter Beisht = { app::EntityType__Enum_1::Monster, "_Eldritch" }; + SimpleFilter AbyssMage = { EntityType__Enum_1::Monster, "_Abyss" }; + SimpleFilter FatuiAgent = { EntityType__Enum_1::Monster, "_Fatuus" }; + SimpleFilter FatuiCicinMage = { EntityType__Enum_1::Monster, "_Fatuus_Summoner" }; + SimpleFilter FatuiMirrorMaiden = { EntityType__Enum_1::Monster, "_Fatuus_Maiden" }; + SimpleFilter FatuiSkirmisher = { EntityType__Enum_1::Monster, "_Skirmisher" }; + SimpleFilter Geovishap = { EntityType__Enum_1::Monster, "_Drake_Rock" }; + SimpleFilter GeovishapHatchling = { EntityType__Enum_1::Monster, "_Wyrm_Rock" }; + SimpleFilter Hilichurl = { EntityType__Enum_1::Monster, "_Hili" }; + SimpleFilter Mitachurl = { EntityType__Enum_1::Monster, "_Brute" }; + SimpleFilter Nobushi = { EntityType__Enum_1::Monster, "_Ronin" }; + SimpleFilter Kairagi = { EntityType__Enum_1::Monster, "_Kairagi" }; + SimpleFilter RuinGuard = { EntityType__Enum_1::Monster, "_Defender" }; + SimpleFilter RuinHunter = { EntityType__Enum_1::Monster, "_Formathr" }; + SimpleFilter RuinGrader = { EntityType__Enum_1::Monster, "_Konungmathr" }; + SimpleFilter RuinSentinel = { EntityType__Enum_1::Monster, "_Apparatus_Enigma" }; + SimpleFilter Samachurl = { EntityType__Enum_1::Monster, "_Shaman" }; + SimpleFilter ShadowyHusk = { EntityType__Enum_1::Monster, "ForlornVessel_Strong" }; + SimpleFilter Slime = { EntityType__Enum_1::Monster, "_Slime" }; + SimpleFilter FloatingFungus = { EntityType__Enum_1::Monster, "_Fungus" }; + SimpleFilter Specter = { EntityType__Enum_1::Monster, "_Sylph" }; + SimpleFilter TreasureHoarder = { EntityType__Enum_1::Monster, "_Thoarder" }; + SimpleFilter UnusualHilichurl = { EntityType__Enum_1::Monster, "_Hili_Wei" }; + SimpleFilter Whopperflower = { EntityType__Enum_1::Monster, "_Mimik" }; + SimpleFilter RifthoundWhelp = { EntityType__Enum_1::Monster, "_Hound_Kanis" }; + SimpleFilter Rifthound = { EntityType__Enum_1::Monster, "_Hound_Riftstalker" }; + SimpleFilter Dvalin = { EntityType__Enum_1::Monster, "_Dragon_Dvalin" }; + SimpleFilter Andrius = { EntityType__Enum_1::Monster, "_Wolf_LupiBoreas" }; + SimpleFilter Tartaglia = { EntityType__Enum_1::Monster, "_Tartaglia" }; + SimpleFilter Azhdaha = { EntityType__Enum_1::Monster, "_Dahaka" }; + SimpleFilter Signora = { EntityType__Enum_1::Monster, "_LaSignora" }; + SimpleFilter Shogun = { EntityType__Enum_1::Monster, "_Shougun" }; + SimpleFilter EyeOfTheStorm = { EntityType__Enum_1::Monster, "_Elemental_Wind" }; + SimpleFilter ElectroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Electric" }; + SimpleFilter AnemoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Wind" }; + SimpleFilter GeoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Rock" }; + SimpleFilter HydroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Water" }; + SimpleFilter CryoHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Ice" }; + SimpleFilter PyroHypostasis = { EntityType__Enum_1::Monster, "_Effigy_Fire" }; + SimpleFilter HydroHypostasisSummon = { EntityType__Enum_1::Monster, "_Effigy_Water_Underling_Ooze" }; + SimpleFilter Oceanid = { EntityType__Enum_1::Monster, "_Oceanid" }; + SimpleFilter OceanidBoar = { EntityType__Enum_1::Monster, "_Oceanid_Boar" }; + SimpleFilter OceanidCrane = { EntityType__Enum_1::Monster, "_Oceanid_Crane" }; + SimpleFilter OceanidCrab = { EntityType__Enum_1::Monster, "_Oceanid_Crab" }; + SimpleFilter OceanidFinch = { EntityType__Enum_1::Monster, "_Oceanid_Tit" }; + SimpleFilter OceanidWigeon = { EntityType__Enum_1::Monster, "_Oceanid_Wigeon" }; + SimpleFilter OceanidSquirrel = { EntityType__Enum_1::Monster, "_Oceanid_Squirrel" }; + SimpleFilter OceanidFrog = { EntityType__Enum_1::Monster, "_Oceanid_Frog" }; + SimpleFilter OceanidFalcon = { EntityType__Enum_1::Monster, "_Oceanid_Falcon" }; + SimpleFilter PerpetualMechanicalArray = { EntityType__Enum_1::Monster, "_Apparatus_Perpetual" }; + SimpleFilter PrimoGeovishap = { EntityType__Enum_1::Monster, "_Drake_Primo_Rock" }; + SimpleFilter HydroBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Water" }; + SimpleFilter CryoBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Ice" }; + SimpleFilter ElectroBathysmalVishap = { EntityType__Enum_1::Monster, "_Drake_Deepsea_Electric" }; + SimpleFilter ThunderManifestation = { EntityType__Enum_1::Monster, "_Raijin" }; + SimpleFilter HydroAbyssHerald = { EntityType__Enum_1::Monster, "_Invoker_Herald_Water" }; + SimpleFilter ElectroAbyssLector = { EntityType__Enum_1::Monster, "_Invoker_Deacon_Electric" }; + SimpleFilter PyroAbyssLector = { EntityType__Enum_1::Monster, "_Invoker_Deacon_Fire" }; + SimpleFilter BlackSerpentKnight = { EntityType__Enum_1::Monster, "_Darkwraith_Strong_Wind" }; + SimpleFilter GoldenWolflord = { EntityType__Enum_1::Monster, "_Hound_Planelurker" }; + SimpleFilter RuinSerpent = { EntityType__Enum_1::Monster, "_Nithhoggr" }; + SimpleFilter Millelith = { EntityType__Enum_1::Monster, "_Millelith_" }; + SimpleFilter ShogunateInfantry = { EntityType__Enum_1::Monster, "_Aahigaru_" }; + SimpleFilter SangonomiyaCohort = { EntityType__Enum_1::Monster, "_AahigaruTaisho_" }; + SimpleFilter CryoRegisvine = { EntityType__Enum_1::Monster, "_Regisvine_Ice" }; + SimpleFilter PyroRegisvine = { EntityType__Enum_1::Monster, "_Regisvine_Fire" }; + SimpleFilter MaguuKenki = { EntityType__Enum_1::Monster, "_Ningyo" }; + SimpleFilter Cicin = { EntityType__Enum_1::Monster, "_Cicin" }; + SimpleFilter Beisht = { EntityType__Enum_1::Monster, "_Eldritch" }; } namespace plant { - SimpleFilter AmakumoFruit = { app::EntityType__Enum_1::GatherObject, "_Electroseed" }; - SimpleFilter Apple = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Apple" }; - SimpleFilter BambooShoot = { app::EntityType__Enum_1::GatherObject, "_Bambooshoot" }; - SimpleFilter Berry = { app::EntityType__Enum_1::GatherObject, "_Raspberry" }; - SimpleFilter CallaLily = { app::EntityType__Enum_1::GatherObject, "_Plant_Callas" }; - SimpleFilter Cabbage = { app::EntityType__Enum_1::GatherObject, "_Plant_Cabbage" }; - SimpleFilter Carrot = { app::EntityType__Enum_1::GatherObject, "_Plant_Carrot" }; - SimpleFilter Cecilia = { app::EntityType__Enum_1::GatherObject, "_Cecilia" }; - SimpleFilter DandelionSeed = { app::EntityType__Enum_1::GatherObject, "_Plant_Dandelion" }; - SimpleFilter Dendrobium = { app::EntityType__Enum_1::GatherObject, "_Blooddendrobe" }; - SimpleFilter FlamingFlowerStamen = { app::EntityType__Enum_1::GatherObject, "_Flower_FireFlower" }; - SimpleFilter FluorescentFungus = { app::EntityType__Enum_1::GatherObject, "_Lampmushroom" }; - SimpleFilter GlazeLily = { app::EntityType__Enum_1::GatherObject, "_GlazedLily" }; - SimpleFilter Horsetail = { app::EntityType__Enum_1::GatherObject, "_HorseTail" }; - SimpleFilter JueyunChili = { app::EntityType__Enum_1::GatherObject, "_UltimateChilli_Fruit" }; - SimpleFilter LavenderMelon = { app::EntityType__Enum_1::GatherObject, "_Akebia" }; - SimpleFilter LotusHead = { app::EntityType__Enum_1::GatherObject, "_Lotus_Drop" }; - SimpleFilter Matsutake = { app::EntityType__Enum_1::GatherObject, "_Food_Matsutake" }; - SimpleFilter Mint = { app::EntityType__Enum_1::GatherObject, "_Plant_Mint" }; - SimpleFilter MistFlowerCorolla = { app::EntityType__Enum_1::GatherObject, "_Flower_IceFlower" }; - SimpleFilter Mushroom = { app::EntityType__Enum_1::GatherObject, "_Plant_Mushroom" }; - SimpleFilter NakuWeed = { app::EntityType__Enum_1::GatherObject, "_Howlgrass" }; - SimpleFilter PhilanemoMushroom = { app::EntityType__Enum_1::GatherObject, "_WindmilHunter" }; - SimpleFilter Pinecone = { app::EntityType__Enum_1::GatherObject, "_Drop_Plant_Pine" }; - SimpleFilter Potato = { app::EntityType__Enum_1::GatherObject, "_Plant_Potato" }; - SimpleFilter Qingxin = { app::EntityType__Enum_1::GatherObject, "_QingXin" }; - SimpleFilter Radish = { app::EntityType__Enum_1::GatherObject, "_Plant_Radish" }; - SimpleFilter SakuraBloom = { app::EntityType__Enum_1::GatherObject, "_Cherrypetals" }; - SimpleFilter SangoPearl = { app::EntityType__Enum_1::GatherObject, "_Coralpearl" }; - SimpleFilter SeaGanoderma = { app::EntityType__Enum_1::GatherObject, "_Electroanemones" }; - SimpleFilter Seagrass = { app::EntityType__Enum_1::GatherObject, "_Seagrass" }; - SimpleFilter SilkFlower = { app::EntityType__Enum_1::GatherObject, "_NiChang_Drop" }; - SimpleFilter SmallLampGrass = { app::EntityType__Enum_1::Field, "_Plant_Fuchsia" }; - SimpleFilter Snapdragon = { app::EntityType__Enum_1::GatherObject, "_Plant_Snapdragon" }; - SimpleFilter Sunsettia = { app::EntityType__Enum_1::GatherObject, "_SunsetFruit" }; - SimpleFilter SweetFlower = { app::EntityType__Enum_1::GatherObject, "_Plant_Whiteballet" }; - SimpleFilter Valberry = { app::EntityType__Enum_1::GatherObject, "_DropingBerry_Gather" }; - SimpleFilter Violetgrass = { app::EntityType__Enum_1::GatherObject, "_GlazedGrass" }; - SimpleFilter Wheat = { app::EntityType__Enum_1::GatherObject, "_Plant_Wheat" }; - SimpleFilter WindwheelAster = { app::EntityType__Enum_1::GatherObject, "_WindmilDaisy" }; - SimpleFilter Wolfhook = { app::EntityType__Enum_1::GatherObject, "_GogoFruit" }; + SimpleFilter AmakumoFruit = { EntityType__Enum_1::GatherObject, "_Electroseed" }; + SimpleFilter Apple = { EntityType__Enum_1::GatherObject, "_Drop_Plant_Apple" }; + SimpleFilter BambooShoot = { EntityType__Enum_1::GatherObject, "_Bambooshoot" }; + SimpleFilter Berry = { EntityType__Enum_1::GatherObject, "_Raspberry" }; + SimpleFilter CallaLily = { EntityType__Enum_1::GatherObject, "_Plant_Callas" }; + SimpleFilter Cabbage = { EntityType__Enum_1::GatherObject, "_Plant_Cabbage" }; + SimpleFilter Carrot = { EntityType__Enum_1::GatherObject, "_Plant_Carrot" }; + SimpleFilter Cecilia = { EntityType__Enum_1::GatherObject, "_Cecilia" }; + SimpleFilter DandelionSeed = { EntityType__Enum_1::GatherObject, "_Plant_Dandelion" }; + SimpleFilter Dendrobium = { EntityType__Enum_1::GatherObject, "_Blooddendrobe" }; + SimpleFilter FlamingFlowerStamen = { EntityType__Enum_1::GatherObject, "_Flower_FireFlower" }; + SimpleFilter FluorescentFungus = { EntityType__Enum_1::GatherObject, "_Lampmushroom" }; + SimpleFilter GlazeLily = { EntityType__Enum_1::GatherObject, "_GlazedLily" }; + SimpleFilter Horsetail = { EntityType__Enum_1::GatherObject, "_HorseTail" }; + SimpleFilter JueyunChili = { EntityType__Enum_1::GatherObject, "_UltimateChilli_Fruit" }; + SimpleFilter LavenderMelon = { EntityType__Enum_1::GatherObject, "_Akebia" }; + SimpleFilter LotusHead = { EntityType__Enum_1::GatherObject, "_Lotus_Drop" }; + SimpleFilter Matsutake = { EntityType__Enum_1::GatherObject, "_Food_Matsutake" }; + SimpleFilter Mint = { EntityType__Enum_1::GatherObject, "_Plant_Mint" }; + SimpleFilter MistFlowerCorolla = { EntityType__Enum_1::GatherObject, "_Flower_IceFlower" }; + SimpleFilter Mushroom = { EntityType__Enum_1::GatherObject, "_Plant_Mushroom" }; + SimpleFilter NakuWeed = { EntityType__Enum_1::GatherObject, "_Howlgrass" }; + SimpleFilter PhilanemoMushroom = { EntityType__Enum_1::GatherObject, "_WindmilHunter" }; + SimpleFilter Pinecone = { EntityType__Enum_1::GatherObject, "_Drop_Plant_Pine" }; + SimpleFilter Potato = { EntityType__Enum_1::GatherObject, "_Plant_Potato" }; + SimpleFilter Qingxin = { EntityType__Enum_1::GatherObject, "_QingXin" }; + SimpleFilter Radish = { EntityType__Enum_1::GatherObject, "_Plant_Radish" }; + SimpleFilter SakuraBloom = { EntityType__Enum_1::GatherObject, "_Cherrypetals" }; + SimpleFilter SangoPearl = { EntityType__Enum_1::GatherObject, "_Coralpearl" }; + SimpleFilter SeaGanoderma = { EntityType__Enum_1::GatherObject, "_Electroanemones" }; + SimpleFilter Seagrass = { EntityType__Enum_1::GatherObject, "_Seagrass" }; + SimpleFilter SilkFlower = { EntityType__Enum_1::GatherObject, "_NiChang_Drop" }; + SimpleFilter SmallLampGrass = { EntityType__Enum_1::Field, "_Plant_Fuchsia" }; + SimpleFilter Snapdragon = { EntityType__Enum_1::GatherObject, "_Plant_Snapdragon" }; + SimpleFilter Sunsettia = { EntityType__Enum_1::GatherObject, "_SunsetFruit" }; + SimpleFilter SweetFlower = { EntityType__Enum_1::GatherObject, "_Plant_Whiteballet" }; + SimpleFilter Valberry = { EntityType__Enum_1::GatherObject, "_DropingBerry_Gather" }; + SimpleFilter Violetgrass = { EntityType__Enum_1::GatherObject, "_GlazedGrass" }; + SimpleFilter Wheat = { EntityType__Enum_1::GatherObject, "_Plant_Wheat" }; + SimpleFilter WindwheelAster = { EntityType__Enum_1::GatherObject, "_WindmilDaisy" }; + SimpleFilter Wolfhook = { EntityType__Enum_1::GatherObject, "_GogoFruit" }; } namespace puzzle { - SimpleFilter AncientRime = { app::EntityType__Enum_1::Gadget, "_IceSolidBulk" }; - SimpleFilter BakeDanuki = { app::EntityType__Enum_1::Monster, "Animal_Inu_Tanuki_" }; - SimpleFilter BloattyFloatty = { app::EntityType__Enum_1::Field, "_Flower_PongPongTree_" }; - WhitelistFilter CubeDevices = { std::vector {app::EntityType__Enum_1::Gadget, app::EntityType__Enum_1::Platform }, std::vector {"_ElecStone", "_ElecSwitch" }}; - SimpleFilter EightStoneTablets = { app::EntityType__Enum_1::Gadget, "_HistoryBoard" }; - SimpleFilter ElectricConduction = { app::EntityType__Enum_1::Gear, "_ElectricPowerSource" }; - SimpleFilter RelayStone = { app::EntityType__Enum_1::Worktop, "_ElectricTransfer_" }; - WhitelistFilter ElectroSeelie = { std::vector {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Platform }, std::vector {"_ElectricSeelie"} }; - SimpleFilter ElementalMonument = { app::EntityType__Enum_1::Gear, "_ElemTablet" }; - SimpleFilter FloatingAnemoSlime = { app::EntityType__Enum_1::Platform, "_WindSlime" }; - SimpleFilter Geogranum = { app::EntityType__Enum_1::Gadget, "_Property_Prop_RockFragment" }; - SimpleFilter GeoPuzzle = { app::EntityType__Enum_1::Field, "_Rockstraight_" }; - SimpleFilter LargeRockPile = { app::EntityType__Enum_1::Gadget, std::vector {"_ElecRocks", "_StonePile_02" } }; - SimpleFilter LightUpTilePuzzle = { app::EntityType__Enum_1::Field, "_TwinStoryFloor" }; - SimpleFilter LightningStrikeProbe = { app::EntityType__Enum_1::Gadget, "_MagneticGear" }; - SimpleFilter LumenCage = { app::EntityType__Enum_1::Gadget, "_LitBulletLauncher" }; - SimpleFilter LuminousSeelie = { app::EntityType__Enum_1::Platform, "_LitSeelie" }; - SimpleFilter MistBubble = { app::EntityType__Enum_1::Platform, "_Suspiciousbubbles" }; - SimpleFilter OozingConcretions = { app::EntityType__Enum_1::Gadget, "_AbyssCoreLv" }; - SimpleFilter PirateHelm = { app::EntityType__Enum_1::Field, "_PirateHelm" }; - WhitelistFilter PressurePlate = { std::vector {app::EntityType__Enum_1::Field, app::EntityType__Enum_1::Gadget }, std::vector {"Gear_Gravity", "_LitPathPlate" } }; - SimpleFilter SealLocations = { app::EntityType__Enum_1::Gadget, "_RunesKey" }; - SimpleFilter SeelieLamp = { app::EntityType__Enum_1::Field, "Gear_SeeliaLamp" }; - SimpleFilter Seelie = { app::EntityType__Enum_1::Platform, "Gear_Seelie" }; - SimpleFilter SmallRockPile = { app::EntityType__Enum_1::Gadget, "_StonePile_01" }; - SimpleFilter StormBarrier = { app::EntityType__Enum_1::Field, "_WindField_PushField" }; - SimpleFilter SwordHilt = { app::EntityType__Enum_1::Field, "_WastedSword_" }; - SimpleFilter Temari = { app::EntityType__Enum_1::Field, "_Temari" }; - SimpleFilter TorchPuzzle = { app::EntityType__Enum_1::Gadget, "_ImmortalFire" }; - SimpleFilter UniqueRocks = { app::EntityType__Enum_1::Gadget, "_Chalcedony" }; - SimpleFilter WarmingSeelie = { app::EntityType__Enum_1::Platform, "_FireSeelie" }; - SimpleFilter WindmillMechanism = { app::EntityType__Enum_1::Gear, "Gear_Windmill" }; + SimpleFilter AncientRime = { EntityType__Enum_1::Gadget, "_IceSolidBulk" }; + SimpleFilter BakeDanuki = { EntityType__Enum_1::Monster, "Animal_Inu_Tanuki_" }; + SimpleFilter BloattyFloatty = { EntityType__Enum_1::Field, "_Flower_PongPongTree_" }; + WhitelistFilter CubeDevices = { {EntityType__Enum_1::Gadget, EntityType__Enum_1::Platform }, {"_ElecStone", "_ElecSwitch" }}; + SimpleFilter EightStoneTablets = { EntityType__Enum_1::Gadget, "_HistoryBoard" }; + SimpleFilter ElectricConduction = { EntityType__Enum_1::Gear, "_ElectricPowerSource" }; + SimpleFilter RelayStone = { EntityType__Enum_1::Worktop, "_ElectricTransfer_" }; + WhitelistFilter ElectroSeelie = { {EntityType__Enum_1::Field, EntityType__Enum_1::Platform }, "_ElectricSeelie" }; + SimpleFilter ElementalMonument = { EntityType__Enum_1::Gear, "_ElemTablet" }; + SimpleFilter FloatingAnemoSlime = { EntityType__Enum_1::Platform, "_WindSlime" }; + SimpleFilter Geogranum = { EntityType__Enum_1::Gadget, "_Property_Prop_RockFragment" }; + SimpleFilter GeoPuzzle = { EntityType__Enum_1::Field, "_Rockstraight_" }; + SimpleFilter LargeRockPile = { EntityType__Enum_1::Gadget, {"_ElecRocks", "_StonePile_02" } }; + SimpleFilter LightUpTilePuzzle = { EntityType__Enum_1::Field, "_TwinStoryFloor" }; + SimpleFilter LightningStrikeProbe = { EntityType__Enum_1::Gadget, "_MagneticGear" }; + SimpleFilter LumenCage = { EntityType__Enum_1::Gadget, "_LitBulletLauncher" }; + SimpleFilter LuminousSeelie = { EntityType__Enum_1::Platform, "_LitSeelie" }; + SimpleFilter MistBubble = { EntityType__Enum_1::Platform, "_Suspiciousbubbles" }; + SimpleFilter OozingConcretions = { EntityType__Enum_1::Gadget, "_AbyssCoreLv" }; + SimpleFilter PirateHelm = { EntityType__Enum_1::Field, "_PirateHelm" }; + WhitelistFilter PressurePlate = { {EntityType__Enum_1::Field, EntityType__Enum_1::Gadget }, {"Gear_Gravity", "_LitPathPlate" } }; + SimpleFilter SealLocations = { EntityType__Enum_1::Gadget, "_RunesKey" }; + SimpleFilter SeelieLamp = { EntityType__Enum_1::Field, "Gear_SeeliaLamp" }; + SimpleFilter Seelie = { EntityType__Enum_1::Platform, "Gear_Seelie" }; + SimpleFilter SmallRockPile = { EntityType__Enum_1::Gadget, "_StonePile_01" }; + SimpleFilter StormBarrier = { EntityType__Enum_1::Field, "_WindField_PushField" }; + SimpleFilter SwordHilt = { EntityType__Enum_1::Field, "_WastedSword_" }; + SimpleFilter Temari = { EntityType__Enum_1::Field, "_Temari" }; + SimpleFilter TorchPuzzle = { EntityType__Enum_1::Gadget, "_ImmortalFire" }; + SimpleFilter UniqueRocks = { EntityType__Enum_1::Gadget, "_Chalcedony" }; + SimpleFilter WarmingSeelie = { EntityType__Enum_1::Platform, "_FireSeelie" }; + SimpleFilter WindmillMechanism = { EntityType__Enum_1::Gear, "Gear_Windmill" }; } namespace combined { SimpleFilter Oculies = { - featured::Anemoculus + - featured::CrimsonAgate + - featured::Electroculus + - featured::Geoculus + - featured::Lumenspar + + featured::Anemoculus, + featured::CrimsonAgate, + featured::Electroculus, + featured::Geoculus, + featured::Lumenspar, featured::KeySigil }; - SimpleFilter Chests = { app::EntityType__Enum_1::Chest }; + SimpleFilter Chests = { EntityType__Enum_1::Chest }; SimpleFilter Ores = { - mineral::AmethystLump + - mineral::ArchaicStone + - mineral::CorLapis + - mineral::CrystalChunk + - mineral::CrystalMarrow + - mineral::ElectroCrystal + - mineral::IronChunk + - mineral::NoctilucousJade + - mineral::MagicalCrystalChunk + - mineral::Starsilver + + mineral::AmethystLump, + mineral::ArchaicStone, + mineral::CorLapis, + mineral::CrystalChunk, + mineral::CrystalMarrow, + mineral::ElectroCrystal, + mineral::IronChunk, + mineral::NoctilucousJade, + mineral::MagicalCrystalChunk, + mineral::Starsilver, mineral::WhiteIronChunk }; WhitelistFilter Doodads = { - std::vector { app::EntityType__Enum_1::Gadget }, - std::vector { + EntityType__Enum_1::Gadget, + { "Monster_Effigy_Electric_01", "Monster_Effigy_Electric_02", "Monster_Effigy_Wind_01", @@ -338,151 +338,149 @@ namespace cheat::game::filters "StonePile", "BrokenWall", "WoodenBox" - } }; - SimpleFilter Animals = { app::EntityType__Enum_1::EnvAnimal }; + } + }; + SimpleFilter Animals = { EntityType__Enum_1::EnvAnimal }; SimpleFilter AnimalDrop = { - living::Falcon + - living::Pigeon + - living::Finch + - living::Wigeon + - living::Crane + - living::Crow + - living::Fox + - living::Squirrel + - living::Boar + + living::Falcon, + living::Pigeon, + living::Finch, + living::Wigeon, + living::Crane, + living::Crow, + living::Fox, + living::Squirrel, + living::Boar, living::Weasel }; SimpleFilter AnimalPickUp = { - living::CrystalCore + - living::Salamander + - living::Frog + - living::Crab + - living::LizardTail + - living::Eel + - living::Onikabuto + - living::ButterflyWings + - living::LucklightFly + - living::LuminescentSpine + - living::Starconch + - living::BirdEgg + - living::WeaselThief + + living::CrystalCore, + living::Salamander, + living::Frog, + living::Crab, + living::LizardTail, + living::Eel, + living::Onikabuto, + living::ButterflyWings, + living::LucklightFly, + living::LuminescentSpine, + living::Starconch, + living::BirdEgg, + living::WeaselThief, living::Fish }; SimpleFilter AnimalNPC = { - living::Dog + - living::Cat + - living::Kitsune + + living::Dog, + living::Cat, + living::Kitsune, living::BakeDanuki }; - SimpleFilter Monsters = { app::EntityType__Enum_1::Monster }; + SimpleFilter Monsters = { EntityType__Enum_1::Monster }; SimpleFilter MonsterCommon = { - monster::Slime + - monster::FloatingFungus + - monster::Specter + - monster::Whopperflower + - monster::Hilichurl + - monster::Samachurl + - monster::UnusualHilichurl + - monster::FatuiSkirmisher + - monster::TreasureHoarder + - monster::Nobushi + - monster::Kairagi + - monster::Millelith + - monster::ShogunateInfantry + + monster::Slime, + monster::FloatingFungus, + monster::Specter, + monster::Whopperflower, + monster::Hilichurl, + monster::Samachurl, + monster::UnusualHilichurl, + monster::FatuiSkirmisher, + monster::TreasureHoarder, + monster::Nobushi, + monster::Kairagi, + monster::Millelith, + monster::ShogunateInfantry, monster::SangonomiyaCohort }; SimpleFilter MonsterElites = { - monster::Mitachurl + - monster::AbyssMage + - monster::HydroAbyssHerald + - monster::PyroAbyssLector + - monster::ElectroAbyssLector + - monster::RifthoundWhelp + - monster::Rifthound + - monster::ShadowyHusk + - monster::RuinGuard + - monster::RuinHunter + - monster::RuinGrader + - monster::RuinSentinel + - monster::Cicin + - monster::FatuiCicinMage + - monster::FatuiAgent + - monster::FatuiMirrorMaiden + - monster::GeovishapHatchling + - monster::Geovishap + - monster::HydroBathysmalVishap + - monster::EyeOfTheStorm + + monster::Mitachurl, + monster::AbyssMage, + monster::HydroAbyssHerald, + monster::PyroAbyssLector, + monster::ElectroAbyssLector, + monster::RifthoundWhelp, + monster::Rifthound, + monster::ShadowyHusk, + monster::RuinGuard, + monster::RuinHunter, + monster::RuinGrader, + monster::RuinSentinel, + monster::Cicin, + monster::FatuiCicinMage, + monster::FatuiAgent, + monster::FatuiMirrorMaiden, + monster::GeovishapHatchling, + monster::Geovishap, + monster::HydroBathysmalVishap, + monster::EyeOfTheStorm, monster::BlackSerpentKnight }; SimpleFilter MonsterBosses = { // Adding these comments for better tracking. // Trounce - monster::Dvalin + - monster::Azhdaha + - monster::Signora + - monster::Shogun + - monster::Andrius + - monster::Tartaglia + + monster::Dvalin, + monster::Azhdaha, + monster::Signora, + monster::Shogun, + monster::Andrius, + monster::Tartaglia, // Mondstadt - monster::CryoRegisvine + - monster::ElectroHypostasis + - monster::AnemoHypostasis + - monster::CryoHypostasis + + monster::CryoRegisvine, + monster::ElectroHypostasis, + monster::AnemoHypostasis, + monster::CryoHypostasis, // Liyue - monster::PyroRegisvine + - monster::Oceanid + - monster::OceanidBoar + - monster::OceanidCrab + - monster::OceanidCrane + - monster::OceanidFalcon + - monster::OceanidFinch + - monster::OceanidFrog + - monster::OceanidSquirrel + - monster::OceanidWigeon + - monster::GeoHypostasis + - monster::RuinSerpent + - monster::PrimoGeovishap + - monster::Beisht + + monster::PyroRegisvine, + monster::Oceanid, + monster::OceanidBoar, + monster::OceanidCrab, + monster::OceanidCrane, + monster::OceanidFalcon, + monster::OceanidFinch, + monster::OceanidFrog, + monster::OceanidSquirrel, + monster::OceanidWigeon, + monster::GeoHypostasis, + monster::RuinSerpent, + monster::PrimoGeovishap, + monster::Beisht, // Inazuma - monster::PerpetualMechanicalArray + - monster::PyroHypostasis + - monster::MaguuKenki + - monster::ThunderManifestation + - monster::GoldenWolflord + - monster::HydroHypostasis + - monster::HydroHypostasisSummon + - monster::CryoBathysmalVishap + + monster::PerpetualMechanicalArray, + monster::PyroHypostasis, + monster::MaguuKenki, + monster::ThunderManifestation, + monster::GoldenWolflord, + monster::HydroHypostasis, + monster::HydroHypostasisSummon, + monster::CryoBathysmalVishap, monster::ElectroBathysmalVishap }; SimpleFilter MonsterShielded = { // Taken from https://genshin-impact.fandom.com/wiki/Shields/Enemy. // We won't be including Regisvines and enemy objects here, // just regular monsters. - monster::AbyssMage + - monster::Slime + - monster::Mitachurl + - monster::ElectroAbyssLector + - monster::HydroAbyssHerald + - monster::PyroAbyssLector + - monster::FatuiCicinMage + - monster::Cicin + + monster::AbyssMage, + monster::Slime, + monster::Mitachurl, + monster::ElectroAbyssLector, + monster::HydroAbyssHerald, + monster::PyroAbyssLector, + monster::FatuiCicinMage, + monster::Cicin, monster::Whopperflower }; - SimpleFilter MonsterEquips = { app::EntityType__Enum_1::MonsterEquip }; - BlacklistFilter Living = { - std::vector { - app::EntityType__Enum_1::EnvAnimal, - app::EntityType__Enum_1::Monster - }, - std::vector { - // Environmental mobs - "Cat", "DogPrick", "Vulpues", "Inu_Tanuki", - // Overworld bosses - "Ningyo", "Regisvine", "Hypostasis", "Planelurker", "Nithhoggr" - } - }; - SimpleFilter OrganicTargets = Monsters + Animals; // Solael: Please don't mess around with this filter. + SimpleFilter MonsterEquips = { EntityType__Enum_1::MonsterEquip }; + BlacklistFilter Living = { + {EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster}, + { + // Environmental mobs + "Cat", "DogPrick", "Vulpues", "Inu_Tanuki", + // Overworld bosses + "Ningyo", "Regisvine", "Hypostasis", "Planelurker", "Nithhoggr" + } + }; + SimpleFilter OrganicTargets = { Monsters, Animals }; // Solael: Please don't mess around with this filter. //m0nkrel: We can choose the entities we need ourselves so as not to magnetize cats, dogs, etc. - //AdvancedFilter Animals = { std::vector {app::EntityType__Enum_1::EnvAnimal, app::EntityType__Enum_1::Monster }, std::vector {"Crane","Tit", "Boar" , "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } }; + //AdvancedFilter Animals = { {EntityType__Enum_1::EnvAnimal, EntityType__Enum_1::Monster }, {"Crane", "Tit", "Boar", "Squirrel", "Fox", "Pigeon", "Wigeon", "Falcon" ,"Marten" } }; } -} \ No newline at end of file +} From 13a47fd00fbd1249fe4063398509af1a5b34b84d Mon Sep 17 00:00:00 2001 From: Andrei Abrudan Date: Wed, 13 Jul 2022 08:58:43 +0100 Subject: [PATCH 16/27] Resolved conflict with master --- cheat-library/src/user/cheat/game/filters.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cheat-library/src/user/cheat/game/filters.cpp b/cheat-library/src/user/cheat/game/filters.cpp index 1601c7c..6e6290e 100644 --- a/cheat-library/src/user/cheat/game/filters.cpp +++ b/cheat-library/src/user/cheat/game/filters.cpp @@ -9,11 +9,13 @@ namespace cheat::game::filters namespace collection { - SimpleFilter Book = { EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" }; - SimpleFilter Viewpoint = { EntityType__Enum_1::ViewPoint, "SkillObj_EmptyGadget" }; - ChestFilter RadiantSpincrystal = ChestFilter(Chest::ItemType::BGM); - ChestFilter BookPage = ChestFilter(Chest::ItemType::BookPage); - ChestFilter QuestInteract = ChestFilter(Chest::ItemType::QuestInteract); + SimpleFilter Book = { app::EntityType__Enum_1::GatherObject, "SkillObj_EmptyGadget" }; + SimpleFilter Viewpoint = { app::EntityType__Enum_1::ViewPoint, "SkillObj_EmptyGadget" }; + ChestFilter RadiantSpincrystal = ChestFilter(game::Chest::ItemType::BGM); + ChestFilter BookPage = ChestFilter(game::Chest::ItemType::BookPage); + ChestFilter QuestInteract = ChestFilter(game::Chest::ItemType::QuestInteract); + SimpleFilter WoodenCrate = { app::EntityType__Enum_1::Chest, "Searchpoint_OnWater" }; + SimpleFilter GeoSigil = { app::EntityType__Enum_1::Chest, "Prop_Search_Point" }; } namespace chest From cd7cc0588bacf906ab6b5051977a7d1638e393b3 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 11:18:33 +0300 Subject: [PATCH 17/27] fix `CustomTeleports` -> `Teleport` don't closed node --- cheat-library/src/user/cheat/teleport/CustomTeleports.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp index cb29205..e1bf6c2 100644 --- a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp @@ -394,6 +394,7 @@ namespace cheat::feature index++; } ImGui::EndTable(); + ImGui::TreePop(); } if (selectedIndex != -1) From 975ef516fdb2efe4539ddac09886a9c597b9cb06 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 11:19:38 +0300 Subject: [PATCH 18/27] fix #231: infinity input blocking when `Filters` collapsed --- .../src/user/cheat/imap/InteractiveMap.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp index af2d044..cac502d 100644 --- a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp +++ b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp @@ -189,13 +189,6 @@ namespace cheat::feature const auto sceneID = game::GetCurrentMapSceneID(); if (m_ScenesData.count(sceneID) == 0) ImGui::Text("Sorry. Current scene is not supported."); - - // If any InputText is focused, the game will not respond any keyboard input. - auto ctx = ImGui::GetCurrentContext(); - if (ctx->IO.WantCaptureKeyboard) - renderer::SetInputLock(this, true); - else - renderer::SetInputLock(this, false); ImGui::InputText("Search", &m_SearchText); ImGui::SameLine(); HelpMarker( @@ -1386,6 +1379,12 @@ namespace cheat::feature void InteractiveMap::DrawExternal() { + // If any InputText is focused, the game will not respond any keyboard input. + auto ctx = ImGui::GetCurrentContext(); + if (ctx->IO.WantCaptureKeyboard && !renderer::IsInputLocked()) + renderer::SetInputLock(this, true); + else if (!ctx->IO.WantCaptureKeyboard && renderer::IsInputLocked()) + renderer::SetInputLock(this, false); if (IsMiniMapActive() && f_Enabled) DrawMinimapPoints(); From f74a95fc5c78df8b9cad26affb08557589ab38b9 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 11:36:47 +0300 Subject: [PATCH 19/27] #237 little code imporvements --- cheat-library/src/user/cheat/player/AutoRun.cpp | 15 +++++---------- cheat-library/src/user/cheat/player/AutoRun.h | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/cheat-library/src/user/cheat/player/AutoRun.cpp b/cheat-library/src/user/cheat/player/AutoRun.cpp index cc3da23..66b5ef2 100644 --- a/cheat-library/src/user/cheat/player/AutoRun.cpp +++ b/cheat-library/src/user/cheat/player/AutoRun.cpp @@ -33,6 +33,7 @@ namespace cheat::feature { return f_Enabled; } + void AutoRun::DrawStatus() { ImGui::Text("Auto Run[%.01f]",f_Speed.value()); @@ -44,7 +45,7 @@ namespace cheat::feature return instance; } - void enableAutoRun(float speed) { + void EnableAutoRun(float speed) { auto& manager = game::EntityManager::instance(); auto avatarEntity = manager.avatar(); @@ -52,13 +53,7 @@ namespace cheat::feature auto baseMove = avatarEntity->moveComponent(); auto rigidBody = avatarEntity->rigidbody(); - if (baseMove == nullptr) - return; - - if (rigidBody == nullptr) - return; - - if (renderer::IsInputLocked()) + if (baseMove == nullptr || rigidBody == nullptr || renderer::IsInputLocked()) return; auto cameraEntity = game::Entity(reinterpret_cast(manager.mainCamera())); @@ -76,7 +71,7 @@ namespace cheat::feature void AutoRun::OnGameUpdate() { if (f_Enabled) { float speed = f_Speed.value(); - enableAutoRun(speed); + EnableAutoRun(speed); } } -} \ No newline at end of file +} diff --git a/cheat-library/src/user/cheat/player/AutoRun.h b/cheat-library/src/user/cheat/player/AutoRun.h index 6943018..f515ca8 100644 --- a/cheat-library/src/user/cheat/player/AutoRun.h +++ b/cheat-library/src/user/cheat/player/AutoRun.h @@ -24,4 +24,4 @@ namespace cheat::feature private: AutoRun(); }; -} \ No newline at end of file +} From 770ea9129601a670bff5f93778477614756031b2 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 11:41:40 +0300 Subject: [PATCH 20/27] fix #231: add input block only on map drawing --- cheat-library/src/user/cheat/debugger.cpp | 150 +++++++++++++++++- .../src/user/cheat/imap/InteractiveMap.cpp | 18 ++- cheat-library/src/user/main.cpp | 2 +- 3 files changed, 157 insertions(+), 13 deletions(-) diff --git a/cheat-library/src/user/cheat/debugger.cpp b/cheat-library/src/user/cheat/debugger.cpp index be93ca5..25e098b 100644 --- a/cheat-library/src/user/cheat/debugger.cpp +++ b/cheat-library/src/user/cheat/debugger.cpp @@ -1,15 +1,153 @@ #include +enum THREADINFOCLASS { ThreadHideFromDebugger = 0x11 }; + +typedef NTSTATUS(WINAPI* NtQueryInformationThread_t)(HANDLE, THREADINFOCLASS, PVOID, ULONG, LPVOID); +typedef NTSTATUS(WINAPI* NtSetInformationThread_t)(HANDLE, THREADINFOCLASS, PVOID, ULONG); +typedef void(WINAPI* DbgUiRemoteBreakin_t)(); + +NtQueryInformationThread_t fnNtQueryInformationThread = nullptr; +NtSetInformationThread_t fnNtSetInformationThread = nullptr; +DbgUiRemoteBreakin_t fnDbgUiRemoteBreakin = nullptr; + +static void RunVEH(); +static void FindAPI(); +static bool Patch_NtSetInformationThread(); +static bool Patch_DbgUiRemoteBreakin(); + +static long WINAPI DebugHandler(PEXCEPTION_POINTERS exception); +static void WINAPI DbgUiRemoteBreakin_Hook(); +static NTSTATUS WINAPI NtSetInformationThread_Hook(HANDLE handle, THREADINFOCLASS infoClass, PVOID pValue, ULONG pSize); + void DebuggerBypassPre() { -#ifdef _DEBUG - LOG_INFO("You have no implementation for anti-debugger bypass.\n\tSo if you try to attach VS debugger to process - game will crash."); -#endif - - // Sry, implementation is private for now + if (!Patch_NtSetInformationThread()) + LOG_ERROR("Failed to patch NtSetInformationThread, so main thread will be hidden from debugger. ^("); } void DebuggerBypassPost() { - // Sry, implementation is privite for now + if (!Patch_DbgUiRemoteBreakin()) + LOG_ERROR("Failed to patch DbgUiRemoteBreakin, so when debugger will try to attach, game crash. ^("); + + RunVEH(); +} + +static void RunVEH() +{ + AddVectoredExceptionHandler(1, DebugHandler); +} + +static bool Patch_NtSetInformationThread() +{ + if (fnNtSetInformationThread == nullptr && (FindAPI(), fnNtSetInformationThread == nullptr)) + return false; + + HookManager::install(fnNtSetInformationThread, NtSetInformationThread_Hook); + LOG_DEBUG("NtSetInformationThread api hooked. Origin at 0x%p", HookManager::getOrigin(NtSetInformationThread_Hook)); + return true; +} + +static bool Patch_DbgUiRemoteBreakin() +{ + if (fnDbgUiRemoteBreakin == nullptr && (FindAPI(), fnDbgUiRemoteBreakin == nullptr)) + return false; + + HookManager::install(fnDbgUiRemoteBreakin, DbgUiRemoteBreakin_Hook); + LOG_DEBUG("DbgUiRemoteBreakin api hooked. Origin at 0x%p", HookManager::getOrigin(DbgUiRemoteBreakin_Hook)); + return true; +} + +static void FindAPI() +{ + HMODULE hNTDLL = GetModuleHandle("ntdll.dll"); + if (hNTDLL == NULL) + { + LOG_LAST_ERROR("Failed to get the 'ntdll.dll' handle"); + return; + } + + if (fnDbgUiRemoteBreakin == nullptr) + { + fnDbgUiRemoteBreakin = reinterpret_cast(GetProcAddress(hNTDLL, "DbgUiRemoteBreakin")); + if (fnDbgUiRemoteBreakin == nullptr) + LOG_LAST_ERROR("GetProcAddress(ntdll::DbgUiRemoteBreakin) failed"); + } + + if (fnNtQueryInformationThread == nullptr) + { + fnNtQueryInformationThread = reinterpret_cast(GetProcAddress(hNTDLL, "NtQueryInformationThread")); + if (fnNtQueryInformationThread == nullptr) + LOG_LAST_ERROR("GetProcAddress(ntdll::NtQueryInformationThread) failed"); + } + + if (fnNtSetInformationThread == nullptr) + { + fnNtSetInformationThread = reinterpret_cast(GetProcAddress(hNTDLL, "NtSetInformationThread")); + if (fnNtSetInformationThread == nullptr) + LOG_LAST_ERROR("GetProcAddress(ntdll::NtSetInformationThread) failed"); + } +} + +// Modified version of https://guidedhacking.com/threads/how-to-find-hidden-threads-threadhidefromdebugger-antidebug-trick.14281/ +static bool IsThreadHidden(DWORD threadID) +{ + if (fnNtQueryInformationThread == nullptr && + (FindAPI(), fnNtQueryInformationThread == nullptr)) // Yeah, seems like a shit ^) + return false; + + HANDLE hThread = OpenThread( + THREAD_QUERY_INFORMATION, + false, + threadID); + + if (hThread == NULL) { + std::cout << " - Error :" << util::GetLastErrorAsString(); + return false; + } + + unsigned char lHideThread = 0; + ULONG lRet = 0; + NTSTATUS errorCode = fnNtQueryInformationThread(hThread, (THREADINFOCLASS)0x11, &lHideThread, sizeof(lHideThread), &lRet); + WaitForSingleObject(hThread, INFINITE); + return static_cast(lHideThread); +} + +static long WINAPI DebugHandler(PEXCEPTION_POINTERS exception) { + PEXCEPTION_RECORD record = exception->ExceptionRecord; + PCONTEXT context = exception->ContextRecord; + + if (record->ExceptionCode == EXCEPTION_SINGLE_STEP) { + SuspendThread(GetCurrentThread()); + return EXCEPTION_CONTINUE_EXECUTION; + } + else if (record->ExceptionCode == EXCEPTION_BREAKPOINT) + { + CONTEXT ctx = {}; + ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; + + DWORD threadID = GetThreadId(GetCurrentThread()); + LOG_WARNING("Breakpoint exception! Thread: %d; Hidden: %s", threadID, IsThreadHidden(threadID) ? "true" : "false"); + return EXCEPTION_CONTINUE_EXECUTION; + } + else if (context->Rip == 0x8887777) + { + SuspendThread(GetCurrentThread()); + return EXCEPTION_CONTINUE_EXECUTION; + } + return EXCEPTION_CONTINUE_SEARCH; +} + +static void WINAPI DbgUiRemoteBreakin_Hook() +{ + return; +} + +static NTSTATUS WINAPI NtSetInformationThread_Hook(HANDLE handle, THREADINFOCLASS infoClass, PVOID pValue, ULONG pSize) +{ + if (infoClass == ThreadHideFromDebugger) + { + return 1; + } + return CALL_ORIGIN(NtSetInformationThread_Hook, handle, infoClass, pValue, pSize); } \ No newline at end of file diff --git a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp index cac502d..ec255b4 100644 --- a/cheat-library/src/user/cheat/imap/InteractiveMap.cpp +++ b/cheat-library/src/user/cheat/imap/InteractiveMap.cpp @@ -1379,12 +1379,6 @@ namespace cheat::feature void InteractiveMap::DrawExternal() { - // If any InputText is focused, the game will not respond any keyboard input. - auto ctx = ImGui::GetCurrentContext(); - if (ctx->IO.WantCaptureKeyboard && !renderer::IsInputLocked()) - renderer::SetInputLock(this, true); - else if (!ctx->IO.WantCaptureKeyboard && renderer::IsInputLocked()) - renderer::SetInputLock(this, false); if (IsMiniMapActive() && f_Enabled) DrawMinimapPoints(); @@ -1393,13 +1387,25 @@ namespace cheat::feature bool mapActive = IsMapActive(); if (mapActive != _lastMapActive) + { MapToggled(mapActive); + + if (!mapActive) + renderer::SetInputLock(this, false); + } _lastMapActive = mapActive; if (!mapActive) return; + // If any InputText is focused, the game will not respond any keyboard input. + auto ctx = ImGui::GetCurrentContext(); + if (ctx->IO.WantCaptureKeyboard && !renderer::IsInputLocked()) + renderer::SetInputLock(this, true); + else if (!ctx->IO.WantCaptureKeyboard && renderer::IsInputLocked()) + renderer::SetInputLock(this, false); + auto mapManager = GET_SINGLETON(MoleMole_MapManager); if (mapManager == nullptr) return; diff --git a/cheat-library/src/user/main.cpp b/cheat-library/src/user/main.cpp index 7666741..755daba 100644 --- a/cheat-library/src/user/main.cpp +++ b/cheat-library/src/user/main.cpp @@ -43,7 +43,7 @@ void Run(HMODULE* phModule) #ifdef _DEBUG LOG_DEBUG("Waiting 10sec for loading game library."); - Sleep(10000); + Sleep(15000); #else LOG_DEBUG("Waiting 15sec for game initialize."); Sleep(15000); From 2a2d55f2c8441ae935948448c98b9c23fdaa8941 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 12:06:40 +0300 Subject: [PATCH 21/27] fix #208: refactor code --- injector/src/main.cpp | 51 ++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/injector/src/main.cpp b/injector/src/main.cpp index d9168bb..9dac6fb 100644 --- a/injector/src/main.cpp +++ b/injector/src/main.cpp @@ -72,56 +72,67 @@ bool OpenGenshinProcess(HANDLE* phProcess, HANDLE* phThread) HANDLE hToken; BOOL TokenRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken); - if (!TokenRet) { + if (!TokenRet) + { LOG_LAST_ERROR("Privilege escalation failed!"); return false; } - bool OpenRet = false; + auto filePath = util::GetOrSelectPath(ini, "Inject", "GenshinPath", "genshin path", "Executable\0GenshinImpact.exe;YuanShen.exe\0"); auto commandline = ini.GetValue("Inject", "GenshinCommandLine"); + LPSTR lpstr = commandline == nullptr ? nullptr : const_cast(commandline); if (!filePath) return false; - DWORD pid = FindProcessId("explorer.exe"); + + DWORD pid = FindProcessId("explorer.exe"); if (pid == 0) { LOG_ERROR("Can't find 'explorer' pid!"); return false; } + std::string CurrentDirectory = filePath.value(); int pos = CurrentDirectory.rfind("\\", CurrentDirectory.length()); CurrentDirectory = CurrentDirectory.substr(0, pos); - LOG_INFO("%s", CurrentDirectory.data()); + HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); - STARTUPINFOEXA si; - ZeroMemory(&si, sizeof(si)); - si.StartupInfo.cb = sizeof(si); + SIZE_T lpsize = 0; InitializeProcThreadAttributeList(NULL, 1, 0, &lpsize); + char* temp = new char[lpsize]; LPPROC_THREAD_ATTRIBUTE_LIST AttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST)temp; InitializeProcThreadAttributeList(AttributeList, 1, 0, &lpsize); - if (!UpdateProcThreadAttribute(AttributeList, 0, PROC_THREAD_ATTRIBUTE_PARENT_PROCESS, &handle, sizeof(HANDLE), NULL, NULL)) + if (!UpdateProcThreadAttribute(AttributeList, 0, PROC_THREAD_ATTRIBUTE_PARENT_PROCESS, + &handle, sizeof(HANDLE), NULL, NULL)) { LOG_WARNING("UpdateProcThreadAttribute failed ! (%d).\n", GetLastError()); } + + STARTUPINFOEXA si{}; + si.StartupInfo.cb = sizeof(si); si.lpAttributeList = AttributeList; - PROCESS_INFORMATION pi; - ZeroMemory(&pi, sizeof(pi)); + + PROCESS_INFORMATION pi{}; BOOL result = CreateProcessAsUserA(hToken, const_cast(filePath->data()), lpstr, - 0, 0, 0, EXTENDED_STARTUPINFO_PRESENT | CREATE_SUSPENDED, 0, (LPSTR)CurrentDirectory.data(), (LPSTARTUPINFOA)&si, &pi); - if (result == FALSE) + 0, 0, 0, EXTENDED_STARTUPINFO_PRESENT | CREATE_SUSPENDED, 0, + (LPSTR)CurrentDirectory.data(), (LPSTARTUPINFOA)&si, &pi); + + bool isOpened = result; + if (isOpened) + { + ini.SaveFile("cfg.ini"); + *phThread = pi.hThread; + *phProcess = pi.hProcess; + } + else { LOG_LAST_ERROR("Failed to create game process."); LOG_ERROR("If you have problem with GenshinImpact.exe path. You can change it manually in cfg.ini."); - goto End; } - ini.SaveFile("cfg.ini"); - *phThread = pi.hThread; - *phProcess = pi.hProcess; - OpenRet = true; -End: + DeleteProcThreadAttributeList(AttributeList); - delete temp; - return OpenRet; + delete[] temp; + return isOpened; } From 1621b4797565522143240e503222846be00fbc8d Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 12:36:21 +0300 Subject: [PATCH 22/27] minor changes nothing here, seriously --- cheat-library/src/user/cheat/debugger.cpp | 150 +--------------------- 1 file changed, 6 insertions(+), 144 deletions(-) diff --git a/cheat-library/src/user/cheat/debugger.cpp b/cheat-library/src/user/cheat/debugger.cpp index 25e098b..be93ca5 100644 --- a/cheat-library/src/user/cheat/debugger.cpp +++ b/cheat-library/src/user/cheat/debugger.cpp @@ -1,153 +1,15 @@ #include -enum THREADINFOCLASS { ThreadHideFromDebugger = 0x11 }; - -typedef NTSTATUS(WINAPI* NtQueryInformationThread_t)(HANDLE, THREADINFOCLASS, PVOID, ULONG, LPVOID); -typedef NTSTATUS(WINAPI* NtSetInformationThread_t)(HANDLE, THREADINFOCLASS, PVOID, ULONG); -typedef void(WINAPI* DbgUiRemoteBreakin_t)(); - -NtQueryInformationThread_t fnNtQueryInformationThread = nullptr; -NtSetInformationThread_t fnNtSetInformationThread = nullptr; -DbgUiRemoteBreakin_t fnDbgUiRemoteBreakin = nullptr; - -static void RunVEH(); -static void FindAPI(); -static bool Patch_NtSetInformationThread(); -static bool Patch_DbgUiRemoteBreakin(); - -static long WINAPI DebugHandler(PEXCEPTION_POINTERS exception); -static void WINAPI DbgUiRemoteBreakin_Hook(); -static NTSTATUS WINAPI NtSetInformationThread_Hook(HANDLE handle, THREADINFOCLASS infoClass, PVOID pValue, ULONG pSize); - void DebuggerBypassPre() { - if (!Patch_NtSetInformationThread()) - LOG_ERROR("Failed to patch NtSetInformationThread, so main thread will be hidden from debugger. ^("); +#ifdef _DEBUG + LOG_INFO("You have no implementation for anti-debugger bypass.\n\tSo if you try to attach VS debugger to process - game will crash."); +#endif + + // Sry, implementation is private for now } void DebuggerBypassPost() { - if (!Patch_DbgUiRemoteBreakin()) - LOG_ERROR("Failed to patch DbgUiRemoteBreakin, so when debugger will try to attach, game crash. ^("); - - RunVEH(); -} - -static void RunVEH() -{ - AddVectoredExceptionHandler(1, DebugHandler); -} - -static bool Patch_NtSetInformationThread() -{ - if (fnNtSetInformationThread == nullptr && (FindAPI(), fnNtSetInformationThread == nullptr)) - return false; - - HookManager::install(fnNtSetInformationThread, NtSetInformationThread_Hook); - LOG_DEBUG("NtSetInformationThread api hooked. Origin at 0x%p", HookManager::getOrigin(NtSetInformationThread_Hook)); - return true; -} - -static bool Patch_DbgUiRemoteBreakin() -{ - if (fnDbgUiRemoteBreakin == nullptr && (FindAPI(), fnDbgUiRemoteBreakin == nullptr)) - return false; - - HookManager::install(fnDbgUiRemoteBreakin, DbgUiRemoteBreakin_Hook); - LOG_DEBUG("DbgUiRemoteBreakin api hooked. Origin at 0x%p", HookManager::getOrigin(DbgUiRemoteBreakin_Hook)); - return true; -} - -static void FindAPI() -{ - HMODULE hNTDLL = GetModuleHandle("ntdll.dll"); - if (hNTDLL == NULL) - { - LOG_LAST_ERROR("Failed to get the 'ntdll.dll' handle"); - return; - } - - if (fnDbgUiRemoteBreakin == nullptr) - { - fnDbgUiRemoteBreakin = reinterpret_cast(GetProcAddress(hNTDLL, "DbgUiRemoteBreakin")); - if (fnDbgUiRemoteBreakin == nullptr) - LOG_LAST_ERROR("GetProcAddress(ntdll::DbgUiRemoteBreakin) failed"); - } - - if (fnNtQueryInformationThread == nullptr) - { - fnNtQueryInformationThread = reinterpret_cast(GetProcAddress(hNTDLL, "NtQueryInformationThread")); - if (fnNtQueryInformationThread == nullptr) - LOG_LAST_ERROR("GetProcAddress(ntdll::NtQueryInformationThread) failed"); - } - - if (fnNtSetInformationThread == nullptr) - { - fnNtSetInformationThread = reinterpret_cast(GetProcAddress(hNTDLL, "NtSetInformationThread")); - if (fnNtSetInformationThread == nullptr) - LOG_LAST_ERROR("GetProcAddress(ntdll::NtSetInformationThread) failed"); - } -} - -// Modified version of https://guidedhacking.com/threads/how-to-find-hidden-threads-threadhidefromdebugger-antidebug-trick.14281/ -static bool IsThreadHidden(DWORD threadID) -{ - if (fnNtQueryInformationThread == nullptr && - (FindAPI(), fnNtQueryInformationThread == nullptr)) // Yeah, seems like a shit ^) - return false; - - HANDLE hThread = OpenThread( - THREAD_QUERY_INFORMATION, - false, - threadID); - - if (hThread == NULL) { - std::cout << " - Error :" << util::GetLastErrorAsString(); - return false; - } - - unsigned char lHideThread = 0; - ULONG lRet = 0; - NTSTATUS errorCode = fnNtQueryInformationThread(hThread, (THREADINFOCLASS)0x11, &lHideThread, sizeof(lHideThread), &lRet); - WaitForSingleObject(hThread, INFINITE); - return static_cast(lHideThread); -} - -static long WINAPI DebugHandler(PEXCEPTION_POINTERS exception) { - PEXCEPTION_RECORD record = exception->ExceptionRecord; - PCONTEXT context = exception->ContextRecord; - - if (record->ExceptionCode == EXCEPTION_SINGLE_STEP) { - SuspendThread(GetCurrentThread()); - return EXCEPTION_CONTINUE_EXECUTION; - } - else if (record->ExceptionCode == EXCEPTION_BREAKPOINT) - { - CONTEXT ctx = {}; - ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; - - DWORD threadID = GetThreadId(GetCurrentThread()); - LOG_WARNING("Breakpoint exception! Thread: %d; Hidden: %s", threadID, IsThreadHidden(threadID) ? "true" : "false"); - return EXCEPTION_CONTINUE_EXECUTION; - } - else if (context->Rip == 0x8887777) - { - SuspendThread(GetCurrentThread()); - return EXCEPTION_CONTINUE_EXECUTION; - } - return EXCEPTION_CONTINUE_SEARCH; -} - -static void WINAPI DbgUiRemoteBreakin_Hook() -{ - return; -} - -static NTSTATUS WINAPI NtSetInformationThread_Hook(HANDLE handle, THREADINFOCLASS infoClass, PVOID pValue, ULONG pSize) -{ - if (infoClass == ThreadHideFromDebugger) - { - return 1; - } - return CALL_ORIGIN(NtSetInformationThread_Hook, handle, infoClass, pValue, pSize); + // Sry, implementation is privite for now } \ No newline at end of file From 4d16211b6cf4dbb47f7a2d631883e73d04a9ba1f Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 13:40:16 +0300 Subject: [PATCH 23/27] fix config path --- cheat-base/src/cheat-base/util.cpp | 8 ++++++++ cheat-base/src/cheat-base/util.h | 2 ++ cheat-library/src/user/main.cpp | 9 +++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cheat-base/src/cheat-base/util.cpp b/cheat-base/src/cheat-base/util.cpp index 892b94b..509a965 100644 --- a/cheat-base/src/cheat-base/util.cpp +++ b/cheat-base/src/cheat-base/util.cpp @@ -62,6 +62,14 @@ namespace util return (*c); } + std::string GetModulePath(HMODULE hModule /*= nullptr*/) + { + char pathOut[MAX_PATH] = {}; + GetModuleFileNameA(hModule, pathOut, MAX_PATH); + + return std::filesystem::path(pathOut).parent_path().string(); + } + std::optional SelectDirectory(const char* title) { auto currPath = std::filesystem::current_path(); diff --git a/cheat-base/src/cheat-base/util.h b/cheat-base/src/cheat-base/util.h index dd9c0a6..7299769 100644 --- a/cheat-base/src/cheat-base/util.h +++ b/cheat-base/src/cheat-base/util.h @@ -36,6 +36,8 @@ namespace util std::string GetLastErrorAsString(DWORD errorId = 0); int64_t GetCurrentTimeMillisec(); + std::string GetModulePath(HMODULE hModule = nullptr); + std::vector StringSplit(const std::string& delimiter, const std::string& content); std::string SplitWords(const std::string& value); std::string MakeCapital(std::string value); diff --git a/cheat-library/src/user/main.cpp b/cheat-library/src/user/main.cpp index 755daba..a6649dd 100644 --- a/cheat-library/src/user/main.cpp +++ b/cheat-library/src/user/main.cpp @@ -14,16 +14,17 @@ void Run(HMODULE* phModule) { ResourceLoader::SetModuleHandle(*phModule); + + auto cheatDir = std::filesystem::path(util::GetModulePath(*phModule)).parent_path(); // Init config - std::string configPath = (std::filesystem::current_path() / "cfg.json").string(); - config::Initialize(configPath); + config::Initialize((cheatDir / "cfg.json").string()); // Init logger auto& settings = cheat::feature::Settings::GetInstance(); if (settings.f_FileLogging) { - Logger::PrepareFileLogging((std::filesystem::current_path() / "logs").string()); + Logger::PrepareFileLogging((cheatDir / "logs").string()); Logger::SetLevel(Logger::Level::Trace, Logger::LoggerType::FileLogger); } @@ -55,5 +56,5 @@ void Run(HMODULE* phModule) cheat::Init(); - LOG_DEBUG("Config path is at %s", configPath.c_str()); + LOG_DEBUG("Config path is at %s", (cheatDir / "cfg.json").string().c_str()); } \ No newline at end of file From 00f5e733b0d28855d36ae664a10353b6523f9855 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 13:54:27 +0300 Subject: [PATCH 24/27] fix to "fix config path" --- cheat-library/src/user/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cheat-library/src/user/main.cpp b/cheat-library/src/user/main.cpp index a6649dd..cfff302 100644 --- a/cheat-library/src/user/main.cpp +++ b/cheat-library/src/user/main.cpp @@ -15,7 +15,7 @@ void Run(HMODULE* phModule) { ResourceLoader::SetModuleHandle(*phModule); - auto cheatDir = std::filesystem::path(util::GetModulePath(*phModule)).parent_path(); + auto cheatDir = std::filesystem::path(util::GetModulePath(*phModule)); // Init config config::Initialize((cheatDir / "cfg.json").string()); From 931ffe2b5b253f5267989dc673567734876a3793 Mon Sep 17 00:00:00 2001 From: Callow <105681690+CPP-Callow@users.noreply.github.com> Date: Wed, 13 Jul 2022 14:24:36 +0300 Subject: [PATCH 25/27] remove warning --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index e1fec4c..8c55ce0 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,6 @@ --- -

Warning

-Currently the support for 2.8 is under testing. So you can have bug with it. Also known issue with crashes for CN version. -If you want to help us to do update faster - create PR for problem what you have after updating to 2.8, but of course, check if nobody created it already. -

Getting Started

## Building from source From 9f339d3f57f9d9aa555516a559d020c8d7b8f3a4 Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 15:06:50 +0300 Subject: [PATCH 26/27] fix: `teleports` and `imgui.ini` located in game folder --- cheat-base/src/cheat-base/render/renderer.cpp | 5 +++++ cheat-base/src/cheat-base/util.cpp | 11 +++++++++++ cheat-base/src/cheat-base/util.h | 4 ++++ .../src/user/cheat/teleport/CustomTeleports.cpp | 4 +++- .../src/user/cheat/teleport/CustomTeleports.h | 2 +- cheat-library/src/user/main.cpp | 9 ++++----- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/cheat-base/src/cheat-base/render/renderer.cpp b/cheat-base/src/cheat-base/render/renderer.cpp index 4639f8d..f9ba79b 100644 --- a/cheat-base/src/cheat-base/render/renderer.cpp +++ b/cheat-base/src/cheat-base/render/renderer.cpp @@ -202,6 +202,9 @@ namespace renderer ImGui_ImplDX12_CreateDeviceObjects(); ImGui::GetIO().ImeWindowHandle = window; + + static const std::string imguiPath = (util::GetCurrentPath() / "imgui.ini").string(); + ImGui::GetIO().IniFilename = imguiPath.c_str(); io.SetPlatformImeDataFn = nullptr; // F**king bug take 4 hours of my life } @@ -213,6 +216,8 @@ namespace renderer ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); (void)io; io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; + static const std::string imguiPath = (util::GetCurrentPath() / "imgui.ini").string(); + io.IniFilename = imguiPath.c_str(); LoadCustomFont(); SetupImGuiStyle(); diff --git a/cheat-base/src/cheat-base/util.cpp b/cheat-base/src/cheat-base/util.cpp index 509a965..e5a2807 100644 --- a/cheat-base/src/cheat-base/util.cpp +++ b/cheat-base/src/cheat-base/util.cpp @@ -70,6 +70,17 @@ namespace util return std::filesystem::path(pathOut).parent_path().string(); } + static std::filesystem::path _currentPath; + void SetCurrentPath(const std::filesystem::path& current_path) + { + _currentPath = current_path; + } + + std::filesystem::path GetCurrentPath() + { + return _currentPath; + } + std::optional SelectDirectory(const char* title) { auto currPath = std::filesystem::current_path(); diff --git a/cheat-base/src/cheat-base/util.h b/cheat-base/src/cheat-base/util.h index 7299769..16deba9 100644 --- a/cheat-base/src/cheat-base/util.h +++ b/cheat-base/src/cheat-base/util.h @@ -6,6 +6,7 @@ #include #include +#include #include @@ -38,6 +39,9 @@ namespace util std::string GetModulePath(HMODULE hModule = nullptr); + void SetCurrentPath(const std::filesystem::path& curren_path); + std::filesystem::path GetCurrentPath(); + std::vector StringSplit(const std::string& delimiter, const std::string& content); std::string SplitWords(const std::string& value); std::string MakeCapital(std::string value); diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp index e1bf6c2..8e6738f 100644 --- a/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.cpp @@ -20,11 +20,13 @@ namespace cheat::feature NF(f_DebugMode, "Debug Mode", "CustomTeleports", false), // Soon to be added 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_Previous, "Teleport Previous", "CustomTeleports", Hotkey(VK_OEM_4)), + dir(util::GetCurrentPath() / "teleports") { f_Next.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnNext); f_Previous.value().PressedEvent += MY_METHOD_HANDLER(CustomTeleports::OnPrevious); } + const FeatureGUIInfo& CustomTeleports::GetGUIInfo() const { static const FeatureGUIInfo info{ "Custom Teleports", "Teleport", true }; diff --git a/cheat-library/src/user/cheat/teleport/CustomTeleports.h b/cheat-library/src/user/cheat/teleport/CustomTeleports.h index eb03b34..e1fd414 100644 --- a/cheat-library/src/user/cheat/teleport/CustomTeleports.h +++ b/cheat-library/src/user/cheat/teleport/CustomTeleports.h @@ -45,7 +45,7 @@ namespace cheat::feature void DrawStatus() override; std::vector Teleports; - std::filesystem::path dir = std::filesystem::current_path() / "teleports"; + std::filesystem::path dir; private: std::set checkedIndices; diff --git a/cheat-library/src/user/main.cpp b/cheat-library/src/user/main.cpp index cfff302..9afda85 100644 --- a/cheat-library/src/user/main.cpp +++ b/cheat-library/src/user/main.cpp @@ -14,17 +14,16 @@ void Run(HMODULE* phModule) { ResourceLoader::SetModuleHandle(*phModule); - - auto cheatDir = std::filesystem::path(util::GetModulePath(*phModule)); + util::SetCurrentPath(util::GetModulePath(*phModule)); // Init config - config::Initialize((cheatDir / "cfg.json").string()); + config::Initialize((util::GetCurrentPath() / "cfg.json").string()); // Init logger auto& settings = cheat::feature::Settings::GetInstance(); if (settings.f_FileLogging) { - Logger::PrepareFileLogging((cheatDir / "logs").string()); + Logger::PrepareFileLogging((util::GetCurrentPath() / "logs").string()); Logger::SetLevel(Logger::Level::Trace, Logger::LoggerType::FileLogger); } @@ -56,5 +55,5 @@ void Run(HMODULE* phModule) cheat::Init(); - LOG_DEBUG("Config path is at %s", (cheatDir / "cfg.json").string().c_str()); + LOG_DEBUG("Config path is at %s", (util::GetCurrentPath() / "cfg.json").string().c_str()); } \ No newline at end of file From 8f40247a2ef85c16619cc9d810caa3b4dd1e68fb Mon Sep 17 00:00:00 2001 From: Callow Date: Wed, 13 Jul 2022 18:39:54 +0300 Subject: [PATCH 27/27] fix incorrect structure of `GadgetInteractRsp` It cause problem with detecting opening chests for interactive map --- cheat-library/src/appdata/il2cpp-types.h | 1 - 1 file changed, 1 deletion(-) diff --git a/cheat-library/src/appdata/il2cpp-types.h b/cheat-library/src/appdata/il2cpp-types.h index 8093753..7cf8541 100644 --- a/cheat-library/src/appdata/il2cpp-types.h +++ b/cheat-library/src/appdata/il2cpp-types.h @@ -10555,7 +10555,6 @@ namespace app { struct GadgetInteractRsp__Fields { struct MessageBase_1__Fields _; - int32_t retcode_; uint32_t gadgetEntityId_; InteractType__Enum interactType_; InterOpType__Enum opType_;