From a3e769a2a8d6f04fdae4e97d2a39d45e1cb062b8 Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 26 Oct 2026 16:20:05 +0100 Subject: ESP: restrict skeleton to humanoid core bones (no fingers/toes/headcrab) --- src/esp.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/esp.cpp') diff --git a/src/esp.cpp b/src/esp.cpp index b75a7a9..b5cb9b0 100644 --- a/src/esp.cpp +++ b/src/esp.cpp @@ -285,11 +285,21 @@ static void draw_skeleton(const EspTarget &t) { Vector wp[256]; float xs[256], ys[256]; bool ok[256]; + int core_count = 0; for (int i = 0; i < n; i++) { + ok[i] = false; + if (!bone_is_skeleton_core(t.idx, i)) + continue; + core_count++; ok[i] = bone_pos(t.idx, i, wp[i]) && world_to_screen(wp[i], xs[i], ys[i]) && std::isfinite(xs[i]) && std::isfinite(ys[i]); } + static int logged = 0; + if (core_count > 0 && logged < 4) { + logged++; + logf("skeleton: idx=%d bones=%d core=%d", t.idx, n, core_count); + } if (t.friendly) surf_color(60, 255, 60, 255); else if (t.neutral) @@ -297,8 +307,10 @@ static void draw_skeleton(const EspTarget &t) { else surf_color(255, 60, 60, 255); for (int i = 0; i < n; i++) { - int p = bone_parent(t.idx, i); - if (p >= 0 && p < n && ok[i] && ok[p]) + if (!ok[i]) + continue; + int p = bone_nearest_core_parent(t.idx, i); + if (p >= 0 && p < n && ok[p]) surf_line((int)xs[p], (int)ys[p], (int)xs[i], (int)ys[i]); } } -- cgit v1.2.3