[Parity][net-world][S2][R] castState 过期后施法目标残留:移动中的单位朝旧目标漂移,朝向也回退到旧目标(#546 部分仍成立) #572

Closed
opened 2026-10-02 11:42:40 +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 公认行为。

来源审计项:net-world#12 — [S2][R] F12 castState 过期后施法目标残留:移动中的单位朝旧目标漂移,朝向也回退到旧目标(#546 部分仍成立)

  • 位置:src/client/world/client-world.ts:1431-1447(expireCastStates:只有 moveMode 为空或为 'stop' 时才清 targetX/Y)、1520-1546(tick 朝 targetX/Y 插值);src/client/session/online-session.ts:1780-1781(targetX = castState?.targetX ?? u.targetX,用于朝向)
  • 原版:施法目标只决定施法那一刻的朝向,不会成为移动目的地(K 高)。
  • 实测:moveMode='walk' 的怪物施法过期后,x 从 5101 一路走到 5114(targetX=5130)。
  • 影响:怪物和玩家施法后朝施法点滑行;施法结束后朝向仍指向旧目标。原 #546 说的"400 ms 永不过期"已经不成立(untilMs: now+400 已删,改为按动画时长过期),但"走路时朝着旧目标"仍然存在。
  • 建议:castState 的目标单独存放,不写进 unit.targetX/Y;过期时无条件清除。
  • 已有 issue:#546(部分)
> **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 公认行为。 ### 来源审计项:`net-world#12` — [S2][R] F12 castState 过期后施法目标残留:移动中的单位朝旧目标漂移,朝向也回退到旧目标(#546 部分仍成立) - 位置:`src/client/world/client-world.ts:1431-1447`(`expireCastStates`:只有 `moveMode` 为空或为 `'stop'` 时才清 `targetX/Y`)、`1520-1546`(tick 朝 `targetX/Y` 插值);`src/client/session/online-session.ts:1780-1781`(`targetX = castState?.targetX ?? u.targetX`,用于朝向) - 原版:施法目标只决定施法那一刻的朝向,不会成为移动目的地(K 高)。 - 实测:`moveMode='walk'` 的怪物施法过期后,x 从 5101 一路走到 5114(`targetX=5130`)。 - 影响:怪物和玩家施法后朝施法点滑行;施法结束后朝向仍指向旧目标。原 #546 说的"400 ms 永不过期"已经不成立(`untilMs: now+400` 已删,改为按动画时长过期),但"走路时朝着旧目标"仍然存在。 - 建议:castState 的目标单独存放,不写进 `unit.targetX/Y`;过期时无条件清除。 - 已有 issue:#546(部分)
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#572
No description provided.