首页 男生 游戏竞技 Minecraft指令手册

第八十四章 bossbar-自定义BOSS栏 下

Minecraft指令手册 你好MC 1728 2024-07-09 15:29

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

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

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

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

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

  ②如何将服主的血量存储到BOSS栏的值中

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

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

  /scoreboard objectives add health health

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

  /scoreboard objectives setdisbr /lay sidebar health

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

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

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

  /scoreboard br /layers 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 br /layers get Fuzhu health

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

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

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

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

  ①如果服主不在线,隐藏BOSS栏,在线的情况下再显示出来。

  ②服主周围一定范围内的玩家会看到『腐竹BOSS栏』,超出这个范围的玩家则无法看到

  ③在服主自己的血量上限提升的情况下(比如有伤害吸收或生命提升的药水效果),也要相应提升BOSS栏的最大值

  其中,第三点要完美实现的话需要一定的NBT知识,如果你并不不了解,也可以用计分板做一个勉勉强强的效果出来。

  这就是本章的全部内容。

目录
设置
手机
书架
书页
评论