首先,我们需要用↓这条↓指令创建一个计分板,用于计算在线时间的。
翻译过来的意思就是:
其中显示名字可以不输入。目前基岩版只有dummy计分板类型。java版则有像Health这样的类型,可以自动获得玩家血量然后赋值给计分板。
我们这样输入,也就是创建一个名字叫"time"显示名字是“在线时间”的计分板。
然后,/give @s command_block 获得命令方块,接着把它放到地上并对其右键打开它的界面。其中命令输入框跟我们在聊天框输入的指令是一样的。
点击方块类型,改变成循环。再点击红石,改变成保持开启,并且在命令输入框输入指令,退出就可以保存设置了。
这儿输入的指令是:
这个指令的格式为:
翻译过来的意思为:
我们需要给玩家增加在线时间,所以应该这样输入:/scoreboard players add @a time 1
意思是给所有人time计分板项目增加1分。由于这条指令是在保持开启的循环命令方块里面的,所以这个命令方块会不断地执行这条指令,也就是说不断地给玩家time的分数增加1分。循环命令方块每秒会执行20次指令,所以每过1秒所有人会多出20分。这儿的分数也就是时间。
那么如何显示实现奖励呢,我们需要达到一定时间的人给予奖励,然后减去时间。奖励可以是物品也可以是金币。本教程将介绍物品。
放一个命令方块,按照上面操作设置成一个保持开启的循环命令方块,然后输入指令:
给time计分板项目分数大于且等于1200分的玩家一个钻石。这儿目标选择器是一个条件,达不到条件则不执行。1200=20*60,相当于1分钟。
接着如图所示,放在刚刚命令方块的上面,稍后打开界面设置:
把它改成连锁命令方块,然后设置成有条件的,保持开启的,输入指令。连锁命令方块好处是可以按顺序执行指令不会乱。
这儿连锁命令方块输入的指令是:scoreboard players remove @a[scores={time=1200..}] time 1200
意思是给time计分板项目分数大于且等于1200的玩家移除1200分。连锁型命令方块设置成有条件的是可以根据上一个对着它的命令方块(看材质箭头)是否执行了指令作为条件去执行指令。
补充一点,如何显示在线的时间,输入这条指令:/scoreboard objectives setdisplay sidebar time