>——如果分数x大于分数y,则为真
>=——如果分数x大于等于分数y,则为真
=——如果分数x等于分数y,则为真
<=——如果分数x小于等于分数y,则为真
<——如果分数x小于分数y,则为真
举个例子:
/scoreboard objectives add death deathCount “死亡榜“
/scoreboard objectives add duibi dummy “分数对比专用“
/scoreboard players set many_dead_times duibi 50
/execute as @a if score @s death >= many_dead_times duibi run tellraw @s [{“text“:“兄弟,你已经死了“},{“score“:{“name“:“@s“,“objective“:“death“},“color“:“red“},{“text“:“次了!“,“color“:“reset“}]
前面的三条指令就不多讲了,你应该知道是干什么的。最后一条execute指令,将会让所有玩家分别作为执行者,如果其死亡次数(death计分项中的分数)大于等于50(也就是many_dead_times这个假玩家在duibi计分项中的值),玩家自己就会收到一条消息:
兄弟,你已经死了x次了!
其中,x指的是这名玩家在计分板death上的分数,也就是他死亡的次数。
除去这个tellraw内的JSON文本有一部分我们没学过以外,其他部分还是很容易理解的。
至于matches模式的比较就更简单了,这就是原本players test子命令的功能。其中的『范围』也就是采用和目标选择器一样的『两点法』。举个例子:
/execute as @a if score @s death matches 50.. run 同上
这是上面例子的简化版,功能还是一样的。
值得注意的是,在基岩版中,『两点法』可以使用!来反选。比如:
/execute if score @s death matches !10..15
这将会测试执行者自己在death计分板上的分数,如果分数不在10~15(含)的范围内就会测试通过。同样的,基岩版在其他能用到这种『两点法』的地方基本上也能够用『!』来反选,比如目标选择器。
最后,我们来看看前一章节就已经碰到过的predicate子命令:
... if|unless predicate <谓词条件ID>...
什么是谓词?我在上一章已经解释过了:
『在我们讲数据包之前(也有可能永远不会讲到),你可以将这东西当作是一个打包好的『判断函数』,在这个『判断函数』里面写了一些东西,可以判断当前游戏的情况是否符合指定的条件,如果符合则通过判断,如果不符合则不通过判断。比如里面写了一个『当前游戏正在下雨』的条件,当这个条件被调用时就会看看现在游戏是否在下雨,如果下雨就会通过判断,你的指令也就能够运行,反之就不会运行。』
举个简单的例子,假设有一位大佬做了一个数据包,其命名空间为『the_dark_forest』,里面有一个叫做『isRaining.json』的谓词条件。这个条件会判断当前世界是否在下雨,如果下的是普通的雨,就随机50%的几率使条件成立,如果下的是暴雨,这个几率会提升到80%。
我们可以通过如下命令来调用这个谓词条件:
/execute ... if predicate the_dark_forest:isRaining ...
如果你调用这个谓词条件时,游戏里正在下普通的雨,那么你的指令就有50%的几率能够运行。如果下的是雷暴雨,那么就有80%的几率会运行。如果是晴天,那么不可能会运行。
当然,你也可以将if改为unless来反转条件:
/execute ... unless predicate the_dark_forest:isRaining ...
这条指令和上面指令的运行条件完全是反着来的:如果是晴天,那么必定会运行;如果是普通的雨天,有50%的几率会运行;如果是雷暴雨,只剩下20%的几率会运行。
现在你懂了吧?让我们来做几道题目,巩固一下知识。
第一题:请写出下列execute指令成功运行的条件
这章没有结束,请点击下一页继续阅读!
喜欢Minecraft指令手册请大家收藏:(m.2yq.org)Minecraft指令手册爱言情更新速度全网最快。