• 注册
  • 物品&功能 物品&功能 关注:12121 内容:1928

    DemolisherFix —— 自爆军肥引爆修复

  • 查看作者
  • 打赏作者
  • 物品&功能
  • Lv.2
    浴火重生
  • 原创

  • DemolisherFix —— 自爆军肥引爆修复

    问题描述

    七日杀 V3.0(b257)专用服务器上,Demolisher(自爆军肥)被击中胸部电荷包后不会进入引爆倒计时——没有滴滴声、没有红灯闪烁、也不会爆炸。单机/本地游戏正常。

    根因分析

    这是原版 NetPackageDamageEntity 的序列化遗漏 bug。

    完整调用链

    客户端射出子弹 → 击中 Demolisher 胸部电荷包
      → ItemActionAttack 创建 DamageSourceEntity
          DamageSourceEntity.canHitSpecialBodyParts = true  ← 正确标记
      → EntityAlive.DamageEntity → damageEntityLocal
      → 序列化为 NetPackageDamageEntity 发给服务端
          ❌ canHitSpecialBodyParts 未被写入网络包!
      → 服务端 NetPackageDamageEntity.ProcessPackage
      → 反序列化重建 DamageSourceEntity
          canHitSpecialBodyParts = false  ← C# bool 默认值!
      → EntityZombieCop.ProcessDamageResponseLocal
          检查条件:HitBodyPart.Special ✓
                   canHitSpecialBodyParts ✗  ← 永远是 false!
      → 不触发引爆 ❌

    NetPackageDamageEntity.Setup() 序列化了 HitBodyPartStrengthDamageMultiplierAttackingItem 等几十个字段,唯独遗漏了 canHitSpecialBodyParts。服务端反序列化重建 DamageSourceEntity 时,该字段保持 C# bool 默认值 false

    EntityZombieCop.ProcessDamageResponseLocal 要求四个条件全部满足才触发引爆:

    csharp
    !isEntityRemote          // 服务端 ✓
    !isPrimed                // 未引爆 ✓
    HitBodyPart.Special > 0  // 电荷包被击中 ✓
    canHitSpecialBodyParts   // 网络上丢失,永远 false ✗

    为什么单机正常?

    单机模式下伤害在本地直接处理,DamageSourceEntity 不经网络序列化,canHitSpecialBodyParts 保持原始值 true

    修复策略

    Harmony 前缀补丁 EntityZombieCop.ProcessDamageResponseLocal,在检测到 Special 身体部件被击中时,直接调用 HandlePrimingDetonator() 绕过已失真的 canHitSpecialBodyParts 检查。

    HandlePrimingDetonator() 会立即设置 isPrimed = true,因此原方法后续执行时条件 !isPrimedfalse,不会重复触发——单机和专服均安全

    安装方法

    1. 1DemolisherFix 文件夹放入服务器的 Mods 目录

    2. 2重启服务器

    3. 3检查日志中出现 [DemolisherFix] v1.0.0 已就绪,补丁安装成功

    仅需服务端安装,客户端无需任何操作。

    技术要求

    • 七日杀 V3.0+ 专用服务器

    • 需要 0_TFP_Harmony 前置(原版自带)

    文件结构

    DemolisherFix/
    ├── ModInfo.xml
    └── DemolisherFix.dll

    许可证

    可自由使用、修改和再分发。如需在社区发布,请保留原作者署名。

    ✦ 本文由 doc.71mi.com 排版生成

    隐藏内容需要回复可以看见

    回复

    "点赞是美意,打赏是鼓励"

    MOD板块严查恶意、辱骂、讽刺等评论,如发现此类评论轻则小黑屋,重则永久封禁!

    如果发现帖子违规,用户可以点击帖子标题旁的向下箭头,选择举报内容

    涉及版权纠纷请确保你有所属版权,否则中文网有权不作处理

    请登录之后再进行评论

    登录
    • 大版主
    • 小版主
  • 英雄大人
    英雄大人
    白天在工作,晚上在睡觉,有事可以留言,不一定能及时回复!
  • yichen
    yichen
    无限恐怖762251937/不死者末日1080207504
  • 林小天
    林小天
    我还活着买断制版本,私聊我qq3807190901请标明来意
  • 雾凇
    雾凇
    ifdian.net/a/jrzpz/plan
  • 摸鱼摸鱼摸
    摸鱼摸鱼摸
    交流吹水群967780922
  • 银河
    银河
    CSOL大灾变欢迎你的到来。QQ群:967780922
  • 安安
    安安
    大背包、常显、叠加、除草树,唯一作者QQ383125283
  • 最强打野贝爷
    最强打野贝爷
    上班!上班!上班!
  • Cure_805
    Cure_805
    晚上在睡觉,白天在工作,不一定能及时回复,有事可以留言!
  • happy!
    happy!
    住院中
  • 妮可Neko
    妮可Neko
    无聊写些小玩意儿
  • 赞助广告位

  • 点击展示图片即可一键加入QQ群
    赞助广告:100R/月 目前空缺广告位:0

    分享网站

  • 繁体中文
  • 任务
  • 动态
  • 到底部
  • 帖子间隔 侧栏位置: