天才一秒记住【第一中文网】地址: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
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!