[Parity][net-world][S3][R] "自己施法的回声"用 250 ms 墙钟窗口判断 #576

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#16 — [S3][R] F16 "自己施法的回声"用 250 ms 墙钟窗口判断

  • 位置:src/client/world/client-world.ts:2030-2041(Date.now() - this._lastLocalCastAtMs <= 250)
  • 原版:0x4C/0x4D 只有在技能标志含 4 时才发给施法者本人(PlrMsg.cpp:122-147 sub_6FC81D20:SKILLS_GetFlags(pSkill) & 4 || pUnit != 本人)(V-src)。没有"时间窗去重"这一说。
  • 影响:服务器主动让本人施放的技能(标志 4),如果 250 ms 内本地刚放过同一个技能,会被当成回声,不生成视觉;网络慢时又会重复生成。
  • 建议:按技能标志区分;本地预测的视觉用序号对账,不要用墙钟。
  • 已有 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#16` — [S3][R] F16 "自己施法的回声"用 250 ms 墙钟窗口判断 - 位置:`src/client/world/client-world.ts:2030-2041`(`Date.now() - this._lastLocalCastAtMs <= 250`) - 原版:0x4C/0x4D 只有在技能标志含 4 时才发给施法者本人(`PlrMsg.cpp:122-147` `sub_6FC81D20`:`SKILLS_GetFlags(pSkill) & 4 || pUnit != 本人`)(V-src)。没有"时间窗去重"这一说。 - 影响:服务器主动让本人施放的技能(标志 4),如果 250 ms 内本地刚放过同一个技能,会被当成回声,不生成视觉;网络慢时又会重复生成。 - 建议:按技能标志区分;本地预测的视觉用序号对账,不要用墙钟。 - 已有 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#576
No description provided.