Merge pull request #497 from TotallyNotElite/master

WIP: Add lightesp, a leightweight alternative to ESP
This commit is contained in:
LightCat 2018-06-12 15:45:52 +02:00 committed by GitHub
commit 93ffb12e37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 112 additions and 1 deletions

View File

@ -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"

View File

@ -0,0 +1,12 @@
#include "common.hpp"
#include <hacks/Aimbot.hpp>
namespace hacks
{
namespace shared
{
namespace lightesp
{
void run();
void draw();
rgba_t LightESPColor(CachedEntity *ent);
}}}

View File

@ -12,6 +12,7 @@
#if ENABLE_VISUALS
#include "ESP.hpp"
#include "LightESP.hpp"
#include "SkinChanger.hpp"
#include "Radar.hpp"
#include "SpyAlert.hpp"

View File

@ -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"

84
src/hacks/LightESP.cpp Normal file
View File

@ -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;
}
}
}
}

View File

@ -8,7 +8,6 @@
#include "common.hpp"
#include "hack.hpp"
#include "MiscTemporary.hpp"
#include <link.h>
#include <hacks/hacklist.hpp>
@ -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();

View File

@ -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();

View File

@ -567,6 +567,10 @@ static const std::string list_tf2 = R"(
"glow_self_b"
]
]
"LightESP" [
"LightESP Menu"
"lightesp_enabled"
]
"Colors" [
"Colors Menu"
"gui_rainbow"