UU看書

第五十五章 effect-牛頓哭了

天才一秒記住【UU看書】地址:www.uukanshu.co

如果你現在要自定義一個殭屍小BOSS,你會怎麼做?

使用NBT是最好的方式。但是如果是要在基岩版裡面做呢?況且你現在也不會使用NBT,也就看得懂的水平罷了。

在這種情況下,我們就需要使用多個指令來達成目的,比方說可以使用replaceitem(item)指令來給殭屍上裝備。

但血量和防禦力該怎麼修改?

其實不難修改,我們只需要使用一個特別的東西:狀態效果

狀態效果(StatusEffect)在Minecraft中非常有用,甚至可以提高生物的血量上限和防禦力。我們可以使用指令effect來給生物新增、清除狀態效果:

effect

作用:給一或多個實體新增或移除狀態效果。

需要許可權等級:Java2,基岩1

需要作弊:是

格式:

Java113更新之前和基岩版:

effectlt目標選擇器gtclear——清除目標所擁有的所有狀態效果。

effectlt目標選擇器gtlt狀態效果IDgtlt持續時間:秒gtlt強度等級gtlt是否隱藏粒子和圖示:布林值gt——給予目標指定的狀態效果。

Java113更新後:

effectclearlt目標選擇器gt狀態效果ID——清除目標所擁有的所有狀態效果,或只清除指定的狀態效果

effectgivelt目標選擇器gtlt狀態效果IDgtlt秒數gtlt強度等級gtlt是否隱藏粒子和圖示:布林值gt——給予目標指定的狀態效果。

格式總體來說還是十分簡單的。現在讓我們來試試給這隻殭屍新增一個狀態效果:

effectetypezombie,c1regeneration(Java113更新前和基岩版)

effectgiveetypezombie,limit1,sortnearestregeneration(Java113更新後)

執行上面的指令,遊戲將會給離執行地點最近的殭屍新增30秒的1級生命恢復效果(殭屍:危)。

如果我們想要將這個狀態效果移除,可以使用:

effectetypezombie,c1clear(Java113更新前和基岩版)

effectclearetypezombie,limit1,sortnearest(Java113更新後)

這兩條指令將會清除離執行地點最近的殭屍所擁有的所有狀態效果。但如果這個殭屍擁有其他我們不想清除的狀態效果怎麼辦?

在Java113及之後的版本中,我們可以執行effectclearetypezombie,limit1,sortnearestregeneration來清除生命恢復效果而不清除其他狀態效果。可是在Java113前的版本和基岩版中似乎沒有清除指定狀態效果的方法呀?

還是有的。

想一想,當目標已經有了指定的狀態效果,我們再新增一個狀態效果上去會發生什麼?

再想一想,當兩個名稱、型別一樣的檔案相遇的時候,計算機會給你提示什麼?

想到了沒有?沒錯,只有兩種可能性:覆蓋和保留原來的狀態效果

而Minecraft選擇了什麼呢?兩者均有。當目標具有相同的狀態效果時,遊戲將會根據以下情況選擇是保留還是覆蓋:

①新狀態效果持續時間比源狀態效果要短,且持續時間不等於0,保留原來的狀態效果

②新狀態效果持續時間比源狀態效果要長或相等,覆蓋原來的狀態效果

③新狀態效果持續時間為0,移除原來的狀態效果(實際上也是覆蓋)。

發現了沒有?我們可以透過新增一個持續時間為0的狀態效果來移除指定的狀態效果:

effectetypezombie,c1regeneration0

這樣子就成功保住了那隻殭屍的命。而且,這個方法在Java113更新後仍然可用。

狀態效果的持續時間最大為1000000秒(11574天),如果指定更大的值將會被視為1000000秒。預設的持續時間是30秒,即半分鐘。(注,在基岩版116200版本之前,持續時間最大為2147483647,但超過2040109465秒的話就沒有效果了)

持續時間的單位一般是秒,但有三個狀態效果的值例外:瞬間傷害、瞬間治療和飽和。它們三所使用的單位是遊戲刻,預設的持續時間也被改為了1遊戲刻。畢竟是“瞬間”嘛,一“瞬間”持續太長時間就不正常了。

現在可以嘗試給我們的殭屍BOSS加血量上限了:

effectetypezombie,tagbosshealthboost1000000(Java113前和基岩版)

effectgiveetypezombie,tagbosshealthboost1000000(Java113更新後)

healthboost是“生命提升”效果,可以提升生命最大值。上面的指令將會為我們的殭屍boss增加4點生命值上限,持續1000000秒。

對於一個Boss來說,24點血也太少了。因此我們要提高生命提升的等級。生命提升效果能夠增加的最大生命值等於強度等級乘4的積。作為一個小型boss,100點血就足夠了,也就是說我們需要給殭屍新增20級的生命提升:

effectetypezombie,tagbosshealthboost1000000,19(Java113前和基岩版)

effectgiveetypezombie,tagbosshealthboost1000000,19(Java113更新後)

(注:上面的逗號僅用於區分兩個引數之用,實際在遊戲中無需輸入逗號)

你肯定會疑惑:不是新增20級嗎,怎麼是19級?

其實這就是新增20級。只不過這個“強度等級”引數有些特別,它的值範圍是0255。輸入0相當於1級,輸入1相當於2級輸入255相當於256級。

明白了吧?

現在我們成功為殭屍提高了生命值上限。但是狀態效果是有粒子的,到時候玩家過來打這個boss,發現這個boss有冒出粒子,不就露餡了麼?

解決辦法很簡單。看見那個“是否隱藏粒子和圖示”引數了沒?預設它是false,如果將它改為true,遊戲將會隱藏該狀態效果的粒子,在Java版甚至還會把圖示也給隱藏了。

現在你學會effect了沒?趕緊去遊戲中嘗試一下吧!

(注:在Minecraft中,狀態效果持續時間超過1638秒的話,效果的持續時間將顯示為。在Java版中,計時仍然會照常進行。)

(你知道嗎:在Java版中,當玩家擁有超過128級的跳躍效果時,玩家會因為特性而無法跳躍!)

effect歷史:

Java

15——加入了effect

161——加入了clear引數

18——加入了“是否隱藏粒子和圖示”引數

113——更改了effect的語法

1152——較強效果覆蓋較弱效果時,較弱效果只是被隱藏了。

攜帶版和基岩版

攜帶版

105——加入了effect

基岩版

116200——現在持續時間上限和Java版一樣為1000000秒了。

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

全民遠征:副職也能帶贏全人類 傳奇幽影 惡魔系統之坑坑更有愛 訓練嗎朋友,玩命的那種 方舟日記 林夕煜宸妖夫在上免費閱讀全文 無限入侵,一人一刀滅一界