第五十六章 clone-拷貝方塊
在電腦上右鍵任意一個(gè)文件或在手機(jī)上選中任意一個(gè)文件,你肯定會(huì)看見一個(gè)操作:拷貝(復(fù)制)
不只是文件可以拷貝,文字、圖片也可以拷貝。
Minecraft也是在電腦和手機(jī)上運(yùn)行的,那么Minecraft可以拷貝嗎?
當(dāng)然可以,因?yàn)镸inecraft本身就是由多個(gè)文件組成的。
但是Minecraft里面的方塊呢?
其實(shí)也是可以的,但并不是長(zhǎng)按或選中,而是使用一個(gè)特殊的指令:/clone。
/clone(克隆)指令,可以將一定范圍的方塊選中然后復(fù)制并粘貼到它處。
聽起來這操作是不是很簡(jiǎn)單?聽上去確實(shí)很簡(jiǎn)單,但實(shí)際操作就有些門道了。
/clone
作用:拷貝(或剪切)選中范圍內(nèi)的所有或部分方塊,并覆蓋到它處。
需要權(quán)限等級(jí):Java-2,基巖-1
需要作弊:是
格式:
Java1.13更新后
/clone <復(fù)制區(qū)開始坐標(biāo)><復(fù)制區(qū)結(jié)束坐標(biāo)><粘貼區(qū)區(qū)域基點(diǎn)>[replace|masked][force|move|normal]
/clone <復(fù)制區(qū)開始坐標(biāo)><復(fù)制區(qū)結(jié)束坐標(biāo)><粘貼區(qū)區(qū)域基點(diǎn)> filtered <需要復(fù)制的方塊>[force|move|normal]
Java1.13更新前和基巖版
/clone <復(fù)制區(qū)開始坐標(biāo)><復(fù)制區(qū)結(jié)束坐標(biāo)><粘貼區(qū)區(qū)域基點(diǎn)>[replace|masked][force|move|normal]
/clone <復(fù)制區(qū)開始坐標(biāo)><復(fù)制區(qū)結(jié)束坐標(biāo)><粘貼區(qū)區(qū)域基點(diǎn)> filtered <force|move|normal><需要復(fù)制的方塊><方塊數(shù)據(jù)值|方塊狀態(tài)>
我們要拷貝一個(gè)區(qū)域內(nèi)的方塊,首先我們要選中一個(gè)區(qū)域。
clone指令指定區(qū)域的方式和/fill等其他大多數(shù)指令差不多,都是指定一個(gè)長(zhǎng)方體區(qū)域的兩個(gè)對(duì)角坐標(biāo)。
這么說你可能會(huì)有些迷糊。這樣吧,打個(gè)比方:
假設(shè)這里有一個(gè)長(zhǎng)方形的桌子,它有四條腿。如果我們要選中這個(gè)桌子,就需要先把這個(gè)桌子看作是一個(gè)長(zhǎng)方體,八個(gè)頂點(diǎn)分別是四個(gè)桌角和四條腿與地面的垂足(這好像不是個(gè)長(zhǎng)方體吧?)。然后我們隨便選一個(gè)頂點(diǎn)的坐標(biāo)作為第一個(gè)對(duì)角坐標(biāo)輸入進(jìn)/clone里,再選擇與這個(gè)頂點(diǎn)相對(duì)應(yīng)的頂點(diǎn)的坐標(biāo)作為第二個(gè)對(duì)角坐標(biāo)輸入進(jìn)/clone里,這樣子我們就成功選取了這個(gè)桌子。
這下子你應(yīng)該理解了吧?
選中區(qū)域之后就要考慮要復(fù)制到哪里,即確定目標(biāo)區(qū)域。目標(biāo)區(qū)域的形狀方向大小和源區(qū)域是一模一樣的,唯一的區(qū)別只是位置的不同。因此我們只需要確定目標(biāo)區(qū)域的區(qū)域基點(diǎn)坐標(biāo)即可。
什么是區(qū)域基點(diǎn)坐標(biāo)?這是個(gè)專業(yè)說法,簡(jiǎn)單來說就是目標(biāo)區(qū)域的下西北角坐標(biāo)。關(guān)于這東西其實(shí)我們?cè)诘谌哒戮徒佑|過了:
“比較時(shí)先通過/fill選擇區(qū)域的方式確定源區(qū)域,再與要比較區(qū)域進(jìn)行比較。只不過這個(gè)要比較區(qū)域的位置填寫就挺蛋疼:你得找到要比較區(qū)域的下西北角(專業(yè)術(shù)語叫做區(qū)域基點(diǎn))。
哪里是下西北角呢?
區(qū)域內(nèi)XYZ三個(gè)值最小的地方。
這兩個(gè)區(qū)域的大小由第一個(gè)定,所以比較的區(qū)域就直接給一個(gè)角了。
以后的/clone指令(復(fù)制指令)也是這種形式?!?p> ——引自《Minecraft指令手冊(cè)》第三十七章:testforblock、testforblocks-探測(cè)下
成功確定并輸入目標(biāo)區(qū)域基點(diǎn)坐標(biāo)后,你就可以運(yùn)行指令將源區(qū)域內(nèi)的所有方塊拷貝過去了。注意,這將會(huì)覆蓋原本區(qū)域內(nèi)的所有方塊!而且Minecraft中可沒有撤銷操作,請(qǐng)確定你所輸入的坐標(biāo)均完全正確!
這是最簡(jiǎn)單的拷貝方式。/clone實(shí)際上給我們提供了三種復(fù)制模式和三種拷貝模式。
三種復(fù)制模式是:
replace——默認(rèn),全選
masked——僅復(fù)制非空氣方塊,這將會(huì)保留目標(biāo)區(qū)域中原本會(huì)被替換成空氣的方塊
filtered——僅復(fù)制指定方塊
三種拷貝模式是:
normal——默認(rèn),即普通的復(fù)制并粘貼
move——剪切,即復(fù)制粘貼后把源區(qū)域全部替換為空氣
force——強(qiáng)制拷貝,和normal模式的唯一區(qū)別是即使目標(biāo)區(qū)域和源區(qū)域一模一樣還是拷貝。
比如:
/clone 1 1 1 2 2 2 10 10 10 masked move
運(yùn)行這條指令,游戲?qū)?huì)剪切源區(qū)域(1,1,1)-(2,2,2)到目標(biāo)區(qū)域,且僅復(fù)制源區(qū)域內(nèi)的非空氣方塊。
上面的3+3模式中,唯一需要稍微講一下的就是filtered模式。
filtered模式和其他模式最大的不同在于,它多了一到兩個(gè)參數(shù):方塊(基巖版和Java1.13更新前版本還多了“數(shù)據(jù)值或方塊狀態(tài)”參數(shù))
使用filtered,可以指定需要復(fù)制什么方塊。比如:
/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更新前和基巖版)
?。ㄉ厦娴亩禾?hào)僅供區(qū)分參數(shù)之用,實(shí)際不需要逗號(hào),請(qǐng)忽略)
運(yùn)行上面的指令,游戲只會(huì)復(fù)制空氣方塊到目標(biāo)區(qū)域。如果目標(biāo)區(qū)域都是非空氣方塊,你將會(huì)驚喜地發(fā)現(xiàn)目標(biāo)區(qū)域變成了源區(qū)域的形狀!
這就是filtered的用處之一,可以將目標(biāo)區(qū)域改造成源區(qū)域的形狀而不影響其原本方塊構(gòu)成?;蛟S你還能想到更多奇妙的用處。
/clone指令的內(nèi)容就這么多。注意:和/fill一樣,/clone一次性最多只能拷貝32767個(gè)方塊!