diff --git a/include/hacks/CMakeLists.txt b/include/hacks/CMakeLists.txt index 8de6a98b..0b807d88 100644 --- a/include/hacks/CMakeLists.txt +++ b/include/hacks/CMakeLists.txt @@ -28,6 +28,7 @@ target_sources(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}/KillSay.hpp" "${CMAKE_CURRENT_LIST_DIR}/Killstreak.hpp" "${CMAKE_CURRENT_LIST_DIR}/LagExploit.hpp" + "${CMAKE_CURRENT_LIST_DIR}/LightESP.hpp" "${CMAKE_CURRENT_LIST_DIR}/Misc.hpp" "${CMAKE_CURRENT_LIST_DIR}/Noisemaker.hpp" "${CMAKE_CURRENT_LIST_DIR}/Spam.hpp" diff --git a/include/hacks/LightESP.hpp b/include/hacks/LightESP.hpp new file mode 100644 index 00000000..4a5b6966 --- /dev/null +++ b/include/hacks/LightESP.hpp @@ -0,0 +1,10 @@ + +namespace hacks +{ +namespace shared +{ +namespace lightesp +{ +void run(); +void draw(); +}}} diff --git a/include/hacks/hacklist.hpp b/include/hacks/hacklist.hpp index 6cce8828..6be90786 100755 --- a/include/hacks/hacklist.hpp +++ b/include/hacks/hacklist.hpp @@ -12,6 +12,7 @@ #if ENABLE_VISUALS #include "ESP.hpp" +#include "LightESP.hpp" #include "SkinChanger.hpp" #include "Radar.hpp" #include "SpyAlert.hpp" diff --git a/src/hacks/CMakeLists.txt b/src/hacks/CMakeLists.txt index b3a8732d..f55f0e2f 100644 --- a/src/hacks/CMakeLists.txt +++ b/src/hacks/CMakeLists.txt @@ -26,6 +26,7 @@ if(NOT LagbotMode) "${CMAKE_CURRENT_LIST_DIR}/KillSay.cpp" "${CMAKE_CURRENT_LIST_DIR}/Killstreak.cpp" "${CMAKE_CURRENT_LIST_DIR}/LagExploit.cpp" + "${CMAKE_CURRENT_LIST_DIR}/LightESP.cpp" "${CMAKE_CURRENT_LIST_DIR}/Misc.cpp" "${CMAKE_CURRENT_LIST_DIR}/Noisemaker.cpp" "${CMAKE_CURRENT_LIST_DIR}/Trigger.cpp" diff --git a/src/hacks/LightESP.cpp b/src/hacks/LightESP.cpp new file mode 100644 index 00000000..a174f535 --- /dev/null +++ b/src/hacks/LightESP.cpp @@ -0,0 +1,63 @@ +#include "common.hpp" + +namespace hacks +{ +namespace shared +{ +namespace lightesp +{ + + +CatVar enable(CV_SWITCH, "backtrack", "0", "Enable backtrack", + "For legit play only as of right now."); +Vector hitp[256]; +Vector minp[256]; +Vector maxp[256]; + +void run() { + for (int i = 1; i < g_IEngine->GetMaxClients(); i++) + { + CachedEntity *pEntity = ENTITY(i); + if (CE_BAD(pEntity) || !pEntity->m_bAlivePlayer()) + hitp[i] = {0, 0, 0}; + continue; + if (pEntity->m_iTeam() == LOCAL_E->m_iTeam()) + continue; + if (pEntity->m_Type() != ENTITY_PLAYER) + continue; + if (!pEntity->hitboxes.GetHitbox(0)) + continue; + Vector hitboxpos = pEntity->hitboxes.GetHitbox(0)->center; + Vector min = pEntity->hitboxes.GetHitbox(0)->min; + Vector max = pEntity->hitboxes.GetHitbox(0)->max; + hitp[i] = hitboxpos; + minp[i] = min; + maxp[i] = max; + } +} +void draw() { + #if ENABLE_VISUALS + for (int i = 1; i < g_IEngine->GetMaxClients(); i++) { + auto hitboxpos = hitp[i]; + auto min = minp[i]; + auto max = maxp[i]; + + if (!hitboxpos.x && !hitboxpos.y && !hitboxpos.z) + continue; + Vector out; + if (draw::WorldToScreen(hitboxpos, out)) + { + float size = 0.0f; + if (abs(max.x - min.x) > abs(max.y - min.y)) + size = abs(max.x - min.x); + else + size = abs(max.y - min.y); + + draw_api::draw_rect(out.x, out.y, size / 4, size / 4, + colors::green); + } + } +#endif +} + +}}} diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 72ba67b2..592a477c 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -8,7 +8,6 @@ #include "common.hpp" #include "hack.hpp" #include "MiscTemporary.hpp" - #include #include @@ -337,6 +336,10 @@ DEFINE_HOOKED_METHOD(CreateMove, bool, void *this_, float input_sample_time, PROF_SECTION(CM_backtracc); hacks::shared::backtrack::Run(); } + { + PROF_SECTION(CM_lightesp); + hacks::shared::lightesp::run(); + } { PROF_SECTION(CM_aimbot); hacks::shared::aimbot::CreateMove(); diff --git a/src/visual/drawmgr.cpp b/src/visual/drawmgr.cpp index 635a3059..15aaee97 100644 --- a/src/visual/drawmgr.cpp +++ b/src/visual/drawmgr.cpp @@ -144,6 +144,11 @@ void DrawCheatVisuals() hacks::shared::backtrack::Draw(); } IF_GAME(IsTF2()) + { + PROF_SECTION(DRAW_lightesp); + hacks::shared::lightesp::draw(); + } + IF_GAME(IsTF2()) { PROF_SECTION(DRAW_healarrows); hacks::tf2::healarrow::Draw();