Mobs Use Shields

Mobs Use Shields

让怪物使用盾牌来格挡攻击

生物使用盾牌 (Mobs Use Shields)

此模组允许特定生物在战斗中主动使用盾牌,而不仅仅是将其作为装备持有。

当兼容的生物在副手装备盾牌时,它会获得一种 AI 行为,使其能够举起盾牌格挡来袭攻击,在恢复正常战斗前形成短暂的防御窗口。

设计目标是让盾牌使用感觉像是原版战斗的自然延伸,在不将生物变成永久格挡者的情况下增加防御时刻。


特性

  • 生物可以举起盾牌来格挡攻击
  • 格挡有可配置的持续时间和冷却时间
  • 生物在格挡时面向其目标
  • 盾牌格挡会播放正确的盾牌音效
  • 被格挡攻击造成的击退效果减少
  • 人形生物会显示正确的格挡动画
  • 生物可以预判某些威胁并提前举起盾牌
  • 斧头可以击破生物的盾牌,类似于玩家之间的盾牌互动
  • 默认情况下,只有尸壳、僵尸、卫道士和凋灵骷髅有几率携带盾牌生成
  • 用户可以自定义哪些生物可能携带盾牌生成
  • 用户可以通过数据驱动的配置调整每个生物的盾牌行为

常规配置

可以配置若干全局行为:

  • <code>mobConsumeShieldDurability</code> 生物在格挡时是否消耗盾牌耐久度。

  • <code>mobAlwaysAnticipate</code> 强制生物始终使用预判逻辑。如果设置为 false,则预判逻辑仅在局部难度 × 近期生命值损失超过随机阈值时激活。


实体标签配置

您可以将不希望被此模组影响的实体类型添加到 mobsuseshields:disable_shield 标签中。这将禁用该模组对这些实体的盾牌行为注入。

这对于防止与已有自身盾牌使用目标的生物(例如警卫村民)产生 AI 冲突非常有用。

数据包配置

此模组通过 JSON 文件支持数据驱动的生物盾牌配置。

示例:https://www.curseforge.com/minecraft/data-packs/mobs-use-shield-expansion

您可以定义:

  • 生物是否可能携带盾牌生成
  • 携带盾牌生成的几率
  • 所需的最低局部难度
  • 使用哪种盾牌物品
  • 持续格挡的时间
  • 盾牌冷却时间持续多久
  • 检查是否应继续格挡的频率

文件夹结构

将您的 JSON 文件放置在:

data/<命名空间>/mob_shield/<路径>.json

示例:

data/minecraft/mob_shield/zombie.json
data/minecraft/mob_shield/piglin.json
data/yourmod/mob_shield/custom_mob.json

这些文件通过路径解析为实体类型风格的 ID。例如:

data/minecraft/mob_shield/zombie.json   -&gt; minecraft:zombie
data/yourmod/mob_shield/foo/bar.json    -&gt; yourmod:foo/bar

实际上,这意味着文件路径应与您要配置的生物 ID 匹配。

JSON 示例

{
  "use_duration": 60,
  "cooldown_duration": 60,
  "check_continue_to_use_interval": 30,
  "shield_id": "minecraft:shield",
  "shield_stack": "{id:\"minecraft:shield\",count:1}",
  "chance": 0.15,
  "min_difficulty": 2.25
}

字段说明

  • use_duration 生物持续主动使用盾牌的时间。

  • cooldown_duration 生物在再次使用盾牌前需要等待的时间。

  • check_continue_to_use_interval 生物检查是否应继续格挡的频率。

  • shield_id 当生物携带盾牌生成时要装备的盾牌物品 ID。如果未提供 shield_stack、提供无效或导致空物品堆叠,则模组使用此物品 ID 作为备用盾牌物品。如果该物品缺失或无效,模组将回退到 minecraft:shield。

  • shield_stack 可选的完整 ItemStack SNBT 字符串,用于定义生物装备的确切盾牌堆叠。这允许自定义 NBT/组件数据,例如旗帜图案、名称、损坏值或当前 Minecraft 版本支持的其他物品数据。如果此字段存在且能解析为非空 ItemStack,则优先于 shield_id。

  • chance 该生物在副手获得盾牌的生成几率。

  • min_difficulty 生物可能携带盾牌生成前所需的最低局部难度。

关于局部难度的说明

min_difficulty 使用 Minecraft 的有效局部难度,而不仅仅是所选的全局难度设置。

供参考:

  • 和平模式下的原始区域难度始终为 0.0,简单模式下范围为 0.75 至 1.5,普通模式下为 1.5 至 4.0,困难模式下为 2.25 至 6.75。(参考:Minecraft Wiki)
  • 较低的值允许盾牌更早或在更简单的条件下生成
  • 较高的值使携带盾牌的生成更稀有,对游戏进度更敏感

兼容性

原版盾牌互动保持不变。

  • 例如,疣猪兽和劫掠兽仍然使用其原版机制与盾牌互动。

Fresh Animations / EMF

  • 使用 Fresh Animations 可以显示正确的格挡姿势。
  • 此模组在使用盾牌时会覆盖 EMF 渲染管线中的实体手臂姿势。

Spartan Weaponry

  • 具有 Shield Breach 特性的武器可以使生物的盾牌失效,类似于原版斧头。

备注

盾牌行为围绕原版风格战斗流程设计,以僵尸作为时间和节奏的主要参考。

由于不同生物使用不同的原版 AI 结构,行为上的一些差异是预期的。兼容性改进和边缘情况修复可能会随时间继续添加。

如果您遇到生物盾牌行为异常损坏或不一致的情况,请随时报告。


支持

如果您想支持我的模组开发工作,包括维护、更新和兼容性工作,可以在 Patreon 上支持我:https://patreon.com/vomiter_scp