第五十六章 clone-拷贝方块
在电脑上右键任意一个文件或在手机上选中任意一个文件,你肯定会看见一个操作:拷贝(复制)
不只是文件可以拷贝,文字、图片也可以拷贝。
Minecraft也是在电脑和手机上运行的,那么Minecraft可以拷贝吗?
当然可以,因为Minecraft本身就是由多个文件组成的。
但是Minecraft里面的方块呢?
其实也是可以的,但并不是长按或选中,而是使用一个特殊的指令:/clone。
/clone(克隆)指令,可以将一定范围的方块选中然后复制并粘贴到它处。
听起来这操作是不是很简单?听上去确实很简单,但实际操作就有些门道了。
/clone
作用:拷贝(或剪切)选中范围内的所有或部分方块,并覆盖到它处。
需要权限等级:Java-2,基岩-1
需要作弊:是
格式:
Java1.13更新后
/clone <复制区开始坐标><复制区结束坐标><粘贴区区域基点>[rebr /lace|masked][force|move|normal]
/clone <复制区开始坐标><复制区结束坐标><粘贴区区域基点> filtered <需要复制的方块>[force|move|normal]
Java1.13更新前和基岩版
/clone <复制区开始坐标><复制区结束坐标><粘贴区区域基点>[rebr /lace|masked][force|move|normal]
/clone <复制区开始坐标><复制区结束坐标><粘贴区区域基点> filtered <force|move|normal><需要复制的方块><方块数据值|方块状态>
我们要拷贝一个区域内的方块,首先我们要选中一个区域。
clone指令指定区域的方式和/fill等其他大多数指令差不多,都是指定一个长方体区域的两个对角坐标。
这么说你可能会有些迷糊。这样吧,打个比方:
假设这里有一个长方形的桌子,它有四条腿。如果我们要选中这个桌子,就需要先把这个桌子看作是一个长方体,八个顶点分别是四个桌角和四条腿与地面的垂足(这好像不是个长方体吧?)。然后我们随便选一个顶点的坐标作为第一个对角坐标输入进/clone里,再选择与这个顶点相对应的顶点的坐标作为第二个对角坐标输入进/clone里,这样子我们就成功选取了这个桌子。
这下子你应该理解了吧?
选中区域之后就要考虑要复制到哪里,即确定目标区域。目标区域的形状方向大小和源区域是一模一样的,唯一的区别只是位置的不同。因此我们只需要确定目标区域的区域基点坐标即可。
什么是区域基点坐标?这是个专业说法,简单来说就是目标区域的下西北角坐标。关于这东西其实我们在第三十七章就接触过了:
“比较时先通过/fill选择区域的方式确定源区域,再与要比较区域进行比较。只不过这个要比较区域的位置填写就挺蛋疼:你得找到要比较区域的下西北角(专业术语叫做区域基点)。
哪里是下西北角呢?
区域内XYZ三个值最小的地方。
这两个区域的大小由第一个定,所以比较的区域就直接给一个角了。
以后的/clone指令(复制指令)也是这种形式。”
——引自《Minecraft指令手册》第三十七章:testforblock、testforblocks-探测下
成功确定并输入目标区域基点坐标后,你就可以运行指令将源区域内的所有方块拷贝过去了。注意,这将会覆盖原本区域内的所有方块!而且Minecraft中可没有撤销操作,请确定你所输入的坐标均完全正确!
这是最简单的拷贝方式。/clone实际上给我们提供了三种复制模式和三种拷贝模式。
三种复制模式是:
rebr /lace——默认,全选
masked——仅复制非空气方块,这将会保留目标区域中原本会被替换成空气的方块
filtered——仅复制指定方块
三种拷贝模式是:
normal——默认,即普通的复制并粘贴
move——剪切,即复制粘贴后把源区域全部替换为空气
force——强制拷贝,和normal模式的唯一区别是即使目标区域和源区域一模一样还是拷贝。
比如:
/clone 1 1 1 2 2 2 10 10 10 masked move
运行这条指令,游戏将会剪切源区域(1,1,1)-(2,2,2)到目标区域,且仅复制源区域内的非空气方块。
上面的3+3模式中,唯一需要稍微讲一下的就是filtered模式。
filtered模式和其他模式最大的不同在于,它多了一到两个参数:方块(基岩版和Java1.13更新前版本还多了“数据值或方块状态”参数)
使用filtered,可以指定需要复制什么方块。比如:
/clone 1 1 1 2 2 2 ~,~,~,filtered air normal(Java1.13更新后)
/clone 10 5 10 30 30 30,~,~,~,filtered normal air -1 (Java1.13更新前和基岩版)
(上面的逗号仅供区分参数之用,实际不需要逗号,请忽略)
运行上面的指令,游戏只会复制空气方块到目标区域。如果目标区域都是非空气方块,你将会惊喜地发现目标区域变成了源区域的形状!
这就是filtered的用处之一,可以将目标区域改造成源区域的形状而不影响其原本方块构成。或许你还能想到更多奇妙的用处。
/clone指令的内容就这么多。注意:和/fill一样,/clone一次性最多只能拷贝32767个方块!