第一百一十三章 實(shí)體的通用標(biāo)簽 下
在Java版中,怎樣制作出一個(gè)真正的浮空字?
這就要聯(lián)系到Minecraft中有哪些東西可以產(chǎn)生浮空字了。
在本書第二章介紹命令方塊時(shí),有提到雖然命令方塊可以產(chǎn)生浮空字,但你并不指望能拿這東西做浮空字。
因?yàn)橐韵聝蓚€(gè)原因:
1.浮空字是一直顯示的,但是命令方塊的浮空字只能在你指向那個(gè)命令方塊時(shí)才能出現(xiàn)。
2.浮空字就是浮空字,沒有顯示出額外的東西。但是命令方塊它本身就是一個(gè)方塊,無法變成透明的(除非你用了材質(zhì)包)。
那是否有其他方法?
當(dāng)你給一個(gè)實(shí)體命名,然后指針指向這實(shí)體,就會看到實(shí)體的名字以浮空字的形式顯示了出來。
但這個(gè)浮空字仍然不能拿來用,因?yàn)樗荒茉谥羔樦赶驅(qū)嶓w的時(shí)候才出現(xiàn)。
那么真的就沒有辦法了嗎?
別忘記了,玩家也是實(shí)體,名字也是浮空的,但它就是不會消失。
這是為什么?
就是因?yàn)椤篊ustomNameVisible』這個(gè)標(biāo)簽。
CustomNameVisible標(biāo)簽的數(shù)據(jù)類型是Byte字節(jié)型(整型中的一種),值是一個(gè)布爾值。當(dāng)為0(false)的時(shí)候,這個(gè)實(shí)體的自定義名字就只能在你指向這個(gè)實(shí)體的時(shí)候出現(xiàn);當(dāng)為1(true)的時(shí)候,這個(gè)名字就會一直顯示了!
所以說,只要生成一個(gè)CustomNameVisible為1的盔甲架,就可以制作浮空字了?比如:
/summon armor_stand ~~~{CustomNameVisible:1}
WOW,生成出來了一個(gè)頭上懸浮著『盔甲架』的盔甲架!
沒錯(cuò)!浮空字就是這么制作的!
但好像還少了些什么......如何自定義浮空字的內(nèi)容呢?這個(gè)浮空字為什么會掉下來呢?盔甲架怎么隱藏呢?況且這個(gè)浮空字打幾下就沒了。
為了解決這三個(gè)問題,我們需要繼續(xù)了解實(shí)體的通用NBT。
自定義浮空字內(nèi)容很簡單,我們有兩種辦法:
?、偈褂妹平o盔甲架命名
②使用NBT
實(shí)體NBT中的CustomName標(biāo)簽的數(shù)據(jù)類型是文本『String字符串』,用于儲存這個(gè)實(shí)體的自定義名稱。比如:
/summon armor_stand ~~~{CustomName:“ExplodingTNT“,CustomNameVisible:1}
\\適用于Java1.13以下版本\\
/summon armor_stand ~~~{CustomName:“\“ExplodingTNT\““,CustomNameVisible:1}
\\適用于Java1.13及以上版本\\
這就可以生成一個(gè)一直顯示著『ExplodingTNT』的盔甲架。需要注意,對于Java1.13及以上版本來說,CustomName的值需要使用JSON文本。
防止浮空字掉下來很簡單,把實(shí)體的『NoGravity』設(shè)置為1就行了嘛。
NoGravity標(biāo)簽的數(shù)據(jù)類型是Byte字節(jié)型,它控制著實(shí)體是否能夠運(yùn)動。如果為0(false),那么實(shí)體怎么奔放都可以。如果為1,那么Motion就會失效(雖然仍然在奔放),也就是這個(gè)實(shí)體它失去了速度。
用通俗易懂的語言來講,就是組成這個(gè)實(shí)體的原子,已經(jīng)完全沒有了能量。我們由此可以得出一個(gè)結(jié)論:
一個(gè)NoGravity為1的實(shí)體,它的溫度是絕對零度(滑稽)。
將這個(gè)實(shí)體的溫度降到絕對零度之后,我們就要開始對它的防御動手,讓它變成一個(gè)永遠(yuǎn)無法被生存、冒險(xiǎn)玩家擊敗的實(shí)體(創(chuàng)造模式玩家除外)。
關(guān)系到這個(gè)實(shí)體是否無敵的標(biāo)簽是Invulnerable(數(shù)據(jù)類型也是Byte字節(jié)型)。一般的實(shí)體Invulnerable為0,如果設(shè)為1,那么你就別想不使用作弊并在生存模式中去擊敗它了。
現(xiàn)在,我們這個(gè)浮空字基本上是完工......等等,我們還沒把盔甲架隱藏呢!
怎么使得一個(gè)實(shí)體隱藏呢?使用隱身藥水嗎?或是一個(gè)能夠使得實(shí)體隱形的NBT?
最好是有一個(gè)實(shí)體通用NBT標(biāo)簽?zāi)軌蛴凶寣?shí)體隱形的效果,可惜的是,并沒有。
但這不代表盔甲架沒有。讓我們回憶一下第九十六章番外的內(nèi)容:
『Invisible——如果指定這個(gè)標(biāo)簽的值為1,在指令執(zhí)行成功后如果你發(fā)現(xiàn)盔甲架似乎并沒有生成,并不是出了BUG,而是盔甲架處于隱形狀態(tài)(浮空字就是用這東西做出來的)』
唉,這不就有了嗎,讓我們試一試:
/summon armor_stand ~~~{Invisible:1,Invulnerable:1,NoGravity:1,CustomName:“\“ExplodingTNT\““,CustomNameVisible:1}
\\適用于Java1.13及以上版本\\
這會召喚一個(gè)『隱形的、無敵的、不會移動的、叫做「ExplodingTNT」的、一直顯示實(shí)體名稱的』盔甲架。沒錯(cuò)!這就是浮空字!
現(xiàn)在這個(gè)浮空字已經(jīng)真正浮空了。如果你有興趣去看它的NBT,就會發(fā)現(xiàn)其中有一個(gè)OnGround標(biāo)簽,其值為0b。
這個(gè)標(biāo)簽是干啥的呢?就是用來檢測實(shí)體有沒有接觸地面,接觸了為1(true),沒接觸為0(false)。
到這實(shí)體的通用標(biāo)簽已經(jīng)快完了,只剩下一點(diǎn)點(diǎn):
Silent——這個(gè)實(shí)體是否會發(fā)出聲音
Glowing——這個(gè)實(shí)體會不會發(fā)光
Tags——實(shí)體的記分板標(biāo)簽數(shù)據(jù)
HasVisualFire——實(shí)體是否看起來處于著火狀態(tài)
Silent標(biāo)簽的數(shù)據(jù)類型為Byte字節(jié)型,值為1則實(shí)體不會發(fā)出聲音,為0則會發(fā)出聲音。
Glowing標(biāo)簽數(shù)據(jù)類型也是Byte字節(jié)型,但它的作用看起來有點(diǎn)奇怪——實(shí)體會發(fā)光?
如果你不是一位JVAV玩家,那你一定知道Minecraft有一個(gè)叫作『光靈箭』的東西。當(dāng)光靈箭射中一個(gè)實(shí)體時(shí),那個(gè)實(shí)體就會發(fā)光一陣,而且隔著墻壁都可以看到。
實(shí)體為什么會發(fā)光呢?除了實(shí)體被附上了『發(fā)光』效果之外,就是這個(gè)Glowing標(biāo)簽在起作用。當(dāng)Glowing標(biāo)簽為1時(shí),實(shí)體就會發(fā)光,為0則不會。
HasVisualFire標(biāo)簽的數(shù)據(jù)類型也是Byte字節(jié)型,值為布爾值。當(dāng)它的值為1時(shí),實(shí)體就會“燃起來”,但不會真的受到傷害。
Tags標(biāo)簽的數(shù)據(jù)類型為文本列表(String字符串列表),用來儲存該實(shí)體所擁有的記分板標(biāo)簽。比如:
/summon armor_stand ~~~{Tags:[“A“,“B“]}
這將會生成一個(gè)帶有標(biāo)簽『A』和『B』的盔甲架。
本章到此為止。