[Parity][input/hud][S2][R] 默认按键与自动地图快捷键偏离 1.13c(S/V/F9–F12/Home/方向键平移步长/5–8 喝药) #594

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

来源审计项:motion-input#15 — [S2][R] 15. 默认按键表偏离原版

  • 位置:command-mapper.ts:642-645(带 Ctrl/Meta 的组合键一律不处理)、:760-830(switch 键表)
  • 代码:case 'T': case 'S': this.hudManager.toggleRightPanel('skill');case 'M': this.hudModel.togglePanel('waypoint')
  • 原版(K-中/高):T = 技能树;S = 技能快捷栏(Skill Speed Bar);M = 消息记录(Message Log);小站没有热键,只能点小站物体打开(K-高);按住 Ctrl 跑步;H 帮助;Z 头像;N 清除消息;F9–F12 与 automap 相关;Space 关闭所有面板(hud-manager 已处理)。
  • 影响:S、M 的行为和原版不同,M 甚至能在任何地方打开小站面板;也缺少按住 Ctrl 跑步等常用操作。
  • 建议:按 1.13c 默认键位表实现(需要从 D2Client 默认键位配置核实);小站面板只能通过和小站物体交互打开。
  • 已有 issue:和 #534(按键冲突)部分相关

来源审计项:map#6 — [S2][R] 自动地图快捷键语义与原版不符:V / F9 / F10 / F11 / F12 / Home / 方向键步长

位置:

  • src/client/ui/hud-manager.ts:1364-1390:
    • V(1364-1370)→ onToggleAutomapMode,即 main.ts:212-214 → minimap.toggleMode()(minimap.ts:608-618,mini↔全屏切换)。没接回调时回退为打开小站面板(1369)。
    • F9(1371-1373)→ 淡出。
    • F10(1374-1376)→ 名字开关。
    • Home(1377-1379)→ 重置平移。
    • 方向键(1380-1390)→ ±8 像素。
  • src/client/ui/minimap.ts:68:AUTOMAP_PAN_STEP_PX = 8。
  • F11、F12 没有绑定。

原版: default.key 解析结果(V-data):func7=Tab、func8=F9、func9=F10、func10=F11、func11=F12、func45='V'。功能表在 0x6fba4f10(12 字节步长),各项功能(V-bin):

  • F9 = func8 居中:0x6faea690 mov ecx,1; jmp 0x6fb108d0,重新居中并清除平移。
  • F10 = func9 淡出:0x6fae9e20,inc eax; and eax,0x80000003 → 4 档(0..3),之后 jmp 0x6fb0f970 保存到注册表 "AutoMapFade"。
  • F11 = func10:0x6fae9df0 切换 [0x6fba16b8],注册表字符串 0x6fb853b4 = "AutoMap Party"。
  • F12 = func11:0x6fae9dc0 切换 [0x6fba16bc],注册表字符串 0x6fb853a0 = "AutoMap Party Names"。
  • V = func45:0x6fae9d80 切换 [0x6fbcc240]/[0x6fbcc244]/[0x6fbcc248],注册表字符串 0x6fb853c4 = "AutoMap Left",作用是把 mini 地图在左右两侧之间移动。
  • mini/全屏:是选项 / 注册表值 "AutoMapMode"(设置函数 0x6fb10950),不是快捷键。
  • 平移步长:0x6fb0fb10 / 0x6fb0fb20 / 0x6fb0fb30 / 0x6fb0fb40 分别为 add/sub DWORD PTR [0x6fbcc1e8 | 0x6fbcc1ec],0x10,即 16 像素。

影响:

  • 熟悉原版的玩家按 F9 期待居中,结果是淡出;按 F10 期待淡出,结果是切换名字。
  • F11(队伍)和 F12(名字)无效。
  • V 变成 mini/全屏切换。
  • 平移速度只有原版的一半。
  • 未接回调时 V 打开小站面板,是自创兜底(生产环境中 main.ts 已接上,属潜在问题)。

建议:

  • 按 default.key 的 func7/8/9/10/11/45 重新映射。
  • mini/全屏切换移到选项菜单。
  • 步长改为 16。
  • 删除 V 回退到小站面板的分支。

已有 issue: 部分相关 #534(按键冲突)

来源审计项:hud#15 — [S2][R] 15. 快捷键:S 打开技能树,V 切换自动地图模式或小站,F9/F10 语义,方向键和 Home 平移自动地图

  • 位置:src/client/ui/hud-manager.ts:1358-1360(key === 'T' || key === 'S')、:1364-1370(V)、:1371-1376(F9 = fade,F10 = names)、:1377-1390(Home、方向键 ±8)
  • 原版(K-中):1.13c 默认 S 是 Skill Speed Bar(技能快捷栏),不是技能树;V 没有默认功能;F9~F12 依次是自动地图居中、淡出、显示队伍、显示名称(把握中等);自动地图不能用方向键平移(K-低)。
  • 影响:按 S 会打开技能树;按 V 会打开自创的小站面板或切换 minimap 模式;F9/F10 的功能可能错位。
  • 建议:以原版默认键位表为准(需要逆向 D2Client 键位表确认)。
  • 已有 issue:可能与 #534(按键冲突)部分重叠
> **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 公认行为。 ### 来源审计项:`motion-input#15` — [S2][R] 15. 默认按键表偏离原版 - 位置:`command-mapper.ts:642-645`(带 Ctrl/Meta 的组合键一律不处理)、`:760-830`(switch 键表) - 代码:`case 'T': case 'S': this.hudManager.toggleRightPanel('skill')`;`case 'M': this.hudModel.togglePanel('waypoint')` - 原版(K-中/高):T = 技能树;S = 技能快捷栏(Skill Speed Bar);M = 消息记录(Message Log);小站没有热键,只能点小站物体打开(K-高);按住 Ctrl 跑步;H 帮助;Z 头像;N 清除消息;F9–F12 与 automap 相关;Space 关闭所有面板(hud-manager 已处理)。 - 影响:S、M 的行为和原版不同,M 甚至能在任何地方打开小站面板;也缺少按住 Ctrl 跑步等常用操作。 - 建议:按 1.13c 默认键位表实现(需要从 D2Client 默认键位配置核实);小站面板只能通过和小站物体交互打开。 - 已有 issue:和 #534(按键冲突)部分相关 ### 来源审计项:`map#6` — [S2][R] 自动地图快捷键语义与原版不符:V / F9 / F10 / F11 / F12 / Home / 方向键步长 **位置:** - `src/client/ui/hud-manager.ts:1364-1390`: - V(1364-1370)→ `onToggleAutomapMode`,即 `main.ts:212-214` → `minimap.toggleMode()`(`minimap.ts:608-618`,mini↔全屏切换)。没接回调时回退为打开**小站面板**(1369)。 - F9(1371-1373)→ 淡出。 - F10(1374-1376)→ 名字开关。 - Home(1377-1379)→ 重置平移。 - 方向键(1380-1390)→ ±8 像素。 - `src/client/ui/minimap.ts:68`:`AUTOMAP_PAN_STEP_PX = 8`。 - F11、F12 没有绑定。 **原版:** default.key 解析结果(V-data):func7=Tab、func8=F9、func9=F10、func10=F11、func11=F12、func45='V'。功能表在 0x6fba4f10(12 字节步长),各项功能(V-bin): - **F9 = func8 居中**:0x6faea690 `mov ecx,1; jmp 0x6fb108d0`,重新居中并清除平移。 - **F10 = func9 淡出**:0x6fae9e20,`inc eax; and eax,0x80000003` → 4 档(0..3),之后 `jmp 0x6fb0f970` 保存到注册表 "AutoMapFade"。 - **F11 = func10**:0x6fae9df0 切换 [0x6fba16b8],注册表字符串 0x6fb853b4 = "AutoMap Party"。 - **F12 = func11**:0x6fae9dc0 切换 [0x6fba16bc],注册表字符串 0x6fb853a0 = "AutoMap Party Names"。 - **V = func45**:0x6fae9d80 切换 [0x6fbcc240]/[0x6fbcc244]/[0x6fbcc248],注册表字符串 0x6fb853c4 = "AutoMap Left",作用是把 mini 地图在左右两侧之间移动。 - **mini/全屏**:是选项 / 注册表值 "AutoMapMode"(设置函数 0x6fb10950),不是快捷键。 - **平移步长**:0x6fb0fb10 / 0x6fb0fb20 / 0x6fb0fb30 / 0x6fb0fb40 分别为 `add/sub DWORD PTR [0x6fbcc1e8 | 0x6fbcc1ec],0x10`,即 **16 像素**。 **影响:** - 熟悉原版的玩家按 F9 期待居中,结果是淡出;按 F10 期待淡出,结果是切换名字。 - F11(队伍)和 F12(名字)无效。 - V 变成 mini/全屏切换。 - 平移速度只有原版的一半。 - 未接回调时 V 打开小站面板,是自创兜底(生产环境中 main.ts 已接上,属潜在问题)。 **建议:** - 按 default.key 的 func7/8/9/10/11/45 重新映射。 - mini/全屏切换移到选项菜单。 - 步长改为 16。 - 删除 V 回退到小站面板的分支。 **已有 issue:** 部分相关 #534(按键冲突) ### 来源审计项:`hud#15` — [S2][R] 15. 快捷键:S 打开技能树,V 切换自动地图模式或小站,F9/F10 语义,方向键和 Home 平移自动地图 - 位置:`src/client/ui/hud-manager.ts:1358-1360`(`key === 'T' || key === 'S'`)、`:1364-1370`(V)、`:1371-1376`(F9 = fade,F10 = names)、`:1377-1390`(Home、方向键 ±8) - 原版(K-中):1.13c 默认 S 是 Skill Speed Bar(技能快捷栏),不是技能树;V 没有默认功能;F9~F12 依次是自动地图居中、淡出、显示队伍、显示名称(把握中等);自动地图不能用方向键平移(K-低)。 - 影响:按 S 会打开技能树;按 V 会打开自创的小站面板或切换 minimap 模式;F9/F10 的功能可能错位。 - 建议:以原版默认键位表为准(需要逆向 D2Client 键位表确认)。 - 已有 issue:可能与 #534(按键冲突)部分重叠
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#594
No description provided.