身体健康

身体健康

身体每一处的生命力。

游戏机制

🫀 身体健康系统

NeoForge 1.21.1 · v12.3.4

厌倦了单一的血条?身体健康系统 将 Minecraft 原版的生命值替换为一个完整的局部受伤系统——你身体的每一部分都可以独立地受伤、骨折或被摧毁。


⚙️ 工作原理

每次攻击都会根据撞击高度和轨迹瞄准一个特定的身体部位。射中头部的箭矢会造成 1.5 倍伤害,并扣除头部生命值——而不是共享的生命池。每个部位都有自己的生命值、骨折状态和后果。

数据 数值
身体部位 6
骨折状态 4
医疗物品 3
版本 12.0.3

🦴 骨折系统

部位会经过四个状态:

健康 → 扭伤 → 骨折 → 粉碎

每个状态都会带来真实的后果。断腿会减慢你的速度,粉碎的躯干会立即致命。骨折会随着时间的推移自然愈合,或者使用正确的物品会愈合得更快。


⚡ 各部位后果

部位 受伤时的效果
头部 nausea(视觉障碍)
躯干 生命值为 0 时死亡
右臂 无法破坏或放置方块
左臂 被摧毁时掉落副手物品
腿部 缓慢——随着骨折程度加剧而恶化

所有减益效果都是无声的——没有可见的效果图标,只有动作栏消息,因此你的 HUD 保持整洁。


💊 医疗物品

🩹 绷带

合成: 白色羊毛 + 线(×4)

治疗受伤最严重的部位,并将其骨折状态改善一级。适用于扭伤和骨折——不适用于粉碎。

🏥 医疗包

合成: 绷带 + 箱子 + 金锭

治疗所有部位,甚至可以修复粉碎的骨头。是从被摧毁的肢体中恢复的唯一方法。

💉 吗啡注射器

合成: 玻璃 + 烈焰粉 + 铁锭(×2)

抑制所有疼痛效果 30 秒。谨慎使用——3 剂后触发过量使用,会导致失明、 nausea 和中毒。


❤️ 吸收生命值

金苹果和附魔金苹果会在受伤最严重的部位上给予黄色吸收生命值。不死图腾被激活时,会在躯干上给予 2 点额外的生命值。当该部位受到伤害时,吸收生命值会在生命值之前被消耗。


🛡️ 附魔支持

由于原版生命条被隐藏,生命值被单独管理,所有保护附魔都按每次攻击手动应用:

  • 保护 — 每级减少 4%(所有伤害)
  • 火焰保护 — 每级减少 8%(火焰/熔岩)
  • 爆炸保护 — 每级减少 8%(爆炸)
  • 弹射物保护 — 每级减少 8%(箭矢)
  • 摔落保护 — 每级减少 12%(仅作用于腿部)
  • 缓降(药水)— 取消腿部的所有摔落伤害
  • 抗性提升(药水)— 每级 20%,5 级 = 免疫

🖥️ HUD

位于右下角的自定义像素艺术面板会显示:

  • 由 6 个独立精灵图组装而成的角色,每个精灵图独立着色:
    • 🟢 绿色 = 健康(>65%)
    • 🟠 橙色 = 受伤(35–65%)
    • 🔴 红色 = 危急(1–34%)
    • ⚫ 黑色 = 被摧毁(0%)
  • 每个部位标签旁边的生命值
  • 在适用的情况下,生命值旁边的骨折图标
  • 红色生命值之后显示的额外黄色吸收生命值

🧰 管理员命令

/bodyhealth heal <玩家> [部位]      — 治疗一个或所有部位
/bodyhealth set <玩家> <部位> <生命值>  — 直接设置生命值
/bodyhealth setmax <玩家> <部位> <生命值> — 设置最大生命值
/bodyhealth addhearts <玩家> <数量>    — 在所有部位增加 n 颗心
/bodyhealth fracture <玩家> <部位> <状态> — 设置骨折状态
/bodyhealth status <玩家>           — 显示完整的健康状态
/bodyhealth reset <玩家>            — 重置为默认值

👨‍💻 开发者 API

通过 BodyHealthAPI 提供完整的 Java API:

// 读取
float hp  = BodyHealthAPI.getHealth(玩家, BodyPart.HEAD);
boolean dead = BodyHealthAPI.isDead(玩家, BodyPart.TORSO);
FractureState fr = BodyHealthAPI.getFracture(玩家, BodyPart.LEG_LEFT);

// 写入
BodyHealthAPI.heal(玩家, BodyPart.HEAD, 4f);
BodyHealthAPI.damage(玩家, BodyPart.TORSO, 2f);
BodyHealthAPI.fullHeal(玩家);
BodyHealthAPI.addMaxHealthAll(玩家, 4f); // 所有部位 +2 颗心
BodyHealthAPI.setFracture(玩家, BodyPart.ARM_RIGHT, FractureState.BROKEN);

还提供了一个 MCreator 插件,带有 13 个可视化过程块——无需 Java。


✅ 兼容性

  • 适用于任何使用标准 NeoForge 伤害事件的模组
  • 来自第三方模组的食物通过 FoodProperties 自动治疗
  • 完全支持不死图腾
  • 需要: NeoForge 21.1.172+ · Minecraft 1.21.1