diff options
Diffstat (limited to 'CONTEXT.md')
| -rw-r--r-- | CONTEXT.md | 17 |
1 files changed, 17 insertions, 0 deletions
| @@ -80,6 +80,7 @@ Relevant vtable slots (this build): | |||
| 80 | | `m_vecMins` / `m_vecMaxs` | `0x1A8` / `0x1B4` | | 80 | | `m_vecMins` / `m_vecMaxs` | `0x1A8` / `0x1B4` | |
| 81 | | `m_lifeState` | `0x7F` | | 81 | | `m_lifeState` | `0x7F` | |
| 82 | | `m_nModelIndex` | `0x7C` | | 82 | | `m_nModelIndex` | `0x7C` | |
| 83 | | `m_vecAbsVelocity` (client local, not netvar) | `0x11C` | | ||
| 83 | 84 | ||
| 84 | - Eye position = `m_vecOrigin + m_vecViewOffset` on **all three axes**. | 85 | - Eye position = `m_vecOrigin + m_vecViewOffset` on **all three axes**. |
| 85 | (The old code added the X component to Z, which left the eye ~64 units low.) | 86 | (The old code added the X component to Z, which left the eye ~64 units low.) |
| @@ -106,6 +107,7 @@ HL2hake | |||
| 106 | Active | 107 | Active |
| 107 | Jumpbug | 108 | Jumpbug |
| 108 | Active | 109 | Active |
| 110 | Assist timing | ||
| 109 | ESP | 111 | ESP |
| 110 | Active | 112 | Active |
| 111 | Show neutral / healthbar / healthnum / name / skeleton / box / speed graph | 113 | Show neutral / healthbar / healthnum / name / skeleton / box / speed graph |
| @@ -181,6 +183,21 @@ Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. | |||
| 181 | - `drop` is measured from consecutive predicted origins (not a hard-coded tick | 183 | - `drop` is measured from consecutive predicted origins (not a hard-coded tick |
| 182 | interval). At high fall speeds the 2-unit band can be skipped between | 184 | interval). At high fall speeds the 2-unit band can be skipped between |
| 183 | commands; a higher frame rate improves reliability. Best-effort by design. | 185 | commands; a higher frame rate improves reliability. Best-effort by design. |
| 186 | - **Assist timing** (off by default): when the natural next command would jump | ||
| 187 | over the 2-unit window, force the post-command distance to 37 by writing the | ||
| 188 | vertical velocity. It needs both the authoritative server velocity and the | ||
| 189 | client prediction velocity: | ||
| 190 | - server `CBaseEntity::m_vecAbsVelocity` (datamap offset 0x228), read by | ||
| 191 | `SetupMove` via `GetAbsVelocity`; | ||
| 192 | - client `C_BaseEntity::m_vecAbsVelocity` (datamap offset 0x11C) and the | ||
| 193 | networked `m_vecVelocity` (0xE0 + 8). | ||
| 194 | The velocity is `dz / 0.015 + 0.5 * 600 * 0.015` where `dz` is the required | ||
| 195 | displacement for this command. This turns the ~20% timing success at 625 ups | ||
| 196 | into a repeatable setup, at the cost of one command with a nudged vertical | ||
| 197 | speed. Pure jumpbug remains available with Assist off. | ||
| 198 | - The server datamap has two `m_vecVelocity` entries (0x1C and 0x29C), so the | ||
| 199 | assist deliberately writes only `m_vecAbsVelocity`; `SetAbsVelocity` syncs | ||
| 200 | `m_vecVelocity` after the command. | ||
| 184 | 201 | ||
| 185 | ## Gotchas / lessons | 202 | ## Gotchas / lessons |
| 186 | 203 | ||
