[樂游網導讀]我的世界里面命令方塊是個非常強大的工具,玩家可以通過命令方塊來實現很多功能,這也是游戲最大樂趣所在,不過想要弄懂命令方塊還需要一些代碼知識。
我的世界里面命令方塊是個非常強大的工具,玩家可以通過命令方塊來實現很多功能,這也是游戲最大樂趣所在,不過想要弄懂命令方塊還需要一些代碼知識,下面是爆破系統原理實現方法詳解。
爆破系統原理詳解
這是主要處理部分,命令方塊比較多,將給大家詳細講解。(將以羊毛顏色命名命令方塊)
前端輸入區
主要目的:探測玩家是否有安放C4的動作,并輸入信號。
首先一個命令方塊脈沖(←點擊“脈沖”進入教程)連接藍色。
藍色:
/testfor @p[388,8,381,r=0] {SelectedItemSlot:4,Inventory:[{Slot:4b,id:"minecraft:firework_charge",tag:{display:{Name:"C4"}}}]}
命令講解:探測某方位(地圖中紅色地毯處,也就是C4安放點)那個方塊位置的最近玩家、且手里拿著在5號物品欄(模仿背包中的C4為止)的名為C4的煙火之星。
若探測是,則輸出黃色
黃色:在綠色放置一個紅石塊
綠色開啟脈沖,激活安包區
主要目的:顯示安包時間、刷出實體C4
綠色下面:
/xp 8l @p
命令講解:給予最近(因為前面已經探測到了最近玩家持有C4,不用增加判據)玩家8級經驗。
脈沖長度5刻,模擬大概1秒
白色:
/xp -1l @p
命令講解:(每秒)減少最近玩家1級經驗。
于是制作了一個經驗條顯示器。
灰色組:
/effect @p 2 2 255 true
命令講解:(每秒)給予玩家長度2秒,等級255(無法移動)并隱藏顆粒物的緩慢效果。
/testfor @p[l=0]
命令講解:探測玩家等級0,若是則輸出。
深灰組:
/summon Item 388 8 381 {Item:{id:firework_charge,Count:1},PickupDelay:1000000000,Age:-32768}
命令講解:在下包處(紅色地毯處)生成一個無法撿起的煙火之星。(無法撿起物品的教程)
/clear @p firework_charge 0 1 {display:{Name:"C4"}}
命令講解:清除玩家物品欄里的C4
在“前端輸入區”紅色處防止一個紅石塊,一個命令方塊把紅色羊毛設為空氣,且激活:
/scoreboard players set @e[type=Item,c=-1] firework 1
命令講解:給最近物品的firework計分板分數設為1。
首先我們需要一個實體計分板firework來探測:
/scoreboard objectives add firework dummy firework
這樣做的主要目的是execute無法直接添加NBT標簽,只能通過這樣增加判據。
黑色組:
開啟爆炸計時區、拆彈區、關閉安包區。
爆炸計時區
主要目的:顯示爆炸倒計時、爆炸特效及重置。
當紅色下面得到紅石塊輸入后,激活三個命令方塊:
按照先后信號順序實現上下后左右
所以下面是:
/scoreboard objectives add C4DetonatingTime dummy C4DetonatingTime
命令講解:創建名為“C4引爆時間”的計分板。
接著左右:
/scoreboard objectives setdisplay sidebar C4DetonatingTime
命令講解:把這個計分板設置到側邊欄。
/scoreboard players set @a C4DetonatingTime 30
命令講解:分數設為30(模擬30秒)
接著仍然也是激活一個5刻(長度1秒)的脈沖,連接黃色:
/scoreboard players remove @a C4DetonatingTime 1
命令講解:(每秒)給這個計分板減1.
也連接藍色:
/testfor @a[score_C4DetonatingTime=0]
命令講解:探測全部玩家分數0,若是,則輸出信號
綠色組(負責爆炸特效):
/execute @e[type=Item,score_firework_min=1] ~ ~ ~ kill @e[type=!FallingSand,r=10]
命令講解:殺死所有在firework分數為1的物品周圍10個方塊單位的實體(除了掉落沙是因為周圍有一個命令方塊脈沖,同時也清除了C4)
/playsound ambient.weather.thunder @a ~ ~ ~ 1 1 1
命令講解:給所有人播放打雷的音效。
/execute @e[type=Item,score_firework_min=1] ~ ~ ~ /particle largeexplode ~ ~ ~ 10 10 10 0.001 2000
命令講解:在firework分數為1的物品處生成一個范圍10,時間0.001,顆粒數量2000的大型煙霧
/scoreboard objectives remove C4DetonatingTime
命令講解:刪除倒計時計分板。
棕色(負責重置):
關閉爆炸倒計時、關閉拆包探測、關閉拆包倒計時、重置經驗(若拆包失敗及時清除倒計時)。
紫色:在拆包區另外講解。
拆包區
主要負責拆包倒計時、重置。
首先我們來看一下警匪判據:
/scoreboard objectives add ispolice dummy
命令講解:創建一個判斷警匪的計分板。
若選擇警察:
/scoreboard players set @p ispolice 1
則設為1
若選擇土匪:
/scoreboard players set @p ispolice 0
/give @p firework_charge 1 0 {slot:4b,display:{Name:"C4"}}
設為0,并且給個C4。
所以若拆包,就探測這個人是否為警察。
拆包探測區:
紅色:
/execute @e[type=Item,score_firework_min=1] ~ ~ ~ execute @p[score_ispolice_min=1,r=0] ~ ~ ~ playsound random.successful_hit @p[sore_ispolice_min=1] ~ ~ ~ 1 1 1
命令講解:探測firework為1的物品(C4)接觸到警察就播放ding的音效,并輸出黃色
黃色:激活拆包倒計時
/xp 8l @p[score_ispolice_min=1]
給警察8級經驗
倒計時區:
激活5刻(長度1秒)脈沖。激活藍色組:
/xp -1l @p[score_ispolice_min=1]
命令講解:(每秒)減去警察1級經驗
/effect @p[score_ispolice_min=1] 2 2 255 true
命令講解:(每秒)給予警察長度2秒,等級255(無法移動)并隱藏顆粒物的緩慢效果。
綠色:
/testfor @p[score_ispolice_min=1,l=0]
命令講解:探測警察等級0,若是,則輸出信號。
輸出棕色:
/scoreboard objectives remove C4DetonatingTime
命令講解:移除爆炸倒計時計分板
/kill @e[type=Item,score_firework_min=1]
命令講解:清除C4
并且關閉爆炸倒計時、關閉拆包探測、關閉拆包倒計時
最后兩個紫色一起講:
若C4爆炸,則
匪:
/tellraw @a[score_ispolice=0] {text:"Explosion C4 successfully!",color:red,bold:true}
警:
/tellraw @a@a[score_ispolice_min=1] {text:"C4 has exploded",color:gray,bold:true}
若拆包成功,則:
警:
/tellraw @a[score_ispolice_min=1] {text:"Demolition C4 successfully!",color:red,bold:true}
匪:
/tellraw @a[score_ispolice=0] {text:"C4 has been defused",color:gray,bold:true}
最后希望大家能從中增長下命令知識
熱門評論
最新評論