55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
#include "NoClip.h"
|
|
|
|
#include "helpers.h"
|
|
|
|
NoClipModule::NoClipModule()
|
|
: BaseModule("NoClip", "NoClip", ModuleCategory::Player) {}
|
|
|
|
void NoClipModule::RegisterTab() {
|
|
}
|
|
|
|
void NoClipModule::Render() {
|
|
if (!ImGui::CollapsingHeader(Tr("NoClip"), ImGuiTreeNodeFlags_DefaultOpen)) {
|
|
return;
|
|
}
|
|
|
|
bool enabled = Enabled();
|
|
if (ImGui::Checkbox(Tr("ON / OFF"), &enabled)) {
|
|
SetEnabled(enabled);
|
|
}
|
|
|
|
if (Enabled()) {
|
|
ImGui::DragInt(Tr("Move Speed"), &move_speed_, 1.0f, 1, 10, "%d");
|
|
}
|
|
}
|
|
|
|
void NoClipModule::Update() {
|
|
if (!Enabled()) {
|
|
return;
|
|
}
|
|
|
|
using FnGetEntityManager = void* (*)();
|
|
using FnGetCharacterController = void* (*)(void*);
|
|
using FnSetCharCtrlEnabled = void (*)(void*, bool, int);
|
|
|
|
auto get_entity_manager = GetIl2cppFn<FnGetEntityManager>(IL2CPP::GetEntityManager);
|
|
auto get_character_controller = GetIl2cppFn<FnGetCharacterController>(IL2CPP::GetCharacterController);
|
|
auto set_enabled = GetIl2cppFn<FnSetCharCtrlEnabled>(IL2CPP::CharCtrl_set_enabled);
|
|
if (!get_entity_manager || !get_character_controller || !set_enabled) {
|
|
return;
|
|
}
|
|
|
|
void* entity_manager = get_entity_manager();
|
|
if (!entity_manager) {
|
|
return;
|
|
}
|
|
|
|
void* character_controller = get_character_controller(entity_manager);
|
|
if (!character_controller) {
|
|
return;
|
|
}
|
|
|
|
const bool enable_controller = !Enabled();
|
|
set_enabled(character_controller, enable_controller, 0);
|
|
}
|