| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
CInput::CreateMove overwrites cmd->random_seed with MD5_PseudoRandom after
CHLClient::CreateMove returns, so the seed set from the client-mode hook was
being discarded. Hook the IInput vtable slot 3 (CInput::CreateMove), call the
original, then apply the spread seed and update the verified command copy and
CRC. This also keeps all aim/movement edits since the original copies the
command into the verified table.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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=...
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The unduck window is only 2 units, while a 625-ups fall moves ~9.3 units per
66.7 Hz movement command, so pure jumpbug is ~20% reliable at that speed.
- Add Jumpbug -> Assist timing (default off). When the natural next command
would skip [36,38], pin the post-command ducked distance to 37 by writing
the vertical velocity for that command. Pure jumpbug remains available with
the option off.
- Resolve the client local m_vecAbsVelocity (0x11C) via the client datamap
and the server m_vecAbsVelocity (0x228) via the server datamap.
- Write both the authoritative server velocity (what SetupMove reads through
GetAbsVelocity) and the local prediction fields, so the next CreateMove sees
the assisted origin on both sides.
- Do not write the server m_vecVelocity directly: the datamap scan finds two
same-named entries (0x1C and 0x29C); SetAbsVelocity syncs it after movement.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Predict the landing speed from the current vertical velocity and a swept
standing-hull ground trace; engage only when it exceeds
PLAYER_MAX_SAFE_FALL_SPEED.
- Press duck one command before the unduck window so FinishDuck's 36-unit
origin raise places the feet ~37 units above the floor.
- On the next command release duck and press jump: PlayerMove runs Duck()
before CheckJumpButton, so FinishUnDuck sets ground, the jump executes, and
CheckFalling never sees ground for the fall-damage check.
- Measure the per-command fall from consecutive airborne origins instead of a
fixed tick interval; clear IN_JUMP while waiting so the pogo latch is clear.
- New Movement -> Jumpbug -> Active toggle (default on), config [jumpbug].
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
- 0.1 s sampling, 100-sample ring; horizontal speed of the local player
- small (240x64) panel centered in the lower half of the screen
- min 0, max auto-scales to the maximum in the 10 s window; shows max value
- ESP -> Show speed graph toggle, persisted as speedgraph=1
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Aimbot -> FOV and Silent aim -> FOV values (1..180 deg from the crosshair)
- Aimbot -> Show FOV circle: projects the FOV cone through the engine's
world->screen transform (hidden for >=89 deg since the boundary is behind
the eye)
- target lock: while a feature has a bind and the key is held, the acquired
target is kept while it is alive and has a visible selected hitbox point;
it only re-acquires when the target dies/leaves visibility or the key is
released. With bind = None both features keep selecting the nearest target.
|
| |
|
|
|
|
|
|
|
|
| |
- validate each SetupBones matrix (finite and non-zero world translation);
extra/modded and some vanilla bones (Father Grigori) can be uninitialized
and were drawing lines to world (0,0,0)
- invalid bones are skipped by the skeleton, hitbox centers and aim points;
skeleton children connect to the nearest valid ancestor instead of a dead
bone
- log the per-model invalid bone count with the first bones diagnostics
|
| | |
|
| |
|
|
|
|
| |
- move PI_F into hl2h.h as constexpr 3.14159265f and remove the duplicated
long-double-style literals from hl2h.cpp/esp.cpp
- extra digits are compile-time only; float operations cost the same
|
| |
|
|
|
|
|
|
|
| |
- ship assets/LiberationSans-Regular.ttf (+ OFL license/README)
- at startup, resolve the .so path via dladdr, add assets/...ttf to the
current fontconfig config with FcConfigAppFontAddFile, and fall back to
the system Liberation path if the asset is missing
- font creation tries Liberation Sans, then DejaVu Sans/Noto/Tahoma/Verdana/
Arial, so the overlay still renders on installs without the bundled font
|
| |
|
|
|
|
|
|
| |
- head lookup now accepts head-like bone names (teeth, mouth, jaw, face, eye,
front, snout, beak) after the HITGROUP_HEAD check
(headcrabblack: HCblack.teeth; headcrab/fast: HCfast.wiggle_front)
- final fallback is the model's first hitbox center for non-humanoids with
no head information at all
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- rewrite CONTEXT.md for the current architecture, interfaces, netvars,
menu tree, bones/ESP, aimbot/vischeck, triggerbot, silent aim and ABH
- update ISURFACE_STATUS.md: DrawLine slot, current menu/config path,
9 build TUs, current file layout
- remove the stale root-level `tree` file
- drop unused class_health_off/per-class health scan (NPC HP is not
networked), surf_call_slot, and unused scancode helpers
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- on landing with jump held, face opposite the horizontal velocity and zero
forward/side movement for that tick; the HL2 jump speed-bound subtraction
then accelerates along the velocity (the classic no-input ABH exploit)
- works standalone or with bhop; bhop's auto-strafe still applies in air
when enabled
- rendered view is restored at FRAME_RENDER_START via the existing hook, so
the camera does not flip around
|
| |
|
|
|
|
|
|
|
| |
- hook CHLClient::FrameStageNotify (vtable slot 35) and at FRAME_RENDER_START
re-apply the player's original view angles after the engine has consumed the
aimed usercmd; this fixes the slow pull with high-RPM weapons and the
revolver leaving the view on the target
- silent aim also rewrites forwardmove/sidemove so the world-space movement
wish vector is unchanged by the temporary aim angles
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- new top-level Silent aim feature (Active + Bind, default Mouse3)
- reuses the shared aim-target selection (bone checklist, nearest selected
point, world-only MASK_VISIBLE vischeck)
- writes the exact target angle into cmd->viewangles, sets IN_ATTACK for the
shot, then immediately restores engine view angles to the player's input
view (g_cam_view) so the camera stays where it was
- shares the vischeck/bone selection with the aimbot; independent of the
aimbot/triggerbot binds
- config [silentaim] active/bind
|
| |
|
|
|
|
|
|
|
| |
- top-level Triggerbot feature (Active + Bind, default Mouse4, rebindable)
- trace the crosshair ray from the eye with MASK_SHOT and TRACE_EVERYTHING;
the filter ignores the local player
- if the first entity hit is a live hostile NPC, press IN_ATTACK and fix the
usercmd CRC; walls/props/friendly/neutral/corpses do not trigger
- independent of Aimbot; config [triggerbot] active/bind
|
| |
|
|
|
|
|
|
|
|
| |
- resolve EngineTraceClient003; TraceRay (slot 4) from the eye to the exact
selected hitbox/bone point with MASK_VISIBLE
- TRACE_WORLD_ONLY filter as requested (static props are not tested, per SDK)
- Aimbot -> Vischeck toggle, persisted as vischeck=1; when on, blocked targets
are skipped and the next-nearest candidate is tried
- target candidates are ranked by angle; on each target the nearest visible
selected hitbox point wins
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- Aimbot -> Bones: Head, Torso (chest+stomach), Left/Right arm,
Left/Right leg; the aimbot aims at the nearest selected hitbox point on
the chosen target (head uses the head hitbox/bone fallback)
- Aimbot -> Smoothness: value 1..45 deg/tick, Left/Right in the menu to
adjust, persisted as smooth=N; default 5 (previous behaviour)
- config: bone_* toggles + smooth under [aimbot]
- menu gains a NODE_VALUE type (right-aligned value, Left/Right edit)
|
| |
|
|
|
|
|
|
| |
- g_cam_eye was adding the X component of m_vecViewOffset to Z, leaving the
eye ~64 units too low; the aimbot consequently aimed above heads
- head_position now prefers the HITGROUP_HEAD hitbox center before falling
back to bone names (zombie: headcrab body hitbox)
- log the exact head and desired angles for the first few aim ticks
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- select the hostile NPC whose (approximate) head is closest in angle to the
crosshair, then refine to its actual head hitbox/bone
- aimbot menu feature (Active + Bind, default Mouse5, rebindable via the
existing bind chooser); config [aimbot] active/bind
- never snap: move at most 5 degrees per tick toward the target, shortest-path
yaw, pitch clamped to +/-89, 0.05 degree deadzone; no overshoot/oscillation
- fixes the usercmd CRC after modifying viewangles
- skip when dead; ignores friendly/neutral entities (crows, citizens, ...)
|
| | |
|
| | |
|
| |
|
|
| |
bones)
|
| | |
|
| |
|
|
|
|
|
| |
- render parent->child bone links from the SetupBones world matrices
(ISurface DrawLine, projected once per bone)
- menu option "Show skeleton" under ESP, persisted as skeleton=1
- skeletons use the same hostile/friendly/neutral colours as the boxes
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- bones.cpp: resolve IClientRenderable via IClientUnknown slot 6, validate it
against IVModelInfo GetModel, call SetupBones (slot 16) with engine Time()
(slot 14), and parse the studio header (GetStudiomodel, slot 29) for
bones/bone names/parents and hitboxes
- cache up to 64 entity bone snapshots, refreshed at ~30 Hz
- helpers: bone_find/parent/pos, hitbox_center (e.g. "head")
- debug probe: HL2H_BONE_DEBUG=1 draws a white marker at each NPC's head
hitbox center and logs bone count/head position once
|
| | |
|
| |
|
|
|
|
|
|
| |
- derive the desired air direction from the raw W/S/A/D input (view-relative)
- pick the velocity perpendicular that rotates toward that target, so S/A/D
work instead of only forward and A/D no longer spin in circles
- no keys: accelerate along the crosshair
- menu label now "Uni-directional auto-strafe"; state column moved to x=270
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- entitylist slot 6 (GetHighestEntityIndex); class name via
GetClientNetworkable -> GetClientClass (replaces the unsafe slot-2 call)
- HL2 SP NPCs: class CAI_BaseNPC + m_lifeState, since NPC m_iHealth is not
networked; model names from VModelInfoClient006 for labels/friend-foe
- real HP/HP-max from the listen-server entity (IVEngineServer021 ->
PEntityOfEntIndex -> edict->m_pUnk -> GetBaseEntity) using offsets scanned
from server.so's datamap; validated against the client model index
- world_to_screen via IVDebugOverlay003::ScreenPosition (fixes box drift)
- maxs sanity clamp, NPC-only debug logging, neutral colour for wildlife
- build.sh: restore -o libhl2hake.so and add server.cpp
|
| | |
|
| | |
|
| |
|
|
| |
features
|
| |
|