[Parity][net-world][S2][R] 0x6C(怪物攻击)字段错位:命令码被当成技能 ID #569

Closed
opened 2026-10-02 11:42:39 +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#9 — [S2][R] F9 0x6C(怪物攻击)字段错位:命令码被当成技能 ID

  • 位置:src/netproto/d2gs/s2c/skills.ts:116-133(offset 5 读 u16 当 skill)→ client-world.ts SkillCast → applySkillCastToUnit
  • 原版:D2MOO SCmd.cpp:500-514 与 MonsterMsg.cpp:318-325:byte5 是命令码(与 0x68 系同一套 cmd),byte6 是目标类型,7–10 是目标 id,之后是坐标(V-src)。
  • 实测:A2 带目标(命令码 0x10)被解成 SkillCast skill 16 → 怪物 mode 4(A1 而不是 A2),还额外生成了 explodingarrow 导弹;命令码 0x1B 会被当成 27(Immolation Arrow)。
  • 影响:怪物攻击动作错,并凭空冒出亚马逊箭矢光效。
  • 建议:按命令码查 MONSTER_CMD_TO_MODE,不要走技能管线。
  • 已有 issue:—(出现频率待确认:按 D2MOO 的重建,0x6C 只在有目标且绕圈等少数场景发送)
> **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#9` — [S2][R] F9 0x6C(怪物攻击)字段错位:命令码被当成技能 ID - 位置:`src/netproto/d2gs/s2c/skills.ts:116-133`(offset 5 读 u16 当 skill)→ `client-world.ts` SkillCast → `applySkillCastToUnit` - 原版:D2MOO `SCmd.cpp:500-514` 与 `MonsterMsg.cpp:318-325`:byte5 是命令码(与 0x68 系同一套 cmd),byte6 是目标类型,7–10 是目标 id,之后是坐标(V-src)。 - 实测:A2 带目标(命令码 0x10)被解成 SkillCast skill 16 → 怪物 mode 4(A1 而不是 A2),还额外生成了 `explodingarrow` 导弹;命令码 0x1B 会被当成 27(Immolation Arrow)。 - 影响:怪物攻击动作错,并凭空冒出亚马逊箭矢光效。 - 建议:按命令码查 `MONSTER_CMD_TO_MODE`,不要走技能管线。 - 已有 issue:—(出现频率待确认:按 D2MOO 的重建,0x6C 只在有目标且绕圈等少数场景发送)
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#569
No description provided.