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..20d6eb79 --- /dev/null +++ b/include/hacks/LightESP.hpp @@ -0,0 +1,12 @@ +#include "common.hpp" +#include +namespace hacks +{ +namespace shared +{ +namespace lightesp +{ +void run(); +void draw(); +rgba_t LightESPColor(CachedEntity *ent); +}}} 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..fb1ad6da --- /dev/null +++ b/src/hacks/LightESP.cpp @@ -0,0 +1,84 @@ +#include "LightESP.hpp" + +namespace hacks +{ +namespace shared +{ +namespace lightesp +{ + +CatVar enable(CV_SWITCH, "lightesp_enabled", "0", "Enable LightESP", + "Lightweight ESP. Only shows head."); +Vector hitp[32]; +Vector minp[32]; +Vector maxp[32]; +bool drawEsp[32]; + +void run() +{ +#if ENABLE_VISUALS + if (!enable) + return; + for (int i = 1; i < g_IEngine->GetMaxClients(); i++) + { + CachedEntity *pEntity = ENTITY(i); + if (CE_BAD(pEntity) || !pEntity->m_bAlivePlayer()) + { + drawEsp[i] = false; + continue; + } + if (pEntity->m_iTeam() == LOCAL_E->m_iTeam() && + playerlist::IsDefault(pEntity)) + { + drawEsp[i] = false; + continue; + } + if (!pEntity->hitboxes.GetHitbox(0)) + continue; + hitp[i] = pEntity->hitboxes.GetHitbox(0)->center; + minp[i] = pEntity->hitboxes.GetHitbox(0)->min; + maxp[i] = pEntity->hitboxes.GetHitbox(0)->max; + drawEsp[i] = true; + } +#endif +} +void draw() +{ +#if ENABLE_VISUALS + if (!enable) + return; + for (int i = 1; i < g_IEngine->GetMaxClients(); i++) + { + if (!drawEsp[i]) + continue; + CachedEntity *pEntity = ENTITY(i); + if (CE_BAD(pEntity) || !pEntity->m_bAlivePlayer()) + continue; + Vector out; + if (draw::WorldToScreen(hitp[i], out)) + { + float size; + if (abs(maxp[i].x - minp[i].x) > abs(maxp[i].y - minp[i].y)) + size = abs(maxp[i].x - minp[i].x); + else + size = abs(maxp[i].y - minp[i].y); + + draw_api::draw_rect( + out.x, out.y, size / 4, size / 4, + hacks::shared::lightesp::LightESPColor(pEntity)); + } + } +#endif +} + +rgba_t LightESPColor(CachedEntity *ent) +{ + if (!playerlist::IsDefault(ent)) + { + return playerlist::Color(ent); + } + return colors::green; +} +} +} +} 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(); diff --git a/src/visual/menu/ncc/Menu.cpp b/src/visual/menu/ncc/Menu.cpp index b60af187..aa26e49b 100644 --- a/src/visual/menu/ncc/Menu.cpp +++ b/src/visual/menu/ncc/Menu.cpp @@ -567,6 +567,10 @@ static const std::string list_tf2 = R"( "glow_self_b" ] ] + "LightESP" [ + "LightESP Menu" + "lightesp_enabled" + ] "Colors" [ "Colors Menu" "gui_rainbow"