TYPE74 武器前置施法运行时

触发位置

TYPE74 CAST SKILL 是普通攻击“选定目标”阶段的事件,不是命中事件。

CCharacter::strike_resolveTargets0x553900)的顺序为:

  1. CBaseUnit::fireProcEffects(..., 74, other, ...)0x553989);
  2. 检查武器 [SKILL]
  3. sub_51EFE0 执行直接武器技能,或继续普通 missile/strike。

因此迁移实现必须在普通命中结算前派发 TYPE74,并在后续步骤缺少输入时回滚整段暂存状态。

装备路径

装备使用 0x7C8130 → 0x7CB870 → 0x582380,与身上效果扫描不同:

  • 概率前把 volatile seed 复制到物品技能管理器;
  • 概率使用 effect slot0 的 float 值;
  • 判定为闭区间 rand(0,100) <= chance,100% 不短路;
  • 查找物品上已安装的真实技能实例,并按底层定义共享冷却;
  • CANPROC=false 会让 proc 模式拒绝启动,但不取消后续直接武器技能入口。

WC_EVISCERATE 程序

来源:MEDIA/SKILLS/ARBITER/WANDCHAOS/WC_EVISCERATE.DAT,EVENT_START 指向 MEDIA/SKILLS/BERSERKER/EVISCERATE/EVISCERATE.LAYOUT

字段原始值
SPEED1.4
COOLDOWNMS50
WEAPONDAMAGEPCT70
SOAKSCALEPCT70
Damage Shape 最大半径2.7
Damage Shape 角度130°
TIMER0.3
LOOPS / LOOP COUNTfalse / 1

CDamageShape615CB0 表明:非 DOT、非循环、单次且 TIMER 为正时,唯一查询在 TIMER 到期后发生。迁移将该形状降低为布局时间 0.3 的单脉冲,并按技能 SPEED 1.4 推进,所以墙钟触发时间约为 0.2142857 秒。

TYPE74 属于施法模式 0(0x53CDAC):布局原点取施法者位置。它不能复用 sub_51EFE0 直接武器技能的手部水平距离/Y+0.5 原点;那样会把近身扇形推到目标身后。

物品保存以下状态:技能实例、同名重等级、charges、manager seed、private effect seed、冷却、执行标志及布局时钟。空间伤害另以可保存的武器技能布局实例运行,二者在同一事务内启动。

AXETHROW 为什么不能双发

AXES/AXE_U05X 同时声明 [SKILL] AXETHROW 和 TYPE74 AXETHROWAXETHROW.DAT 又明确写有 CANPROC:false

所以真实结果是:

  1. TYPE74 装备路径复制 seed、掷 100% 的外层概率;
  2. proc 模式因 CANPROC=false 不启动 AXETHROW;
  3. 0x553900 随后进入直接 [SKILL] 路径;
  4. 只生成一枚 THROWINGAXE

这不是为了去重而添加的端口特判,而是原始技能标志与调用顺序共同产生的行为。

覆盖与边界

原版武器共有 9 把、10 条 TYPE74:八把使用 WC_EVISCERATE,AXE_U05X 使用 AXETHROW;FIST_U01B 同时带 15% 与 5% 两条 Eviscerate,同定义冷却会使先成功启动的实例约束后续实例。

Godot 已接入伤害程序、原始粒子和两组声音。Eviscerate LAYOUT 的半透明 Werewolf Generic Model 带 slash 动画和 OPACITY 轨道;当前通用模型层仍把骨骼动画标为 deferred,因此不能声称该层已经逐帧等价。当前构造审计为 1180 / 1419,这一数字只证明构造入口,不替代视觉与全世界运行时完成证明。