From 1fa3b61163b233f6c8c6b86dfa196fb798a6f094 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 12:39:45 +0100 Subject: ESP: classify NPC damage immunity/armour/vulnerability - Resolve server m_takedamage (DAMAGE_NO/DAMAGE_EVENTS_ONLY = immune). - Classify gunship/strider/dropship as ARMORED (OnTakeDamage only accepts DMG_BLAST; only the RPG passes), and headcrab/antlion/manhack as VULN (gravity gun / physics impact). - ESP draws ARMORED/VULN/IMMUNE tags above the name (new "Damage tags" toggle, [esp] dmg). - Aimbot, silent aim, triggerbot and melee skip immune targets and armoured targets unless the active weapon is the RPG. --- src/menu.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/menu.cpp') diff --git a/src/menu.cpp b/src/menu.cpp index 0ce6c05..eb1075a 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -78,7 +78,8 @@ bool g_aim_fov_circle = true; int g_silent_fov = 60; // ESP sub-options. Defaults match the pre-option behaviour: everything on. -bool g_esp_opt[ESP_OPT_COUNT] = {true, true, true, true, true, true, true}; +bool g_esp_opt[ESP_OPT_COUNT] = {true, true, true, true, true, true, true, + true}; // --------------------------------------------------------------------------- // config persistence (INI format) @@ -221,12 +222,14 @@ void config_save() { (int)g_item_ammo, (int)g_item_armor, (int)g_item_weapons, (int)g_item_crates, (int)g_item_distance, g_item_max_dist); fprintf(f, "[esp]\nactive=%d\nbind=%d\nneutral=%d\nhealthbar=%d\n" - "healthnum=%d\nname=%d\nskeleton=%d\nbox=%d\nspeedgraph=%d\n", + "healthnum=%d\nname=%d\nskeleton=%d\nbox=%d\nspeedgraph=%d\n" + "dmg=%d\n", g_esp.active, g_esp.bind, g_esp_opt[ESP_OPT_SHOW_NEUTRAL], g_esp_opt[ESP_OPT_SHOW_HEALTHBAR], g_esp_opt[ESP_OPT_SHOW_HEALTHNUM], g_esp_opt[ESP_OPT_SHOW_NAME], g_esp_opt[ESP_OPT_SHOW_SKELETON], g_esp_opt[ESP_OPT_SHOW_BOX], - g_esp_opt[ESP_OPT_SHOW_SPEEDGRAPH]); + g_esp_opt[ESP_OPT_SHOW_SPEEDGRAPH], + g_esp_opt[ESP_OPT_DAMAGE_TAGS]); gui_config_write(f); bool ok = ferror(f) == 0; if (fflush(f) != 0) @@ -427,6 +430,8 @@ static bool config_load() { g_esp_opt[ESP_OPT_SHOW_BOX] = atoi(val) != 0; else if (strcmp(key, "speedgraph") == 0) g_esp_opt[ESP_OPT_SHOW_SPEEDGRAPH] = atoi(val) != 0; + else if (strcmp(key, "dmg") == 0) + g_esp_opt[ESP_OPT_DAMAGE_TAGS] = atoi(val) != 0; } if (strcmp(key, "active") == 0) cur->active = atoi(val) != 0; -- cgit v1.2.3