summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-04 15:55:08 +0100
committersalmonik <salmonik@tuta.io>2026-11-04 15:55:08 +0100
commit1267387f58d41d1421e3c2122a6930de0b279d12 (patch)
tree1d4c5cbfdecb9aa85f16ff4f14bbc189241bf87a /CONTEXT.md
parentAdd usable item filter, projectile ESP and gravity-gun melee (diff)
downloadhl2h-1267387f58d41d1421e3c2122a6930de0b279d12.tar.gz
hl2h-1267387f58d41d1421e3c2122a6930de0b279d12.zip
Items: fallen owned weapons count as ammo; fuse diagnostics
- World weapons of a type already in the local player's inventory are retagged as ammo ("SMG ammo", ...). Inventory scan only counts weapons owned by the local player index, so NPC weapons do not trigger it. - Projectile fuse: log det/cur/base/raw server value, and fall back to a 3-second first-sighting countdown when m_flDetonateTime or engine time is unavailable.
Diffstat (limited to 'CONTEXT.md')
-rw-r--r--CONTEXT.md10
1 files changed, 9 insertions, 1 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 96a4660..d8fdb97 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -594,6 +594,11 @@ vocabulary / decisions.
594 is the server player's `m_iMaxHealth` (not a hardcoded 100); armor uses the 594 is the server player's `m_iMaxHealth` (not a hardcoded 100); armor uses the
595 HL2 `MAX_NORMAL_BATTERY` cap of 100, read from the server 595 HL2 `MAX_NORMAL_BATTERY` cap of 100, read from the server
596 `m_ArmorValue`. If the values cannot be read the filter fails open. 596 `m_ArmorValue`. If the values cannot be read the filter fails open.
597- A world weapon whose type is already in the local player's inventory is
598 reclassified as ammo (`SMG ammo`, `AR2 ammo`, ...). Inventory types come
599 from client weapon entities whose owner handle resolves to the local player
600 index; NPC-held weapons are ignored. Weapons the player does not own stay
601 under the Weapons category.
597- Scans the client entity list every 100 ms and tags health, ammo, armor/suit, 602- Scans the client entity list every 100 ms and tags health, ammo, armor/suit,
598 world weapon pickups, the two supply-crate models and generic items. 603 world weapon pickups, the two supply-crate models and generic items.
599- Each tag is a colored marker with a name and optional distance, filtered by 604- Each tag is a colored marker with a name and optional distance, filtered by
@@ -621,7 +626,10 @@ vocabulary / decisions.
621 `CGrenadeFrag`-style class names or by an owner handle. 626 `CGrenadeFrag`-style class names or by an owner handle.
622- Fuse: `CBaseGrenade::m_flDetonateTime` is not networked, so it is read from 627- Fuse: `CBaseGrenade::m_flDetonateTime` is not networked, so it is read from
623 the server entity datamap (`FIELD_TIME`) and compared with 628 the server entity datamap (`FIELD_TIME`) and compared with
624 `IVEngineClient::Time()` (slot 14). RPG rockets have no fuse. 629 `IVEngineClient::Time()` (slot 14). RPG rockets have no fuse. If the server
630 value or the engine time is unavailable, a 3-second countdown from the first
631 sighting is used so the label still ticks. The first 8 projectiles log
632 `det=`, `cur=`, the server base and the raw fuse value for diagnosis.
625- Blast radius: networked client `m_DmgRadius` when available, server 633- Blast radius: networked client `m_DmgRadius` when available, server
626 `m_DmgRadius` (`FIELD_FLOAT`) as fallback, then 300/200/150/300 for 634 `m_DmgRadius` (`FIELD_FLOAT`) as fallback, then 300/200/150/300 for
627 frag/RPG/AR2/bomb. 635 frag/RPG/AR2/bomb.