第一百一十四章 死亡的玩家到底是不是個(gè)實(shí)體?
OK,在斷更了一周多之久后,作者我又回來(lái)啦!
首先先給正在參加高考(沒(méi)錯(cuò)今天高考,不會(huì)有人不知道吧?不會(huì)吧?)的各位送上一個(gè)祝福。
然后估計(jì)大家看了這么多章NBT后頭有些疼吧?那么接下來(lái)我們做一個(gè)中場(chǎng)休息,開(kāi)一個(gè)新的第十二卷:中場(chǎng)休息。
實(shí)際上作者比你們更頭疼,畢竟NBT這東西,五分靠記憶一分靠Minecraft Wiki。
那么剩下四分呢?全靠理解力!
接著就該進(jìn)入今天的正題了:死亡的玩家到底是不是個(gè)實(shí)體?
我們知道,一個(gè)游戲中的玩家,他和你一樣,有兩種形態(tài):活著和死了。
你死了,那就真死了,但就算你死了,起碼你還是一團(tuán)物質(zhì),有質(zhì)量。
那么MC里的玩家死了會(huì)變成什么呢?
現(xiàn)實(shí)中一個(gè)人是一坨物質(zhì),死了,也是一坨物質(zhì)。
MC里的玩家是一坨實(shí)體,死了,是不是也是一個(gè)實(shí)體呢?
為了了解這個(gè)問(wèn)題,并把“?”拉直成“!”(等等,你這是???),我們需要找到游戲的外部文件,然后.......
呃,其實(shí)不用這樣的,我們可以直接從目標(biāo)選擇器入手,因?yàn)橥ㄟ^(guò)目標(biāo)選擇器,可以鎖定目標(biāo)玩家。
@s、@r、@a、@p都是用來(lái)鎖定目標(biāo)玩家的,而其中的@a可以鎖定全部玩家。
接下來(lái)這個(gè)問(wèn)題就來(lái)了,這個(gè)鎖定全部玩家,是指鎖定全部活著的玩家,還是全部的玩家?
肯定是后者,不然為什么Mojang為什么是寫(xiě)“全部玩家”而不是寫(xiě)“全部活著的玩家”呢?
當(dāng)然過(guò)早下結(jié)論是不行的,還是得要實(shí)驗(yàn)的。
具體的實(shí)驗(yàn)過(guò)程(有興趣的可以自己做一做):
1.開(kāi)啟我親愛(ài)的基巖版
2.創(chuàng)建一個(gè)新的存檔
3.創(chuàng)建一個(gè)新的名為“測(cè)試”的計(jì)分項(xiàng),并把它顯示在側(cè)邊欄
4.獲得并放置一個(gè)一直重復(fù)執(zhí)行的命令方塊,并寫(xiě)上/scoreboard players add @a 測(cè)試 1
5.將模式調(diào)到生存
6.輸入/kill,同時(shí)觀察側(cè)邊欄的值有沒(méi)有停止增加
結(jié)果應(yīng)證了我們的猜想:@a包含死亡的玩家。
但這仍然無(wú)法回答我們的問(wèn)題:死亡的玩家到底是不是個(gè)實(shí)體?
為何呢?
因?yàn)锧a是“全部玩家”,而@e才是“全部實(shí)體”??!
如果@e包含死亡的玩家,那么死亡的玩家是實(shí)體,如果沒(méi)有,那就不是實(shí)體。
那么使用@e怎么才能變成類(lèi)似@a的效果呢?
很久以前就說(shuō)過(guò)了,是@e[type =players]
接著實(shí)驗(yàn)繼續(xù):
7.將模式再一次調(diào)回創(chuàng)造
8.將命令方塊內(nèi)的/scoreboard players add @a 測(cè)試 1改成/scoreboard players add @e[type =players]測(cè)試 1
9.再一次將模式調(diào)回生存
10.輸入/kill,同時(shí)觀察側(cè)邊欄的值有沒(méi)有停止增加
你猜結(jié)果怎么著?
當(dāng)死亡的那一刻,側(cè)邊欄的值就停止增加了!
這說(shuō)明了什么呢?
死亡狀態(tài)的玩家,他根本就不!是!一!個(gè)!實(shí)!體!
雖然你可以使用@a檢測(cè)到他,但你無(wú)法用@e[type =player]檢測(cè)到他!
但得出了這個(gè)結(jié)論,我們也就同時(shí)得出了另一個(gè)結(jié)論:
在Minecraft中,處于死亡狀態(tài)的生物他不是一個(gè)實(shí)體!
這就可以說(shuō)明為什么死亡的生物會(huì)雪~花~飄~飄~(北~風(fēng)~嘯~嘯~,天地~一片~蒼~?!┳兂梢粋€(gè)粒子效果然后消逝。
那么這個(gè)冷知識(shí)到底有什么用呢?
我們知道@a包括全部玩家,@e[type =players]包括除死亡玩家外的所有玩家,那么我們就可以得出一個(gè)公式:
@a -@e[type =player]=@die(@die指死亡玩家)
也就是說(shuō)可以用@a和@e[type =player]這兩個(gè)的差來(lái)檢測(cè)死亡玩家。
但如果要檢測(cè)單個(gè)玩家的死亡呢?
建議提出這種問(wèn)題的人重讀一下小學(xué),看看上面這個(gè)公式是什么運(yùn)算?
減法!
既然是減法,你當(dāng)然可以通過(guò)“兩個(gè)減數(shù)同時(shí)加上或減去相同的數(shù),差不變”的減法性質(zhì),來(lái)對(duì)@a和@e同時(shí)添加相同的額外條件,讓結(jié)果不變,而同時(shí)又實(shí)現(xiàn)別的功能,比如同時(shí)添加一個(gè)計(jì)分項(xiàng)值判定,就可以判斷單個(gè)玩家了是不是?這樣子,你就可以在基巖版做出一個(gè)死亡榜了!
而上面這段話也同時(shí)證明:雖然MC不歸牛頓管,但還是歸阿基米德管的嘛。
所以理科要學(xué)好啊,不然你連一個(gè)游戲都玩不好啊。
嘿,那位,別暫停了,繼續(xù)放。
一~剪寒梅~~傲立雪中~~
只為~伊人~飄~香~~~~
愛(ài)~我所愛(ài)~~無(wú)怨無(wú)悔~~
此情~長(zhǎng)留~心~間~~~~
........
完蛋被一剪梅洗腦了