《我的世界》1.8新指令CommandStats操作流程

时间:2014/07/04 13:51:44 编辑:Ocean

我的世界》中14w27a中新的dataTag:{CommandStats}终于出来了。

目前共有:Block,Item,Entity和Success四个功能。这个dataTag的主要作用是什么呢?没错,就是控制积分板,相对而言比较适合 做冒险地图之类的。它可以探测玩家背包里有多少个某个物品,探测地图里有多少个生物等。下面一起来看看具体的操作方法吧!

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.8新指令CommandStats操作流程

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

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分,因为执行了一次就成功。

截图:

《我的世界》1.8新指令CommandStats操作流程

之后,控制Entities,Items都一样。Entities的话,那么就可以使用 /tp @e ~ ~ ~ ,把所有的生物移到他们当前位置(也就是没有移动),然后Entities就会显示所有移动的生物数量:

《我的世界》1.8新指令CommandStats操作流程

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

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

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

引用Janghr的推断: 所谓的变量名字、假名我以前捣鼓计分板时实际上是把它们作为记录体格式的变量来统计的。这里计分板我看就是个指示统计输出的作用。
    按说计分板数据的输出是一个比较纠结的问题,通过命令方块本身NBT存储这些数据,最好能作为指令里的参数发挥作用,这样可以类似于编程里i++等的作用,简单循环比如造伸展造桥的效果什么的可以用较少的指令方块来完成。

我的世界新手指南
新手入门攻略 新手常见问题 生存模式小知识 工具使用方法 村民繁殖屋
我的世界指令攻略
SEED指令大全 OP指令大全 OP刷钱攻略 方块代码大全 WE指令代码
我的世界合成攻略
另类道具合成 武器合成大全 UU物质合成 盔甲合成大全 基础物品合成
我的世界道具攻略
精品地图种子 战船 核电站 豪华木屋 活塞大炮
我的世界大神作品
千年帝都洛阳 擎天柱 企业号 中世纪城堡 冰岛上的别墅
一念天堂一念地狱
前往天堂 去往地狱
游戏聚合
9.2
  • 好玩

    32100+1
  • 不好玩

    5491+1
相关攻略
相关游戏