在我的世界1.8,不仅其他指令加强了,下面介绍的系统的加强更大,主要体现在统计数据,四则运算和指向目标方面,下面我们一一来看看。
1.统计数据
在判据中,增加了诸如stat.useItem等判据,来记录你使用,破坏,合成等物品或方块的次数.
2.四则运算
即/scoreboard operation指令
operation子指令可以对分数进行算数运算(+–* / %)和累计玩家的分数
官方示例:/scoreboard players operation #teamscores redScore += @a[team=red]blueKills将每个红队玩家的杀蓝队数加到红队的杀人数上
3.指向目标
其实这才是真正强大的地方.众所周知,1.8可以用@e来指向某一种实体,但是随之暴露出更多的问题:无法具体指出某一种实体.例如,我想要杀死地面上掉落的所有“钻石”这一实体,/kill @e[type=Item]?可是type能够指向的仅有所有掉落物.这时候,便可以使用记分板这一特殊指向!
先看这一指令:/scoreboard player set目标名字记分板分数[NBTdata]
没错!1.8允许为指定nbt标签的目标一个分数!这一目标可以使用@e来给予.
例如上面的例子,我们可以先创建一个记分板: /scoreboard objectives add ZS dummy钻石 (代表给钻石的记分板)
再用一个时钟电路,设定/scoreboard player set @e[type=Item] ZS 1 {item:{id:minecraft:diamond}}
来给所有掉落物品,且物品类别为“钻石”的实体一个1的分数(默认所有实体都是没有分数的,而不是0)
接着就很简单了,/kill @e[type=Item,score_ZS_min=1] (杀死所有ZS分数至少为1)的掉落物
使用记分板,也可以轻松地除去/testfor指令的输出,延迟和误差
但是用了记分板可以轻而易举地减少延迟和指定目标,可以说几乎没有缺点:你可以设定指定的弓放在指定的物品栏射出的箭才有这个效果!
教程:
1.先创建一个记分板"着地"来记录着地的箭/scoreboard objectives add ZD dummy 着地
2.创建一个时钟电路(越快越好),同时激活三个命令方块,但注意命令方块的顺序
第一个(离时钟电路输出最近的):scoreboard players set @e[type=Arrow] ZD 1 {inGround:1b} (将在地面上的箭ZD分数设定为1)
第二个:/execute @e[type=Arrow,score_ZD_min=1] ~ ~ ~ summon Creeper ~ ~ ~ {Fuse:0,ExplosionRadius:3,CustomName:"榴弹",ActiveEffects:[{Id:14, Amplifier:1,Duration:9999}]} 在“ZD”分数为1的箭生成一只引线为0(立即爆炸),隐身的苦力怕
第三个:kill @e[type=Arrow,score_ZD_min=1] 杀死ZD分数为1的箭
可以看出,全程无比较器输出,而且不会误判引爆空中的箭!
PS:可以在时钟电路再加个/execute @e[type=Arrow] ~ ~ ~ particle lava ~ ~ ~ 0 0 0 0.0 5 的指令来给箭带上很酷的粒子效果!