拔刀剑:双刃重铸

拔刀剑:双刃重铸

恢复并扩展了SlashBlade双刀与三刀战斗模式

Double Edged Reforged / 双刃重铸

Double Edged Reforged 是一个面向 Minecraft 1.20.1 与 SlashBlade: Resharped(拔刀剑:重锋)的 Forge 附属模组。

本模组尝试恢复新版拔刀剑中已经移除的双刀流机制,并以独立连招、伤害归属、玩家动画和特殊效果兼容为基础,继续探索三刀流等扩展玩法。

⚠️ 重要声明
本项目在设计、编码、移植分析、调试和文档编写过程中大量使用了生成式 AI。作者的 Java 开发经验有限,虽然项目经过了一定程度的实际测试,但无法保证代码质量、稳定性、多人游戏同步或与其他模组的兼容性。

在整合包、服务器或重要存档中使用前,请务必备份世界。因本模组产生的崩溃、卡死、伤害异常、物品异常或存档问题均不作保证。

主要功能

双刀流

当玩家主手与副手同时持有符合条件的拔刀剑时,进入双刀流模式。

双刀流并非单纯复制一份主手刀光,而是尝试为主手和副手分别维护:

  • 当前攻击刀与装备槽位
  • 刀光及伤害归属
  • 武器属性修饰符
  • 附魔效果
  • SlashBlade 特殊效果(SE)
  • 独立的连招阶段和动画时机

双刀流使用单独注册的连招分支和 VMD 动画,不再完全依赖原版单刀流动作。部分招式会按照动画与连招设计分别使用主手或副手攻击。

三刀流实验功能

启用三刀流后,拔刀剑可以装备在头盔槽,并以刀身模型渲染在玩家嘴部,而不是显示为普通头戴物品模型。

头刀拥有独立的装备上下文、伤害倍率和触发概率配置,并会尝试使用头盔槽中的刀触发刀光与相关 SE。

三刀流仍属于实验功能。部分玩家模型、动画模组、大型刀身模型或特殊渲染器可能出现错位、穿模或不显示的问题。

动画与渲染

  • 双刀流使用专用 VMD 连招动画
  • 安装 PlayerAnimator 时,玩家身体与刀具会共同播放动作
  • 未安装玩家动画模组时,刀具仍会尝试跟随 VMD 挂点运动
  • 副手刀保持出鞘状态
  • 双刀攻击时主手刀鞘保持在待机位置
  • 第一人称会隐藏可能遮挡视野的副手刀鞘与头刀
  • 不同附属刀具的模型尺寸差异可能导致穿模或位置偏差

SE 与附属兼容

本模组通过临时刀具上下文,让副手刀和头刀尽可能被 SlashBlade 事件及 SE 识别为当前攻击武器。

目前主要尝试兼容:

  • 持续生效型 SE
  • 产生刀光时触发的 SE
  • 命中目标后触发的 SE
  • 依赖当前主手刀查询的附属逻辑
  • 部分附魔和武器属性

由于 SlashBlade 附属数量很多,且不同附属可能直接假设攻击武器永远位于主手,因此无法保证所有 SE 均能正常工作。

LegendRelicLib 兼容

检测到 LegendRelicLib 时,可以:

  • 禁用其自带的简单双持追加刀光,避免重复攻击
  • 使用它的 can_double_attack 标签限制哪些刀可以进入双刀流

相关行为可以通过配置文件调整。

游戏环境

  • Minecraft:1.20.1
  • Forge:47.4.20
  • 必需前置:SlashBlade: Resharped
  • 可选联动:SlashBladeTetra
  • 可选动画支持:PlayerAnimator

本模组不支持原版 SlashBlade、其他 Minecraft 大版本或未经测试的 SlashBlade: Resharped 版本。

已知限制

  • 无法保证与所有拔刀剑附属兼容
  • 部分攻击次数、伤害频率或 SE 触发次数可能异常
  • 复杂整合包中的玩家动画模组可能改变骨骼挂点
  • 第一人称、第三人称与其他玩家视角可能存在渲染差异
  • 大型或异形刀鞘模型可能发生穿模
  • 三刀流仍处于实验阶段
  • 多人服务器环境尚未得到充分验证
  • 后续版本可能重做连招、动画和内部武器上下文系统

AI 使用声明

本项目大量使用生成式 AI 协助完成:

  • Java 与 Mixin 代码编写
  • 旧版机制分析和移植
  • 崩溃日志分析
  • 渲染坐标与骨骼问题排查
  • 连招结构整理
  • 文档编写

所有功能均可能包含 AI 生成或 AI 修改的代码。即使代码能够通过构建,也不代表其逻辑一定正确、安全或稳定。

欢迎提交包含日志和复现步骤的 Bug 报告,但不承诺能够修复所有问题。

参考项目与致谢

本项目并非完全从零设计。开发过程中阅读、分析或参考了以下项目的源代码、事件结构、战斗设计和动画实现:

  • SlashBlade: Resharped
    本模组的必需前置。参考了当前 SlashBlade API、连招系统、刀光实体、渲染系统与事件接口。

  • Legacy SlashBlade
    参考了旧版双刀流机制、连招行为、玩家姿态与历史实现。

  • SlashBlade 2
    参考了 VMD 播放、刀剑挂点、渲染和连招结构。

  • Better Combat
    参考了双持武器交替攻击、武器属性读取及主副手攻击处理思路。Better Combat 使用 GPL-3.0 许可证。

  • SlashBladeTetra
    参考了 Tetra 与 SlashBlade 的联动方式及相关兼容逻辑。

感谢以上项目的作者与贡献者。本模组不是这些项目的官方作品,请勿将本模组引发的问题反馈给其原作者。

问题反馈

提交问题时请尽量提供以下信息:

  • 完整的 latest.log 或崩溃报告
  • Double Edged Reforged 版本
  • SlashBlade: Resharped 版本
  • Forge 版本
  • 已安装的玩家动画模组
  • 已安装的 SlashBlade 附属模组
  • 稳定复现问题的操作步骤

仅提供截图或“只是崩溃了”这样的描述通常不足以定位问题。