From 074e315c8550712dce0c7b530a90eee6aca29e63 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 23:26:53 +0100 Subject: Add grenade trajectory, RPG armour priority, empty chargers, mega gravity gun - Projectiles gets a "Grenade trajectory" toggle. While a frag grenade is held, simulate the weapon_frag throw (1200 u/s forward + 120 z, player velocity, gravity 600) and trace each step with a new trace_solid_segment(); reflect on impact, stop on a slow upward-normal hit, and draw the path, landing cross and a 300-unit blast ring. Verified on :99 (arcs, bounces off the tunnel wall, lands). - With the RPG equipped, armoured NPCs (striders, gunships, dropships, hunter-choppers) sort before normal enemies during target acquisition. Added helicopter/chopper to the ARMORED model list. - Empty health/suit chargers are hidden: read m_iJuice from the server datamap (0 = depleted, -1 = unreadable/fail open). - The citadel supercharged gravity gun (d3_citadel_03, d3_citadel_04, d3_breen_01 via IVEngineClient::GetLevelName) is treated as a normal weapon, so the melee aimbot no longer restricts it to VULNERABLE NPCs. --- src/hl2h.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/hl2h.h') diff --git a/src/hl2h.h b/src/hl2h.h index 34bf04f..32cee8f 100644 --- a/src/hl2h.h +++ b/src/hl2h.h @@ -230,7 +230,7 @@ struct FeatureState { extern FeatureState g_bhop, g_abh, g_jumpbug, g_melee, g_spread, g_esp, g_aimbot, g_triggerbot, g_silentaim, g_item_esp, g_fullbright, g_world_tint, g_fog, g_skybox, g_projectiles, g_chams; -extern bool g_proj_fuse, g_proj_radius; +extern bool g_proj_fuse, g_proj_radius, g_proj_traj; // Chams settings per relationship, and separate visible / through-wall // (invisible) material and colour. The viewmodel has a single style. @@ -319,6 +319,7 @@ int server_player_ammo(int idx, int type); uint32_t server_player_weapon(int idx, int slot); float server_grenade_detonate(int idx); float server_grenade_radius(int idx); +int server_item_juice(int idx); int server_entity_count(); void *server_entity_base(int idx); const char *server_entity_classname(int idx); @@ -366,6 +367,8 @@ void set_silent_restore(const QAngle &angles); bool is_visible(const Vector &eye, const Vector &point, void *self = nullptr, void *target = nullptr); void *trace_entity(const Vector &start, const Vector &end, void *ignore); +bool trace_solid_segment(const Vector &start, const Vector &end, void *ignore, + Vector &out_end, Vector &out_normal); float ground_distance(const Vector &origin, void *ignore, float max_dist); bool point_ground(const Vector &point, void *ignore); -- cgit v1.2.3