Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

!header_login!

只需一步,立刻登录

查看: 5332|回复: 26

[教程] 【CBL·K_bai】 “见光死”与”安检门”——/stats 指令教程

[复制链接]
发表于 2015-1-31 21:53:41 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 kongbaiyo 于 2015-9-6 19:22 编辑

======================前言======================


/stats这个指令 在MC的所有指令中算是比较难懂的一个了
今天我就详细解释一下/stats这条命令的 理解 用法 以及应用~
先来看看这条命令的具体应用我做了两个小例子~
见光死”与”安检门
演示看视频啦~

[bili=1944480]1[/bili]

见光死”就是让玩家僵尸一样在阳光下会掉血~
安检门”就是如果玩家身上有超过9个铁就不让通过~

======================命令作用======================

这两个小应用中的核心都是 /stats 命令先大概的解释一下这条命令~

stats这个单词直译成中文叫"统计"
而我更愿意将它意译为"创建连接"
这里的连接,指的就是一条命令的执行结果和一个计分板变量的连接
创建了这样的连接后就能将一条命令的执行结果输出到计分板里

------------------解释一小下------------------

/setblock为例


                               
登录/注册后可看大图
/fill为例

                               
登录/注册后可看大图
/testforblocks为例
这条命令就是在视频中"见光死"所用的命令
用于将玩家头顶的所有方块与一条空气柱比对

                               
登录/注册后可看大图
可见 命令执行后都会在屏幕上有一个反馈 这个反馈就是命令的执行结果
那么/stats指令的连接作用是什么意思呢? 看图!


------------------解释一小下------------------


/setblock为例

                               
登录/注册后可看大图

/fill为例

                               
登录/注册后可看大图

/testforblocks为例

                               
登录/注册后可看大图

可见 使用了/stats 后命令执行后的效果就增加了一个:
改变计分板的数值
原本应该输出在屏幕上的东西被输出到了计分板
这就是/stats命令的作用

======================格式详解======================
/stats entity <玩家名> set <模式> <玩家名2> <计分板变量名>
/stats block <x> <y> <z> set <模式> <玩家名2> <计分板变量名>

填entity还是block取决于命令是由实体执行还是由命令方块(或牌子)执行的
注:execute 执行的命令也算是实体执行的命令
以上三张图中情况玩家执行的命令所以都用entity
注:选择entity时, 有前后两个实体
前一个实体是执行命令的实体
后一个是计分板变量数值要被改变的实体这个实体可以不存在


------------------关键理解部分------------------


<模式>这个选项有如下几个选择:

  • AffectedBlocks:命令影响的方块数
  • AffectedEntities:命令影响的实体数
  • AffectedItems:命令影响的物品数
  • QueryResult:命令获取的结果 [这一条可以先无视]
  • SuccessCount:命令成功执行的次数


那么这5条如何选择呢?这取决于命令执行后, 玩家的屏幕上/命令方块的输出处显示的内容
例如setblock fill clone testforblock等等
会在执行后在屏幕上输出 被放置/克隆/比对 的方块数量
这就明显选择AffectedBlocks

give clear 会在执行后显示 给与/清除 的物品数量 这里就要选择AffectedItems

------------这里有一个特殊点------------

/testfor @e     /kill @e 等等这些指令 要想获得探测/杀死到的实体数量时,
要用SuccessCount而不用 AffectedEntities
因为这些指令执行后并不会在屏幕上输出 "探测到10个实体"  等等这些提示
取而代之的是一行行的 "找到了 XXX实体”"
一行输出, 就代表着命令被成功执行了一次
一共输出了几行就代表成功执行几次所以要使用SuccessCount

此时如果使用AffectedEntities则计分板出会一直输出1
这里需要注意, AffectedEntities这个模式目前实际上是没有什么实质作用的可以忽略

QueryResult这个模式在另一个教程里~
http://www.mcbbs.net/thread-402355-1-1.html


------------题外话------------

众所周知, 比较器接在带有testfor的命令方块边上可以输出testfor到的实体数量
实际上, 比较器正是输出了命令方块的 SuccessCount
命令成功执行几次就会有几格的输出


那么 "安检门" 的原理也就显而易见啦~
视频中也有说各位可以自己研究和探索一下~
使用/stats创建的连接是 "牢不可破" 的
一旦一个实体的变量和命令结果创建了连接使用指令就不能改变内个变量的值了
他会永远保持内个数值, 除非那个方块/实体又执行了另一条命令
那么如何解除连接?

/stats entity <玩家名> clear
/stats block <x> <y> <z> clear

轻而易举~


======================注意事项======================

  • 搞清楚stats的作用 stats命令起的是将命令执行结果重定向至计分板的作用
  • 搞清楚stats命令中的实体分别指的是什么 一个指的是执行命令的实体 另一个是存计分板变量数值的实体
  • 使用前务必在计分板激活该玩家, 这样才能正常使用具体方法就是给对应玩家计分板变量 add 0即可
  • 极度推荐看这篇教程的姊妹篇:更高级的安检门 对"/stats"的透彻理解


======================结束语
======================

Stats命令前途不可估量!!!
它是连接MC世界与计分板的桥梁  以后定有大作为
欢迎各位少年批评指正!
——来自CBL的K_bai



来自群组: Command Block Logic

评分

参与人数 10人气 +13 金粒 +110 收起 理由
TjkFred + 1 + 9 Amazing
Linyb25 + 1 I don't understand
mcsam123 + 1 凑100
langyo + 1 = =顶一下下
圆石 + 1 + 15 楼主你太帅了~
乙烯_中国 + 14 读得略费劲,但仔细咬咬还是有味道的。.
可乐的快乐 + 1 ↓就这样看着楼下秀英文↓
sylqiuyifeng + 4 + 50 gg well done
RedStoneMC + 1 successful
贰逼 + 4 + 20 nice work

查看全部评分

回复

使用道具 举报

发表于 2015-1-31 21:55:30 | 显示全部楼层
这会是一个系列吗?如果是,发表索引帖时麻烦@我,我觉得这样的教程非常好……

点评

好的0 0目前看不会有系列啦= =这教程我做了两天= = 高二党苦逼  详情 回复 发表于 2015-1-31 22:15
回复

使用道具 举报

发表于 2015-1-31 21:58:30 | 显示全部楼层
表示看不太懂。。

点评

具体是哪里不懂啊... 作用和用途内部分?  详情 回复 发表于 2015-1-31 22:14
我也看不懂,不过你终于上线了何(上一次是什么时候?  详情 回复 发表于 2015-1-31 22:09
回复

使用道具 举报

发表于 2015-1-31 22:09:47 | 显示全部楼层
额无语 发表于 2015-1-31 21:58
表示看不太懂。。

我也看不懂,不过你终于上线了何(上一次是什么时候?
回复

使用道具 举报

 楼主| 发表于 2015-1-31 22:14:24 | 显示全部楼层
额无语 发表于 2015-1-31 21:58
表示看不太懂。。

具体是哪里不懂啊...
作用和用途内部分?
回复

使用道具 举报

 楼主| 发表于 2015-1-31 22:15:16 | 显示全部楼层
250=mo 发表于 2015-1-31 21:55
这会是一个系列吗?如果是,发表索引帖时麻烦@我,我觉得这样的教程非常好…… ...

好的0 0目前看不会有系列啦= =这教程我做了两天= =
高二党苦逼
回复

使用道具 举报

发表于 2015-1-31 22:17:26 | 显示全部楼层
其實我認為用"假玩家名"會比較方便
我是說scoreboard的玩家名

点评

唔是的~假玩家名也可以~选择器也可以~ 找不到一个比较好的词来说= =  详情 回复 发表于 2015-2-1 21:23
回复

使用道具 举报

发表于 2015-1-31 23:01:52 | 显示全部楼层
貌似很有用的样子  看来我学到东西了
回复

使用道具 举报

 楼主| 发表于 2015-2-1 21:23:28 | 显示全部楼层
pca006132 发表于 2015-1-31 22:17
其實我認為用"假玩家名"會比較方便
我是說scoreboard的玩家名

唔是的~假玩家名也可以~选择器也可以~
找不到一个比较好的词来说= =
回复

使用道具 举报

发表于 2015-2-2 02:34:49 | 显示全部楼层
很易懂 虽然已经会了
回复

使用道具 举报

发表于 2015-2-2 02:35:44 | 显示全部楼层
我很好奇不试这往门里面扔 等过了探测区域再捡回来

点评

233 似乎是可以的 探测区域搞长一点就好啦233  详情 回复 发表于 2015-2-2 09:05
回复

使用道具 举报

 楼主| 发表于 2015-2-2 09:05:10 | 显示全部楼层
chyx 发表于 2015-2-2 02:35
我很好奇不试这往门里面扔 等过了探测区域再捡回来

233
似乎是可以的
探测区域搞长一点就好啦233

点评

LZ,发下视频地址,我看不到。。。  详情 回复 发表于 2015-2-2 09:16
回复

使用道具 举报

发表于 2015-2-2 09:16:14 | 显示全部楼层
kongbaiyo 发表于 2015-2-2 09:05
233
似乎是可以的
探测区域搞长一点就好啦233

LZ,发下视频地址,我看不到。。。

点评

http://www.bilibili.com/video/av1944480/ 最近B站有点卡 对那是没办法啦233 以后可以考虑一下怎么把玻璃之类的排除  详情 回复 发表于 2015-2-2 10:50
回复

使用道具 举报

发表于 2015-2-2 09:22:03 | 显示全部楼层
LZ,见光死的缺点:假设我的头上有玻璃。。。你懂得。。。
回复

使用道具 举报

 楼主| 发表于 2015-2-2 10:50:36 | 显示全部楼层
RedStoneMC 发表于 2015-2-2 09:16
LZ,发下视频地址,我看不到。。。

http://www.bilibili.com/video/av1944480/
最近B站有点卡
对那是没办法啦233
以后可以考虑一下怎么把玻璃之类的排除

点评

怎么可能没有办法?我现在就告诉你怎么检测玻璃。 首先/execute @p ~ ~ ~ /clone ~ ~2 ~ ~ ~2 ~ 指定位置x y z filled minecraft:glass(命令不太记得了就是把玻璃clone到指定位置。 然后fill 指定位置 x  详情 回复 发表于 2015-2-2 22:42
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-7-27 02:53 , Processed in 0.085697 second(s), 7 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表