[M20-P4] 实装 0x9C/0x9D 物品位流解码与背包/仓库/方块/腰带/商人/传送点交互包 #512
Labels
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: troytt/diablo2-web#512
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景与目标
实装 1.13c 最核心的
0x9C(世界物品)与0x9D(容器/装备物品)LSB 位流解码器,并将现有背包、私人仓库、赫拉迪克方块、腰带、商人交易、传送点与角色加点 UI 从“直接改本地内存”重构为“发送上行操作包 → 等待服务端回执更新状态”。核心内容与 1.13c Ground Truth 对标 (
D2Common.dllItems.cpp)0x9C/0x9D物品位流解码器:src/formats/bitstream.ts的 LSB-first 位读取器,严格对标 1.13cD2Common物品位流格式(对齐 D2MOOItems.cpp并核对 1.13c 帧头与属性编码):ItemStatCost.txt(Save Bits/Save Add/Save Param Bits)编码的属性列表。Item/UiInventoryItem,直接复用src/game/item-tooltip.ts与中英双语词条渲染。0x16拾取地面物品(到背包或光标)、0x17丢弃光标物品、0x50丢弃金币。0x18放入缓冲容器、0x19从缓冲容器拿起、0x1F交换容器物品、0x20右键使用物品(药水、卷轴、书册)、0x21堆叠、0x27 / 0x28物品镶嵌与书页合并。0x1A穿戴、0x1B / 0x1C交换/卸下、0x56切换主副手武器(W键)。0x23放入、0x24拿起、0x25替换、0x26快捷键喝药(1..4键)。0x13点击交互、0x2F发起对话、0x30结束对话、0x38请求实体菜单(交易/赌博)、0x32购买/赌博、0x33出售、0x34凯恩鉴定、0x35修理、0x4F操作私人仓库/方块按钮(含转化Transmute)。0x49传送点跳转、点击蓝门/红门与关卡入口跳转(0x13+0x09Warp)。0x1D / 0x1E / 0x1F(字节/字/双字属性,含金币、经验、剩余点数)与0x94(全技能等级列表);发送上行0x3A(加属性点)、0x3B(加技能点)、0x3C(切换左右键绑定技能)。验收标准
0x9C / 0x9D物品包(覆盖白装、超强、蓝装、黄装、绿装、暗金、符文之语、镶嵌物、金币、耳朵、商店商品)100% 解码通过且位游标精确对齐。