From d156c4d06abca9284cb116063494355f53354d86 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 28 Oct 2026 13:54:16 +0100 Subject: Handles: use the 11-bit networked EHANDLE entity index The client m_hActiveWeapon is a networked EHANDLE: low 11 bits are the entity index and the rest is the serial. Masking with 0xFFFF included serial bits, so on later maps the weapon index became garbage (e.g. 49184/12319) and melee killbot could not recognize the crowbar. Use 0x7FF for client and server active-weapon handles, weapon owner checks and item-ESP weapon skips. Document the layout in CONTEXT. --- src/server.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 115cd53..5599227 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -210,6 +210,6 @@ int server_active_weapon(int idx) { uint32_t h = *(uint32_t *)((uintptr_t)base + g_srv_activeweapon); if (h == 0xFFFFFFFFu) return -1; - int wi = (int)(h & 0xFFFF); + int wi = (int)(h & 0x7FF); // 11-bit entity index return (wi > 0 && wi <= 4096) ? wi : -1; } -- cgit v1.2.3