diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-04 15:55:08 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-04 15:55:08 +0100 |
| commit | 1267387f58d41d1421e3c2122a6930de0b279d12 (patch) | |
| tree | 1d4c5cbfdecb9aa85f16ff4f14bbc189241bf87a /CONTEXT.md | |
| parent | Add usable item filter, projectile ESP and gravity-gun melee (diff) | |
| download | hl2h-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 '')
| -rw-r--r-- | CONTEXT.md | 10 |
1 files changed, 9 insertions, 1 deletions
| @@ -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. |
