请选择 进入手机版 | 继续访问电脑版
查看: 6680|回复: 24

[命令方块] NWT丨stats指令基本教程及应用举例【新手向】

[复制链接]

46

主题

554

帖子

290

积分

Lv.5 农牧专家

UID
16359
小麦
89
金锭
1686
下界之星
0
发表于 2017-6-30 10:45:33 | 显示全部楼层 |阅读模式
本帖最后由 Msure 于 2017-6-30 10:45 编辑

       stats指令是是记分板中的一环,可以根据其他命令的执行结果来更新记分板目标。具体来说,就是根据其他命令方块或者在玩家本身执行命令的结果,来改变相应记分板的分数。
       下面给出基本格式:
  1. stats block <x> <y> <z> set <统计> <选择器> <目标>
复制代码
  1. stats entity <选择器2> set <统计> <选择器> <目标>
复制代码
       此指令主要用于将统计命令执行结果的来源(实体或者命令方块)与一个记分板“绑定”。如果命令执行的来源为方块,则用第一条block模式:如果命令执行的目标为来源,则用第二条entity模式。
       x,y,z为命令统计数据的来源方块所处位置,目标为要将统计结果记录为分数的记分板名称,而<统计>有五种,必须是以下其中之
一。   
             AffectedBlocks — 返回受命令影响的方块的数量.
             AffectedEntities — 返回受命令影响的实体的数量。
             AffectedItems —返回受命令影响的物品的数量。

             QueryResult — 返回命令的查询结果。
             SuccessCount — 返回一个命令成功执行的次数

关于五种统计的详细说明,不做过多文字讲解。

注意事项:①若命令统计数据的来源是命令方块,且命令方块中为execute指令时,由于execute指令最终执行对象仍然是实体,此时虽  然此命令处在命令方块中,但是应用entity模式。
                ②在首次创建记分板并用stats指令与某来源“绑定”时,会出现记分板分数无变化的情况,需要手动将目标选择器在记分板上的分数设为0。
                ③stats entity <选择器2> set <统计> <选择器> <目标>。在这条指令中,选择器2起到类似于检测的作用,选择器二为要检测的目标,后面的选择器为记分板分数所在的实体。若选择器二为@a,选择器
为@p,则对所有玩家进行相应的统计并将每个玩家的分数分别存到对应玩家的记分板上。

——————————————————————华丽丽的分割线———————————————————————

下面来看几个stats指令的简单应用举例:

一:用stats来统计人数
在一些地图中,经常能侧边栏的人数显示;例:
QQ截图20170630091715.png

那么侧边是怎么做到显示剩余人数的呢,下面给出用stats指令的解决方案:
       首先给所有的玩家一个药效:

  1. /effect @a minecraft:saturation 40 0 true
复制代码
         此条命令放入循环命令方块执行,那么此命令给所有玩家药效,就相当于影响了所有的玩家,故选用AffectedEntities统计方式,来统计此命令影响的实体(玩家)数量,即使游戏中的人数。
       创建记分板:
  1. /scoreboard objectives add tj dummy 统计
复制代码
          另外为了最后的显示美观,创建显示专用记分板:
  1. /scoreboard objectives add xs dummy 显示
复制代码
          召唤一个名rs的盔甲架用来存分数:
  1. /summon Armor_Stand ~ ~ ~ {CustomName:"rs",CustomNameVisible:1b,NoGravity:0,Invisible:1}
复制代码
           手动将rs在tj上的分数设定0来“激活”
  1. /scoreboard players set @e[type=armor_stand,name=rs] tj 0
复制代码
          将effect命令执行结果绑定到tj记分板上,且将分数存到盔甲架上:
  1. /stats block x y z set AffectedEntities @e[type=armor_stand,name=rs] tj
复制代码
             x y z 为执行effect指令的命令方块坐标。
     
      
           最后将盔甲架在tj记分板上的分数同步到xs记分板上,避免显示uuid影响美观
  1. /scoreboard players operation 人数 xs = @e[type=armor_stand,name=rs] tj
复制代码
             在侧边栏显示xs记分板:
  1. /scoreboard objectives setdisplay sidebar xs
复制代码
          这样一来,一个侧边栏显示实时人数就做好了 O(∩_∩)O

二:用stats来统计某区域内某种方块的数量
           统计方块数量用处并不多,方法上这种比较简单
           仍然先创建tj和xs两个记分板,见第一条举例。
           既然要统计方块的数量,那么<统计>一定是选择命令影响的方块数量
AffectedBlocks。在Minecraft中能够影响指定种类方块的指令非fill莫属。   
          首先选定要统计的区域
QQ截图20170630094924.png

           (为了看起来方便我用石头圈起来了)
           假定我要统计钻石块的数量,接下来用fill指令把这个区域内的钻石块全部替换掉
  1. /fill ~ ~ ~ ~10 ~6 ~10 air 0 replace diamond_block
复制代码
              则执行此指令之后,fill掉的钻石块数量即为此命令影响的方块数量
           
           仍然召唤一个盔甲架用来存分数:
  1. /summon Armor_Stand ~ ~ ~ {CustomName:"fks",CustomNameVisible:1b,NoGravity:0,Invisible:1}
复制代码
              手动将fks在tj上的分数设定为0来“激活”
  1. /scoreboard players set @e[name=fks,type=armor_stand] tj 0
复制代码
               将fill命令执行的结果绑定到tj计分板上,并存到名为fkl的盔甲架上
  1. /stats block x y z set AffectedBlocks @e[name=fks,type=armor_stand] tj
复制代码
               xyz为fill命令方块所在的坐标

            将fks在tj上的分数同步到xs记分板上,循环执行
  1. /scoreboard players operation 方块数 xs = @e[type=armor_stand,name=fks] tj
复制代码
           这样就大功告成了,让我们放几个钻石块试一下:
QQ截图20170630101329.png
                             之后激活fill的命令方块
QQ截图20170630101357.png
                            可以看到侧边栏方块数变为了5




评分

参与人数 9 小麦 +7 金锭 +14 收起 理由
小红娘QwQ + 1 + 5 好东西啊
Entity404 + 1 懂了。
土豆配咸鱼 + 2 已收藏
Netro777 + 1 + 2 优秀作品,虽然还是看不懂
潮潮 + 1 优秀作品
会飞的面包 + 3 优秀作品
what_name + 1 感谢分享
天照 + 1 因吹丝汀
MCSugar_cane + 1 + 2 感谢分享

查看全部评分

1367

主题

2万

帖子

8608

积分

玩家版主

Lv.9 终界行者

UID
444
小麦
1398
金锭
15774
下界之星
2

二周年纪念勋章一周年纪念勋章开发者认证勋章秋天的童话设计师内测精英勋章玩家团队勋章百万勋章问答斯基的方向盘

发表于 2017-6-30 12:02:47 | 显示全部楼层
最近命令大佬成堆出现啊。。。。

113

主题

1万

帖子

6757

积分

玩家版主

沉迷我的手艺.jpg

UID
514
小麦
1982
金锭
18945
下界之星
0

二周年纪念勋章一周年纪念勋章内测精英勋章问答斯基的方向盘

发表于 2017-6-30 12:19:19 | 显示全部楼层
又一位命令大佬出现了,现在有四个还是五个了,虽然看不懂不过还是支持~

点评

不知。。。  发表于 2018-4-29 10:55
甘蔗,奶糖,萌新,还有谁来着  发表于 2018-4-29 08:18
随处可见~

125

主题

7568

帖子

3077

积分

玩家版主

虽然图片里雾周只有三条尾巴,但雾周真的是九尾狐哦~

UID
8616
小麦
1052
金锭
1555
下界之星
0

二周年纪念勋章一周年纪念勋章内测精英勋章

发表于 2017-6-30 17:02:21 | 显示全部楼层
技巧版已经被命令大神占领了
点点雾周的小图片看看发生什么~啦啦啦~拉拉~

25

主题

3439

帖子

1564

积分

Lv.7 下界居民

UID
3326
小麦
675
金锭
4536
下界之星
0

内测精英勋章

发表于 2017-6-30 17:49:05 | 显示全部楼层
技巧教程区是不是该改名叫做命令教程区了

0

主题

78

帖子

23

积分

Lv.2 石器学徒

UID
16552
小麦
0
金锭
149
下界之星
0
发表于 2017-6-30 22:42:57 | 显示全部楼层
大神

119

主题

8236

帖子

2646

积分

玩家版主

您好,这里是渣Z,有什么需要帮助的吗?

UID
1030
小麦
458
金锭
5318
下界之星
0

二周年纪念勋章内测精英勋章

发表于 2017-7-1 09:20:27 | 显示全部楼层
腻害了我的论友!233,我只能这样说

0

主题

4

帖子

1

积分

Lv.1 新手木匠

UID
12938
小麦
0
金锭
19
下界之星
0
发表于 2017-7-1 09:43:25 | 显示全部楼层
又是一个大佬!

0

主题

1

帖子

0

积分

Lv.1 新手木匠

UID
238707
小麦
0
金锭
1
下界之星
0
发表于 2017-8-20 23:50:20 | 显示全部楼层
emmm,stats我用的很烂呢23333333

0

主题

1

帖子

0

积分

Lv.1 新手木匠

UID
241329
小麦
0
金锭
2
下界之星
0
发表于 2017-8-21 17:29:39 | 显示全部楼层
................................................................................................................................................................................................................................................................................................................................................................................................................................................

15

主题

186

帖子

95

积分

Lv.3 矿物能手

UID
118065
小麦
32
金锭
371
下界之星
0
发表于 2017-8-22 18:54:19 | 显示全部楼层
很厉害,很厉害,我也不会用stats指令,而且看了之后还是不懂
666

13

主题

99

帖子

41

积分

Lv.2 石器学徒

UID
161632
小麦
2
金锭
232
下界之星
0
发表于 2017-11-1 11:20:24 来自手机 | 显示全部楼层
第2次看stats才会....

33

主题

190

帖子

82

积分

Lv.3 矿物能手

UID
193829
小麦
1
金锭
323
下界之星
0
发表于 2017-12-9 16:42:21 来自手机 | 显示全部楼层
这个...确认是新手向?....

2

主题

111

帖子

21

积分

Lv.2 石器学徒

UID
895288
小麦
-9
金锭
58
下界之星
0
发表于 2017-12-18 20:28:08 | 显示全部楼层
计分板是什么?什么是什么?什么是什么?我这个新手表示懵逼

14

主题

801

帖子

257

积分

Lv.5 农牧专家

UID
4921490
小麦
39
金锭
872
下界之星
0
发表于 2018-4-10 11:13:07 | 显示全部楼层
雾周 发表于 2017-6-30 17:02
技巧版已经被命令大神占领了

哇九尾狐!!!

点评

害羞,喜欢可以点击一下233  发表于 2018-4-10 13:22
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部