JE教程

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

Powere***Lv.1 新手上路 发表于 2024-2-24 · 最后回复 2024-5-29 IP:江苏省 7,844 3
本帖最后由 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
复制代码

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



回复 3 最早 最新 只看楼主
您需要登录后才可以回帖 登录 | 立即注册
本版积分规则