SKELETON ESP

- Adds in skeleton esp
- Head tracker is now just a part of skeleton esp, and has been improved to fit head even better
- Made box esp toggleable

- Small tweaks to possibly increase performance
- Small tweaks to enhance readability
This commit is contained in:
ifBars
2023-11-10 19:34:26 -07:00
parent 3e48c06cc0
commit f00531c0cd
11 changed files with 169 additions and 56 deletions
+3 -3
View File
@@ -211,6 +211,8 @@ namespace updater {
offsets::m_iAccount = data["m_iAccount"];
if (data["m_vecAbsOrigin"].is_number())
offsets::m_vecAbsOrigin = data["m_vecAbsOrigin"];
if (data["m_vOldOrigin"].is_number())
offsets::m_vOldOrigin = data["m_vOldOrigin"];
if (data["m_pGameSceneNode"].is_number())
offsets::m_pGameSceneNode = data["m_pGameSceneNode"];
if (data["m_flFlashOverlayAlpha"].is_number())
@@ -231,8 +233,6 @@ namespace updater {
offsets::m_sSanitizedPlayerName = data["m_sSanitizedPlayerName"];
if (data["m_iTeamNum"].is_number())
offsets::m_iTeamNum = data["m_iTeamNum"];
if (data["m_vecOrigin"].is_number())
offsets::m_vecOrigin = data["m_vecOrigin"];
return true;
}
@@ -255,6 +255,7 @@ namespace updater {
data["m_pInGameMoneyServices"] = offsets::m_pInGameMoneyServices;
data["m_iAccount"] = offsets::m_iAccount;
data["m_vecAbsOrigin"] = offsets::m_vecAbsOrigin;
data["m_vOldOrigin"] = offsets::m_vOldOrigin;
data["m_pGameSceneNode"] = offsets::m_pGameSceneNode;
data["m_flFlashOverlayAlpha"] = offsets::m_flFlashOverlayAlpha;
data["m_bIsDefusing"] = offsets::m_bIsDefusing;
@@ -265,7 +266,6 @@ namespace updater {
data["m_hPlayerPawn"] = offsets::m_hPlayerPawn;
data["m_sSanitizedPlayerName"] = offsets::m_sSanitizedPlayerName;
data["m_iTeamNum"] = offsets::m_iTeamNum;
data["m_vecOrigin"] = offsets::m_vecOrigin;
std::ofstream output(file_path);
output << std::setw(4) << data << std::endl;
+1 -1
View File
@@ -46,6 +46,7 @@ namespace updater {
inline std::ptrdiff_t m_pInGameMoneyServices = 0x6D0;
inline std::ptrdiff_t m_iAccount = 0x40;
inline std::ptrdiff_t m_vecAbsOrigin = 0xC8;
inline std::ptrdiff_t m_vOldOrigin = 0x1224;
inline std::ptrdiff_t m_pGameSceneNode = 0x310;
inline std::ptrdiff_t m_flFlashOverlayAlpha = 0x1444;
inline std::ptrdiff_t m_bIsDefusing = 0x1390;
@@ -56,6 +57,5 @@ namespace updater {
inline std::ptrdiff_t m_hPlayerPawn = 0x7BC;
inline std::ptrdiff_t m_sSanitizedPlayerName = 0x720;
inline std::ptrdiff_t m_iTeamNum = 0x3BF;
inline std::ptrdiff_t m_vecOrigin = 0x1214;
}
}
+23 -3
View File
@@ -20,8 +20,10 @@ namespace config {
if (data.empty())
return false;
if (data["show_head_tracker"].is_boolean())
show_head_tracker = data["show_head_tracker"];
if (data["show_box_esp"].is_boolean())
show_box_esp = data["show_box_esp"];
if (data["show_skeleton_esp"].is_boolean())
show_skeleton_esp = data["show_skeleton_esp"];
if (data["team_esp"].is_boolean())
team_esp = data["team_esp"];
if (data["automatic_update"].is_boolean())
@@ -49,6 +51,22 @@ namespace config {
};
}
if (data.find("esp_skeleton_color_team") != data.end()) {
esp_box_color_team = {
data["esp_skeleton_color_team"][0].get<int>(),
data["esp_skeleton_color_team"][1].get<int>(),
data["esp_skeleton_color_team"][2].get<int>()
};
}
if (data.find("esp_skeleton_color_enemy") != data.end()) {
esp_box_color_enemy = {
data["esp_skeleton_color_enemy"][0].get<int>(),
data["esp_skeleton_color_enemy"][1].get<int>(),
data["esp_skeleton_color_enemy"][2].get<int>()
};
}
if (data.find("esp_name_color") != data.end()) {
esp_name_color = {
data["esp_name_color"][0].get<int>(),
@@ -76,7 +94,7 @@ namespace config {
void save() {
json data;
data["show_head_tracker"] = show_head_tracker;
data["show_box_esp"] = show_box_esp;
data["team_esp"] = team_esp;
data["automatic_update"] = automatic_update;
data["render_distance"] = render_distance;
@@ -85,6 +103,8 @@ namespace config {
data["esp_box_color_team"] = { esp_box_color_team.r, esp_box_color_team.g, esp_box_color_team.b };
data["esp_box_color_enemy"] = { esp_box_color_enemy.r, esp_box_color_enemy.g, esp_box_color_enemy.b };
data["esp_skeleton_color_team"] = { esp_box_color_team.r, esp_box_color_team.g, esp_box_color_team.b };
data["esp_skeleton_color_enemy"] = { esp_box_color_enemy.r, esp_box_color_enemy.g, esp_box_color_enemy.b };
data["esp_name_color"] = { esp_name_color.r, esp_name_color.g, esp_name_color.b };
data["esp_distance_color"] = { esp_distance_color.r, esp_distance_color.g, esp_distance_color.b };
+4 -1
View File
@@ -27,11 +27,14 @@ namespace config {
inline bool team_esp = false;
inline float render_distance = -1.f;
inline int flag_render_distance = 200;
inline bool show_box_esp = true;
inline bool show_skeleton_esp = false;
inline bool show_extra_flags = false;
inline bool show_head_tracker = false;
inline RGB esp_box_color_team = { 75, 175, 75 };
inline RGB esp_box_color_enemy = { 175, 75, 75 };
inline RGB esp_skeleton_color_team = { 75, 175, 75 };
inline RGB esp_skeleton_color_enemy = { 175, 75, 75 };
inline RGB esp_name_color = { 75, 75, 175 };
inline RGB esp_distance_color = { 75, 75, 175 };
}
+12
View File
@@ -3,6 +3,18 @@
namespace render
{
void DrawLine(HDC hdc, int x1, int y1, int x2, int y2, COLORREF color)
{
HPEN hPen = CreatePen(PS_SOLID, 2, color);
HPEN hOldPen = (HPEN)SelectObject(hdc, hPen);
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
}
void DrawCircle(HDC hdc, int x, int y, int radius, COLORREF color)
{
HPEN hPen = CreatePen(PS_SOLID, 2, color);