From 1267387f58d41d1421e3c2122a6930de0b279d12 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 15:55:08 +0100 Subject: 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. --- CONTEXT.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'CONTEXT.md') diff --git a/CONTEXT.md b/CONTEXT.md index 96a4660..d8fdb97 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -594,6 +594,11 @@ vocabulary / decisions. is the server player's `m_iMaxHealth` (not a hardcoded 100); armor uses the HL2 `MAX_NORMAL_BATTERY` cap of 100, read from the server `m_ArmorValue`. If the values cannot be read the filter fails open. +- A world weapon whose type is already in the local player's inventory is + reclassified as ammo (`SMG ammo`, `AR2 ammo`, ...). Inventory types come + from client weapon entities whose owner handle resolves to the local player + index; NPC-held weapons are ignored. Weapons the player does not own stay + under the Weapons category. - Scans the client entity list every 100 ms and tags health, ammo, armor/suit, world weapon pickups, the two supply-crate models and generic items. - Each tag is a colored marker with a name and optional distance, filtered by @@ -621,7 +626,10 @@ vocabulary / decisions. `CGrenadeFrag`-style class names or by an owner handle. - Fuse: `CBaseGrenade::m_flDetonateTime` is not networked, so it is read from the server entity datamap (`FIELD_TIME`) and compared with - `IVEngineClient::Time()` (slot 14). RPG rockets have no fuse. + `IVEngineClient::Time()` (slot 14). RPG rockets have no fuse. If the server + value or the engine time is unavailable, a 3-second countdown from the first + sighting is used so the label still ticks. The first 8 projectiles log + `det=`, `cur=`, the server base and the raw fuse value for diagnosis. - Blast radius: networked client `m_DmgRadius` when available, server `m_DmgRadius` (`FIELD_FLOAT`) as fallback, then 300/200/150/300 for frag/RPG/AR2/bomb. -- cgit v1.2.3