本帖最后由 Powered_Rail 于 2024-2-25 13:41 编辑
在日常的电子斗蛐蛐中,经常有一些生物没有血条导致观感不好,我偶然发现服务器的TPSbar便查找到boss栏的指令bossbar,因为是个指令小白老是忘相当于把本帖当个备忘录
思路就是先创建bossbar 然后生成一个生物或选择一个生物,获取生命值,然后存放到这个bossbar里,最后循环以实时更新 第一步 创建bossbar - /bossbar add id {"text":"name"}
复制代码id自己取一个,name同理
然后根据对应生物设置bossbar最大值(如凋灵300就写300) 改数字即可
随后对玩家显示 - /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 第二步 获取生物血量 因为data get似乎不能直接选择@e[type=…](至少我这是这样,难道要加上limit=1?){补充,确实是这样} 所以先给生物一个tag这样选择器就能选中它了
如果是原有的生物用- /tag @e[type=mob,limit=1] add text
复制代码 修改mob和text即可,下同(如凋灵tag为wither就是: /tag @e[type=minecraft:wither,limit=1] add wither)
如果生成可以用- /summon mob ~ ~ ~ {Tags:["text"]}
复制代码
然后获取血量- /data get entity @e[tag=text] Health
复制代码 这时把data指令放到循环命令方块里后应该就可以实时输出生物血量了
后来补充:经实践,@e[type=...,limit=1]可行 故可以直接如下: - /data get entity @e[type=mob,limit=1] Health
复制代码
缺点在于只会选取最近类型的该生物,bossbar可能会被篡位。比如你选择最近一个僵尸,僵尸走远了又刷新一个,这时候就显示新僵尸的血量了 第三步 实时更新血量到bossbar 前两部我们完成了bossbar的创建及血量获取,现在只需要把在生物血量变化时更新bossbar,为了同时运行这两个指令我们可以使用execute…run…,前半部分将data get获取的生命值储存到bossbar里更新bossbar,后半部分就是data get health
整合后如下: - /execute store result bossbar minecraft:id value run data get entity @e[tag=text] Health
复制代码
扔到循环命令方块后就可以使用啦!
|