记分板(scoreboard)可以对某个实体或者虚拟信息进行分数运算,说明它可以实现数学里的“逻辑编辑”。接下来我会讲讲它的组合部分。
1)计时
scoreboard可以给某个分钟进行四则运算,如果用于计时,只要设置好重复命令方块延迟就好
例:给“时间”的m记分板每秒加1
/scoreboard players add 时间 m 1(复)
2)计算总和
运用scoreboard里的+=可以很好的运算,还可以使用另一项记分板作为“跳板”实时计算
例:实时显示所有实体数量与k记分板
1./scoreboard players set @e m 1(复)
2./scoreboard players set m m 0(链有)
3./scoreboard players operation m m += @e m(链有)
4./scoreboard players operation 实体数量 k = m m(链有)
将所有实体分数记为1,将m的m积分设为0,将所有实体的积分加在m的m积分上,最后让m的m积分等于“实体数量”的k记分板上。
3)选出与指定积分相同的实体
指定积分为x(不定值),用探测x积分的指令过于繁琐,但只需要将实体的自身积分与指定值相减,等于零的实体即选中实体。
例:将所有m记分板上为x的玩家带上标签“true”
1./scoreboard players set m m x(x为整数)(脉)
2./execute @a ~ ~ ~ scoreboard players operation @s m -= m m(链有)
3./execute @a[scores={m=0}] ~ ~ ~ tag @s add true(链有)
4./execute @a ~ ~ ~ scoreboard players operation @s m += m m(链有)
设置m积分项的m积分为x,将所有玩家的m积分与x相减,给积分等于零的玩家tag,给所有玩家积分加x。
至此,三种最基础的组合已经讲完。别看它们简单,实际上制作地图还是很实用的。计时,在线人数,积分组队,死亡榜都可以由它们实现!很多的组合也可以在这基础上扩展开,这就取决于你的“脑洞”了。
如果上面这些你都明白了,你可以尝试去设计出“玩家死亡榜”的计算组合。(提示:可以用@a和@e[TYPE=PLAYERS]区分开)