第一中文网

第八十四章 bbar-自定义b栏 下 (第1/2页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

(此章节已于2022年7月22日重写)

在上一个章节,我们创建了一个Id为minecraft:server_owner,叫做『腐竹』的boSS栏。这个boSS栏是粉色的,分成20段,最大值为20。虽然看起来很厉害,但有一个问题——这个boSS栏没有实际用处。

所以在这一个章节,我们要让这个boSS栏发挥出实际的用处,使得服主的血量能够实时反映到这个boSS栏上。

既然要能够实时反映,我们就要解决两个问题:

1如何实时获取到服主的血量

2如何将服主的血量存储到boSS栏的值中

首先来看第一个问题,这个问题其实很好解决,我们有两种简单的办法:1使用Nbt标签,直接获取2创建一个health准则的计分项,然后获取服主在这个计分项上的值

第一个方法我们暂且没有学过,但第二个你总该会吧?让我们来试一试:

\/scoreboard objectives add health health

这将会创建一个health准则的叫做health的计分项,然后你就不用管了,游戏会自动把每个玩家的血量存储到这个计分项上。让我们来看一看游戏弄得如何:

\/scoreboard objectives setdisplay sidebar health

这将会在右侧边栏显示出health计分项,然后你会发现——怎么空空如也?

其实游戏仅仅会在玩家血量变化的时候记录血量的值到计分板上,由于此时计分项才刚创建,还没有任何一名玩家的血量发生变化,计分项自然就空空如也。你可以尝试摔一次跤,正常情况下右边就会正确显示出你的血量。

计分项弄好后,我们就可以通过以下指令获取到服主的血量:

\/scoreboard players get Fuzhu health

(其中,Fuzhu代表服主的游戏名称)

第一个问题就这样解决了,但还有第二个问题:如何将服主的血量存储到boSS栏的值中

在这边,我们就得使用execute存储子命令的bossbar子命令,其格式如下:

... store <返回类型> bossbar <Id>(value|max)...

Id参数,也就是要存储到的boSS栏的Id;『(value|max)』参数,也就让你选择要将返回的结果存储到该boSS栏的值还是最大值中。在这边我们当然是要存储到值(value)中,也就是使用如下指令:

\/execute store result bossbar minecraft:server_owner value run scoreboard players get Fuzhu health

上面的指令将会把『scoreboard players get Fuzhu health』返回的结果,也就是服主的血量,存储到Id为『minecraft:server_owner』的boSS栏的值中,这样子boSS栏就可以显示出服主当前的血量了!

我们只需要将这条指令放入一个一直重复执行的命令方块中,就可以实现『服主的血量实时反映到这个boSS栏』这样的效果。

最后我留个作业,你感兴趣的话可以尝试实现实现。

作业内容:在本章内容的基础上,利用所学知识,实现下面描述的效果

1如果服主不在线,隐藏bo

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办