summaryrefslogtreecommitdiffstats
path: root/src/netvars.cpp
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-04 13:53:45 +0100
committersalmonik <salmonik@tuta.io>2026-11-04 13:53:45 +0100
commit12fde50efc7e1f1d123f9fc34ffef53d4387de2d (patch)
tree4de53807ce23df9b63598a0e3a12620ff19eb7cc /src/netvars.cpp
parentNo spread: detect pellet draws from the FireBullets seed call (diff)
downloadhl2h-12fde50efc7e1f1d123f9fc34ffef53d4387de2d.tar.gz
hl2h-12fde50efc7e1f1d123f9fc34ffef53d4387de2d.zip
Add ESP, aim, view and movement batch
- ESP: alert state (IDLE/ALERT/COMBAT/SCRIPT), enemy weapon labels, hostile/ neutral/friendly colour pickers, off-screen direction arrows, and trigger_changelevel volumes with next/previous map labels. - Aim: silent aim reuses the Aimbot FOV, vischeck and bone settings; add optional aim-punch compensation for aimbot, silent aim, triggerbot and melee (server bullets add m_vecPunchAngle to the usercmd angles). - View: always-on Camera / display card with camera FOV (writes the client m_iDefaultFOV netvar), viewmodel FOV and monitor gamma (client cvars). - Movement: Jump assist card with auto crouch-jump and edge jump (point ground probe 0.12 s ahead). - Spread: Engine spread override toggle gates the direct RandomFloat zeroing; off leaves only the seed search. - Server: entity count/base/classname helpers, trigger_changelevel map name and world bounds via IServerUnknown/ICollideable. - Netvars: m_vecPunchAngle and m_iDefaultFOV.
Diffstat (limited to 'src/netvars.cpp')
-rw-r--r--src/netvars.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/netvars.cpp b/src/netvars.cpp
index 8043674..33fd6a3 100644
--- a/src/netvars.cpp
+++ b/src/netvars.cpp
@@ -98,6 +98,15 @@ static void collect_netvars(uintptr_t table, uintptr_t base_off, int depth) {
98 // colour lives well inside C_BaseEntity. 98 // colour lives well inside C_BaseEntity.
99 if (off >= 0x20 && off <= 0x2000) 99 if (off >= 0x20 && off <= 0x2000)
100 g_net.clr_render = off; 100 g_net.clr_render = off;
101 } else if (strcmp(pname2, "m_vecPunchAngle") == 0 && g_net.punch < 0) {
102 int off = (int)(base_off + (uint32_t)poff);
103 if (off >= 0x20 && off <= 0x2000)
104 g_net.punch = off;
105 } else if (strcmp(pname2, "m_iDefaultFOV") == 0 &&
106 g_net.default_fov < 0) {
107 int off = (int)(base_off + (uint32_t)poff);
108 if (off >= 0x20 && off <= 0x2000)
109 g_net.default_fov = off;
101 } else if (strcmp(pname2, "m_iTeamNum") == 0 && g_net.teamnum < 0) { 110 } else if (strcmp(pname2, "m_iTeamNum") == 0 && g_net.teamnum < 0) {
102 g_net.teamnum = (int)(base_off + (uint32_t)poff); 111 g_net.teamnum = (int)(base_off + (uint32_t)poff);
103 } else if (strcmp(pname2, "m_vecOrigin") == 0 && g_net.origin < 0) { 112 } else if (strcmp(pname2, "m_vecOrigin") == 0 && g_net.origin < 0) {
@@ -279,9 +288,11 @@ void resolve_netvars() {
279 logf("netvars: flags=%d velocity=%d movetype=%d health=%d maxhealth=%d " 288 logf("netvars: flags=%d velocity=%d movetype=%d health=%d maxhealth=%d "
280 "teamnum=%d origin=%d viewoffset=%d mins=%d maxs=%d lifeste=%d " 289 "teamnum=%d origin=%d viewoffset=%d mins=%d maxs=%d lifeste=%d "
281 "modelindex=%d absvelocity=%d activeweapon=%d owner=%d " 290 "modelindex=%d absvelocity=%d activeweapon=%d owner=%d "
282 "weapon_owner=%d clr_render=%d", 291 "weapon_owner=%d clr_render=%d punch=%d default_fov=%d",
283 g_net.flags, g_net.velocity, g_net.movetype, g_net.health, 292 g_net.flags, g_net.velocity, g_net.movetype, g_net.health,
284 g_net.maxhealth, g_net.teamnum, g_net.origin, g_net.viewoffset, 293 g_net.maxhealth, g_net.teamnum, g_net.origin, g_net.viewoffset,
285 g_net.mins, g_net.maxs, g_net.lifestate, g_net.modelindex, 294 g_net.mins, g_net.maxs, g_net.lifestate, g_net.modelindex,
286 g_net.absvelocity, g_net.activeweapon, g_net.clr_render); 295 g_net.absvelocity, g_net.activeweapon, g_net.owner,
296 g_net.weapon_owner, g_net.clr_render, g_net.punch,
297 g_net.default_fov);
287} 298}