第一百零七章 如何獲取你在Minecraft中的頭
這章我們來討論些可怕的東西。
你是否想過一個問題:如何在Minecraft中獲取你的頭?
答案是肯定的,你甚至可以把它拿在手上,然后.......
掛在墻上(好滑稽啊啊啊啊?。。?p> ?。ㄊ聦嵣险娴挠袀€JAVA服務(wù)器這么做了)
問題來了,怎么獲取你的頭呢?
這個時候就要用到頭顱這個物品。
你應(yīng)該知道,正常頭顱的皮膚是Steve(史蒂夫)的頭,也有骷髏、僵尸等怪物的頭。
但你知道嗎?你可以改變頭顱的皮膚——變成其他玩家的。
頭顱具有一個數(shù)據(jù)類型為文本的SkullOwner標(biāo)簽,你可以在這個標(biāo)簽內(nèi)寫上一個玩家的名字,然后就可以獲取到這名玩家的頭。比如我們籽岷大大的Minecraft正版用戶名是Zi_Min,你就可以:
/give @s minecraft:skull 1 3 {SkullOwner:“Zi_Min“}
\\Java1.13以下版本\\
/give @s minecraft:player_head{SkullOwner:“Zi_Min“}
\\Java1.13及以上版本\\
?。ń找煌鈬「缭贛inecraft獲得了籽岷的頭,那么它是怎么.......)
需要注意的是,上述方法僅僅適用于下面兩種情況:
?、倌闶峭ㄟ^離線賬戶來游玩Minecraft的
②你是通過正版賬戶來游玩Minecraft的
為什么呢?因為游戲之所以能夠獲取到對應(yīng)玩家的頭顱,是因為游戲向Mojang官方服務(wù)器發(fā)送了請求,然后官方服務(wù)器再把這個皮膚數(shù)據(jù)傳送回來,其過程有些類似于玩家登錄服務(wù)器游玩。因此,當(dāng)你在某離線或正版Java服務(wù)器中運行上述指令,腐竹就有可能在某一天無聊翻看服務(wù)器根目錄的usercache.json文件時驚喜的發(fā)現(xiàn):
{“name“:“Zi_Min“,“uuid“:“1aa95b71-48fc-4636-962b-e95de5071da6“,“expiresOn“:“202x-xx-xx xx:xx:xx +0800“}
?。ǎ???籽岷來玩我服務(wù)器了?)
.......
等等,你在運行上述指令后,只是獲取到普通的玩家頭顱,或者說獲取到了看起來不是籽岷皮膚的頭顱?
如果你僅僅是獲取到普通的玩家頭顱,那大概率是你的問題:
①你寫錯了
?、谀憔W(wǎng)斷了
?、勰阌玫幕鶐r版
?、苣阍趩稳擞螒蛑袊L試,且沒有打開『對局域網(wǎng)開放』
⑤你的電腦或服務(wù)器無法連接到官方服務(wù)器
?、弈汶娔X的防火墻阻止了你的Minecraft訪問官方服務(wù)器
但如果你獲取到了看起來不是籽岷皮膚的頭顱,那就肯定是這個問題:
您正在使用外置登錄游玩Minecraft
什么是『外置登錄』?
我們知道,Minecraft的正版玩家能夠登錄并顯示皮膚,是因為Minecraft游戲本體向官方服務(wù)器發(fā)送了玩家的登錄信息,服務(wù)器經(jīng)過驗證無誤后再返回皮膚等信息,最終你在游戲中的角色就有了皮膚。但對于一個沒有正版賬號的Minecraft玩家來說,發(fā)送一個虛假的登錄信息給官方服務(wù)器肯定是不行的。那該如何讓盜版玩家也能夠享受上皮膚的好處呢?
要解決這個問題很簡單。盜版玩家之所以無法顯示皮膚,是因為將『虛假的登錄信息』發(fā)送給了『正版服務(wù)器』。如果我們自己搭建一個盜版服務(wù)器,然后再讓Minecraft將這個『對于盜版服務(wù)器來說是正確的但對正版服務(wù)器來說是虛假的登錄信息』發(fā)送給『我們自己的盜版服務(wù)器』,這樣子負(fù)負(fù)得正,我們發(fā)送的信息也就成為了『正確的登錄信息』,Minecraft也就可以獲取到『盜版服務(wù)器』傳來的皮膚,最終在游戲內(nèi)顯示出來。
這就是『外置登錄』的原理。在真正的『外置登錄』中,各大皮膚站就是『盜版服務(wù)器』,我們在各大皮膚站注冊的賬號就是『對于盜版服務(wù)器來說是正確的登錄信息』。當(dāng)我們在諸如HMCL、PCL2之類的Minecraft Java第三方啟動器中輸入『對于盜版服務(wù)器來說是正確的登錄信息』和該信息對應(yīng)的『盜版服務(wù)器』,再讓啟動器以『外置登錄』的方式啟動時,Minecraft就會嘗試發(fā)送『對于盜版服務(wù)器來說是正確的登錄信息』給『正版服務(wù)器』。
(等等,這樣子的話哪里會驗證成功???)
別急,好戲還在后頭。
當(dāng)啟動器檢測到Minecraft正將『對于盜版服務(wù)器來說是正確的登錄信息』發(fā)送給『正版服務(wù)器』時,啟動器會以迅雷不及掩耳之勢,在消息還未發(fā)送到正版服務(wù)器時,就一把奪過Minecraft與『正版服務(wù)器』的通信,把這個通信從『正版服務(wù)器』上拔下來,插到指定的『盜版服務(wù)器』上面去。此時『對于盜版服務(wù)器來說是正確的登錄信息』就不會發(fā)送給『正版服務(wù)器』,而是發(fā)送到對應(yīng)的『盜版服務(wù)器』?!罕I版服務(wù)器』在收到登錄信息后,驗證通過,發(fā)送皮膚等信息給Minecraft,Minecraft此時就會認(rèn)為該登錄信息正確,允許玩家登錄游戲并顯示皮膚。
上述過程十分完美,但由此會產(chǎn)生出一個問題:
當(dāng)我們通過指令獲取指定玩家的頭顱時,游戲本應(yīng)該會發(fā)送請求給『正版服務(wù)器』,但啟動器這么一操作就使得信息往『盜版服務(wù)器』那邊發(fā),最終導(dǎo)致我們獲取到『盜版服務(wù)器』上對應(yīng)玩家的頭顱,而不是我們想要的正版玩家頭顱。
舉個例子。假設(shè)你想要獲取到籽岷的頭顱,這時候你就會嘗試通過上述指令獲取。如果你用的是離線或正版登錄,那沒什么,游戲可以正常從官方服務(wù)器那邊拿到正確的頭顱。但如果你是在LittleSkin(一個皮膚站)上注冊了一個賬號,然后通過外置登錄游玩Minecraft,此時你再嘗試獲取籽岷的頭顱,就不會獲取到正版玩家『Zi_Min』也就是籽岷的頭顱,而是LittleSkin這個皮膚站上『Zi_Min』這個玩家的頭顱。如果這名玩家也用的是籽岷皮膚那也沒什么,但如果ta用的是其他的皮膚,你就可能會疑惑『籽岷怎么改皮膚了?』。
這就是為什么用外置登錄會獲取到錯誤頭顱的根本原因。
另外,網(wǎng)易我的世界雖然不是外置登錄,但也和外置登錄很類似——網(wǎng)易修改了Minecraft Java的源代碼,使得皮膚請求會往網(wǎng)易服務(wù)器那邊發(fā)。因此如果你在網(wǎng)易我的世界中嘗試獲取籽岷的頭,實際上也無法獲取到正確的頭,僅僅只能得到網(wǎng)易服務(wù)器上『Zi_Min』玩家的頭顱。
上面這些便是獲取到指定玩家頭顱的辦法。但本章還未結(jié)束,因為在這,Mojang埋了一個大大的彩蛋:
Mojang是個好心人,他給了我們一些特殊的頭顱。
這些頭顱大多數(shù)是動物的,但其中不乏一些特別神奇的頭顱。
沒錯,就是那個被玩梗玩到飛起的Herobrine!
?。ㄖ徊贿^這Herobrine的胡子好像被剃須刀刮掉了)
下面是名單:
MHF_Alex——Alex的頭
MHF_Blaze——烈焰人的頭
MHF_CaveSpider——毒蜘蛛的頭
MHF_Chicken——雞的頭
MHF_Cow——牛的頭
MHF_Creeper——苦力怕的頭(Creeper?)
MHF_Enderman——小黑的頭
MHF_Ghast——惡魂的頭
MHF_Golem——鐵傀儡的頭
MHF_Herobrine——吾王Herobrine的頭
MHF_LavaSlime——地獄史萊姆的頭(我忘記這怪物叫啥了)
MHF_MushroomCow——蘑菇牛的頭
MHF_Ocelot——豹貓的頭
MHF_Pig——豬的頭
MHF_PigZombie——豬人的頭
MHF_Sheep——羊的頭
MHF_Skeleton——小白的頭
MHF_Slime——史萊姆的頭
MHF_Spider-蜘蛛的頭
MHF_Squid——魷魚的頭
MHF_Steve——Steve的頭
MHF_Villager——被砍了鼻子的村民的頭(村————民————)
MHF_WSkeleton——凋零骷髏的頭
MHF_Zombie——僵尸的頭
?。ㄆ婀至耍縃erobrine的好兄弟Notch的頭去哪了?)
?。ㄆ鋵崼@取Notch的頭并不需要在前面添加上MHF,因為Notch本身就有MC帳戶)
但Mojang不止砍了動物以及玩家的頭,還饒有興趣地把目光放在了部分方塊上。
于是名單上又多了:
MHF_Cactus——縮水的仙人掌
MHF_Cake——小蛋糕
MHF_Chest——小箱子(并不能放東西)
MHF_CoconutB——棕色的椰子
MHF_CoconutG——綠色的椰子
MHF_Melon——在貧瘠土地上生長的西瓜
MHF_OakLog——在貧瘠土地上生長的木頭
MHF_Present1——綠色的.......禮包?
MHF_Present2——紅色的........禮包?
MHF_Pumpkin——在貧瘠土地上生長的南瓜
MHF_TNT——被做成標(biāo)本的TNT
MHF_TNT2——被做成標(biāo)本的TNT(另一個材質(zhì))
Mojang不止把心思放在了動物和方塊上(還有一些彩蛋),還把目光投向了地圖制作者。
于是他們給地圖制作者添加了以下幾個比較有用的頭顱:
MHF_ArrowUp——朝上的箭頭
MHF_ArrowDown——朝下的箭頭
MHF_ArrowLeft——朝左的箭頭
MHF_ArrowRight——朝右的箭頭
MHF_Exclamation——一個感嘆號
MHF_Question——一個問號
這一章到此為.......奇怪了這存檔里所有樹的樹葉都被偷了?
這到廣
......
......
......
......
附錄:頭顱歷史
Java
1.4.2——加入了頭顱。此時雖然可以獲取自定義頭顱,但只能通過修改游戲的NBT文件才能實現(xiàn)。
1.7.2——現(xiàn)在可通過指令獲取到自定義頭顱。
1.8——骷髏、僵尸、苦力怕和凋靈骷髏的頭顱可通過相應(yīng)生物被閃電苦力怕炸死來獲得。
1.8.4——自定義玩家頭顱的來源現(xiàn)在只能是官方服務(wù)器。
1.9——加入了龍首。
1.13——頭顱的命名空間ID被改變。
攜帶版/基巖版
0.12.1——加入了頭顱
1.0.0——加入了龍首