summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CONTEXT.md35
1 files changed, 28 insertions, 7 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 1e860bf..889c3ab 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -201,9 +201,10 @@ vocabulary / decisions.
201 201
202- Every NPC is classified for ESP and target selection: 202- Every NPC is classified for ESP and target selection:
203 - `IMMUNE` — server `m_takedamage` is `DAMAGE_NO`/`DAMAGE_EVENTS_ONLY`. 203 - `IMMUNE` — server `m_takedamage` is `DAMAGE_NO`/`DAMAGE_EVENTS_ONLY`.
204 - `ARMORED` — gunship, strider, dropship: their `OnTakeDamage` only accepts 204 - `ARMORED` — gunship, strider, dropship, hunter-chopper: their
205 blast damage (`DMG_BLAST`, with a damage threshold on gunships and a 205 `OnTakeDamage` only accepts blast damage (`DMG_BLAST`, with a damage
206 distance check on striders). Only the RPG passes; bullets/grenades do not. 206 threshold on gunships and a distance check on striders). Only the RPG
207 passes; bullets/grenades do not.
207 - `VULNERABLE` — headcrab, antlion, manhack: punting them with the gravity 208 - `VULNERABLE` — headcrab, antlion, manhack: punting them with the gravity
208 gun / physics impact damage kills them. 209 gun / physics impact damage kills them.
209 - `NORMAL` — everything else. 210 - `NORMAL` — everything else.
@@ -213,7 +214,10 @@ vocabulary / decisions.
213 created at glyph size 10 alongside the 16 px body font (`g_font_small`). 214 created at glyph size 10 alongside the 16 px body font (`g_font_small`).
214- Aimbot/silent aim/triggerbot/melee skip `IMMUNE` targets always and 215- Aimbot/silent aim/triggerbot/melee skip `IMMUNE` targets always and
215 `ARMORED` targets unless the active weapon is the RPG 216 `ARMORED` targets unless the active weapon is the RPG
216 (`active_weapon_contains` for `rocket_launcher`/`rpg`). 217 (`active_weapon_contains` for `rocket_launcher`/`rpg`). With the RPG
218 equipped, armoured candidates are sorted before normal enemies (a
219 `fov - 1000` rank key), so a strider/gunship is acquired even when a normal
220 NPC is closer to the crosshair.
217- Server `m_takedamage` is a `char` in the 2013 SDK 221- Server `m_takedamage` is a `char` in the 2013 SDK
218 (`CNetworkVarForDerived(char, m_takedamage)`, `FIELD_CHARACTER`), so it is 222 (`CNetworkVarForDerived(char, m_takedamage)`, `FIELD_CHARACTER`), so it is
219 resolved with that type (int fallback) and read as a byte. `0/1` means no 223 resolved with that type (int fallback) and read as a byte. `0/1` means no
@@ -402,7 +406,11 @@ vocabulary / decisions.
402 `IN_ATTACK`: the primary attack launches a held object along 406 `IN_ATTACK`: the primary attack launches a held object along
403 `EyeVectors()`. No aim-punch compensation is applied there (EyeVectors does 407 `EyeVectors()`. No aim-punch compensation is applied there (EyeVectors does
404 not add punch); the crowbar path keeps it. Without a held object the primary 408 not add punch); the crowbar path keeps it. Without a held object the primary
405 is a short physics punch. 409 is a short physics punch. The citadel supercharges the gravity gun
410 (`d3_citadel_03`, `d3_citadel_04`, `d3_breen_01`; detected through
411 `IVEngineClient::GetLevelName`, slot 51), and there it is treated as a
412 normal weapon: the `VULNERABLE`-only filter is dropped, so any damageable
413 hostile NPC is selected.
406- Map transitions often switch the active weapon away from the crowbar. The 414- Map transitions often switch the active weapon away from the crowbar. The
407 state change is logged as `melee: active ... crowbar=0/1` (normal log), and 415 state change is logged as `melee: active ... crowbar=0/1` (normal log), and
408 a one-time toast says to equip the crowbar. If the client weapon model is 416 a one-time toast says to equip the crowbar. If the client weapon model is
@@ -694,7 +702,10 @@ vocabulary / decisions.
694 Reading at the raw offset shifted every count by one type (e.g. RPG read the 702 Reading at the raw offset shifted every count by one type (e.g. RPG read the
695 buckshot count 30 against a max of 3, permanently hiding rockets). 703 buckshot count 30 against a max of 3, permanently hiding rockets).
696- Chargers and ammo/supply crates are dispensers and are exempt from the 704- Chargers and ammo/supply crates are dispensers and are exempt from the
697 fullness filter. 705 fullness filter. Empty health/suit chargers are still hidden: both
706 `CWallHealth` and `CNewRecharge` expose `m_iJuice` (server datamap
707 `FIELD_INTEGER`, resolved at offset 0x47c in this build), and a value of 0
708 removes the charger tag until it recharges. `-1` (unreadable) fails open.
698- Scans the client entity list every 100 ms and tags health, ammo, armor/suit, 709- Scans the client entity list every 100 ms and tags health, ammo, armor/suit,
699 world weapon pickups, the two supply-crate models and generic items. 710 world weapon pickups, the two supply-crate models and generic items.
700- Each tag is a colored marker with a name and optional distance, filtered by 711- Each tag is a colored marker with a name and optional distance, filtered by
@@ -733,7 +744,17 @@ vocabulary / decisions.
733 is a 24-segment horizontal circle projected at the projectile height, with 744 is a 24-segment horizontal circle projected at the projectile height, with
734 every segment near-plane/screen clipped independently, so it still draws 745 every segment near-plane/screen clipped independently, so it still draws
735 when the grenade itself is off-screen or behind the camera. 746 when the grenade itself is off-screen or behind the camera.
736 Toggles: Fuse timer, Blast radius. 747 Toggles: Fuse timer, Blast radius, Grenade trajectory
748 (`[projectiles] trajectory=1`).
749- Grenade trajectory: while the frag weapon is active, simulate the throw
750 from `weapon_frag.cpp` (eye + forward*18 + right*8, player velocity +
751 (forward + 0.1 z)*1200), gravity 600, dt 0.02, restitution 0.35, friction
752 0.35. Each step traces with `trace_solid_segment` (EngineTraceClient003 slot
753 4, `MASK_PLAYERSOLID`, local player ignored); hits reflect about the impact
754 normal, and an upward normal with a slow vertical speed marks the landing.
755 The polyline, landing cross and a 300-unit blast-radius ring at the landing
756 are drawn with the same near-plane-clipped projector as the radius ring.
757 Verified on `:99` (the line arcs, bounces off a tunnel wall and lands).
737 758
738## Roadmap / TODO 759## Roadmap / TODO
739 760