[Parity][net-world][S3][R] 本地抢先改状态,不等服务器确认 #578

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#19 — [S3][R] F19 本地抢先改状态,不等服务器确认

  • 位置:
    • online-session.ts:1091-1124:useSkillAt/useSkillOn 先 noteOutgoingCommand 再过限流,被拒时本地照样播了施法(幽灵施法)。目前只有 API 和测试在用。
    • client-world.ts:956-959:发出 Resurrect 时本地立刻设为存活。
    • online-session.ts:1064-1071:PlayerMove 一律改写成 RunToLocation(走路被当成跑步)。
    • client-world.ts:1434-1442:expireCastStates 把玩家 mode {7,8,10} 和怪物 mode {4,5,7} 混在一个条件里复位(怪物的 7 是 SC,玩家的 7 是 A1)。
  • 原版:死亡/复活由服务器下发的模式或 0x95 决定(K 高)。
  • 影响:被拒的命令、未生效的复活会在本地产生错误的显示;mode 集合混用目前没有可见后果,但很脆弱。
  • 建议:以服务器事件为准;本地预测要能回滚。
  • 已有 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 公认行为。 ### 来源审计项:`net-world#19` — [S3][R] F19 本地抢先改状态,不等服务器确认 - 位置: - `online-session.ts:1091-1124`:`useSkillAt`/`useSkillOn` 先 `noteOutgoingCommand` 再过限流,被拒时本地照样播了施法(幽灵施法)。目前只有 API 和测试在用。 - `client-world.ts:956-959`:发出 `Resurrect` 时本地立刻设为存活。 - `online-session.ts:1064-1071`:`PlayerMove` 一律改写成 `RunToLocation`(走路被当成跑步)。 - `client-world.ts:1434-1442`:`expireCastStates` 把玩家 mode {7,8,10} 和怪物 mode {4,5,7} 混在一个条件里复位(怪物的 7 是 SC,玩家的 7 是 A1)。 - 原版:死亡/复活由服务器下发的模式或 0x95 决定(K 高)。 - 影响:被拒的命令、未生效的复活会在本地产生错误的显示;mode 集合混用目前没有可见后果,但很脆弱。 - 建议:以服务器事件为准;本地预测要能回滚。 - 已有 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#578
No description provided.