我的世界1.9版本中CB脈沖如何制作的呢?需要什么指令來(lái)完成呢?下面九游小編為大家?guī)?lái)詳細(xì)介紹。
首先這種設(shè)計(jì)的原理是使用1.9最新的AEC實(shí)體。有些人可能會(huì)問(wèn)什么是AEC,AEC就是1.9中l(wèi)ingering藥水扔出去后在地面產(chǎn)生的一個(gè)藥水覆蓋區(qū)域。
它時(shí)間一到后會(huì)自己刪除自己,所以不需要任何清空系統(tǒng)。AEC含有一個(gè){Age},它會(huì)以每tick +1的速度上升,所以這個(gè)機(jī)器的核心就是使用{Age}來(lái)記時(shí)。這個(gè)系統(tǒng)不需要任何積分板變量,只需要積分板的tag即可完成。
首先我們需要做準(zhǔn)備工作,完成脈沖需要激活的系統(tǒng)。這里本人直接使用/say 1這條指令。將/say 1輸入到一個(gè)普通CB中,然后在其后面放一個(gè)Chain Command Block,如下圖:
注意,后面的Chain CB要被調(diào)成Always Active,這樣子它就可以無(wú)限紅石而自己激活。之后這個(gè)CCB內(nèi)的指令是在它后面的CB位置內(nèi)刷出一個(gè)AEC。這個(gè)很簡(jiǎn)單,指令格式是:
/summon AreaEffectCloud
{CustomName:"Delay",Tags:["DelayStart"],Age:-3}
復(fù)制代碼
這里的xyz大家自己填寫(xiě),比如如果這個(gè)CCB在往它后面的ICB的x+1的地方,那么坐標(biāo)就是~-1 ~ ~ 。由于本人不知大家再往什么方位建造,所以無(wú)法完善指令中xyz坐標(biāo)。
所以如果每次激活這個(gè)機(jī)器,第一個(gè)CB就會(huì)執(zhí)行“/say 1”,然后第二個(gè)CCB就會(huì)在第一個(gè)CB的位置刷出一個(gè)AEC。
這個(gè)AEC就是那個(gè)CB的定時(shí)器。大家看見(jiàn)本人這里的Age寫(xiě)的是-3,但是大家可以寫(xiě)任何一個(gè)數(shù)字都沒(méi)關(guān)系。數(shù)字越小(比如-100)延遲的時(shí)間就越長(zhǎng)。效果圖如下:
大家看見(jiàn)第一個(gè)CB成功執(zhí)行了/say 1,然后后面的CCB成功的在第一個(gè)CB那里刷出了一個(gè)AEC(因?yàn)橛泻谏w粒效果)。
在刷出AEC的指令中還有{Tags}這一項(xiàng),這個(gè)是來(lái)將刷出的AEC自動(dòng)加入到名叫“DelayStart”的這個(gè)積分板tag中。由于積分板的tag系統(tǒng)不需要像objective那樣一開(kāi)始就要定義,所以這個(gè){Tags}不需要任何積分板的準(zhǔn)備工作。
之后我們要做的就是,每次這個(gè)AEC的{Age}變成-1的時(shí)候,我們就要重新并且自動(dòng)的激活一下第一個(gè)CB,之后第一個(gè)CB又會(huì)輸出1,然后第二個(gè)CB又會(huì)刷出一個(gè)AEC,然后無(wú)限循環(huán)下去。
所以我們需要另外一個(gè)系統(tǒng)來(lái)完成這個(gè)效果。首先我們需要一個(gè)Repeating CB,里面輸入以下指令:
/scoreboard players tag @e[tag=DelayStart,type=AreaEffectCloud,name=Delay] add DelayDone
{Age:-1}
復(fù)制代碼
這條指令的意思是,將所有Age是-1,并且名字叫“Delay”而且在“DelayStart”這個(gè)tag內(nèi)的AEC,加入到一個(gè)叫“DelayDone”的積分板tag中。
由于剛才刷出AEC指令中的項(xiàng)目都符合以上選擇器的項(xiàng)目,所以這條指令就會(huì)不停地探測(cè)剛才刷出的AEC,然后它的Age一到-1就會(huì)給它加上“DelayDone”這個(gè)tag。之后才是真正的循環(huán)系統(tǒng)。在Repeat CB后面再放2個(gè)Chain CB,如下圖:
之后在中間的那個(gè)CCB中輸入:
/execute @e[tag=DelayDone,type=AreaEffectCloud,name=Delay] ~ ~ ~ /blockdata ~ ~ ~
{auto:1b}
復(fù)制代碼
這條指令的意思就是將剛才已經(jīng)添加到“DelayDone”的AEC實(shí)體的所在位置的CB調(diào)成{auto:1b}。這個(gè)意思是CB自己自動(dòng)激活。然后在最后一個(gè)CCB中輸入:
/execute @e[tag=DelayDone,type=AreaEffectCloud,name=Delay] ~ ~ ~ /blockdata ~ ~ ~
{auto:0b}
復(fù)制代碼
這條指令和剛才一樣,只不過(guò)是重新把那個(gè)CB調(diào)成了{(lán)auto:0b},也就是不會(huì)自動(dòng)激活。所以最終效果是,只要脈沖的那個(gè)CB中一有AEC,他就會(huì)自動(dòng)激活一次然后又關(guān)閉自己。但是它后面的CCB會(huì)又刷出這個(gè)AEC實(shí)體。到最就成了一個(gè)自定義延遲的脈沖。所以現(xiàn)在只要開(kāi)啟這個(gè)RCB就可以了,然后給脈沖的CB輸入很短一tick的紅石信號(hào),如下圖:
這樣子這個(gè)自定義脈沖就完成了。之后如果大家要改變速度的話,就直接調(diào)節(jié)刷出AEC的那條指令中的{Age}。調(diào)成越小延遲就越大。有些玩家會(huì)問(wèn)有什么要給開(kāi)始的CB一個(gè)很短的的輸入,而不能直接按按鈕。
這是因?yàn)槿绻}沖速度很快的話,直接按按鈕會(huì)導(dǎo)致那個(gè)CB強(qiáng)行卡在激活狀態(tài),從而導(dǎo)致那個(gè)CB失效。所以我們必須要給它一個(gè)很短tick的紅石輸入。
之后要關(guān)閉這個(gè)脈沖的話直接停止激活那個(gè)RCB就行了。當(dāng)然不光只是只能激活一個(gè)CB,可以同時(shí)激活好幾個(gè),比如這里本人同時(shí)激活了5個(gè)CB,執(zhí)行從/say 1到/say 5:
要同時(shí)多個(gè)CB的話,只需要把刷出AEC的CCB放在最后面就可以了。然后把坐標(biāo)改成第一個(gè)CB就行。
如轉(zhuǎn)載涉及版權(quán)等問(wèn)題,請(qǐng)作者與我司聯(lián)系,我司將在第一時(shí)間刪除或支付稿酬。
全部評(píng)論