[Parity][motion-input][S2][R] 地面移动的目的地发的是本地 A* 的末点,而不是点击坐标 #591

Closed
opened 2026-10-02 11:42:43 +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#12 — [S2][R] 12. 地面移动的目的地发的是本地 A* 的末点,而不是点击坐标

  • 位置:command-mapper.ts:569-580
  • 代码:const moveTarget = path.length > 0 ? path[path.length - 1]! : { x: subtileX, y: subtileY }
  • 原版:C2S 0x01/0x03 携带的是点击点,服务器自己寻路,sub_6FC82D10 中按每轴 ≤50 校验,超出就拒绝(V-src PlrMsg.cpp:639-695、1158-1178)。客户端不会先用自己的寻路结果改写点击坐标(K-中)。
  • 影响:点到不可走的位置时,目的地会被换成半径 10 内的"最近可走格"(可能在障碍物另一侧),或部分路径的端点(pathfind.ts:316-317、:438)。服务器的路径终点随之改变,走位和原版不同。
  • 建议:发送原始点击的子格坐标(取整规则按原版),本地预测和服务器各自寻路。
  • 已有 issue:—
> **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#12` — [S2][R] 12. 地面移动的目的地发的是本地 A* 的末点,而不是点击坐标 - 位置:`command-mapper.ts:569-580` - 代码:`const moveTarget = path.length > 0 ? path[path.length - 1]! : { x: subtileX, y: subtileY }` - 原版:C2S 0x01/0x03 携带的是点击点,服务器自己寻路,`sub_6FC82D10` 中按每轴 ≤50 校验,超出就拒绝(V-src `PlrMsg.cpp:639-695`、`1158-1178`)。客户端不会先用自己的寻路结果改写点击坐标(K-中)。 - 影响:点到不可走的位置时,目的地会被换成半径 10 内的"最近可走格"(可能在障碍物另一侧),或部分路径的端点(`pathfind.ts:316-317`、`:438`)。服务器的路径终点随之改变,走位和原版不同。 - 建议:发送原始点击的子格坐标(取整规则按原版),本地预测和服务器各自寻路。 - 已有 issue:—
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#591
No description provided.