查看: 250|回复: 2

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

[复制链接]
查看: 250|回复: 2

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

[复制链接]
查看: 250|回复: 2

38

主题

181

回帖

480

积分

中级会员

积分
480
乐桃兔酪乳

38

主题

181

回帖

480

积分

中级会员

积分
480
2024-2-24 00:14:06 | 显示全部楼层 |阅读模式 IP:浙江嘉兴 来自 浙江嘉兴


       在日常的电子斗蛐蛐中,经常有一些生物没有血条导致观感不好,我偶然发现服务器的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

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



来源:https://klpbbs.com/thread-131091-1-1.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

34

主题

179

回帖

470

积分

中级会员

积分
470
暗月寺代柔

34

主题

179

回帖

470

积分

中级会员

积分
470
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
回复 支持 反对

使用道具 举报

31

主题

151

回帖

399

积分

中级会员

积分
399
娅静小仙女

31

主题

151

回帖

399

积分

中级会员

积分
399
2024-5-29 21:25:51 | 显示全部楼层 IP:浙江嘉兴 来自 浙江嘉兴
gbbybbbgbubibg g
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|MCBBBS我爱你 | 萌ICP备20249110号

GMT+8, 2025-4-14 14:17 , Processed in 0.175812 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.