我的世界1.8指令CommandStats操作攻略

我的世界1.8指令CommandStats操作攻略

手游攻略 2015-04-08 16:30:40

我的世界1.8指令CommandStats操作攻略

分类: 手游攻略时间: 2015-04-08

今天为大家带来了我的世界1.8指令CommandStats,这个指令总共有四个功能,分别是:Block,Item,Entity和Success。

Blocks - 控制方块。指令方块放置了几个方块,那就会把积分变到几分。比如:如果是/setblock,那就是1,因为/setblock只能放一个方块。如果是/fill,那就可以很多了,看玩家/fill多少个方块,然后就显示多少。

Items - 控制物品。用这个可以探测玩家身上带了几个指定的物品。这个和/clear结合,把玩家的某个物品删除0个,然后Item就会显示出玩家物品的数量。

Entities - 探测生物。比如:使用/tp @e ~ ~ ~,可以把所有生物TP到他们当前的位置,然后Entity就会显示出有多少个输出,也就是多少个生物。

Success - 控制执行的次数。比如如果是Item的话,/clear之后就会探测有多少个物品,但是Success还是1,因为就执行了一次

之后来说下NBT的格式:

1 {CommandStats:{AffectedItemsName:"Items玩家",AffectedItemsObjective:"积分板变量",

2 AffectedBlocksName:"Blocks玩家", AffectedBlocksObjective:"积分板变量",

3 AffectedEntitiesName:"Entities玩家", AffectedEntitiesObjective:"积分板变量",

4 SuccessCountName:"Success玩家",SuccessCountObjective:"积分版变量"}}

大家看见。NBT的格式里面有4个刚才说的东西:Blocks,Items,Entities和Success。本人推荐把积分板变量都改成相同的变量,这样比较方便。Blocks玩家,Entities玩家什么,都是积分板里面的玩家系统。但是本人推荐使用假名。

现在来教大家如何使用这个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。一个一个的设置。最终效果就是在画面右边显示积分板。

之后来控制显示使用的指令方块。地上放一个指令方块,然后里面输入:

1  /blockdata ~ ~ ~

2  {CommandStats:{AffectedItemsName:"Items玩家",AffectedItemsObjective:"积分板变量",

3  AffectedBlocksName:"Blocks玩家", AffectedBlocksObjective:"积分板变量",

4  AffectedEntitiesName:"Entities玩家", AffectedEntitiesObjective:"积分板变量",

5  SuccessCountName:"Success玩家",SuccessCountObjective:"积分版变量"}}

大家看见,这个格式就和刚才一样。这里使用/blockdata给指令方块注入积分板的信息。这里有4个玩家:Blocks, Entities, Success和Items。这4个玩家就分别使用刚才创建的4个假名。然后积分板变量就和刚才创建的相同。

比如像我这里,就是:

1 /blockdata ~ ~ ~

2 {CommandStats:{AffectedItemsName:"Items",AffectedItemsObjective:"14w27b",

3 AffectedBlocksName:"Blocks", AffectedBlocksObjective:"14w27b",

4 AffectedEntitiesName:"Entities", AffectedEntitiesObjective:"14w27b",

5 SuccessCountName:"Success",SuccessCountObjective:"14w27b"}}

假名不同,变量一样。

之后执行就可以了。然后指令方块会自己注入所有的信息。注意:只有注入的指令方块才可以执行。所以注入完毕后别打掉指令方块,否则要重新注入。

注入完毕后清空掉指令方块里的指令,然后就可以随便的打了。比如:/fill ~ ~1 ~ ~ ~3 ~ minecraft:stone 0 replace ,那么指令方块就会把上面3格换成石头。然后看积分板,控制Blocks的假名就会实现,把0分换成3分,因为换了3个方块。然后Success处也会+1分,因为执行了一次就成功。

之后的Items就不多说了。使用/clear或者/give什么,可以增加Items假名的积分。

之后,如果要输出的话本人就不多说了,过于简单。可以用/testfor,execute或者/scoreboard players test。

最后,要清空积分板的话那就把4个假名的分数都变成0。

引用Janghr的推断: 所谓的变量名字、假名我以前捣鼓计分板时实际上是把它们作为记录体格式的变量来统计的。这里计分板我看就是个指示统计输出的作用。

按说计分板数据的输出是一个比较纠结的问题,通过命令方块本身NBT存储这些数据,最好能作为指令里的参数发挥作用,这样可以类似于编程里i++等的作用,简单循环比如造伸展造桥的效果什么的可以用较少的指令方块来完成。

相关文章