我的世界命令方塊教程1.9自定義延遲CB脈沖制作方法
小編為大家?guī)砹恕段业氖澜纭访罘綁K教程1.9自定義延遲CB脈沖制作方法,今天來講解一下一種可以自定義延遲CB脈沖的方法,大家知道,1.9的RCB(Repeating Command Block)開啟后會以20Hz的速度激活。在一些電路中這個速度可能會太快,所以需要一些又不用中繼器而又可以自定義延遲的CB脈沖。這個設(shè)計的核心電路來自lorgon111的這個u2b視頻。
掃描二維碼或加公眾號 mcpe_ppc ,關(guān)注跑跑車《我的世界》公眾號,更加方便的查看你想要知道的事情。
首先這種設(shè)計的原理是使用1.9最新的AEC實體。有些人可能會問什么是AEC,AEC就是1.9中l(wèi)ingering藥水扔出去后在地面產(chǎn)生的一個藥水覆蓋區(qū)域。它時間一到后會自己刪除自己,所以不需要任何清空系統(tǒng)。AEC含有一個{Age},它會以每tick +1的速度上升,所以這個機(jī)器的核心就是使用{Age}來記時。這個系統(tǒng)不需要任何積分板變量,只需要積分板的tag即可完成。
首先我們需要做準(zhǔn)備工作,完成脈沖需要激活的系統(tǒng)。這里本人直接使用/say 1這條指令。將/say 1輸入到一個普通CB中,然后在其后面放一個Chain Command Block,如下圖:
注意,后面的Chain CB要被調(diào)成Always Active,這樣子它就可以無限紅石而自己激活。之后這個CCB內(nèi)的指令是在它后面的CB位置內(nèi)刷出一個AEC。這個很簡單,指令格式是:
/summon AreaEffectCloud <x> <y> <z>
{CustomName:"Delay",Tags:["DelayStart"],Age:-3}
復(fù)制代碼
這里的xyz大家自己填寫,比如如果這個CCB在往它后面的ICB的x+1的地方,那么坐標(biāo)就是 ~-1 ~ ~ 。由于本人不知大家再往什么方位建造,所以無法完善指令中xyz坐標(biāo)。所以如果每次激活這個機(jī)器,第一個CB就會執(zhí)行“/say 1”,然后第二個CCB就會在第一個CB的位置刷出一個AEC。這個AEC就是那個CB的定時器。大家看見本人這里的Age寫的是-3,但是大家可以寫任何一個數(shù)字都沒關(guān)系。數(shù)字越小(比如-100)延遲的時間就越長。效果圖如下:
大家看見第一個CB成功執(zhí)行了/say 1,然后后面的CCB成功的在第一個CB那里刷出了一個AEC(因為有黑色顆粒效果)。
在刷出AEC的指令中還有{Tags}這一項,這個是來將刷出的AEC自動加入到名叫“DelayStart”的這個積分板tag中。由于積分板的tag系統(tǒng)不需要像objective那樣一開始就要定義,所以這個{Tags}不需要任何積分板的準(zhǔn)備工作。
之后我們要做的就是,每次這個AEC的{Age}變成-1的時候,我們就要重新并且自動的激活一下第一個CB,之后第一個CB又會輸出1,然后第二個CB又會刷出一個AEC,然后無限循環(huán)下去。所以我們需要另外一個系統(tǒng)來完成這個效果。首先我們需要一個Repeating CB,里面輸入以下指令:
/scoreboard players tag @e[tag=DelayStart,type=AreaEffectCloud,name=Delay] add DelayDone
{Age:-1}
復(fù)制代碼
這條指令的意思是,將所有Age是-1,并且名字叫“Delay”而且在“DelayStart”這個tag內(nèi)的AEC,加入到一個叫“DelayDone”的積分板tag中。由于剛才刷出AEC指令中的項目都符合以上選擇器的項目,所以這條指令就會不停地探測剛才刷出的AEC,然后它的Age一到-1就會給它加上“DelayDone”這個tag。之后才是真正的循環(huán)系統(tǒng)。在Repeat CB后面再放2個Chain CB,如下圖:
之后在中間的那個CCB中輸入:
/execute @e[tag=DelayDone,type=AreaEffectCloud,name=Delay] ~ ~ ~ /blockdata ~ ~ ~
{auto:1b}
復(fù)制代碼
這條指令的意思就是將剛才已經(jīng)添加到“DelayDone”的AEC實體的所在位置的CB調(diào)成{auto:1b}。這個意思是CB自己自動激活。然后在最后一個CCB中輸入:
/execute @e[tag=DelayDone,type=AreaEffectCloud,name=Delay] ~ ~ ~ /blockdata ~ ~ ~
{auto:0b}
復(fù)制代碼
這條指令和剛才一樣,只不過是重新把那個CB調(diào)成了{(lán)auto:0b},也就是不會自動激活。所以最終效果是,只要脈沖的那個CB中一有AEC,他就會自動激活一次然后又關(guān)閉自己。但是它后面的CCB會又刷出這個AEC實體。到最就成了一個自定義延遲的脈沖。所以現(xiàn)在只要開啟這個RCB就可以了,然后給脈沖的CB輸入很短一tick的紅石信號,如下圖:
這樣子這個自定義脈沖就完成了。之后如果大家要改變速度的話,就直接調(diào)節(jié)刷出AEC的那條指令中的{Age}。調(diào)成越小延遲就越大。有些玩家會問有什么要給開始的CB一個很短的的輸入,而不能直接按按鈕。這是因為如果脈沖速度很快的話,直接按按鈕會導(dǎo)致那個CB強行卡在激活狀態(tài),從而導(dǎo)致那個CB失效。所以我們必須要給它一個很短tick的紅石輸入。之后要關(guān)閉這個脈沖的話直接停止激活那個RCB就行了。當(dāng)然不光只是只能激活一個CB,可以同時激活好幾個,比如這里本人同時激活了5個CB,執(zhí)行從/say 1到/say 5:
要同時多個CB的話,只需要把刷出AEC的CCB放在最后面就可以了。然后把坐標(biāo)改成第一個CB就行。
支持( 0 ) 蓋樓(回復(fù))
查看所有0條評論>>