/blockdata ~ ~ ~
{CommandStats:{AffectedItemsName:"Items玩家",AffectedItemsObjective:"积分板变量",
AffectedBlocksName:"Blocks玩家", AffectedBlocksObjective:"积分板变量",
AffectedEntitiesName:"Entities玩家", AffectedEntitiesObjective:"积分板变量",
SuccessCountName:"Success玩家",SuccessCountObjective:"积分版变量"}}
大家看见,这个格式就和刚才一样。这里使用/blockdata给指令方块注入积分板的信息。这里有4个玩家:Blocks, Entities, Success和Items。这4个玩家就分别使用刚才创建的4个假名。然后积分板变量就和刚才创建的相同。
比如像我这里,就是:
/blockdata ~ ~ ~
{CommandStats:{AffectedItemsName:"Items",AffectedItemsObjective:"14w27b",
AffectedBlocksName:"Blocks", AffectedBlocksObjective:"14w27b",
AffectedEntitiesName:"Entities", AffectedEntitiesObjective:"14w27b",
SuccessCountName:"Success",SuccessCountObjective:"14w27b"}}
假名不同,变量一样。
(当然,/setblock也可以使用。)
之后执行就可以了。然后指令方块会自己注入所有的信息。注意:只有注入的指令方块才可以执行。所以注入完毕后别打掉指令方块,否则要重新注入。
注入完毕后清空掉指令方块里的指令,然后就可以随便的打了。比如:/fill ~ ~1 ~ ~ ~3 ~ minecraft:stone 0 replace ,那么指令方块就会把上面3格换成石头。然后看积分板,控制Blocks的假名就会实现,把0分换成3分,因为换了3个方块。然后Success处也会+1分,因为执行了一次就成功。
截图:
之后,控制Entities,Items都一样。Entities的话,那么就可以使用 /tp @e ~ ~ ~ ,把所有的生物移到他们当前位置(也就是没有移动),然后Entities就会显示所有移动的生物数量:
之后的Items就不多说了。使用/clear或者/give什么,可以增加Items假名的积分。
之后,如果要输出的话本人就不多说了,过于简单。可以用/testfor,execute或者/scoreboard players test。
最后,要清空积分板的话那就把4个假名的分数都变成0。
之后,教大家使用/stats。这个/stats,也是新出的指令,配合{CommandStats}。首先,指令格式是:
/stats<对象> <格式><积分板假名> <积分板变量>
这个是使用在生物上面的。之后,还有一个使用在指令方块上面的:
/stats block <指令方块XYZ> <格式><积分板假名> <积分板变量>
这些指令我就不多说了,和上面的一样。主要是把NBT换成了指令而已。
最后推断:
所谓的变量名字、假名我以前捣鼓计分板时实际上是把它们作为记录体格式的变量来统计的。这里计分板我看就是个指示统计输出的作用。
按说计分板数据的输出是一个比较纠结的问题,通过命令方块本身NBT存储这些数据,最好能作为指令里的参数发挥作用,这样可以类似于编程里i++等的作用,简单循环比如造伸展造桥的效果什么的可以用较少的指令方块来完成。