From 293eda2bdce9d732fad168b5b6838bd89ce59fe8 Mon Sep 17 00:00:00 2001 From: salmonik Date: Tue, 27 Oct 2026 14:52:00 +0100 Subject: Melee killbot: 360-degree crowbar silent aim - New feature (default on): while the local player's active weapon is the crowbar, pick the nearest visible hostile NPC within the 75-unit crowbar range, sorted by distance to its collision AABB, and attack it through the normal silent-aim path (usercmd view + IN_ATTACK, movement preserved, rendered view restored at FRAME_RENDER_START). - Prefer the nearest visible hitbox center; fall back to the AABB center / closest point when bones are unavailable. Reuses the existing friendly / neutral and life-state filters and the world-only vischeck. - Detect the active weapon from the client m_hActiveWeapon handle, with the authoritative server m_hActiveWeapon handle as a fallback (client entity index from the low 16 bits). - While the crowbar is active and this feature is on, skip the gun aimbot, triggerbot and silent aim so they do not fight over the usercmd view. - Menu: Melee killbot -> Active; config [melee] active=... --- src/hl2h.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/hl2h.h') diff --git a/src/hl2h.h b/src/hl2h.h index 08eb2ef..2680591 100644 --- a/src/hl2h.h +++ b/src/hl2h.h @@ -82,6 +82,7 @@ struct NetVars { int lifestate = -1; int modelindex = -1; int absvelocity = -1; // client C_BaseEntity::m_vecAbsVelocity (prediction) + int activeweapon = -1; // client m_hActiveWeapon handle // ponytail: mins/maxs may be absent from some HL2 netvar tables; esp.cpp falls back to h=72 bool ok() const { return flags >= 0 && velocity >= 0 && movetype >= 0; } // ponytail: m_iMaxHealth isn't a netvar in HL2 SP; esp.cpp falls back to 100. @@ -147,6 +148,8 @@ float getfov(const QAngle &my_view, const QAngle &aim_ang); bool aimbot_apply(CUserCmd *cmd); bool triggerbot_apply(CUserCmd *cmd); bool silent_aim_apply(CUserCmd *cmd); +bool melee_weapon_active(void *local_ent); +bool melee_aimbot_apply(CUserCmd *cmd); enum FeatureId { FEAT_BHOP = 0, FEAT_ABH = 1, @@ -154,7 +157,8 @@ enum FeatureId { FEAT_AIMBOT = 3, FEAT_TRIGGERBOT = 4, FEAT_SILENTAIM = 5, - FEAT_JUMPBUG = 6 + FEAT_JUMPBUG = 6, + FEAT_MELEE = 7 }; enum EspOption { ESP_OPT_SHOW_NEUTRAL = 0, @@ -179,6 +183,7 @@ void resolve_netvars(); bool resolve_server_netvars(); int server_entity_health(int idx, int *maxhealth, int *lifestate, void **base_out); bool server_set_velocity_z(int idx, float vz); +int server_active_weapon(int idx); int server_model_index(void *base); void find_modules(); void init_conmsg(); -- cgit v1.2.3