summaryrefslogtreecommitdiffstats
path: root/src/hl2h.h
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-27 15:22:19 +0100
committersalmonik <salmonik@tuta.io>2026-10-27 15:22:19 +0100
commit27c9ad766e1b1333922b4c14cbde9d9b77c8dab0 (patch)
tree7c758c0d431a389cc3826495b4c6d20ca28c6530 /src/hl2h.h
parentMelee killbot: 360-degree crowbar silent aim (diff)
downloadhl2h-27c9ad766e1b1333922b4c14cbde9d9b77c8dab0.tar.gz
hl2h-27c9ad766e1b1333922b4c14cbde9d9b77c8dab0.zip
Spread control: client-seed no-spread
HL2's CBaseEntity::FireBullets seeds its RNG from the usercmd random_seed (m_bUseServerRandomSeed is false for HL2 weapons), so the client can select the 8-bit seed that puts CShotManipulator::ApplySpread closest to the center. - New feature Spread control -> Active / No spread (both default on). - Precompute the best seed for a single shot and for the shotgun's 8-shot primary (first pellet accurate) and 12-shot secondary windows using the engine's own RandomSeed/RandomFloat from libvstdlib. - Set cmd->random_seed on attack commands; note_modified repairs the CRC. - The random cone offset is neutralized, but the cone size, the pistol accuracy penalty, server view punch and any damage falloff remain server-side; stock HL2 has no distance damage falloff.
Diffstat (limited to 'src/hl2h.h')
-rw-r--r--src/hl2h.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/hl2h.h b/src/hl2h.h
index 2680591..ef8e8d6 100644
--- a/src/hl2h.h
+++ b/src/hl2h.h
@@ -129,7 +129,7 @@ struct CUserCmd {
129// engine constants 129// engine constants
130// --------------------------------------------------------------------------- 130// ---------------------------------------------------------------------------
131 131
132enum { IN_ATTACK = 1 << 0, IN_JUMP = 1 << 1, IN_DUCK = 1 << 2, IN_USE = 1 << 5 }; 132enum { IN_ATTACK = 1 << 0, IN_JUMP = 1 << 1, IN_DUCK = 1 << 2, IN_USE = 1 << 5, IN_ATTACK2 = 1 << 11 };
133enum { FL_ONGROUND = 1 << 0, FL_DUCKING = 1 << 1, FL_INWATER = 1 << 9 }; 133enum { FL_ONGROUND = 1 << 0, FL_DUCKING = 1 << 1, FL_INWATER = 1 << 9 };
134enum { MOVETYPE_WALK = 2, MOVETYPE_NOCLIP = 8, MOVETYPE_LADDER = 9 }; 134enum { MOVETYPE_WALK = 2, MOVETYPE_NOCLIP = 8, MOVETYPE_LADDER = 9 };
135 135
@@ -150,6 +150,7 @@ bool triggerbot_apply(CUserCmd *cmd);
150bool silent_aim_apply(CUserCmd *cmd); 150bool silent_aim_apply(CUserCmd *cmd);
151bool melee_weapon_active(void *local_ent); 151bool melee_weapon_active(void *local_ent);
152bool melee_aimbot_apply(CUserCmd *cmd); 152bool melee_aimbot_apply(CUserCmd *cmd);
153bool spread_control_apply(CUserCmd *cmd, void *local_ent);
153enum FeatureId { 154enum FeatureId {
154 FEAT_BHOP = 0, 155 FEAT_BHOP = 0,
155 FEAT_ABH = 1, 156 FEAT_ABH = 1,
@@ -158,7 +159,8 @@ enum FeatureId {
158 FEAT_TRIGGERBOT = 4, 159 FEAT_TRIGGERBOT = 4,
159 FEAT_SILENTAIM = 5, 160 FEAT_SILENTAIM = 5,
160 FEAT_JUMPBUG = 6, 161 FEAT_JUMPBUG = 6,
161 FEAT_MELEE = 7 162 FEAT_MELEE = 7,
163 FEAT_SPREAD = 8
162}; 164};
163enum EspOption { 165enum EspOption {
164 ESP_OPT_SHOW_NEUTRAL = 0, 166 ESP_OPT_SHOW_NEUTRAL = 0,
@@ -193,6 +195,7 @@ bool feature_bind_held(int feature);
193bool esp_option(int opt); 195bool esp_option(int opt);
194bool bhop_autostrafe_enabled(); 196bool bhop_autostrafe_enabled();
195bool jumpbug_assist_enabled(); 197bool jumpbug_assist_enabled();
198bool spread_no_spread_enabled();
196unsigned aimbot_bone_mask(); 199unsigned aimbot_bone_mask();
197int aimbot_smooth_step(); 200int aimbot_smooth_step();
198bool aimbot_vischeck_enabled(); 201bool aimbot_vischeck_enabled();