UU看書

第四章 目標選擇器

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

(本章寫作時作者使用的是Java1122、1171和基岩1170)

這裡有一隻牛。

我們要用指令鎖定這頭牛。

但怎麼鎖定呢?

你在命令方塊介面可能見到過這段話:

用“p”來代表最近的玩家

用“r”來代表隨機玩家

用“a”來代表全部玩家

用“e”來代表全部實體

用“s”來代表執行實體

(這段話在Java新版本被移除了)

這段話中所講的東西,就是指令中常見的一個引數型別:目標選擇器。

目標選擇器,顧名思義就是選擇目標,而目標就是Minecraft中的“實體”。不懂實體是什麼?MinecraftWiki對實體的定義是:『包括在Minecraft中所有動態的、移動中的物件』。簡單且不嚴謹地來說,實體指的是非方塊的東西,比如玩家、生物等都是,還有例如掉落的方塊、點燃的TNT也是實體。

目標選擇器的本質就是透過一系列的引數指定篩選的條件,然後遊戲根據給出的條件對所有實體進行篩選,進而得到指令執行的作用目標。透過目標選擇器,我們可以指定指令執行時所產生的效果會在哪些實體上奏效。比如我們一開始就提到的kill指令,這條指令就可以使用目標選擇器來選擇哪些實體會被殺死。

實際上我們也可以不用目標選擇器指定目標,反而使用玩家名稱或實體UUID(UUID是一串很長且隨機生成的字串,每個Minecraft實體都有一個唯一的UUID以便遊戲區分)。但這兩個東西,一方面效率低下,另一方面不能自動化。下面就是一個例子:

假設此時有一名玩家,其名稱叫做“JIE灬揮刀亂砍”(如有同名,純屬巧合),玩家UUID是“5409be4a63334912ab5b58265ccbfe3c“。如果他想要用指令給自己一個鑽石塊,還不用目標選擇器指定,就要這麼寫:

giveJIE灬揮刀亂砍commandblock

或者是這樣寫

give5409be4a63334912ab5b58265ccbfe3ccommandblock

使用目標選擇器,只需要:

givescommandblock

其中,s就代指了執行該指令的實體。

命令方塊中的介紹有點過於簡單,還是得具體介紹一下:

p——代指距離執行地點最近的玩家,包括死亡玩家,如果沒有執行地點,預設是主世界座標0,0,0的地方,一般來說這種情況只會在伺服器控制檯執行指令時出現。關於座標會在下一章講到。

s——代指執行指令者,不管執行指令者是否已經死亡。如果執行指令者不是個實體,比如是個命令方塊,那麼將會什麼也不會發生。

a——代指所有玩家,包括已經死亡的玩家

r——隨機選擇一位玩家,包括已經死亡的玩家

e——代指所有實體,不包括已死亡實體

c——代指自己的吉祥物僅教育版

v——代指所有吉祥物僅教育版

initiator——代指正在與該NPC互動的玩家僅基岩版,不管這名玩家是否在互動時被殺死

最後一個initiator是一個比較新奇的東西,它無法用在除基岩版NPC以外的地方,關於基岩版的NPC以後的章節會講到。

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

新書推薦

詭異降臨,我能無限回檔 國象小子 死靈法師能有什麼壞心思 天賦拉滿的我,下次還填非常簡單 網遊之對決巔峰 江湖籃球 我的世界之天譚歷險記