feat(net): track + echo movement sequence counters
Sprint 1a of the audit remediation plan. Extracts the 4 movement sequence counters from inbound server messages and echoes them in outbound MoveToState + AutonomousPosition instead of hardcoded zeros: - instanceSequence (slot 8 in CreateObject PhysicsData timestamps) - teleportSequence (slot 4, also from PlayerTeleport 0xF751) - serverControlSequence (slot 5) - forcePositionSequence (slot 6, also from UpdatePosition 0xF748) Source: holtburger player/types.rs:237-245, mutations.rs:182-706. The server uses these to detect stale/reordered movement packets. Previously all zeros → server couldn't distinguish epoch boundaries. Changes: - CreateObject.Parsed: +4 sequence fields extracted from timestamps - UpdatePosition.Parsed: +3 sequence fields from trailing u16s - WorldSession: tracks 4 counters, updates from CreateObject/ UpdatePosition/PlayerTeleport for the player's own GUID - GameWindow: passes tracked values to MoveToState.Build and AutonomousPosition.Build Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9e5258152d
commit
11974c2099
4 changed files with 74 additions and 18 deletions
|
|
@ -1753,10 +1753,10 @@ public sealed class GameWindow : IDisposable
|
|||
cellId: wireCellId,
|
||||
position: wirePos,
|
||||
rotation: wireRot,
|
||||
instanceSequence: 0,
|
||||
serverControlSequence: 0,
|
||||
teleportSequence: 0,
|
||||
forcePositionSequence: 0);
|
||||
instanceSequence: _liveSession.InstanceSequence,
|
||||
serverControlSequence: _liveSession.ServerControlSequence,
|
||||
teleportSequence: _liveSession.TeleportSequence,
|
||||
forcePositionSequence: _liveSession.ForcePositionSequence);
|
||||
_liveSession.SendGameAction(body);
|
||||
}
|
||||
|
||||
|
|
@ -1768,10 +1768,10 @@ public sealed class GameWindow : IDisposable
|
|||
cellId: wireCellId,
|
||||
position: wirePos,
|
||||
rotation: wireRot,
|
||||
instanceSequence: 0,
|
||||
serverControlSequence: 0,
|
||||
teleportSequence: 0,
|
||||
forcePositionSequence: 0);
|
||||
instanceSequence: _liveSession.InstanceSequence,
|
||||
serverControlSequence: _liveSession.ServerControlSequence,
|
||||
teleportSequence: _liveSession.TeleportSequence,
|
||||
forcePositionSequence: _liveSession.ForcePositionSequence);
|
||||
_liveSession.SendGameAction(body);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue