跑跑車首頁

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

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

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

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

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

沒錯(cuò)……其實(shí)就是個(gè)苦力活兒,因?yàn)椴煌牡谰叩睦鋮s時(shí)間不一樣,所以要單獨(dú)計(jì)算時(shí)間。

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

箭是其中的一個(gè)例子,其實(shí)基本上所有的道具都有類似的方法來制作冷卻補(bǔ)給。

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

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

因?yàn)橛械牡谰呤侵鲃?dòng)道具,需要你去“使用”它;而有的道具則是投擲型(按Q使用之類的),還有的是利用副手的位置等等

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

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

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

icb前綴代表是ICB, Impulse Command Block

rcb前綴代表是RCB, Repeating Command Block

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

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

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用的冷卻時(shí)間記分板

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

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

復(fù)制代碼

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

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

然后看下一條:

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

復(fù)制代碼

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

接下來就是倒計(jì)時(shí)部分

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的時(shí)候,會(huì)自動(dòng)減1——所以,最后的數(shù)字會(huì)停留在-1

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

于是我們可以簡(jiǎn)單算出來,在倒計(jì)時(shí)到0的時(shí)候替換成3,在倒計(jì)時(shí)到200的時(shí)候替換成2,400的時(shí)候替換成1

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

那么問題來了,如果這個(gè)時(shí)候選中這個(gè)槽位使用弓,會(huì)怎么樣?

很明顯,冷卻加10秒√

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

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

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

簡(jiǎn)單來說,就是前面的指令*8

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


玩家評(píng)論
我要點(diǎn)評(píng)

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

已有 0 位玩家參與點(diǎn)評(píng)
下載排行