[Parity][hud][S2][H] 腰带不读 belts.txt:永远 4 行,纵向间距和基准 Y 都不对 #640

Closed
opened 2026-10-02 11:42:50 +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 公认行为。

来源审计项:hud#6 — [S2][H] 6. 腰带不读 belts.txt:永远 4 行,纵向间距和基准 Y 都不对

  • 位置:src/common/items/belt-model.ts:24-29(BELT_ROWS = 4、BELT_BASE_Y = 561、BELT_PITCH = 31)、:328-355(命中);src/client/ui/belt.ts:56-106;src/client/ui-model/hud-model.ts:678-699
  • 代码:const sy = BELT_BASE_Y - row * BELT_PITCH(横向和纵向共用 31)
  • 原版:belts.txt 中 800×600 的坐标为:box1 (423,562)-(452,591);box2 左边 454、box3 485、box4 516(横向间距 31);box5 上边 530、box9 498、box13 466(纵向间距 32);格子 29×29(V-data belts.txt)。行数由所装备的腰带决定:numboxes 无腰带=4,sash / light belt=8,belt / heavy belt=12,girdle 及所有扩展、精英腰带=16;armor.txt belt 列:lbl=1、vbl=4、mbl=0、tbl=5、hbl=3,扩展和精英腰带=6(V-data)。
  • 影响:底行整体上移 1px;往上每行再少 1px,第 4 行差 4px;没装腰带或腰带只有 1~3 行时,仍然显示 4 行,而且都能点击放置。
  • 建议:用装备腰带的 armor.txt belt 列查 belts.txt 对应行,取 numboxes 和 box*left/right/top/bottom(800×600 列),绘制和命中都用表里的坐标。
  • 附带:右键点击上层药水时调用 drinkBeltSlot(beltHit.col)(hud-manager.ts:1620-1622)→ useBeltSlot(col),只会喝这一列最底下的药水(hud-model.ts:1210-1238);原版右键点哪格就用哪格(K-中)。
  • 已有 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 公认行为。 ### 来源审计项:`hud#6` — [S2][H] 6. 腰带不读 belts.txt:永远 4 行,纵向间距和基准 Y 都不对 - 位置:`src/common/items/belt-model.ts:24-29`(`BELT_ROWS = 4`、`BELT_BASE_Y = 561`、`BELT_PITCH = 31`)、`:328-355`(命中);`src/client/ui/belt.ts:56-106`;`src/client/ui-model/hud-model.ts:678-699` - 代码:`const sy = BELT_BASE_Y - row * BELT_PITCH`(横向和纵向共用 31) - 原版:belts.txt 中 800×600 的坐标为:box1 (423,562)-(452,591);box2 左边 454、box3 485、box4 516(横向间距 31);box5 上边 530、box9 498、box13 466(纵向间距 32);格子 29×29(V-data belts.txt)。行数由所装备的腰带决定:`numboxes` 无腰带=4,sash / light belt=8,belt / heavy belt=12,girdle 及所有扩展、精英腰带=16;armor.txt `belt` 列:lbl=1、vbl=4、mbl=0、tbl=5、hbl=3,扩展和精英腰带=6(V-data)。 - 影响:底行整体上移 1px;往上每行再少 1px,第 4 行差 4px;没装腰带或腰带只有 1~3 行时,仍然显示 4 行,而且都能点击放置。 - 建议:用装备腰带的 armor.txt `belt` 列查 belts.txt 对应行,取 `numboxes` 和 `box*left/right/top/bottom`(800×600 列),绘制和命中都用表里的坐标。 - 附带:右键点击上层药水时调用 `drinkBeltSlot(beltHit.col)`(`hud-manager.ts:1620-1622`)→ `useBeltSlot(col)`,只会喝这一列最底下的药水(`hud-model.ts:1210-1238`);原版右键点哪格就用哪格(K-中)。 - 已有 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#640
No description provided.