code refactor
This commit is contained in:
parent
44a7343aa8
commit
43ad5d8aa0
@ -12,8 +12,8 @@ namespace cheat::feature
|
|||||||
static void HumanoidMoveFSM_LateTick_Hook(app::HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method);
|
static void HumanoidMoveFSM_LateTick_Hook(app::HumanoidMoveFSM* __this, float deltaTime, MethodInfo* method);
|
||||||
app::Vector3 zero;
|
app::Vector3 zero;
|
||||||
|
|
||||||
NoClip::NoClip() : Feature(),
|
NoClip::NoClip() : Feature(),
|
||||||
NF(f_Enabled, "No clip", "NoClip", false),
|
NF(f_Enabled, "No clip", "NoClip", false),
|
||||||
NF(f_NoAnimation, "No Animation", "NoClip", true),
|
NF(f_NoAnimation, "No Animation", "NoClip", true),
|
||||||
NF(f_UseCustomKeys, "Use Custom Hotkeys", "NoClip", false),
|
NF(f_UseCustomKeys, "Use Custom Hotkeys", "NoClip", false),
|
||||||
NF(f_ForwardKey, "Forward HotKey", "NoClip", Hotkey(ImGuiKey_W)),
|
NF(f_ForwardKey, "Forward HotKey", "NoClip", Hotkey(ImGuiKey_W)),
|
||||||
@ -23,45 +23,33 @@ namespace cheat::feature
|
|||||||
NF(f_AscendKey, "Ascend HotKey", "NoClip", Hotkey(ImGuiKey_Space)),
|
NF(f_AscendKey, "Ascend HotKey", "NoClip", Hotkey(ImGuiKey_Space)),
|
||||||
NF(f_DescendKey, "Descend HotKey", "NoClip", Hotkey(ImGuiKey_ModShift)),
|
NF(f_DescendKey, "Descend HotKey", "NoClip", Hotkey(ImGuiKey_ModShift)),
|
||||||
NF(f_AltSpeedKey, "Alt Speed Hotkey", "NoClip", Hotkey(ImGuiKey_ModCtrl)),
|
NF(f_AltSpeedKey, "Alt Speed Hotkey", "NoClip", Hotkey(ImGuiKey_ModCtrl)),
|
||||||
NF(f_Speed, "Speed", "NoClip", 5.5f),
|
NF(f_Speed, "Speed", "NoClip", 5.5f),
|
||||||
NF(f_CameraRelative, "Relative to camera", "NoClip", true),
|
NF(f_CameraRelative, "Relative to camera", "NoClip", true),
|
||||||
NF(f_VelocityMode, "Velocity mode", "NoClip", false),
|
NF(f_VelocityMode, "Velocity mode", "NoClip", false),
|
||||||
NF(f_FreeflightMode, "Freeflight mode", "NoClip", false),
|
NF(f_FreeflightMode, "Freeflight mode", "NoClip", false),
|
||||||
NF(f_AltSpeedEnabled, "Alt speed enabled", "NoClip", false),
|
NF(f_AltSpeedEnabled, "Alt speed enabled", "NoClip", false),
|
||||||
NF(f_AltSpeed, "Alt speed", "NoClip", 1.0f)
|
NF(f_AltSpeed, "Alt speed", "NoClip", 1.0f)
|
||||||
|
|
||||||
{
|
{
|
||||||
HookManager::install(app::MoleMole_HumanoidMoveFSM_LateTick, HumanoidMoveFSM_LateTick_Hook);
|
HookManager::install(app::MoleMole_HumanoidMoveFSM_LateTick, HumanoidMoveFSM_LateTick_Hook);
|
||||||
|
|
||||||
events::GameUpdateEvent += MY_METHOD_HANDLER(NoClip::OnGameUpdate);
|
events::GameUpdateEvent += MY_METHOD_HANDLER(NoClip::OnGameUpdate);
|
||||||
events::MoveSyncEvent += MY_METHOD_HANDLER(NoClip::OnMoveSync);
|
events::MoveSyncEvent += MY_METHOD_HANDLER(NoClip::OnMoveSync);
|
||||||
}
|
}
|
||||||
|
|
||||||
const FeatureGUIInfo& NoClip::GetGUIInfo() const
|
const FeatureGUIInfo& NoClip::GetGUIInfo() const
|
||||||
{
|
{
|
||||||
static const FeatureGUIInfo info{ "No-Clip", "Player", true };
|
static const FeatureGUIInfo info{ "No-Clip", "Player", true };
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NoClip::DrawMain()
|
void NoClip::DrawMain()
|
||||||
{
|
{
|
||||||
ConfigWidget("Enabled", f_Enabled, "Enables no-clip (fast speed + no collision).\n" \
|
ConfigWidget("Enabled", f_Enabled, "Enables no-clip (fast speed + no collision).\n" \
|
||||||
"To move, use WASD, Space (go up), and Shift (go down).");
|
"To move, use WASD, Space (go up), and Shift (go down), or customize your own keys.");
|
||||||
|
|
||||||
ConfigWidget("No Animation", f_NoAnimation, "Disables player animations.");
|
ConfigWidget("No Animation", f_NoAnimation, "Disables player animations.");
|
||||||
|
|
||||||
ConfigWidget("Use Custom Keys", f_UseCustomKeys, "Enable the Use of Custom HotKeys");
|
|
||||||
|
|
||||||
if (f_UseCustomKeys) {
|
|
||||||
ConfigWidget("Forward HotKey", f_ForwardKey, "Set Forward Key");
|
|
||||||
ConfigWidget("Left HotKey", f_LeftKey, "Set Left Key");
|
|
||||||
ConfigWidget("Back HotKey", f_BackKey, "Set Back Key");
|
|
||||||
ConfigWidget("Right HotKey", f_RightKey, "Set Right Key");
|
|
||||||
ConfigWidget("Ascend HotKey", f_AscendKey, "Set Ascend Key");
|
|
||||||
ConfigWidget("Descend HotKey", f_DescendKey, "Set Descend Key");
|
|
||||||
ConfigWidget("Alt Speed Key", f_AltSpeedKey, "Set AltSpeed HotKey");
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigWidget("Speed", f_Speed, 0.1f, 2.0f, 100.0f,
|
ConfigWidget("Speed", f_Speed, 0.1f, 2.0f, 100.0f,
|
||||||
"No-clip move speed.\n" \
|
"No-clip move speed.\n" \
|
||||||
"Not recommended setting above 5.0.");
|
"Not recommended setting above 5.0.");
|
||||||
@ -78,30 +66,42 @@ namespace cheat::feature
|
|||||||
"Alternate no-clip move speed.\n" \
|
"Alternate no-clip move speed.\n" \
|
||||||
"Not recommended setting above 5.0.");
|
"Not recommended setting above 5.0.");
|
||||||
|
|
||||||
ConfigWidget("Velocity mode", f_VelocityMode,"Use velocity instead of position to move.");
|
ConfigWidget("Velocity mode", f_VelocityMode, "Use velocity instead of position to move.");
|
||||||
ConfigWidget("Freeflight mode", f_FreeflightMode,"Don't remove collisions");
|
ConfigWidget("Freeflight mode", f_FreeflightMode, "Don't remove collisions");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
bool NoClip::NeedStatusDraw() const
|
ConfigWidget("Use Custom Keys", f_UseCustomKeys, "Enable the Use of Custom HotKeys");
|
||||||
{
|
|
||||||
return f_Enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
void NoClip::DrawStatus()
|
if (f_UseCustomKeys) {
|
||||||
{
|
ConfigWidget("Forward HotKey", f_ForwardKey, "Set Forward Key");
|
||||||
|
ConfigWidget("Left HotKey", f_LeftKey, "Set Left Key");
|
||||||
|
ConfigWidget("Back HotKey", f_BackKey, "Set Back Key");
|
||||||
|
ConfigWidget("Right HotKey", f_RightKey, "Set Right Key");
|
||||||
|
ConfigWidget("Ascend HotKey", f_AscendKey, "Set Ascend Key");
|
||||||
|
ConfigWidget("Descend HotKey", f_DescendKey, "Set Descend Key");
|
||||||
|
ConfigWidget("Alt Speed Key", f_AltSpeedKey, "Set AltSpeed HotKey");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool NoClip::NeedStatusDraw() const
|
||||||
|
{
|
||||||
|
return f_Enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NoClip::DrawStatus()
|
||||||
|
{
|
||||||
ImGui::Text("NoClip%s[%.01f%s%|%s]",
|
ImGui::Text("NoClip%s[%.01f%s%|%s]",
|
||||||
f_AltSpeedEnabled ? "+Alt " : " ",
|
f_AltSpeedEnabled ? "+Alt " : " ",
|
||||||
f_Speed.value(),
|
f_Speed.value(),
|
||||||
f_AltSpeedEnabled ? fmt::format("|{:.1f}", f_AltSpeed.value()).c_str() : "",
|
f_AltSpeedEnabled ? fmt::format("|{:.1f}", f_AltSpeed.value()).c_str() : "",
|
||||||
f_CameraRelative ? "CR" : "PR");
|
f_CameraRelative ? "CR" : "PR");
|
||||||
}
|
}
|
||||||
|
|
||||||
NoClip& NoClip::GetInstance()
|
NoClip& NoClip::GetInstance()
|
||||||
{
|
{
|
||||||
static NoClip instance;
|
static NoClip instance;
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
// No clip update function.
|
// No clip update function.
|
||||||
// We just disabling collision detect and move avatar when no clip moving keys pressed.
|
// We just disabling collision detect and move avatar when no clip moving keys pressed.
|
||||||
@ -143,62 +143,34 @@ namespace cheat::feature
|
|||||||
app::Rigidbody_set_detectCollisions(rigidBody, false, nullptr);
|
app::Rigidbody_set_detectCollisions(rigidBody, false, nullptr);
|
||||||
|
|
||||||
if (!f_VelocityMode)
|
if (!f_VelocityMode)
|
||||||
app::Rigidbody_set_velocity(rigidBody, zero,nullptr);
|
app::Rigidbody_set_velocity(rigidBody, zero, nullptr);
|
||||||
|
|
||||||
auto cameraEntity = game::Entity(reinterpret_cast<app::BaseEntity*>(manager.mainCamera()));
|
auto cameraEntity = game::Entity(reinterpret_cast<app::BaseEntity*>(manager.mainCamera()));
|
||||||
auto relativeEntity = f_CameraRelative ? &cameraEntity : avatarEntity;
|
auto relativeEntity = f_CameraRelative ? &cameraEntity : avatarEntity;
|
||||||
|
|
||||||
float speed = f_Speed.value();
|
float speed = f_Speed.value();
|
||||||
if (f_AltSpeedEnabled) {
|
if (f_AltSpeedEnabled ? f_UseCustomKeys ? f_AltSpeedKey.value().IsPressed() : Hotkey(ImGuiKey_ModCtrl).IsPressed() : NULL)
|
||||||
if (!f_UseCustomKeys && Hotkey(ImGuiKey_ModCtrl).IsPressed()) {
|
speed = f_AltSpeed.value();
|
||||||
speed = f_AltSpeed.value();
|
|
||||||
}
|
|
||||||
if (f_UseCustomKeys && f_AltSpeedKey.value().IsPressed()) {
|
|
||||||
speed = f_AltSpeed.value();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
app::Vector3 dir = {};
|
app::Vector3 dir = {};
|
||||||
|
|
||||||
if (f_UseCustomKeys) {
|
if (f_UseCustomKeys ? f_ForwardKey.value().IsPressed() : Hotkey(ImGuiKey_W).IsPressed())
|
||||||
if (f_ForwardKey.value().IsPressed())
|
dir = dir + relativeEntity->forward();
|
||||||
dir = dir + relativeEntity->forward();
|
|
||||||
|
|
||||||
if (f_BackKey.value().IsPressed())
|
if (f_UseCustomKeys ? f_BackKey.value().IsPressed() : Hotkey(ImGuiKey_S).IsPressed())
|
||||||
dir = dir + relativeEntity->back();
|
dir = dir + relativeEntity->back();
|
||||||
|
|
||||||
if (f_RightKey.value().IsPressed())
|
if (f_UseCustomKeys ? f_RightKey.value().IsPressed() : Hotkey(ImGuiKey_D).IsPressed())
|
||||||
dir = dir + relativeEntity->right();
|
dir = dir + relativeEntity->right();
|
||||||
|
|
||||||
if (f_LeftKey.value().IsPressed())
|
if (f_UseCustomKeys ? f_LeftKey.value().IsPressed() : Hotkey(ImGuiKey_A).IsPressed())
|
||||||
dir = dir + relativeEntity->left();
|
dir = dir + relativeEntity->left();
|
||||||
|
|
||||||
if (f_AscendKey.value().IsPressed())
|
if (f_UseCustomKeys ? f_AscendKey.value().IsPressed() : Hotkey(ImGuiKey_Space).IsPressed())
|
||||||
dir = dir + avatarEntity->up();
|
dir = dir + avatarEntity->up();
|
||||||
|
|
||||||
if (f_DescendKey.value().IsPressed())
|
if (f_UseCustomKeys ? f_DescendKey.value().IsPressed() : Hotkey(ImGuiKey_ModShift).IsPressed())
|
||||||
dir = dir + avatarEntity->down();
|
dir = dir + avatarEntity->down();
|
||||||
}
|
|
||||||
|
|
||||||
if (!f_UseCustomKeys) {
|
|
||||||
if (Hotkey(ImGuiKey_W).IsPressed())
|
|
||||||
dir = dir + relativeEntity->forward();
|
|
||||||
|
|
||||||
if (Hotkey(ImGuiKey_S).IsPressed())
|
|
||||||
dir = dir + relativeEntity->back();
|
|
||||||
|
|
||||||
if (Hotkey(ImGuiKey_D).IsPressed())
|
|
||||||
dir = dir + relativeEntity->right();
|
|
||||||
|
|
||||||
if (Hotkey(ImGuiKey_A).IsPressed())
|
|
||||||
dir = dir + relativeEntity->left();
|
|
||||||
|
|
||||||
if (Hotkey(ImGuiKey_Space).IsPressed())
|
|
||||||
dir = dir + avatarEntity->up();
|
|
||||||
|
|
||||||
if (Hotkey(ImGuiKey_ModShift).IsPressed())
|
|
||||||
dir = dir + avatarEntity->down();
|
|
||||||
}
|
|
||||||
|
|
||||||
app::Vector3 prevPos = avatarEntity->relativePosition();
|
app::Vector3 prevPos = avatarEntity->relativePosition();
|
||||||
if (IsVectorZero(prevPos))
|
if (IsVectorZero(prevPos))
|
||||||
|
Loading…
Reference in New Issue
Block a user