[Parity][motion-input][S2][R] 按住鼠标时每帧重算 A* 并重置预测路径;外发节流常量是自创的;按住右键会反复触发本地施法动画 #595

Closed
opened 2026-10-02 11:42:44 +00:00 by troytt · 0 comments
Owner

1.13c 客户端保真度审计立项(基准快照:7bd1090 / main @ 77a20c7)

证据标记说明:V-data = 1.13c MPQ 数据表 (.txt / animdata.d2 / .tbl / pal.pl2);V-src = D2MOO 逆向源码;V-bin = 1.13c DLL 反汇编;K = 1.13c 公认行为。

来源审计项:motion-input#16 — [S2][R] 16. 按住鼠标时每帧重算 A* 并重置预测路径;外发节流常量是自创的;按住右键会反复触发本地施法动画

  • 位置:command-mapper.ts:856-886(tick:leftMouseDown / rightMouseDown 时每帧调用 triggerPrimary/SecondaryWorldAction)、:943-961(dispatchRateLimited 放行即 noteOutgoingCommand);session/rate-limiter.ts:36-43、:96-104(move 120 ms、skill 100 ms、chat 500 ms、interaction 80 ms、令牌桶容量 12、每秒补 20)、:164-167(相同 move 350 ms 内去重);session/online-session.ts:1503-1508(每帧调用 commandMapper.tick)
  • 原版:按住鼠标时的重发间隔和条件未核实(?)。服务器每帧处理一次 mode 变更,客户端不应该在每个渲染帧都覆盖本地路径(K-中)。
  • 影响:本地每帧按新目标重算路径并调用 setPath 重置,而网络端受 120 ms 节流和 350 ms 去重限制,本地和服务器的目标对不上。按住右键时,每次放行都会 noteOutgoingCommand,本地反复起施法动画(client-world.ts:985-1000),即使服务器拒绝了这次施法。
  • 建议:输入重复的节奏对齐原版(需要逆向);本地预测只在真正发出移动包时更新;施法动画以服务器回包为准。
  • 已有 issue:和 #546(castState 永不过期)、#552、#525 相关
> **1.13c 客户端保真度审计立项**(基准快照:`7bd1090` / `main @ 77a20c7`) > 证据标记说明:`V-data` = 1.13c MPQ 数据表 (`.txt` / `animdata.d2` / `.tbl` / `pal.pl2`);`V-src` = D2MOO 逆向源码;`V-bin` = 1.13c DLL 反汇编;`K` = 1.13c 公认行为。 ### 来源审计项:`motion-input#16` — [S2][R] 16. 按住鼠标时每帧重算 A* 并重置预测路径;外发节流常量是自创的;按住右键会反复触发本地施法动画 - 位置:`command-mapper.ts:856-886`(`tick`:`leftMouseDown` / `rightMouseDown` 时每帧调用 `triggerPrimary/SecondaryWorldAction`)、`:943-961`(`dispatchRateLimited` 放行即 `noteOutgoingCommand`);`session/rate-limiter.ts:36-43`、`:96-104`(move 120 ms、skill 100 ms、chat 500 ms、interaction 80 ms、令牌桶容量 12、每秒补 20)、`:164-167`(相同 move 350 ms 内去重);`session/online-session.ts:1503-1508`(每帧调用 `commandMapper.tick`) - 原版:按住鼠标时的重发间隔和条件未核实(?)。服务器每帧处理一次 mode 变更,客户端不应该在每个渲染帧都覆盖本地路径(K-中)。 - 影响:本地每帧按新目标重算路径并调用 `setPath` 重置,而网络端受 120 ms 节流和 350 ms 去重限制,本地和服务器的目标对不上。按住右键时,每次放行都会 `noteOutgoingCommand`,本地反复起施法动画(`client-world.ts:985-1000`),即使服务器拒绝了这次施法。 - 建议:输入重复的节奏对齐原版(需要逆向);本地预测只在真正发出移动包时更新;施法动画以服务器回包为准。 - 已有 issue:和 #546(castState 永不过期)、#552、#525 相关
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#595
No description provided.