[物品/UI] 实现原版 1.13c 装备镶嵌系统(珠宝无槽位区分随意镶嵌、宝石与符文按武器/头盔/盔甲/盾牌部位区分属性及符文之语激活) #507

Closed
opened 2026-09-28 12:01:13 +00:00 by troytt · 0 comments
Owner

背景与需求描述 (Background & Requirements)

严格遵循暗黑破坏神 II v1.13c 原版机制(D2Common.dll ITEMS_SocketItem、D2Client.dll showitems.cpp 及 MPQ 数据表 Gems.txt、Weapons.txt、Armor.txt、Misc.txt、ItemTypes.txt、Runes.txt),实装完整的装备镶嵌系统:

1. 珠宝(code: jew, type: jewl)可随意镶嵌且属性与部位无关

  • 魔法珠宝(如 40/15 红宝石之狂热珠宝、15/15 闪耀之狂热珠宝)、稀有珠宝(如末日环绕)、暗金珠宝(如彩虹刻面 Rainbow Facet)可以镶嵌进任何带有空余凹槽(sockets > socketedItems.length)的已鉴定装备(武器、头盔、胸甲、盾牌/死灵副手等)。
  • 无论镶嵌在哪个部位,珠宝均无差别附加其自身词条属性,并按 Math.max(host.reqLevel, jewel.reqLevel) 更新装备需求等级。
  • 未镶嵌的珠宝在悬浮提示框(Tooltip)中显示原版提示语 "可镶嵌进有凹槽的装备" / "Can be Inserted into Socketed Items"。

2. 宝石(35 种)与符文(33 种,r01–r33)按镶嵌位置区分属性

  • 根据宿主装备所属部位类别(weapon 武器、helm 头盔、armor 胸甲、shield 盾牌/圣骑盾/死灵副手)动态分发 Gems.txt 对应槽位的属性词条:
    • 武器 (weapon):应用 weaponMod1..3(weaponsZh / weaponsEn,如完美紫宝石 +150 准确率、乔 Jah 无视目标防御、乌姆 Um 25% 撕开伤口、海尔 Hel 需求 -20%、欧姆 Ohm +50% 增强伤害)。
    • 头盔 (helm):应用 helmMod1..3(helmsZh / helmsEn,如完美紫宝石 +10 力量、乔 Jah +5% 生命上限、乌姆 Um 所有抗性 +15、海尔 Hel 需求 -15%)。
    • 胸甲 (armor):应用 helmMod1..3(armorZh / armorEn)。
    • 盾牌/副手 (shield):应用 shieldMod1..3(shieldsZh / shieldsEn,如完美紫宝石 +30 防御、乔 Jah +50 生命、乌姆 Um 所有抗性 +22、海尔 Hel 需求 -15%)。
  • 镶嵌后动态重算宿主装备的基础防御(+X 防御 / +X% 增强防御)、基础武器伤害(+X% 增强伤害)、穿戴力量/敏捷需求(需求 -X%)、永不磨损(佐德 Zod)及最高需求等级(reqLevel),并支持普通/超强带孔底材嵌满符文时自动匹配并激活 1.13c 符文之语。

3. 全界面左键交互与插槽渲染

  • 支持在背包(10×4)、已穿戴装备槽位、储物箱(6×8)及赫拉迪克方块(3×4)中手持珠宝/宝石/符文左键点击带空插槽的目标装备完成镶嵌。
  • 在装备格与 Tooltip 中展示插槽状态与已镶嵌属性明细。
## 背景与需求描述 (Background & Requirements) 严格遵循暗黑破坏神 II v1.13c 原版机制(`D2Common.dll` `ITEMS_SocketItem`、`D2Client.dll` `showitems.cpp` 及 MPQ 数据表 `Gems.txt`、`Weapons.txt`、`Armor.txt`、`Misc.txt`、`ItemTypes.txt`、`Runes.txt`),实装完整的装备镶嵌系统: ### 1. 珠宝(`code: jew`, `type: jewl`)可随意镶嵌且属性与部位无关 - 魔法珠宝(如 40/15 红宝石之狂热珠宝、15/15 闪耀之狂热珠宝)、稀有珠宝(如末日环绕)、暗金珠宝(如彩虹刻面 Rainbow Facet)可以镶嵌进任何带有空余凹槽(`sockets > socketedItems.length`)的已鉴定装备(武器、头盔、胸甲、盾牌/死灵副手等)。 - 无论镶嵌在哪个部位,珠宝均无差别附加其自身词条属性,并按 `Math.max(host.reqLevel, jewel.reqLevel)` 更新装备需求等级。 - 未镶嵌的珠宝在悬浮提示框(Tooltip)中显示原版提示语 `"可镶嵌进有凹槽的装备"` / `"Can be Inserted into Socketed Items"`。 ### 2. 宝石(35 种)与符文(33 种,`r01`–`r33`)按镶嵌位置区分属性 - 根据宿主装备所属部位类别(`weapon` 武器、`helm` 头盔、`armor` 胸甲、`shield` 盾牌/圣骑盾/死灵副手)动态分发 `Gems.txt` 对应槽位的属性词条: - **武器 (`weapon`)**:应用 `weaponMod1..3`(`weaponsZh` / `weaponsEn`,如完美紫宝石 +150 准确率、乔 Jah 无视目标防御、乌姆 Um 25% 撕开伤口、海尔 Hel 需求 -20%、欧姆 Ohm +50% 增强伤害)。 - **头盔 (`helm`)**:应用 `helmMod1..3`(`helmsZh` / `helmsEn`,如完美紫宝石 +10 力量、乔 Jah +5% 生命上限、乌姆 Um 所有抗性 +15、海尔 Hel 需求 -15%)。 - **胸甲 (`armor`)**:应用 `helmMod1..3`(`armorZh` / `armorEn`)。 - **盾牌/副手 (`shield`)**:应用 `shieldMod1..3`(`shieldsZh` / `shieldsEn`,如完美紫宝石 +30 防御、乔 Jah +50 生命、乌姆 Um 所有抗性 +22、海尔 Hel 需求 -15%)。 - 镶嵌后动态重算宿主装备的基础防御(`+X 防御` / `+X% 增强防御`)、基础武器伤害(`+X% 增强伤害`)、穿戴力量/敏捷需求(`需求 -X%`)、永不磨损(佐德 Zod)及最高需求等级(`reqLevel`),并支持普通/超强带孔底材嵌满符文时自动匹配并激活 1.13c 符文之语。 ### 3. 全界面左键交互与插槽渲染 - 支持在背包(10×4)、已穿戴装备槽位、储物箱(6×8)及赫拉迪克方块(3×4)中手持珠宝/宝石/符文左键点击带空插槽的目标装备完成镶嵌。 - 在装备格与 Tooltip 中展示插槽状态与已镶嵌属性明细。
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#507
No description provided.