相信用过电脑画图的都知道,画图软件都有一个功能,它就是:颜色填充。
Minecraft也有填充功能,但是它要用到一个指令,就是/fill。
/fill,指令单词为fill,在英文里意为“填满;充满;装满;注满......”反正都是满。所以,/fill的用处是:填满指定空间。
/fill
用处:用特定的方块填充或替换一个区域内的方块。
使用权限下限:管理员(OP)
是否可使用命令方块执行:是
格式:
Java
/fill <起点方块坐标><终点方块坐标><填充方块>[填充方式]
基岩版
/fill <起点方块坐标><终点方块坐标><填充方块>[方块数据值][填充方式]
由于/fill这个指令比较复杂,导致我们必须要用比较长的篇幅介绍完。
首先,/fill的填充范围是一个长方体,起点方块坐标和终点方块坐标是两个点,从这两个点衍伸出来的X、Y、Z轴会形成一个长方体,这个长方体就是填充的范围。
所以,fill是怎么填充的已经搞懂了吧?如果还没搞懂,那么先去实践一下,不要理后面的“填充方式”。
接下来是填充的方块,注意这里必须是方块,你不可以用不可放置的物品填充,比如diamond。但是像这种填充方块的指令,我们可以使用它填充一些就算通过give也获得不了的东西,是什么东西呢?比如说:水方块。
/fill能帮助你填充一些特殊的方块,这些方块我先列出一部分让你们瞧瞧(无英文id):
水方块、静止的水方块、岩浆方块、静止的岩浆方块、地狱门传送方块、无头的活塞、活塞头、粘性活塞头......
不止/fill能这样子,还有一些指令也可以做到。当然,这是后话。
接下来讲的是填充方式,填充方式一共有五种,它们分别是destroy、hollow、keep、outline、replace。
destroy,中文意思是“破坏”。所以它的作用跟破坏比较相似,是什么破坏呢?
你玩过生存模式吧,在这个模式,你每破坏一个方块,一般都会获得一些东西。比如破坏木头获得木头;破坏树叶有几率获得树苗;破坏石头会获得圆石......
没错,destroy的作用是用指定方块替换填充区域内的所有方块,而被替换的所以方块都被视为被无魔咒的钻石锹或镐采掘而掉落成对应的实体形式,但是只能被剪刀采集的方块,如藤蔓,不会掉落,流体方块更不可能掉落,你见过拿着水方块的玩家吗?如果你玩过1.8之前的版本,可以无视上一句话。
hollow,中文意思是“中空的;空心的;凹陷的”。所以,你估计已经猜到它的作用是什么了吧。
没错,hollow的作用是仅用指定方块替换填充区域外层的方块,内部方块被替换为空气,但方块自身不会像destroy一样掉落。所以用这个可以快速的建造出一个中空的地方,非常适合用于建筑党和创作地图党。
keep,中文意思是“保持”。所以它的作用也是类似于“保持”的。但它保持的是什么?
现在思考5秒钟,看你能想出来吗?
5
4
3
2
1
0
没错,你并没有想出来,对吧。我就说嘛,5秒钟能想出来吗?
什么?你已经想出来了?当我没说。
keep的作用是仅用指定方块替换填充区域内的空气方块,如果全都是空气方块当然是全都替换啦。这个非常适合用在,用在......哎,这好像没啥用哎。
算了算了,不追究这个问题了。
outline,中文意思是“概述;略述;显示…的轮廓;勾勒…的外形”。这么多意思,到底是啥呢?很明显,肯定不是“概述”,所以前面两个,去掉。
所以,这里的outline的意思是“显示…的轮廓;勾勒…的外形”。有轮廓、勾勒两个词,你想到什么?
这说明它的效果跟hollow是很像的,但是有一点不一样,就是——它不是中空的。
所以,outline的作用是仅用指定方块替换填充区域外层的方块,内部方块不受影响。这个非常适用于......,适用在哪里?哎,好像也没啥用哎。
最后是重头戏,估计你在想不填“填充方式”,它的默认方式是什么?其实,不填的默认方式是replace。
replace,中文意思是“代替”。很好猜吧,这个意思是代替,也就是说,不填就是用指定的方块代替填充区域的所有方块。
但如果填呢?那就又有格式了:
Java
/fill <起点方块坐标><终点方块坐标><填充方块> replace [被替换方块]
基岩版
fill <起点方块坐标><终点方块坐标><填充方块>[填充方块数据值] replace [被替换方块][被替换方块数据值]
所以,使用replace可以替换填充区域内的指定方块,且其他方块不受影响。这个功能很好用,特别是配上execute指令,但那也是后话了。
下面来举个例子,当然是replace的栗子:
/fill 0 45 0 55 70 55 diamond_ore 0 replace stone 0
什么意思呢?这条指令的意思是:
将在X=0、Y=45、Z=0到X=55、Y=70、Z=55的所有数据值为0的石头(stone)替换成数据值为0的钻石矿(diamond_ore)。
最后再科普一下/fill的历史。
在1.8版本的时候,才加入了/fill指令。
后来基岩版才加入了/fill指令,跟上Java版。
但是,java版到了1.11版本时才支持方块状态,即基岩版的数据值,落后了基岩版。
OK,这章就到这了。本章可以说将/fill指令讲透了,接下来就去实践。毕竟如此复杂,不去炫耀一下?
对了,提醒一下,别把整个世界都给替换成TNT了,到时候有你好看的(手动滑稽)。
哇,真是1900字,将近两千字的大章节啊!写了起码1个小时啊。