[Parity][inv-skills][S3][F/R] 离线路径大量依赖文本解析和猜测:tome 数量、鉴定、镶嵌、符文之语 #692

Closed
opened 2026-10-02 11:42:55 +00:00 by troytt · 1 comment
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 公认行为。

来源审计项:inv-skills#15 — [S3][F/R] 离线路径大量依赖文本解析和猜测:tome 数量、鉴定、镶嵌、符文之语

  • 位置(均在 src/client/ui/inventory.ts):
    • 508-529(getTomeQuantity):用正则从文本行匹配 '数量'/'Quantity',tome 缺省 20。
    • 531-570(setTomeQuantity):改写物品名字;非 tome 的上限写死 99。
    • 782 起(identifyUiItem):按 '未辨识' 文本行做处理。
    • 983-1070(inferCandidateRunewordItemTypes):按名字关键词猜底材类型。
    • 1072-1216(applyStatDeltaToTargetBase):用正则解析中英文属性文本,重算伤害、防御和需求。
    • 1334-1343、1424-1426:catch {} 吞掉异常。
    • 1377:符文之语属性取最大值。
    • 常量 TOME_MAX_QUANTITY = 20。
  • 原版:
    • tome 上限来自 misc.txt 的 maxstack=20。注释说来自 Books.txt,但 books.txt 没有上限列(V-data)。
    • tsc/isc 的 stackable=0,代码里却有卷轴堆叠逻辑(V-data)。
    • 鉴定、镶嵌、符文之语都由服务器按 runes.txt、gems.txt 和属性表计算(K-高)。
  • 影响:只在没有 commandSink(离线/演示)和 world-panels 的离线储物箱/方块路径生效,联机路径由服务器裁决。属于掩盖数据缺失的潜在问题。
  • 建议:离线路径要么删除,要么改成与服务器相同的数据驱动实现;去掉 catch {}。
  • 已有 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 公认行为。 ### 来源审计项:`inv-skills#15` — [S3][F/R] 离线路径大量依赖文本解析和猜测:tome 数量、鉴定、镶嵌、符文之语 - 位置(均在 `src/client/ui/inventory.ts`): - 508-529(`getTomeQuantity`):用正则从文本行匹配 '数量'/'Quantity',tome 缺省 20。 - 531-570(`setTomeQuantity`):改写物品名字;非 tome 的上限写死 99。 - 782 起(`identifyUiItem`):按 '未辨识' 文本行做处理。 - 983-1070(`inferCandidateRunewordItemTypes`):按名字关键词猜底材类型。 - 1072-1216(`applyStatDeltaToTargetBase`):用正则解析中英文属性文本,重算伤害、防御和需求。 - 1334-1343、1424-1426:`catch {}` 吞掉异常。 - 1377:符文之语属性取最大值。 - 常量 `TOME_MAX_QUANTITY = 20`。 - 原版: - tome 上限来自 misc.txt 的 `maxstack`=20。注释说来自 Books.txt,但 books.txt 没有上限列(V-data)。 - tsc/isc 的 `stackable`=0,代码里却有卷轴堆叠逻辑(V-data)。 - 鉴定、镶嵌、符文之语都由服务器按 runes.txt、gems.txt 和属性表计算(K-高)。 - 影响:只在没有 commandSink(离线/演示)和 world-panels 的离线储物箱/方块路径生效,联机路径由服务器裁决。属于掩盖数据缺失的潜在问题。 - 建议:离线路径要么删除,要么改成与服务器相同的数据驱动实现;去掉 `catch {}`。 - 已有 issue:—
Author
Owner

Fixed and verified in commit f209f4e on main.

Fixed and verified in commit f209f4e on main.
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#692
No description provided.