<rp id="x7dxd"></rp>

    <th id="x7dxd"><input id="x7dxd"></input></th>
    1. <dd id="x7dxd"><noscript id="x7dxd"></noscript></dd>
    2. <tbody id="x7dxd"></tbody>
        1. 我的世界1.12連鎖命令方塊CCB新特性研究

          簡介CCB新機制 chyx的CCB新特性簡介 http://www.9698g.com/ask/20170421192005.shtml 已經很簡單的概括了CCB在1.12的更新: 不再是NTE的東西了。 簡寫: - ICB: 脈沖命令放 - CCB: 連鎖命令方塊 - RCB: 循環命令方塊 - CB: 命令方塊 - NTE: Next Tick Entry,

          編輯:我的世界發布時間:2017-04-22 13:10

            簡介CCB新機制

            chyx的CCB新特性簡介http://www.9698g.com/ask/20170421192005.shtml已經很簡單的概括了CCB在1.12的更新: 不再是NTE的東西了。

            簡寫:

            - ICB: 脈沖命令放

            - CCB: 連鎖命令方塊

            - RCB: 循環命令方塊

            - CB: 命令方塊

            - NTE: Next Tick Entry,就是放在一個列表里等待下一個gt(游戲刻)處理的意思

            - gt: 游戲刻,game tick,游戲里最小可描述、測量時間單位

            - 微觀延遲: 在1gt里的先后次序,雖然有時間上的分別,然而只是先后次序的概念而不是一個時間單位

            這代表什么呢?

            以前,CCB是先放入NTE,然后下一個gt根據放進NTE的順序來決定執行次序的,這代表了兩個問題:我們沒法在1gt內加入新的ccb并且執行命令;我們無法讓后面的命令取消執行。我們只能做的是替換掉里面某些ccb(NTE不會記錄它們的命令)來做到瞬間替換執行的命令。

            現在,CCB是即時處理的了。也就是說是到該CCB執行命令的時候才傳遞信號給下一個執行命令的CCB,讓后面的CCB執行命令。這分別是很大的,因為這代表了我們能夠在那1gt里修改ccb朝向達至激活不同的鏈;清除ccb避免執行后方命令;在后方加上ccb執行更多的命令;替換ccb以做到1gt同一位置的ccb執行多次命令等。

            CCB新機制研究

            同一個CCB是無法在1gt里執行多次的,然而能夠透過刷新達至1gt執行多次的效果

            證明1: 一個CCB 1gt只能執行一次

            先用CB搭建一個這樣的結構:

            那堆CCB可以順序寫上say 1到say 6

            然后激活ICB。

            如果同一個CCB可以在1gt里執行多次,則應該為一個循環,聊天應該不停有1-6的信息。然而實際結果為只有1-6一次,因此可以確定1gt里同一個ccb只能執行一次。

            證明2: 能夠透過刷新CCB達到1gt里執行多次命令

            結構與上方類似,只是把右上的ccb里的命令改為/clone ~ ~ ~1 ~2 ~ ~1 ~ ~ ~1 replace force (坐標未必相同。目的是把左邊那條CCB鏈刷新)。

            如果同一個位置的CCB無法執行多次,結果應該與上方差不多,只是1-5(最后那個的命令替換了。)。

            然而結果是1-5然后再1-3。這代表了刷新了的CCB刷新了那個限制。

            其實這也是循環的一個實現方法,只是需要小心何時需要停止循環。

            CCB受到信號時,會先決定待會讓哪個方位的CCB執行命令,然后自己執行命令,然后傳信號到先前決定的方向的CCB執行

            證明1: CCB會先決定待會讓哪個方位的CCB執行命令,然后自己才執行命令。

            先用CB搭建一個分支結構

            設它們的號碼為:

            1

            2 4

            3

            2的命令為把自己的朝向改為朝向4

            3的命令為say 3

            4的命令為say 4

            然后激活ICB。

            如果CCB是先執行命令,后決定待會讓哪個方位的,執行命令的應該是4,聊天欄的輸出應該是4。然而實驗結果是3.

            因此我們可以得知,CCB是先決定待會傳信息給哪個方位的ccb的。

            證明2: CCB先執行命令,后傳信號到下一個ccb。

            我想到的有兩種證明方法: 分別為在后方加上ccb及移除自身。為了簡單,這里會講解后者。

            先用CB搭建以下結構

            第一個CCB的命令為 setblock ~ ~ ~ air

            第二個CCB的命令為 say 1

            如果CCB是先傳遞信號,后執行命令,那么應該會有第二個ccb的輸出,也就是聊天欄會輸出1。然而實驗結果為無輸出。

            這證明了CCB是執行命令后傳遞信號的。

            新的gamerule maxCommandChainLength

            這個gamerule決定了CCB的信號能經過多少個ccb。默認65536。對icb及rcb無影響。

            證明1:

            先用CB搭建以下結構

            從上而下命令為

            say 1

            say 2

            say 3

            ...

            預先設置gamerule: /gamerule maxCommandChainLength 4

            然后啟動icb。

            輸出為: 1-4。

            證明2:

            把以上結構第一個ccb調為auto:0(紅石激活)。

            把以上結構第二個ccb的命令清除掉。

            把以上結構第三個ccb調為條件制約(conditional)

            然后啟動icb。

            輸出為4。

            證明3:

            你把那gamerule調成0然后開rcb及icb就行了。。。這里就不多說了。

            這說明了該gamerule只對ccb有效,而且決定了CCB的信號能經過多少個ccb,而不是執行了多少命令。并且auto,條件制約等對其并無影響。

            CCB實踐

            相信看完上面的證明,大家也知道了起碼一個實踐方法: 循環刷新。

            這個方法對循環的系統特別好用,然而注意加入停止條件,否則可能會爆炸。

            其次,我們也可以玩分支結構。

            雖然從上面的證明中我們可以看到是沒法轉自己的,然而我們可以轉下一個啊!

            加上一些條件制約,我們就能開心的玩if之類的條件控制了,比較方便。

            然后我們也能玩動態加載。雖然上面沒寫,然而大家應該也從2b及chyx那帖子那里看到動態加載的用法了。

            其實就是在ccb后方加上更多的ccb而已。方法有兩個,各有好處:

            - clone,只需要一個cb。然而你需要絕對坐標。

            - 結構方塊: 不需要絕對坐標。然而你需要兩個cb:(坐標、結構名稱可以改變,總之就是在鏈后方先放置structure后放置紅石塊)

            (我這個鏈的朝向是+x)

            /setblock ~2 ~ ~ minecraft:structure_block 1 replace {posX:0,posY:0,posZ:0,name:test,mode:LOAD}

            /setblock ~2 ~ ~ redstone_block

            溫馨提示: 動態加載建議復制時多復制個空氣方塊。這樣就能與后面可能未能完全覆蓋的ccb分開,避免執行了一些你不想執行的東西。

            最后我們也能玩停止后面的命令執行...在原地setblock air就好

            來自群組: Command Block Logic

          相關推薦

          在線制作地圖工具

          地圖下載排行

          MOD下載排行

          材質包下載排行

          熱門視頻

          皮膚下載

          柚木提娜