[Parity][net-world][S3][F] 必需数据缺失时用缺省值顶上(掩盖数据缺口) #577

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#18 — [S3][F] F18 必需数据缺失时用缺省值顶上(掩盖数据缺口)

  • 位置与代码:
    • client-world.ts:379-380:职业未知时 this._self.charClass ?? 1(按法师的 AnimData 算速度)
    • client-unit.ts:134、client-world.ts:1608、2192、2466:lifePct ?? 128(缺生命就当满血)
    • client-world.ts:440-441、458:Overlay 缺 frames/animRate 时用 14 / 16,缺颜色时用 255
    • client-world.ts:2134-2137:金币数量 quantity ?? goldStatVal ?? 1
    • client-world.ts:2144:物品名查不到就用 code
    • online-session.ts:1820:物品 code 从 u.name 用正则 /^[a-z0-9]{3,4}$/ 猜
  • 原版:这些数据要么由封包必带(物品 code、金币数),要么来自表(Overlay.txt、AnimData),不存在缺省(V-data 对应表必有值;K 高)。lifePct 的 0..128 刻度本身是对的(MonsterMode.cpp:401-413 (hp<<7)/maxhp)。
  • 影响:数据管线出问题时画面"看起来正常",问题被掩盖;换 mod 或解码出错时才暴露。
  • 建议:按 AGENTS.md §3 改成 fail-fast 或显式报错。
  • 已有 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#18` — [S3][F] F18 必需数据缺失时用缺省值顶上(掩盖数据缺口) - 位置与代码: - `client-world.ts:379-380`:职业未知时 `this._self.charClass ?? 1`(按法师的 AnimData 算速度) - `client-unit.ts:134`、`client-world.ts:1608`、`2192`、`2466`:`lifePct ?? 128`(缺生命就当满血) - `client-world.ts:440-441`、`458`:Overlay 缺 frames/animRate 时用 14 / 16,缺颜色时用 255 - `client-world.ts:2134-2137`:金币数量 `quantity ?? goldStatVal ?? 1` - `client-world.ts:2144`:物品名查不到就用 code - `online-session.ts:1820`:物品 code 从 `u.name` 用正则 `/^[a-z0-9]{3,4}$/` 猜 - 原版:这些数据要么由封包必带(物品 code、金币数),要么来自表(Overlay.txt、AnimData),不存在缺省(V-data 对应表必有值;K 高)。lifePct 的 0..128 刻度本身是对的(`MonsterMode.cpp:401-413` `(hp<<7)/maxhp`)。 - 影响:数据管线出问题时画面"看起来正常",问题被掩盖;换 mod 或解码出错时才暴露。 - 建议:按 AGENTS.md §3 改成 fail-fast 或显式报错。 - 已有 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#577
No description provided.