Skip to content

Commit

Permalink
feat: Added Player Check for No Cooldown
Browse files Browse the repository at this point in the history
  • Loading branch information
Taiga74164 committed Apr 6, 2024
1 parent 38e6170 commit 9f45cd9
Show file tree
Hide file tree
Showing 11 changed files with 242 additions and 35 deletions.
2 changes: 2 additions & 0 deletions src/SoloLevelling.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
<ClInclude Include="game\appdata\il2cpp-types.h" />
<ClInclude Include="game\cheat\cheat.h" />
<ClInclude Include="game\cheat\features\DamageHack.h" />
<ClInclude Include="game\cheat\features\Debug.h" />
<ClInclude Include="game\cheat\features\DisableWebView.h" />
<ClInclude Include="game\cheat\features\DumbEnemies.h" />
<ClInclude Include="game\cheat\features\FovChanger.h" />
Expand Down Expand Up @@ -167,6 +168,7 @@
<ClCompile Include="game\appdata\il2cpp-init.cpp" />
<ClCompile Include="game\cheat\cheat.cpp" />
<ClCompile Include="game\cheat\features\DamageHack.cpp" />
<ClCompile Include="game\cheat\features\Debug.cpp" />
<ClCompile Include="game\cheat\features\DisableWebView.cpp" />
<ClCompile Include="game\cheat\features\DumbEnemies.cpp" />
<ClCompile Include="game\cheat\features\FovChanger.cpp" />
Expand Down
6 changes: 6 additions & 0 deletions src/SoloLevelling.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,9 @@
<ClInclude Include="game\HotkeyManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="game\cheat\features\Debug.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="vendor\CommandMenu\src\Menu.cpp">
Expand Down Expand Up @@ -431,5 +434,8 @@
<ClCompile Include="game\Hotkey.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="game\cheat\features\Debug.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
4 changes: 3 additions & 1 deletion src/game/appdata/il2cpp-functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ DO_APP_FUNC(0x0305B9D0, Vector3, Vector3_Lerp, (Vector3 a, Vector3 b, float t, M

DO_APP_FUNC(0x0040E5D0, void/*CharResourceData*/*, ENNEJEPMJLJ_GNAPBJPBKIO, (ENNEJEPMJLJ* __this, MethodInfo* method));
DO_APP_FUNC(0x0075EF00, void/*KAAIFMKPKAG*/*, KAAIFMKPKAG_IOFMGMJCCFO, (KAAIFMKPKAG* __this, bool DEJNILEHENL, MethodInfo* method));
// DO_APP_FUNC(0x00521CC0, List_1_ENNEJEPMJLJ_*, PJKMAOEINNH_BGEJLBHLGJP, (PJKMAOEINNH* __this, MethodInfo* method)); // Probably EntityManager or something similar
DO_APP_FUNC(0x0073D410, void, PIPHNBOBFEF_KBCIIEFLPGB, (PIPHNBOBFEF* __this, ESpecialState__Enum OCKAHFDGNEL, int64_t MGFPJFANLBG, int64_t DIACKALMMKH, int64_t PBAPBJGDAPJ, String* DLOACPLHGMP, MethodInfo* method));
DO_APP_FUNC(0x00956020, int32_t, GHINOEFFMPN_EKHGIHBHEPL, (SkillIdentity* EKPKPIJBPKE, void/*IEnumerable_1_UnityEngine_Component_*/* FKJDKGJBGOD, TargetHitData* COFCDKGCOGJ, MethodInfo* method));
DO_APP_FUNC(0x009E4270, void, EvadeProxy_Init, (EvadeProxy* __this, ENNEJEPMJLJ* IGBKKNODEGM, EvadePenetration* DHPMEMDBDMC, MethodInfo* method)); // Can hook this for Entity Manager
Expand All @@ -82,6 +81,9 @@ DO_APP_FUNC(0x00A9C720, void, IntroMovie_Update, (IntroMovie* __this, MethodInfo
DO_APP_FUNC(0x02287AD0, void, WebViewDialog_Show, (void* __this, MethodInfo* method));
DO_APP_FUNC(0x02289840, void, WebViewUI_RefreshSize, (void* __this, MethodInfo* method));

DO_APP_FUNC(0x0040E5A0, ENNEJEPMJLJ*, InGameObject_get_OwnerChar, (InGameObject* __this, MethodInfo* method));
DO_APP_FUNC(0x00944890, void, InGameObject_KJFBADNDAOH, (InGameObject* __this, MethodInfo* method));

DO_APP_FUNC(0x00430040, EGLGAPIAANF__Enum, JIBDAHKJHOG_PCLINKFFGNE, (JIBDAHKJHOG* __this, MethodInfo* method));
DO_APP_FUNC(0x00837FE0, void, JIBDAHKJHOG_KPDGECAFJKA, (JIBDAHKJHOG* __this, MethodInfo* method));
DO_APP_FUNC(0x00837510, void, JIBDAHKJHOG_HLLNLMAECBD, (JIBDAHKJHOG* __this, void* JONOLJGMLBE, void* BHMPNNCBFGN, MethodInfo* method)); // EnterBattleReq
Expand Down
147 changes: 147 additions & 0 deletions src/game/appdata/il2cpp-types.h
Original file line number Diff line number Diff line change
Expand Up @@ -3612,6 +3612,136 @@ namespace app
struct ENNEJEPMJLJ__Fields fields;
};

enum class ESkillType__Enum : uint8_t
{
None = 0x00,
BaseAttack = 0x01,
CoreAttack = 0x02,
NormalSkill = 0x03,
UltimateSkill = 0x04,
Roll = 0x05,
EmergencyAvoidSkill = 0x06,
QTE = 0x07,
ExtremeAvoidSkill = 0x08,
Supporter = 0x09,
SummonShadow = 0x0a,
TriggerActive = 0x0b,
HunterQTE = 0x0c,
RuneAttack = 0x0d,
Max = 0x0e,
};

enum class ESkillControlType__Enum : int32_t
{
None = 0x00000000,
Magazine = 0x00000001,
Channeling = 0x00000002,
KeyHold = 0x00000003,
Max = 0x00000004,
};

enum class ESkillSpecialType__Enum : int32_t
{
None = 0x00000000,
QTE_Airborne = 0x00000001,
QTE_Down = 0x00000002,
QTE_ExtremeDash = 0x00000003,
Suppoter = 0x00000004,
QTE_BuffGroup = 0x00000005,
HunterQTE = 0x00000006,
SpecialCancel = 0x00000007,
Max = 0x00000008,
};

enum class ePCSkillSlotType__Enum : int32_t
{
Active1 = 0x00000000,
Active2 = 0x00000001,
USkill = 0x00000002,
Max = 0x00000003,
};

enum class ECooldownType__Enum : int32_t
{
Normal = 0x00000000,
AfterCool = 0x00000001,
AfterBuffCool = 0x00000002,
Max = 0x00000003,
};

struct __declspec(align(8)) OIAMFLMIEGP__Fields
{
int64_t _JPEAOEPAFMA_k__BackingField;
int64_t _FJGGBBAKIIG_k__BackingField;
ESkillType__Enum _CMBACPMAHHB_k__BackingField;
struct List_1_System_Int32_* _LIIEIENHADE_k__BackingField;
ESkillControlType__Enum _GAPILFEKGDJ_k__BackingField;
ESkillSpecialType__Enum _CGCEOEFAECA_k__BackingField;
ePCSkillSlotType__Enum _IFOCIAJGNFL_k__BackingField;
EElementType__Enum _GKABKMADCGD_k__BackingField;
int32_t _OGCHCCBDEHK_k__BackingField;
int32_t _LKCDCADIBBJ_k__BackingField;
struct String* _JFBMFDPMOJB_k__BackingField;
struct String* _DBIKMNPPPEE_k__BackingField;
bool _KMDAAMMLEGP_k__BackingField;
int32_t _JFONMDNMHKA_k__BackingField;
int32_t _HFMCMNOCJGB_k__BackingField;
int32_t _IIDECIIJMMI_k__BackingField;
int32_t _HEFHDKCIFJD_k__BackingField;
int32_t _HAGHJIHNDEA_k__BackingField;
int32_t _BCBKKNGJOKJ_k__BackingField;
int32_t _JLMMDMFECAJ_k__BackingField;
ECooldownType__Enum _NNLELLGDMIF_k__BackingField;
float _IDCNBMNPAJI_k__BackingField;
int32_t _GEPNEOEHMCO_k__BackingField;
float _BCKEJKNJOAN_k__BackingField;
float _LJOJMLLDONJ_k__BackingField;
float _ELMPBGOALGP_k__BackingField;
float _HBPDDJGEGPC_k__BackingField;
float _PPHJHMJILEC_k__BackingField;
float _CCDKHGHOPFK_k__BackingField;
float _CBBNJBAOOHK_k__BackingField;
float _OEEEPNOLCAH_k__BackingField;
int64_t _CPGILGKNKPJ_k__BackingField;
int64_t _NOBNNKJLKAE_k__BackingField;
struct Dictionary_2_System_Int32_System_Int64_* NNHLFGEHFKL;
struct List_1_System_Int64_* _KOGPAGFMHPL_k__BackingField;
struct List_1_System_Int64_* _NLACGPPNNBK_k__BackingField;
float _DNBGEDEBBKP_k__BackingField;
int32_t _BLOGAHIANHO_k__BackingField;
struct Int64__Array* _GKLAOHBLBJJ_k__BackingField;
bool _EOPIKKKEHOJ_k__BackingField;
bool _HCHJLIDEDJD_k__BackingField;
int32_t _LKNEBDEACBH_k__BackingField;
int32_t _IDANHHIDFLL_k__BackingField;
float _JNGECPDNKEG_k__BackingField;
float _HGFKCGJBFKE_k__BackingField;
int32_t _BDCEDKCELHC_k__BackingField;
int32_t _GJCLKHLJIPL_k__BackingField;
bool _NMHJBBINBBC_k__BackingField;
bool _IOAOMHGAAAL_k__BackingField;
float _EPDAFHLKLIK_k__BackingField;
int32_t _PMJJMKEFNBO_k__BackingField;
bool _MNFPAGGFLGJ_k__BackingField;
bool _AFLEBMBOANH_k__BackingField;
bool _HPIMMEFBJCN_k__BackingField;
bool _GFJKLFJAMGK_k__BackingField;
int32_t _EHCJNOEGAMB_k__BackingField;
bool _AGIDKKFMCFM_k__BackingField;
bool _KONKEIKMECK_k__BackingField;
float _AAMHKEPEMCK_k__BackingField;
float _NHGJMOOHBKP_k__BackingField;
bool _NHOCLILHABG_k__BackingField;
bool _ACIAJIGCMBP_k__BackingField;
};

struct OIAMFLMIEGP
{
struct OIAMFLMIEGP__Class* klass;
MonitorData* monitor;
struct OIAMFLMIEGP__Fields fields;
};

struct __declspec(align(8)) KAAIFMKPKAG__Fields
{
struct ENNEJEPMJLJ* KCBLLGODKIE;
Expand Down Expand Up @@ -5274,6 +5404,23 @@ namespace app
struct PNECDHFEEGD__Fields fields;
};

struct InGameObject__Fields
{
struct MonoBehaviour__Fields _;
struct ENNEJEPMJLJ* GMLNFEKCPDB;
eCharGroup__Enum m_charGroup;
float m_fDuration;
struct List_1_UnityEngine_Collider_* FOOFKMKMMBK;
float LAMGMNNOCBI;
};

struct InGameObject
{
struct InGameObject__Class* klass;
MonitorData* monitor;
struct InGameObject__Fields fields;
};

#if !defined(_GHIDRA_) && !defined(_IDA_)
}
#endif
2 changes: 2 additions & 0 deletions src/game/cheat/cheat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "features/TimeScale.h"
#include "features/SkipIntroMovie.h"
#include "features/DisableWebView.h"
#include "features/Debug.h"

using namespace Cheat::Features;

Expand All @@ -36,6 +37,7 @@ void init_cheat()
INIT_FEATURE(FPSUnlock);
INIT_FEATURE(FovChanger);
INIT_FEATURE(DisableWebView);
INIT_FEATURE(Debug);
#undef INIT_FEATURE

HookManager::install(app::GameFrameWork_Update, GameFrameWork_Update_Hook);
Expand Down
1 change: 0 additions & 1 deletion src/game/cheat/features/DamageHack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ namespace Cheat::Features
if (__this->fields.IGFILCLEFHH->fields.EJBODHBGPMG != nullptr)
{
auto entity = __this->fields.IGFILCLEFHH->fields.EJBODHBGPMG;
auto entityFields = entity->fields;
//LOG("%s", magic_enum::enum_name(entity->fields.FHNGHHPLPGD).data());
//LOG("resourceName %s", il2cppi_to_string(entity->fields.PEFKKKBMDKN->fields.m_ResourceName).c_str());
//LOG("specialState %s", magic_enum::enum_name(specialState).data());
Expand Down
50 changes: 50 additions & 0 deletions src/game/cheat/features/Debug.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#include "Debug.h"
#include "HookManager.h"
#include "Utils.h"
#include "game-utils.hpp"
#include "events.h"

namespace Cheat::Features
{
Debug::Debug()
{
events::GameUpdateEvent += MY_METHOD_HANDLER(Debug::OnGameUpdate);

//HookManager::install(app::Char3DIdentity_NAMCAOAHPKA, Char3DIdentity_NAMCAOAHPKA_Hook);
HookManager::install(app::Char3DIdentity_OEEGAAAOHIO, Char3DIdentity_OEEGAAAOHIO_Hook);
//HookManager::install(app::Char3DIdentity_OPILBOAEJJO, Char3DIdentity_OPILBOAEJJO_Hook);
}

void Debug::OnGameUpdate()
{
}

void Debug::Char3DIdentity_NAMCAOAHPKA_Hook(app::Char3DIdentity* __this, MethodInfo* method)
{
if (__this->fields._._._._.m_CachedPtr != nullptr)
{
if (__this->fields.EJBODHBGPMG != nullptr)
LOG("Char3DIdentity_NAMCAOAHPKA_Hook\n");
}
CALL_ORIGIN(Char3DIdentity_NAMCAOAHPKA_Hook, __this, method);
}
void Debug::Char3DIdentity_OEEGAAAOHIO_Hook(app::Char3DIdentity* __this, MethodInfo* method)
{
if (__this->fields._._._._.m_CachedPtr != nullptr)
{
if (__this->fields.EJBODHBGPMG != nullptr)
LOG("Char3DIdentity_OPILBOAEJJO_Hook");
}
CALL_ORIGIN(Char3DIdentity_OEEGAAAOHIO_Hook, __this, method);
}
bool Debug::Char3DIdentity_OPILBOAEJJO_Hook(app::Char3DIdentity* __this, app::AHPHDBJOAGF__Enum FMDEPBPIEMC, MethodInfo* method)
{
if (__this->fields._._._._.m_CachedPtr != nullptr)
{
if (__this->fields.EJBODHBGPMG != nullptr)
LOG("Char3DIdentity_OPILBOAEJJO_Hook");
}

return CALL_ORIGIN(Char3DIdentity_OPILBOAEJJO_Hook, __this, FMDEPBPIEMC, method);
}
}
19 changes: 19 additions & 0 deletions src/game/cheat/features/Debug.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once
#include "Singleton.h"
#include "global.h"

namespace Cheat::Features
{
class Debug : public Singleton<Debug>
{
public:
Debug();

void OnGameUpdate();

private:
static void Char3DIdentity_NAMCAOAHPKA_Hook(app::Char3DIdentity* __this, MethodInfo* method);
static void Char3DIdentity_OEEGAAAOHIO_Hook(app::Char3DIdentity* __this, MethodInfo* method);
static bool Char3DIdentity_OPILBOAEJJO_Hook(app::Char3DIdentity* __this, app::AHPHDBJOAGF__Enum FMDEPBPIEMC, MethodInfo* method);
};
}
15 changes: 11 additions & 4 deletions src/game/cheat/features/NoCooldown.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,18 @@ namespace Cheat::Features
void* NoCooldown::KAAIFMKPKAG_IOFMGMJCCFO_Hook(app::KAAIFMKPKAG* __this, bool DEJNILEHENL, MethodInfo* method)
{
auto& vars = Vars::GetInstance();
if (vars.NoCooldown.value())

if (__this->fields.KCBLLGODKIE != nullptr)
{
__this->fields.HPHOOEPCBOJ = 0;
__this->fields.JCJJDJGOBJL = 0;
auto entity = __this->fields.KCBLLGODKIE;
if (entity->fields.FHNGHHPLPGD == app::eCharGroup__Enum::PLAYER)
{
if (vars.NoCooldown.value())
{
__this->fields.HPHOOEPCBOJ = 0;
__this->fields.JCJJDJGOBJL = 0;
}
}
}

return CALL_ORIGIN(KAAIFMKPKAG_IOFMGMJCCFO_Hook, __this, DEJNILEHENL, method);
Expand Down
28 changes: 2 additions & 26 deletions src/game/cheat/features/PlayerSpeed.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@ namespace Cheat::Features
PlayerSpeed::PlayerSpeed()
{
//events::GameUpdateEvent += MY_METHOD_HANDLER(PlayerSpeed::OnGameUpdate);
//HookManager::install(app::JIBDAHKJHOG_KPDGECAFJKA, JIBDAHKJHOG_KPDGECAFJKA_Hook);
//HookManager::install(app::JIBDAHKJHOG_HLLNLMAECBD, JIBDAHKJHOG_HLLNLMAECBD_Hook);
//HookManager::install(app::JIBDAHKJHOG_COLDHPFDOHG, JIBDAHKJHOG_COLDHPFDOHG_Hook);
}


}

void PlayerSpeed::OnGameUpdate()
{
// auto instance = GET_SINGLETON_1(JIBDAHKJHOG);
Expand All @@ -24,26 +22,4 @@ namespace Cheat::Features
// return;
// }
}

void PlayerSpeed::JIBDAHKJHOG_KPDGECAFJKA_Hook(app::JIBDAHKJHOG * __this, MethodInfo * method)
{
LOG("JIBDAHKJHOG_KPDGECAFJKA_Hook");

CALL_ORIGIN(JIBDAHKJHOG_KPDGECAFJKA_Hook, __this, method);
}
void PlayerSpeed::JIBDAHKJHOG_HLLNLMAECBD_Hook(app::JIBDAHKJHOG * __this, void * JONOLJGMLBE, void * BHMPNNCBFGN, MethodInfo * method)
{
LOG("JIBDAHKJHOG_HLLNLMAECBD_Hook: %s", magic_enum::enum_name(__this->fields.ODBFJKNANFA).data());
app::JIBDAHKJHOG_EJLDBPGJGPN(__this, nullptr);
__this->fields.ODBFJKNANFA = app::EGLGAPIAANF__Enum::CompleteBattle;
CALL_ORIGIN(JIBDAHKJHOG_HLLNLMAECBD_Hook, __this, JONOLJGMLBE, BHMPNNCBFGN, method);
}
void PlayerSpeed::JIBDAHKJHOG_COLDHPFDOHG_Hook(app::JIBDAHKJHOG * __this, MethodInfo * method)
{
LOG("JIBDAHKJHOG_COLDHPFDOHG_Hook: %s", magic_enum::enum_name(__this->fields.ODBFJKNANFA).data());
app::JIBDAHKJHOG_EJLDBPGJGPN(__this, nullptr);
__this->fields.ODBFJKNANFA = app::EGLGAPIAANF__Enum::CompleteBattle;
CALL_ORIGIN(JIBDAHKJHOG_COLDHPFDOHG_Hook, __this, method);
}

}
3 changes: 0 additions & 3 deletions src/game/cheat/features/PlayerSpeed.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,5 @@ namespace Cheat::Features
void OnGameUpdate();

private:
static void JIBDAHKJHOG_KPDGECAFJKA_Hook(app::JIBDAHKJHOG * __this, MethodInfo * method);
static void JIBDAHKJHOG_HLLNLMAECBD_Hook(app::JIBDAHKJHOG * __this, void * JONOLJGMLBE, void * BHMPNNCBFGN, MethodInfo * method);
static void JIBDAHKJHOG_COLDHPFDOHG_Hook(app::JIBDAHKJHOG * __this, MethodInfo * method);
};
}

0 comments on commit 9f45cd9

Please sign in to comment.