Powered_Rail 发表于 2024-2-24 00:14:06

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

本帖最后由 Powered_Rail 于 2024-2-25 13:41 编辑

       在日常的电子斗蛐蛐中,经常有一些生物没有血条导致观感不好,我偶然发现服务器的TPSbar便查找到boss栏的指令bossbar,因为是个指令小白老是忘相当于把本帖当个备忘录
      思路就是先创建bossbar 然后生成一个生物或选择一个生物,获取生命值,然后存放到这个bossbar里,最后循环以实时更新
static/image/hrline/line2.png

第一步 创建bossbar /bossbar add id {"text":"name"} id自己取一个,name同理
然后根据对应生物设置bossbar最大值(如凋灵300就写300) /bossbar set id max 0 改数字即可
随后对玩家显示 /bossbar set id players @a
补充,如果想要不同样式的bossbar可以这样调整:⑴分段: /bossbar set id style notched_6 改数字即可
⑵颜色:/bossbar set id color white 仅支持白蓝绿粉紫红黄
⑶显示与否:/bossbar set id visible true true显示,false隐藏
⑷修改名称:同创建指令,只需修改name
static/image/hrline/4.gif

第二步 获取生物血量因为data get似乎不能直接选择@e(至少我这是这样,难道要加上limit=1?){补充,确实是这样}所以先给生物一个tag这样选择器就能选中它了
如果是原有的生物用 /tag @e add text 修改mob和text即可,下同(如凋灵tag为wither就是:/tag @e add wither)
如果生成可以用/summon mob ~ ~ ~ {Tags:["text"]}
然后获取血量/data get entity @e Health 这时把data指令放到循环命令方块里后应该就可以实时输出生物血量了
后来补充:经实践,@e可行故可以直接如下:/data get entity @e Health
缺点在于只会选取最近类型的该生物,bossbar可能会被篡位。比如你选择最近一个僵尸,僵尸走远了又刷新一个,这时候就显示新僵尸的血量了
static/image/hrline/line4.png

第三步 实时更新血量到bossbar前两部我们完成了bossbar的创建及血量获取,现在只需要把在生物血量变化时更新bossbar,为了同时运行这两个指令我们可以使用execute…run…,前半部分将data get获取的生命值储存到bossbar里更新bossbar,后半部分就是data get health
整合后如下: /execute store result bossbar minecraft:id value run data get entity @e Health
扔到循环命令方块后就可以使用啦!


Powered_Rail 发表于 2024-3-7 21:39:22

再来波拓展,如果想要在生物在时显示bossbar并且死亡时隐藏bossbar,可以参考如下代码(应该有更简单的)

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

1.跟踪生物血量,如果大于0显示,如果等于0隐藏
显示:/execute as @e unless entity @s run bossbar set id visible true
隐藏(但是实测用不了):/execute as @e if entity @s run bossbar set id visible false

2.检测周围是否有该实体:
显示:/execute if entity @e run bossbar set id visible true
隐藏:/execute unless entity @e run bossbar set id visible false

已注销_w2BS4P 发表于 2024-5-29 21:25:51

gbbybbbgbubibg g
页: [1]
查看完整版本: 「指令」[1.13.2+]如何使用Bossbar实时显示生物血量