Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 11275|回复: 42

[教程] 指令方块基础Q&A

[复制链接]
发表于 2015-4-12 19:46:24 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 PotatoMaster101 于 2016-6-10 20:48 编辑

由于太多新手的问题、本人也没有时间一个一个回复,所以今天发本帖。

大家好。今天来发一个指令方块基础的Q&A(别告诉我你不知Q&A是啥(问题和答案))。

Q1:NBT的集合(MC1.7+)
A:我看很多人都问我,如果我又要有Attributes,又要有Equipment,实现在同一个实体上面怎么做?这个十分简单。多个NBT的格式就是:
  1. {NBT1,NBT2,NBT3}
复制代码
比如:如果我要刷一个自定义带有装备,而且有药水属性的僵尸,那么指令就是:
  1. /summon Zombie ~ ~1 ~
  2. {Equipment:[xxx],ActiveEffects:[xxx]}
复制代码
以上指令中xxx为省略的内容。只是把主要的格式发了出来。大家看见,主要就是每个NBT之间加一个逗号就行了。
这里用的是母标签和子标签。举例子,a:{b,c,d}里面,a就是母标签,内部的b,c和d就是子标签。

警告:我看见很多新手都会这样写:{Equipment:[xxx]},{ActiveEffects:[xxx]},这样是错的。多个NBT不能开多个括号,而是全部集中在一个括号之内。

之后又有人问我,怎么给村名卖的东西附魔?怎么给生物的装备附魔?等等的问题。这个很简单,需要用到的是{tag}。格式是:
  1. {NBT1,tag:{NBT2}}
复制代码
主要就是在NBT里面加上tag,然后再包括进弯曲括号就行了。比如,如果我要给一个僵尸附魔的装备:
  1. /summon Zombie ~ ~1 ~
  2. {Equipment:[{id:"xxx",Count:1b,Damage:0s,
  3. tag:{ench:[xxx]}}]}
复制代码
同样,xxx为省略的部位。大家看见,Equipment是给装备的NBT。里面的id,damage和count都加好了,但是如果我还要附魔,那就是在Equipment里面再加上tag,之后里面再写进ench。加入tag的原因是因为{ench}是指定给僵尸穿的装备的,而并不是给僵尸的。

再比如,村名交易:
  1. /summon Villager ~ ~1 ~
  2. {Offers:{Recipes:[{maxUses:xxx,
  3. buy:{id:"xxx",Count:1b,Damage:0s,tag:{xxx}},
  4. sell:{id:"xxx",Count:1b,Damage:0s,tag:{xxx}}}]}}
复制代码
同上,tag内可以输入ench,AttributeModifiers等等和物品有关的NBT。原因同上,tag内的nbt都是给物品的,而不是给村民的。


Q2:指令方块输出:“Data tag parsing failed: Unbalanced curly brackets .........” (MC1.7+)
A:这是因为输入的NBT的括号没有对称造成的。如果开了一个括号,那就要关闭一个括号。比如,如果:
  1. {xxxxx}}
复制代码
那就是错的,因为开了一个括号,但是却关闭了两个括号。正确的方法是:
  1. {xxxxx}
复制代码
之后方形括号也一样。指令方块如果输出:“Data tag parsing failed: Unbalanced square brackets ........”,那就是方形括号不对称。
总体来说,开几个括号就要关掉几个。比如:
如果开启是:{[[[{{{{,那么关闭就是:}}}}]]]}。
如果开启是:{{{{[[[[{{{{{{{,那么关闭就是:}}}}}}}]]]]}}}}。


Q3:/setblock(或者/fill)显示“Cannot place block outside of the world” (MC1.7+)
A:这是因为setblock和fill指令只可以在已经载入的Chunk内放置方块。如果输入:“/setblock ~10000 ~ ~999999 minecraft:redstone_block”,那么一般就会失败,因为远离玩家x为10000格,z为999999格的地方的Chunk并未加载。最好的解决方法是,首先TP自己到那个setblock或者fill的地方,然后再使用指令方块。这样子每次玩家到了那个地方,Chunk就会被加载,这样子就可以实现指令了。

出生点chunk是一直都会被加载的,所以玩家在出生地做红石,指令方块都会被激活。

值得一提的是,/spreadplayers指令可以把实体随机传送到chunk并未加载的地方,并且可以在短时间内加载那个chunk。所以/spreadplayers可以做一个chunk加载器。


Q4:关于如何改变物品/方块的附加值 (MC1.7+)
A:每个物品都有一个附加值 (Damage),但是大部分的物品附加值都为0。附加值用来分辨同样方块内的种类,比如羊毛的ID都是"minecraft:wool",但是他们却有不同的颜色,这个就是使用附加值做的。一般指令都会给玩家一个输入附加值的选项。

比如,/give指令的格式是:
  1. /give <玩家> <物品> [数量] [附加值] [dataTag]
复制代码
这里的附加值就是来分辨方块的。一般没有附加值的物品,附加值都为0(比如黑曜石,地壳什么)。如果是羊毛,或者染色玻璃的话,那就有附加值了。附加值一般是数字 0 - 15,每种数字代表一种颜色。

在NBT内,附加值是使用Damage标签来控制的。比如:
  1. {Equipment:[{id:"xxx",Count:1b,Damage:0s}]}
复制代码
Damage:0s就是控制附加值。后面的s是单位,一定要加上。


Q5:关于转义的使用(MC1.7+)
A:很多人问本人如何使用转义。在MC中,转义是让电脑知道双引号顺序。请看一下例子:
"abc"def"ghi"
上面这行文字有4个双引号。如果直接读取这行文字,那么可以有不同的概念:
1. abc和ghi在双引号中间,而def没有双引号。
2. abc和ghi在整个双引号之内,而def在整个双引号之内的双引号之内。

这里就要用到转义了。在MC中,转义的用处就是“双引号中的双引号”。转义字符为 “\”。下面来举个例子:"abc\"def\"ghi"
以上就是正确的格式。因为以上这行文字的意思就是,abc和ghi被双引号包括。而def是被双引号之内的双引号所包括。这样子电脑就可以理解其意思。

之后来讲解的是多级转义。计算多级转义字符数量的公式是 2^n-1。一开始本人称为0级转义,就是没有任何转义,因为2^0-1 = 0。所以没有任何转义字符。之后一级就是 \" ,也就是 2^1-1 = 1,带有一个转义字符。二级为 2^2-1 = 3,带有3个转义字符,例子如下:
"a\"b\\\"c\\\"d\"e"
以上例子中,a和e被最外面的0级转义双引号包围。b和d被一级转义包围,最中间的c被二级转义包围。多级转义可理解为双引号之内的双引号之内的双引号之内的双引号之内的双引号... 可以无限的下去。

最后用一些MC内的指令来举例子:
  1. /setblock ~ ~2 ~ minecraft:command_block 0 replace
  2. {Command:"/tellraw @a {\"text\":\"一级转义\"}"}
复制代码
由于Command这个NBT是String储存的,所以它的值需要有双引号包围。但是Command内还有/tellraw这条指令,其json也需要有双引号包围,所以在Json内就使用一级转义。请看下一个例子:
  1. /setblock ~ ~2 ~ minecraft:command_block 0 replace
  2. {Command:"/tellraw @a {\"text\":\"请按我\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/summon Pig ~ ~ ~ {CustomName:\\\"我是一头猪\\\"}\"}}"}
复制代码
在这条指令中,和前一个例子差不多,但是在Json的clickEvent中又加入了一个带有CustomName的/summon指令。CustomName也是一个String,所以也应该有双引号包围。CustomName要被双引号包围,在Json的clickEvent中。Json也要有双引号包围,在Command中。Command也要被双引号包围,所以这样子就形成了多级转义。转义的最内部的CustomName需要用二级转义才可以,否则会出错。

当然,不光只有用在双引号内,还有一些特殊的转义符可以用在文本处理中。例如最常用的就是“\n”,这个转义符用处是空一行。可以在/tellraw内使用:
  1. /tellraw @a
  2. {"text":"换行\n换行"}
复制代码
这样子tellraw的输出就是“换行(空一行)换行”。这个\n是直接加入进去,不需要用任何空格什么分开。

教程结束。如果有任何综合类的问题请发进回复,会加入本贴。任何关于单独指令的问题将会被无视。


==========END==========

Update log:
V1.0.6: Added more details to Q5. - 10/6/2016
V1.0.5: Added more details to Q1. - 9/6/2016
V1.0.4: Added more examples in Q5 for easier understanding. - 7/6/2016
V1.0.3: Minor changes on version info. Added Q5. - 4/6/2016
V1.0.2: Combined Q1 and Q2, added more detail to Q4 (now Q3). - 19/07/2015
V1.0.1: Added one question (Q5). - 18/04/2015
V1.0.0: Basic layout, added 4 questions (Q1 - Q4). - 12/04/2015

来自群组: Command Block Logic

评分

参与人数 18人气 +17 金粒 +123 收起 理由
QWM_0 + 1 MCBBS有你更精彩~
201023784 + 1 + 10 很棒的作品!
panjinhua + 1 + 1 这么好的帖子,赞
xlyhx + 1 + 15 Mcbbs有你更精彩~
Meng_God + 2 快点复活来更新23333
爱的社会 + 2 楼主你太帅了~
马王55 + 1 Mcbbs有你更精彩~
吴鸣 + 1 + 5 Mcbbs有你更精彩~
lzs1234 + 1 发隐退贴骗了35人气,2B撤销评分啊….
宇来自RR网 + 1 + 10 大触我们做朋友吧【不
pca006132 + 1 + 15 快点复活来更新23333
_Benson_ + 2 Mcbbs有你更精彩~
末影矿工 + 1 “太让我失望了,我以为已经死了呢”.
卅个屮 + 2 + 20 隐退贴灌水扣贡献(╯‵□′)╯︵┻━┻.
贰逼 + 3 + 20 http://www.mcbbs.net/thread-432157-1-1.h
FHC红石 + 1 + 10 复活?
scorpio975 + 1 + 10 Mcbbs有你更精彩~
ufof + 1 很棒的作品!

查看全部评分

回复

使用道具 举报

发表于 2015-4-12 19:47:51 | 显示全部楼层
PM大师复活了????必须赞!

点评

指令方块好玩吗  详情 回复 发表于 2017-6-4 19:27
这可能是我最后个教程了 走之前把问题答案都写完  详情 回复 发表于 2015-4-12 19:50
回复

使用道具 举报

 楼主| 发表于 2015-4-12 19:50:55 | 显示全部楼层
ufof 发表于 2015-4-12 19:47
PM大师复活了????必须赞!

这可能是我最后个教程了

走之前把问题答案都写完

点评

为何不留下你的QQ_(:з」∠)_。我们好去骚扰你  详情 回复 发表于 2015-5-26 18:19
回复

使用道具 举报

发表于 2015-4-12 19:52:26 | 显示全部楼层
本帖最后由 End-Enderman 于 2015-4-18 10:56 编辑

吓死我了,点进去还以为是全命令教程...

评分

参与人数 1金粒 +1 收起 理由
FHC红石 + 1 没看到基础两个字?

查看全部评分

回复

使用道具 举报

发表于 2015-4-12 21:35:35 | 显示全部楼层

点评

隐退之前把最后的MCBBS坑解了。。。  详情 回复 发表于 2015-4-12 22:00
回复

使用道具 举报

 楼主| 发表于 2015-4-12 22:00:42 | 显示全部楼层
贰逼 发表于 2015-4-12 21:35
http://www.mcbbs.net/thread-432157-1-1.html
说好隐退呢

隐退之前把最后的MCBBS坑解了。。。
回复

使用道具 举报

发表于 2015-4-13 09:09:31 | 显示全部楼层
坑填得好慢。。
回复

使用道具 举报

发表于 2015-4-13 16:25:31 | 显示全部楼层
这个攻略我好想在WIKI里见过了 - -

评分

参与人数 1金粒 +1 收起 理由
lzs1234 + 1 你说见过了发地址啊

查看全部评分

回复

使用道具 举报

发表于 2015-4-13 16:46:44 来自手机 | 显示全部楼层
比较主流的疑问…顶赞
回复

使用道具 举报

发表于 2015-4-15 13:29:49 | 显示全部楼层
本帖最后由 GURU_HURU 于 2015-4-15 13:32 编辑

如何设置召唤的羊的羊毛颜色


                               
登录/注册后可看大图

点评

你试试加入羊的羊毛颜色NBT (color:)  详情 回复 发表于 2015-4-18 10:39
回复

使用道具 举报

头像被屏蔽
发表于 2015-4-15 19:04:03 | 显示全部楼层
就决定是你啦!
回复

使用道具 举报

发表于 2015-4-17 12:56:02 | 显示全部楼层
想问怎么让村民交易的书本里有自定义的内容

点评

详情看Q2. 就是在村民交易书本的NBT内,再加一个tag:{},然后里面加上书本的NBT  详情 回复 发表于 2015-4-18 10:35
回复

使用道具 举报

发表于 2015-4-17 17:04:43 | 显示全部楼层
一群小学生围着一个小学生触手高呼Ура
回复

使用道具 举报

发表于 2015-4-17 17:06:34 | 显示全部楼层
本帖最后由 pca006132 于 2015-4-17 17:12 编辑

选择器参数内有数字、英文字母、低划线('_')、'='、'!'、','以外的字符会令整个选择器失效
回复

使用道具 举报

 楼主| 发表于 2015-4-18 10:35:16 | 显示全部楼层
chenweiqin 发表于 2015-4-17 12:56
想问怎么让村民交易的书本里有自定义的内容

详情看Q2.

就是在村民交易书本的NBT内,再加一个tag:{},然后里面加上书本的NBT

点评

谢谢lz  详情 回复 发表于 2015-4-18 12:01
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2017-9-25 08:54 , Processed in 0.159008 second(s), 7 queries , Memcache On.

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

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

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