Removed Alt-Godmode

This commit is contained in:
Joaquin 2022-08-30 12:13:29 -06:00
parent 2f340e6a32
commit 9d15c4d8a8
3 changed files with 19 additions and 30 deletions

View File

@ -7,12 +7,11 @@
namespace cheat::feature namespace cheat::feature
{ {
GodMode::GodMode() : Feature(), GodMode::GodMode() : Feature(),
NFEX(f_Enabled, "God mode", "m_GodMode", "Player", false, false), NFEX(f_Enabled, "God mode", "m_GodMode", "Player", false, false)
NF(f_AltGodMode, "Alternative God Mode", "Player", false)
{ {
HookManager::install(app::VCHumanoidMove_NotifyLandVelocity, VCHumanoidMove_NotifyLandVelocity_Hook); HookManager::install(app::VCHumanoidMove_NotifyLandVelocity, VCHumanoidMove_NotifyLandVelocity_Hook);
HookManager::install(app::Miscs_CheckTargetAttackable, Miscs_CheckTargetAttackable_Hook); HookManager::install(app::Miscs_CheckTargetAttackable, Miscs_CheckTargetAttackable_Hook);
HookManager::install(app::MoleMole_LCBaseCombat_FireBeingHitEvent, LCBaseCombat_FireBeingHitEvent_Hook); //HookManager::install(app::MoleMole_LCBaseCombat_FireBeingHitEvent, LCBaseCombat_FireBeingHitEvent_Hook);
HookManager::install(app::MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook); HookManager::install(app::MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp, MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook);
} }
@ -24,24 +23,17 @@ namespace cheat::feature
void GodMode::DrawMain() void GodMode::DrawMain()
{ {
ConfigWidget("God Mode", f_Enabled, ConfigWidget("God Mode", f_Enabled, "Enables god mode, i.e. no incoming damage including environmental damage.\n");
"Enables god mode, i.e. no incoming damage.\n" \
"May not work with some types of damage.");
ImGui::Indent();
ConfigWidget("Alternative God Mode", f_AltGodMode,
"Alternative god mode that ignores incoming damage\n" \
"including environmental damage.");
ImGui::Unindent();
} }
bool GodMode::NeedStatusDraw() const bool GodMode::NeedStatusDraw() const
{ {
return f_Enabled || f_AltGodMode; return f_Enabled;
} }
void GodMode::DrawStatus() void GodMode::DrawStatus()
{ {
ImGui::Text("God Mode%s", f_AltGodMode ? "+Alt " : " "); ImGui::Text("God Mode");
} }
GodMode& GodMode::GetInstance() GodMode& GodMode::GetInstance()
@ -68,7 +60,7 @@ namespace cheat::feature
void GodMode::VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method) void GodMode::VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method)
{ {
auto& gm = GodMode::GetInstance(); auto& gm = GodMode::GetInstance();
if ((gm.f_Enabled || gm.f_AltGodMode) && -velocity.y > 13) if (gm.f_Enabled && -velocity.y > 13)
{ {
float randAdd = (float)(std::rand() % 1000) / 1000; float randAdd = (float)(std::rand() % 1000) / 1000;
velocity.y = -8 - randAdd; velocity.y = -8 - randAdd;
@ -79,15 +71,15 @@ namespace cheat::feature
} }
// Analog function for disable attack damage (Thanks to Taiga74164) // Analog function for disable attack damage (Thanks to Taiga74164)
void GodMode::LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method) //void GodMode::LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method)
{ //{
auto& gm = GodMode::GetInstance(); // auto& gm = GodMode::GetInstance();
auto& manager = game::EntityManager::instance(); // auto& manager = game::EntityManager::instance();
if (gm.f_AltGodMode && manager.avatar()->runtimeID() == attackeeRuntimeID) // if (gm.f_AltGodMode && manager.avatar()->runtimeID() == attackeeRuntimeID)
return; // return;
CALL_ORIGIN(LCBaseCombat_FireBeingHitEvent_Hook, __this, attackeeRuntimeID, attackResult, method); // CALL_ORIGIN(LCBaseCombat_FireBeingHitEvent_Hook, __this, attackeeRuntimeID, attackResult, method);
} //}
// Environmental damage immunity (Thanks to RELOADED#7236 / GitHub: @34736384) // Environmental damage immunity (Thanks to RELOADED#7236 / GitHub: @34736384)
bool GodMode::MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook(app::ActorAbilityPlugin* __this, float delay, app::Object* arg, MethodInfo* method) bool GodMode::MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook(app::ActorAbilityPlugin* __this, float delay, app::Object* arg, MethodInfo* method)
@ -100,7 +92,7 @@ namespace cheat::feature
bool GodMode::NeedBlockHanlerModifierThinkTimeUp(app::Object* arg) bool GodMode::NeedBlockHanlerModifierThinkTimeUp(app::Object* arg)
{ {
if (!f_AltGodMode) if (!f_Enabled)
return false; return false;
auto actorModifier = CastTo<app::MoleMole_ActorModifier>(arg, *app::MoleMole_ActorModifier__TypeInfo); auto actorModifier = CastTo<app::MoleMole_ActorModifier>(arg, *app::MoleMole_ActorModifier__TypeInfo);

View File

@ -9,7 +9,6 @@ namespace cheat::feature
{ {
public: public:
config::Field<config::Toggle<Hotkey>> f_Enabled; config::Field<config::Toggle<Hotkey>> f_Enabled;
config::Field<config::Toggle<Hotkey>> f_AltGodMode;
static GodMode& GetInstance(); static GodMode& GetInstance();
@ -24,7 +23,7 @@ namespace cheat::feature
bool NeedBlockHanlerModifierThinkTimeUp(app::Object* arg); bool NeedBlockHanlerModifierThinkTimeUp(app::Object* arg);
static bool MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook(app::ActorAbilityPlugin* __this, float delay, app::Object* arg, MethodInfo* method); static bool MoleMole_ActorAbilityPlugin_HanlderModifierThinkTimerUp_Hook(app::ActorAbilityPlugin* __this, float delay, app::Object* arg, MethodInfo* method);
static void LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method); //static void LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method);
static void VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method); static void VCHumanoidMove_NotifyLandVelocity_Hook(app::VCHumanoidMove* __this, app::Vector3 velocity, float reachMaxDownVelocityTime, MethodInfo* method);
static bool Miscs_CheckTargetAttackable_Hook(app::BaseEntity* attacker, app::BaseEntity* target, MethodInfo* method); static bool Miscs_CheckTargetAttackable_Hook(app::BaseEntity* attacker, app::BaseEntity* target, MethodInfo* method);

View File

@ -8,8 +8,7 @@
namespace cheat::feature namespace cheat::feature
{ {
static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, //static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method);
bool ignoreCheckCanBeHitInMP, MethodInfo* method);
static void VCAnimatorEvent_HandleProcessItem_Hook(app::MoleMole_VCAnimatorEvent* __this, static void VCAnimatorEvent_HandleProcessItem_Hook(app::MoleMole_VCAnimatorEvent* __this,
app::MoleMole_VCAnimatorEvent_MoleMole_VCAnimatorEvent_AnimatorEventPatternProcessItem* processItem, app::MoleMole_VCAnimatorEvent_MoleMole_VCAnimatorEvent_AnimatorEventPatternProcessItem* processItem,
app::AnimatorStateInfo processStateInfo, app::MoleMole_VCAnimatorEvent_MoleMole_VCAnimatorEvent_TriggerMode__Enum mode, MethodInfo* method); app::AnimatorStateInfo processStateInfo, app::MoleMole_VCAnimatorEvent_MoleMole_VCAnimatorEvent_TriggerMode__Enum mode, MethodInfo* method);
@ -225,8 +224,7 @@ namespace cheat::feature
// Raises when any entity do hit event. // Raises when any entity do hit event.
// Just recall attack few times (regulating by combatProp) // Just recall attack few times (regulating by combatProp)
// It's not tested well, so, I think, anticheat can detect it. // It's not tested well, so, I think, anticheat can detect it.
static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, /*static void LCBaseCombat_DoHitEntity_Hook(app::LCBaseCombat* __this, uint32_t targetID, app::AttackResult* attackResult, bool ignoreCheckCanBeHitInMP, MethodInfo* method)
bool ignoreCheckCanBeHitInMP, MethodInfo* method)
{ {
auto attacker = game::Entity(__this->fields._._._entity); auto attacker = game::Entity(__this->fields._._._entity);
RapidFire& rapidFire = RapidFire::GetInstance(); RapidFire& rapidFire = RapidFire::GetInstance();
@ -275,7 +273,7 @@ namespace cheat::feature
} }
CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method); CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method);
} }*/
static void LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method) static void LCBaseCombat_FireBeingHitEvent_Hook(app::LCBaseCombat* __this, uint32_t attackeeRuntimeID, app::AttackResult* attackResult, MethodInfo* method)
{ {