Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

本教學將會教你如何在生存模式中利用遊戲錯誤來複製點燃的TNT實體(下文簡稱為複製TNT)。

以下段落所述的內容是透過利用錯誤實現的。

此錯誤未必對所有版本有效。該錯誤被修復後,下文所述的資訊將不再適用。
請慎重對待。

Information icon
此特性為Java版獨有。

為什麼這麼做?

複製TNT看似毫無意義,但實際上相當有用。透過將複製TNT與史萊姆飛行器所結合,你可以快速的清理大片的地形來建造空置域,以提高一些機器的效率或是減少卡頓。還可以方便的去清除大片的山脈或是丘陵地。

原理

TNT複製的原理與活塞機制有關。在活塞被啟動時,活塞會用深度的方法檢測其前方需要被推動的所有方塊,將其座標加入到一個列表中(搜尋順序靠後的先儲存在列表)。之後,活塞會觸發推動方塊,這些方塊將均變為36號方塊,並產生一個Block Event事件。此時,若你在活塞推出的2遊戲刻過程中給TNT方塊一個NeighborChanged更新(一般使用死亡扇狀珊瑚來達成這一效果),那麼就會使TNT觸發,生成一個點燃的TNT實體。2遊戲刻後,活塞的推出方塊時間結束,活塞會檢測原來位置上的方塊,在活塞前方一格處生成新的結構,而TNT就重新作為方塊被推出,以達成複製。[1]

第三節 活塞更新次序理論 紅石更新延遲理論提出,NTE元件優先級高者先啟動,而優先級相等者先被更新先啟動,紅石更新延遲理論很好地揭示了同一gt內NTE元件的執行先後規律。同樣地,活塞更新次序理論將揭示活塞推動若干方塊的次序先後規律。也只有在這裏我們可以最終解釋早在《基礎紅石原理》就已經提到的,判別粘液塊裝置作為BUD或伸出收回如此往復持續的經驗規律。

活塞的更新規律 在紅石更新延遲理論中,我們已經認識到,活塞在啟動時會進入啟動延遲,在BE事件啟動,此時活塞需要檢測自身的狀態,在允許推出時開始推出。活塞的推出過程實際是一個將方塊依次變為36號方塊的過程,這一過程依賴一個列表,而列表是有序的,所以我們可以對其的順序進行研究。按照順序,要被移動嘅方塊首先被移除,這一過程給予毗鄰方塊更新。隨後每一個36號方塊將會被放置在所有要被移動嘅方塊的運動趨勢位上,這一過程產生方塊變化。活塞在最後產生活塞臂。36號方塊表現為移動中的方塊,但這是遊戲繪製產生的效果,在理論分析中我們忽略這一過程。在2gt後的TE事件,36號方塊將自身變為對應的方塊,這一過程產生方塊更新和方塊變化。(方塊變化有待考究)

活塞收回的過程和推出的過程是類似的,但活塞臂必須先收回,否則其他方塊無法在活塞臂的位置建立36號方塊。

當活塞在啟動過程中遇到訊號下降沿,此時活塞必須收回,但前方方塊全為36號方塊,活塞一個也不會將其拉回。比較特殊的是活塞面前的方塊,活塞會將它在BE事件到位,但也不會收回。(活塞在收回過程中遇到上升沿呢)

在以上運動過程中,並沒有提到活塞自檢,事實上活塞不會單獨地對自己進行檢查,自檢發生在活塞接收到方塊更新訊號時,而活塞本身的推出,周圍方塊的變化都會產生方塊更新。例如活塞伸出收回往復持續的過程,就是活塞面前的方塊從36號方塊變為普通方塊時給予方塊更新,使得活塞再次推出的。

活塞推動方塊和紅石線的更新不同,活塞推動方塊有一個客觀存在的列表,因此這一過程有着嚴格的規律性,我們因此可以得出活塞推動次序的規律,換言之:

活塞推動方塊的次序不僅具有時間平移對稱性,也具有空間平移對稱性。

換句話説,活塞的行為隨時間穩定,也隨空間穩定,只要活塞的裝置不被旋轉。此外,即使對於不同的活塞朝向,活塞的規律也是類似的,可以分類討論。

除了中繼器等NTE元件和活塞外,36號方塊也遵循「先被更新先啟動」的規律,在這裏是指:

先被推動的36號方塊先到位。

活塞更新的次序規律 有關活塞在運動前後更新規律已經敘述詳盡了,下面針對研究活塞推動的列表進行分析,這主要包括活塞推方塊的更新規律和粘液塊粘動方塊的更新規律。關於前者,其必須遵循一條基本原則,那就是不能在已有方塊的位置建立36號方塊。因此,當活塞推動一列方塊時,總是最遠端的方塊先更新。並且,如要使一列方塊發生移動,每個方塊移動前,總是先移動其趨勢位的方塊。這一點對於粘液塊粘動後方的方塊也是一樣的,就好像方塊不是被粘液塊從後方粘動的,而是被活塞從反方向推出的。換句話説,活塞推動一列方塊和粘液塊從後方粘動一列方塊個次序規律是相同的。

將完全相同的裝置旋轉,在不同朝向下進行實驗,便可以得到在完全對等的位置下,各方向的優先級順序:

東>西>南>北>上>下

這一規律可以被歸入東南法則。

下面作如下約定,在不作特殊説明的情況下,水平方向的活塞總是朝北推出的(或朝東),這樣右手方向優先於左手方向。當活塞朝豎直方向推動,預設前方為北方。

方法

以下的所有建造方法理論上在Java版1.13及其後所有版本均可行。

Advertisement