战斗控制

战斗控制

恢复1.8.9及更早版本的经典战斗。移除攻击冷却,重新引入剑格挡等等!

装备

🗡️ 战斗控制 🛡️

带回 1.8.9 及更早版本的经典战斗机制。移除攻击冷却时间等等!

❗ 重要 ❗

此模组默认不改变战斗机制。 你必须使用 /combat style minecraft:classic 才能启用经典战斗模式。

此模组的所有功能都可以针对每个玩家单独配置。 你可以让部分玩家使用攻击冷却时间,而其他玩家则不使用。

该模组仅在服务器端需要安装,但在客户端也安装该模组会获得更好的体验。

📝 功能特性

  • 移除攻击冷却时间
  • 重新引入剑格挡(自 1.21.5 起兼容原版)
  • 用剑进行格挡攻击(block-hitting)
  • 斧头和其他工具造成的伤害降低,如同 1.8.9 版本
  • 回退食物机制和快速生命恢复
  • 让雪球重新造成击退效果
  • 让钓鱼竿造成击退效果
  • 不同的击退变体改善连击效果
  • 禁用钓鱼竿拉扯实体,如同许多 PvP 服务器上的行为
  • 允许在使用弓或进食时攻击,如同 1.7.10 版本
  • 站立不动时禁用剑的横扫攻击。横扫之刃附魔仍然会触发横扫攻击
  • 允许在疾跑时造成暴击
  • 攻击不再打断疾跑状态
  • 增强锋利附魔,每等级增加 1.25 攻击伤害,如同 1.8.9 及更早版本
  • 移除现代战斗音效
  • 移除现代战斗粒子效果,例如伤害指示器
  • 回退附魔金苹果(“神苹果”)效果
  • 钓鱼竿在拉动实体时会将实体略微拉得更高
  • 钓鱼竿在拉动实体时消耗更少的耐久度
  • 让钓鱼竿播放旧版音效
  • 钓鱼竿浮漂移动速度更快
  • 工具在攻击时消耗更少的耐久度
  • 移除使用盾牌等物品时重新装备的动画
  • 跳跃时旧版的头部倾斜摆动动画
  • 即时潜行动画
  • 武器上的旧版属性样式
  • 移除闪烁的红心动画
  • 重新引入药水附魔闪光效果
  • 在物品提示框中重新显示锋利伤害(修复 MC-271840)
  • 将弹射物容差边距恢复为恒定的 0.3 格(来自 Minecraft 1.21.6 之前)
  • 允许命中与拥有者玩家碰撞箱相交的实体的弹射物(在 Minecraft 1.12.2 中更改)
  • 命中时使用经典雪球粒子效果

⚠️ 注意 此模组不应安装在不允许使用它的公共服务器上游玩时。 虽然此模组尽最大努力在服务器未安装该模组时禁用所有与战斗相关的功能,但不能保证其行为与原版完全一致。 在某些带有反作弊措施的服务器上,这甚至可能导致你被封禁...

🖼️ 展示

这里展示的所有功能都可以在模组设置中单独切换。

  • 剑格挡

剑格挡

  • 附魔药水(闪光效果)

药水具有旧版附魔闪光效果

  • 经典属性样式

属性样式

  • 经典摆动动画

经典摆动动画

  • 减少红心闪烁(失去的红心不再以浅红色闪烁)

减少红心闪烁

  • 即时潜行动画

即时潜行动画

  • 经典锋利附魔伤害加成(也修复了 MC-271840)

锋利附魔攻击伤害显示修复

📦 前置要求

⌨️ 命令

使用 /combat style 命令更改战斗风格:

# 将全局战斗风格设置为经典模式
/combat style minecraft:classic

# 切换回现代(1.9+)战斗模式,带攻击冷却时间等
/combat style minecraft:modern

# 你也可以只为特定玩家更改战斗风格,例如在此例中仅为自己设置
/combat style minecraft:classic @s

设置一种风格将同时配置一组功能。 例如,minecraft:classic 风格会禁用攻击冷却时间、回退食物生命恢复机制、改变钓鱼竿行为等等。

然而,你也可以针对每个玩家单独配置每个功能:

# 仅全局禁用攻击冷却时间
/combat set attackCooldown false

# 让附魔金苹果给予生命恢复 5 和伤害吸收 1,而不是生命恢复 2 和伤害吸收 4
/combat set modernNotchApple false

# 使用 1.8 及更早版本的食物生命恢复机制
/combat set modernRegeneration false

# 与战斗风格一样,你也可以只针对特定玩家配置功能,例如仅为你自己禁用攻击冷却时间:
/combat set attackCooldown false @s

# 你可以这样获取某个功能的当前设置:
/combat get attackCooldown

# 获取特定玩家的设置
/combat get attackCooldown @s

某些功能,如 modernDamageValues,不适用于单个玩家,只能全局设置。

🔓 权限

要执行这些命令,你需要是服务器管理员(拥有 OP)或拥有相应的权限:

功能 所需权限
使用 combat 命令 combat-control.command.combat
设置战斗功能 combat-control.command.combat.set
设置单个战斗功能 combat-control.command.combat.set.<feature>
全局设置单个战斗功能 combat-control.command.combat.set.global.<feature>
获取战斗功能 combat-control.command.combat.get
获取战斗功能(全局、单个) combat-control.command.combat.get.<feature>
设置战斗风格 combat-control.command.combat.style
全局设置战斗风格 combat-control.command.combat.style.global

📂 配置文件

你可以配置 config/combat-control/config.toml 中的所有功能。 保存配置文件后,任何更改都会自动加载。 无需重启游戏或重新加载任何内容。

如果你在客户端安装了 ModMenu,也可以在那里配置所有功能。

模组设置界面

🌟 致谢

此模组深受 Fuzss 的 Golden Age Combat 启发。 有些方法直接复制自该模组并重新映射到 yarn 映射中。 此项目中原本来自 Golden Age Combat 的代码都带有注释或文档注释进行标记。 Golden Age Combat 的 MPL-2.0 许可证在此得到尊重;本项目使用相同的许可证。

此项目作为独立模组存在的原因,是为了让战斗配置能够针对每个玩家进行,同时还有其他一些调整。

此外,PING_ADJUSTED 击退变体在功能上深受 CASELOAD7000 为 Bukkit、Folia 和 Fabric 开发的出色的 knockback-sync 插件的启发。 它根据玩家的网络延迟计算玩家的击退效果。 重力模拟的数值取自 Minecraft 移动代码以及 OrHy3 的 Minecraft Movement Tools。

我实现不同击退变体的动力来自 Intel Edits 的这个视频。

感谢 b0ps_ 创作了模组图标!

🚧 面向开发者的 API

Combat-control 为开发者提供了一个 API,允许更改每个玩家的战斗风格和功能。 该 API 提供了对每个玩家的每个战斗控制功能的细粒度控制。

该 API 在 GitHub 上有详细文档。