跑跑車首頁

當(dāng)前位置:首頁攻略秘籍單機攻略 → 我的世界1.9命令方塊教程道具冷卻補給系統(tǒng)制作

我的世界1.9命令方塊教程道具冷卻補給系統(tǒng)制作

作者:佚名來源:MCBBS 發(fā)表時間:2016/2/18 10:11:23 評論(0)

小編為大家?guī)砹恕段业氖澜纭?.9命令方塊教程道具冷卻補給系統(tǒng)制作,這個東西非常得好,在pvp中和RPG類型的游戲地圖可以為玩家?guī)聿灰粯拥挠螒蚋惺埽信d趣的玩家都來看看吧。

這個系統(tǒng)的核心只有兩個字:窮舉

沒錯……其實就是個苦力活兒,因為不同的道具的冷卻時間不一樣,所以要單獨計算時間。

實現(xiàn)的功能就是,每種箭上限只有3支,當(dāng)使用了以后,每10秒補給1支。

箭是其中的一個例子,其實基本上所有的道具都有類似的方法來制作冷卻補給。

這里,主要給大家講講我的思路……我不知道有沒有其他人發(fā)過類似的,但我沒搜到,所以我按我自己的思路來做。

首先,要判斷使用了箭的方法,毫無疑問需要使用記分板,這是第一步,也是變化最多的一步,為什么這么說呢?

因為有的道具是主動道具,需要你去“使用”它;而有的道具則是投擲型(按Q使用之類的),還有的是利用副手的位置等等

在做補給之前,你需要判斷這個道具是如何使用的,例如我這里是,弓在副手,選中對應(yīng)的箭拉弓即可,所以我選擇了判斷弓的使用

在貼指令之前,貼一下文中可能用到的簡寫和前綴:

默認(rèn)不加前綴是CCB, Chain Command Block

icb前綴代表是ICB, Impulse Command Block

rcb前綴代表是RCB, Repeating Command Block

init前綴代表該指令只在激活OOC時執(zhí)行一次

指令的話,肯定是添加記分板了,這里會把用到的記分板寫出來

init:scoreboard objectives add bowUse stat.useItem.minecraft.bow 使用了弓

init:scoreboard objectives add arrowCoolDown1 dummy 屬性箭1冷卻

init:scoreboard players add @a arrowCoolDown1 0

復(fù)制代碼

bowUse是用于判斷玩家是否使用了弓(箭)

arrowCoolDown1是給屬性箭1用的冷卻時間記分板

當(dāng)玩家使用了弓、選擇了屬性箭1號并且冷卻時間不超過400刻(20秒)的時候,添加200刻(10秒)的冷卻時間

rcb:scoreboard players add @ascore_bowUse_min=1,score_arrowCoolDown1=400] arrowCoolDown1 200 {SelectedItemSlot:1}

復(fù)制代碼

在上圖可以看見,屬性箭1實際上位于2號快捷欄,在Inventory中,2號快捷欄的編號是1(0~8,以此類推)

注意到這里的“冷卻時間不超過400刻”,為什么要這么設(shè)定呢?這個問題放到后面一些解答。

然后看下一條:

scoreboard players reset @a[tag=archer,score_bowUse_min=1] bowUse

復(fù)制代碼

重置使用弓次數(shù)的記分板,這條沒什么好說吧?不過注意的是執(zhí)行順序問題,就是這個需要放在比較后面來執(zhí)行

接下來就是倒計時部分

scoreboard players remove @a[tag=archer,score_arrowCoolDown1_min=0] arrowCoolDown1 1

replaceitem entity @a[score_arrowCoolDown1_min=0,score_arrowCoolDown1=0] slot.hotbar.1 tipped_arrow 3 0 {相關(guān)NBT}

replaceitem entity @a[score_arrowCoolDown1_min=200,score_arrowCoolDown1=200] slot.hotbar.1 tipped_arrow 2 0 {相關(guān)NBT}

replaceitem entity @a[score_arrowCoolDown1_min=400,score_arrowCoolDown1=400] slot.hotbar.1 tipped_arrow 1 0 {相關(guān)NBT}

復(fù)制代碼

解釋一下每一條的意思,首先當(dāng)冷卻大于等于0的時候,會自動減1——所以,最后的數(shù)字會停留在-1

前面說了,每用一次該道具,冷卻時間+200刻(10秒),而每10秒需要補一次,上限3支;

于是我們可以簡單算出來,在倒計時到0的時候替換成3,在倒計時到200的時候替換成2,400的時候替換成1

超過400意味著什么?意味著此時這個槽位是空的,沒有那個道具

那么問題來了,如果這個時候選中這個槽位使用弓,會怎么樣?

很明顯,冷卻加10秒√

于是就需要設(shè)定,當(dāng)冷卻時間不超過400的時候使用弓,才能加冷卻時間

以上就是“一個道具”要用到的指令

……當(dāng)有多個道具的時候,就需要設(shè)定多個記分板(例如我這里有8種屬性箭,所以是arrowCoolDown1,2,3,……,8)

簡單來說,就是前面的指令*8

而我自己在寫的時候,因為個人的一些強迫癥,必須添加顏色黑科技以及防止扔道具誤操作這樣的系統(tǒng),所以最后寫出來的源指令就不短了,大概就是這個樣子。


玩家評論
我要點評

網(wǎng)名 注:您的評論需要經(jīng)過審核才會顯示出來。

已有 0 位玩家參與點評
下載排行