开启辅助访问      

站内搜索

搜索
热搜: 下载 1.19 1.20

Minecraft(我的世界)苦力怕论坛

[JE教程] 「指令」[1.13.2+]如何使用Bossbar实时显示生物血量

发表于 2024-2-24 00:14:06 | 显示全部楼层 |阅读模式 IP:江苏省
本帖最后由 Powered_Rail 于 2024-2-25 13:41 编辑

       在日常的电子斗蛐蛐中,经常有一些生物没有血条导致观感不好,我偶然发现服务器的TPSbar便查找到boss栏的指令bossbar,因为是个指令小白老是忘相当于把本帖当个备忘录

        思路就是先创建bossbar 然后生成一个生物或选择一个生物,获取生命值,然后存放到这个bossbar里,最后循环以实时更新



第一步 创建bossbar
  1. /bossbar add id {"text":"name"}
复制代码
id自己取一个,name同理

然后根据对应生物设置bossbar最大值(如凋灵300就写300)
  1. /bossbar set id max 0
复制代码
改数字即可

随后对玩家显示
  1. /bossbar set id players @a
复制代码

补充,如果想要不同样式的bossbar可以这样调整:
⑴分段:
  1. /bossbar set id style notched_6
复制代码
改数字即可

⑵颜色:
  1. /bossbar set id color white
复制代码
仅支持白蓝绿粉紫红黄

⑶显示与否:
  1. /bossbar set id visible true
复制代码
true显示,false隐藏

⑷修改名称:同创建指令,只需修改name



第二步 获取生物血量
因为data get似乎不能直接选择@e[type=…](至少我这是这样,难道要加上limit=1?){补充,确实是这样}
所以先给生物一个tag这样选择器就能选中它了

如果是原有的生物用
  1. /tag @e[type=mob,limit=1] add text
复制代码
修改mob和text即可,下同(如凋灵tag为wither就是:
/tag @e[type=minecraft:wither,limit=1] add wither)

如果生成可以用
  1. /summon mob ~ ~ ~ {Tags:["text"]}
复制代码

然后获取血量
  1. /data get entity @e[tag=text] Health
复制代码
这时把data指令放到循环命令方块里后应该就可以实时输出生物血量了

后来补充:经实践,@e[type=...,limit=1]可行
故可以直接如下:
  1. /data get entity @e[type=mob,limit=1] Health
复制代码

缺点在于只会选取最近类型的该生物,bossbar可能会被篡位。比如你选择最近一个僵尸,僵尸走远了又刷新一个,这时候就显示新僵尸的血量了



第三步 实时更新血量到bossbar
前两部我们完成了bossbar的创建及血量获取,现在只需要把在生物血量变化时更新bossbar,为了同时运行这两个指令我们可以使用execute…run…,前半部分将data get获取的生命值储存到bossbar里更新bossbar,后半部分就是data get health

整合后如下:
  1. /execute store result bossbar minecraft:id value run data get entity @e[tag=text] Health
复制代码

扔到循环命令方块后就可以使用啦!



苦力怕论坛,感谢有您~
回复

使用道具 举报

 楼主| 发表于 2024-3-7 21:39:22 | 显示全部楼层 IP:江苏省
再来波拓展,如果想要在生物在时显示bossbar并且死亡时隐藏bossbar,可以参考如下代码(应该有更简单的)

两种思路(当然推荐第二种,但是第一种可以作别的用途):

1.跟踪生物血量,如果大于0显示,如果等于0隐藏
显示:
  1. /execute as @e[type=mob,limit=1] unless entity @s[nbt={Health:0.0f}] run bossbar set id visible true
复制代码

隐藏(但是实测用不了):
  1. /execute as @e[type=mob,limit=1] if entity @s[nbt={Health:0.0f}] run bossbar set id visible false
复制代码


2.检测周围是否有该实体:
显示:
  1. /execute if entity @e[type=mob] run bossbar set id visible true
复制代码

隐藏:
  1. /execute unless entity @e[type=mob] run bossbar set id visible false
复制代码
2# 2024-3-7 21:39:22 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供云服务 | GMT+8, 2024-5-3 17:16

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号