在14w27a中出来了一个新的dataTag:{CommandStats}。这个dataTag是控制积分板用的,适合做冒险地图什么。这个功能比较强大。目前有4个功能:Block,Item,Entity和Success。这个的用处是,可以探测玩家背包里有多少个某个物品,探测地图里有多少个生物等等。
Blocks - 控制方块
指令方块放置了几个方块,那就会把积分变到几分。比如:如果是/setblock,那就是1,因为/setblock只能放一个方块。如果是/fill,那就可以很多了,看玩家/fill多少个方块,然后就显示多少。
Items - 控制物品
用这个可以探测玩家身上带了几个指定的物品。这个和/clear结合,把玩家的某个物品删除0个,然后Item就会显示出玩家物品的数量。
Entities - 探测生物
比如:使用/tp @e ~ ~ ~,可以把所有生物TP到他们当前的位置,然后Entity就会显示出有多少个输出,也就是多少个生物。
Success - 控制执行的次数
比如如果是Item的话,/clear之后就会探测有多少个物品,但是Success还是1,因为就执行了一次。
Query - 游戏晚点再加入的,控制其他一些东西的次数
比如:/time,来告诉玩家时间是多少,或者/xp,来告诉玩家自己有多少XP等等。这个就不发教程了,详情请看Tyson的教程。
之后来说下NBT的格式。格式:
{CommandStats:{AffectedItemsName:"Items玩家",AffectedItemsObjective:"积分板变量",
AffectedBlocksName:"Blocks玩家", AffectedBlocksObjective:"积分板变量",
AffectedEntitiesName:"Entities玩家", AffectedEntitiesObjective:"积分板变量",
SuccessCountName:"Success玩家",SuccessCountObjective:"积分版变量"}}
大家看见。NBT的格式里面有4个刚才说的东西:Blocks,Items,Entities和Success。本人推荐把积分板变量都改成相同的变量,这样比较方便。Blocks玩家,Entities玩家什么,都是积分板里面的玩家系统。但是本人推荐使用假名。(官方格式来自Wiki)
之后来教大家如何使用这个NBT。首先要做很多准备工作,比如创建积分板变量,创建假名什么。
首先创建一个积分板变量。指令方块里输入:
/scoreboard objectives add (变量名字) dummy
变量名字地方随便填写。本人这里就使用“14w27b”这个名字。
之后,创建假名。这里也是和刚才一样。指令方块里分别输入:
/scoreboard players set (假名) (变量名字) 0
这里需要4个假名,因为有4个选项。所以,放置4个指令方块,然后分辨打入4个不同的假名。本人的假名就使用Blocks,Items,Entities和Success。(注意,变量名字要和刚才创建的相同)
之后,设置积分板的显示。这个很简单,使用setdisplay:
/scoreboard objectives setdisplay sidebar (变量名字)
这条指令把积分板变量显示在游戏画面右边。输入完这条指令后不会出现东西,因为还未加入积分。所以,我们要把假名的积分全部设置成0(默认)。
现在把积分板变量里的4个假名分数都变成0。指令就是:
/scoreboard players set (假名) (积分板变量) 0
有4个假名,所以就要把4假名都设置成0。一个一个的设置。
最终效果就是在画面右边显示积分板。截图:
之后来控制显示使用的指令方块。地上放一个指令方块,然后里面输入: