[M20-P5] 实装客户端技能/飞弹表现层 (pCltDoFunc)、战斗事件与状态叠加层(档 B:Act I 可玩) #513

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

背景与目标

实装 D2GS 战斗与技能同步的客户端表现层:玩家与怪物施法、飞弹生成与客户端轨迹演算、受击/死亡/尸体状态、生命法力球同步以及光环/诅咒/增益状态叠加层,达成档 B(Act I 完整可玩)。

核心内容与 1.13c Ground Truth 对标 (D2Client.dll & Skills.txt / Missiles.txt)

  1. 施法与攻击上行指令:
    • 左键技能:0x05(对地面坐标)、0x06(对目标单位)、0x07 / 0x08(按住 Shift 原地释放/持续引导)。
    • 右键技能:0x0C(对地面坐标)、0x0D(对目标单位)、0x0E / 0x0F(按住 Shift 原地释放/持续引导)。
  2. 下行施法事件与客户端技能/飞弹表现 (D2Client.dll):
    • 处理下行 0x4C(单位对目标施放技能)与 0x4D(单位对坐标施放技能)。
    • 严格区分服务端逻辑与客户端表现:客户端不执行 srvstfunc / srvdofunc 及任何伤害/掉落结算,仅执行 Skills.txt 的 cltstfunc / cltdofunc 与 cltmissile / cltmissilea / cltmissileb / cltmissilec / cltmissiled。
    • 客户端飞弹由 Missiles.txt 的 pCltDoFunc / pCltHitFunc 及 CltSubMissile1..3 / CltHitSubMissile1..4 驱动,复用现有 149 套飞弹图集、558+ 套 Overlay 图集与 2:1 等距椭圆轨迹数学模型。
  3. 怪物生成(0xAC)、伤害反馈、死亡与状态同步:
    • 完整解析 0xAC D2GS_ASSIGNMONSTER 位流(怪物 hcIdx、坐标、动作模式、精英/头目词缀 MonUMod 列表、名字种子与外观组件),对接现有怪物血条与词缀名显示。
    • 处理 0x0C(单位受击/伤害反馈)、单位死亡切换 DT/DD 尸体模式、0x7A(召唤物变更)。
    • 处理 0x95(生命、法力、耐力双球与位置同步)与 0x18(详细血蓝耐与回城门状态)。
    • 处理 0xA7(延迟状态)、0xA8(设置状态及附带属性位流,如圣骑士光环、死灵诅咒、野蛮人战吼、冰冻/中毒变色)、0xA9(清除状态),驱动角色染色与脚底/头顶 Overlay。
    • 处理角色死亡与 0x41 回城复活。

验收标准(档 B 里程碑)

  • 在 D2GS 服务端上使用七大职业完整打通 Act I(鲜血荒地 → 邪恶洞穴 → 冰冷之原 → 埋骨之地血鸟 → 石块旷野 → 崔斯特瑞姆救凯恩 → 遗忘高塔女伯爵 → 修道院 → 地下墓穴击杀安达利尔)。
  • 战斗、技能飞弹、怪物精英词缀、掉落拾取、死亡复活全程与服务端零分叉、零崩溃。
## 背景与目标 实装 D2GS 战斗与技能同步的客户端表现层:玩家与怪物施法、飞弹生成与客户端轨迹演算、受击/死亡/尸体状态、生命法力球同步以及光环/诅咒/增益状态叠加层,达成**档 B(Act I 完整可玩)**。 ## 核心内容与 1.13c Ground Truth 对标 (`D2Client.dll` & `Skills.txt` / `Missiles.txt`) 1. **施法与攻击上行指令**: - 左键技能:`0x05`(对地面坐标)、`0x06`(对目标单位)、`0x07 / 0x08`(按住 Shift 原地释放/持续引导)。 - 右键技能:`0x0C`(对地面坐标)、`0x0D`(对目标单位)、`0x0E / 0x0F`(按住 Shift 原地释放/持续引导)。 2. **下行施法事件与客户端技能/飞弹表现 (`D2Client.dll`)**: - 处理下行 `0x4C`(单位对目标施放技能)与 `0x4D`(单位对坐标施放技能)。 - 严格区分服务端逻辑与客户端表现:客户端**不执行** `srvstfunc / srvdofunc` 及任何伤害/掉落结算,仅执行 `Skills.txt` 的 `cltstfunc / cltdofunc` 与 `cltmissile / cltmissilea / cltmissileb / cltmissilec / cltmissiled`。 - 客户端飞弹由 `Missiles.txt` 的 `pCltDoFunc / pCltHitFunc` 及 `CltSubMissile1..3 / CltHitSubMissile1..4` 驱动,复用现有 149 套飞弹图集、558+ 套 Overlay 图集与 2:1 等距椭圆轨迹数学模型。 3. **怪物生成(`0xAC`)、伤害反馈、死亡与状态同步**: - 完整解析 `0xAC D2GS_ASSIGNMONSTER` 位流(怪物 hcIdx、坐标、动作模式、精英/头目词缀 `MonUMod` 列表、名字种子与外观组件),对接现有怪物血条与词缀名显示。 - 处理 `0x0C`(单位受击/伤害反馈)、单位死亡切换 `DT`/`DD` 尸体模式、`0x7A`(召唤物变更)。 - 处理 `0x95`(生命、法力、耐力双球与位置同步)与 `0x18`(详细血蓝耐与回城门状态)。 - 处理 `0xA7`(延迟状态)、`0xA8`(设置状态及附带属性位流,如圣骑士光环、死灵诅咒、野蛮人战吼、冰冻/中毒变色)、`0xA9`(清除状态),驱动角色染色与脚底/头顶 Overlay。 - 处理角色死亡与 `0x41` 回城复活。 ## 验收标准(档 B 里程碑) - [ ] 在 D2GS 服务端上使用七大职业完整打通 Act I(鲜血荒地 → 邪恶洞穴 → 冰冷之原 → 埋骨之地血鸟 → 石块旷野 → 崔斯特瑞姆救凯恩 → 遗忘高塔女伯爵 → 修道院 → 地下墓穴击杀安达利尔)。 - [ ] 战斗、技能飞弹、怪物精英词缀、掉落拾取、死亡复活全程与服务端零分叉、零崩溃。
troytt added this to the [M20] D2GS 纯客户端:接入 PvPGN + D2GS 1.13c 服务端联机 (1.13c Ground Truth) milestone 2026-09-28 13:10:06 +00:00
Sign in to join this conversation.
No Label
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#513
No description provided.