UU看書

第八十四章 bossbar-自定義BOSS欄 下

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

(此章節已於2022年7月22日重寫)

在上一個章節,我們建立了一個ID為minecraftserverowner,叫做『腐竹』的BOSS欄。這個BOSS欄是粉色的,分成20段,最大值為20。雖然看起來很厲害,但有一個問題——這個BOSS欄沒有實際用處。

所以在這一個章節,我們要讓這個BOSS欄發揮出實際的用處,使得服主的血量能夠實時反映到這個BOSS欄上。

既然要能夠實時反映,我們就要解決兩個問題:

①如何實時獲取到服主的血量

②如何將服主的血量儲存到BOSS欄的值中

首先來看第一個問題,這個問題其實很好解決,我們有兩種簡單的辦法:①使用NBT標籤,直接獲取②建立一個health準則的計分項,然後獲取服主在這個計分項上的值

第一個方法我們暫且沒有學過,但第二個你總該會吧?讓我們來試一試:

scoreboardobjectivesaddhealthhealth

這將會建立一個health準則的叫做health的計分項,然後你就不用管了,遊戲會自動把每個玩家的血量儲存到這個計分項上。讓我們來看一看遊戲弄得如何:

scoreboardobjectivessetdisplaysidebarhealth

這將會在右側邊欄顯示出health計分項,然後你會發現——怎麼空空如也?

其實遊戲僅僅會在玩家血量變化的時候記錄血量的值到計分板上,由於此時計分項才剛建立,還沒有任何一名玩家的血量發生變化,計分項自然就空空如也。你可以嘗試摔一次跤,正常情況下右邊就會正確顯示出你的血量。

計分項弄好後,我們就可以透過以下指令獲取到服主的血量:

scoreboardplayersgetFuzhuhealth

(其中,Fuzhu代表服主的遊戲名稱)

第一個問題就這樣解決了,但還有第二個問題:如何將服主的血量儲存到BOSS欄的值中

在這邊,我們就得使用execute儲存子命令的bossbar子命令,其格式如下:

storelt返回型別gtbossbarltIDgtvaluemax

ID引數,也就是要儲存到的BOSS欄的ID;『valuemax』引數,也就讓你選擇要將返回的結果儲存到該BOSS欄的值還是最大值中。在這邊我們當然是要儲存到值(value)中,也就是使用如下指令:

executestoreresultbossbarminecraftserverownervaluerunscoreboardplayersgetFuzhuhealth

上面的指令將會把『scoreboardplayersgetFuzhuhealth』返回的結果,也就是服主的血量,儲存到ID為『minecraftserverowner』的BOSS欄的值中,這樣子BOSS欄就可以顯示出服主當前的血量了!

我們只需要將這條指令放入一個一直重複執行的命令方塊中,就可以實現『服主的血量實時反映到這個BOSS欄』這樣的效果。

最後我留個作業,你感興趣的話可以嘗試實現實現。

作業內容:在本章內容的基礎上,利用所學知識,實現下面描述的效果

①如果服主不線上,隱藏BOSS欄,線上的情況下再顯示出來。

②服主周圍一定範圍內的玩家會看到『腐竹BOSS欄』,超出這個範圍的玩家則無法看到

③在服主自己的血量上限提升的情況下(比如有傷害吸收或生命提升的藥水效果),也要相應提升BOSS欄的最大值

其中,第三點要完美實現的話需要一定的NBT知識,如果你並不不瞭解,也可以用計分板做一個勉勉強強的效果出來。

這就是本章的全部內容。

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

新書推薦

醫毒雙絕,一睜眼竟然生了雙胎! 我玩了個假的MC? 全職高手之白風沐雪 吳小凡重生籃球生涯 我在全息遊戲中錦鯉出圈 什麼叫瀟灑型中鋒啊 又玩克蘇魯跑團網遊