第六十八章 新版execute的變化
(本章節(jié)于2022年7月14日重寫)
在第三十三章,我們了解了Java1.13更新前的和基巖版的execute指令的使用,讓我們復習一下:
格式(基巖版、Java1.13更新前):
/execute <執(zhí)行者:目標選擇器><基準點:坐標><執(zhí)行的指令>
/execute <執(zhí)行者:目標選擇器><基準點:坐標> detect <探測的坐標><方塊id><方塊數據值><執(zhí)行的指令>
看起來相當簡單,就連幼兒園大班的孩子都會用。我們馬上就可以根據上面的格式,舉一個小小的例子:
/execute @e[type=zombie]~~~ detect 36 71 202 redstone_block -1 tp @s @p
這條指令的意思是:將所有僵尸作為執(zhí)行者,他們所處的位置作為執(zhí)行地點,如果坐標(36,71,202)處的方塊為任意數據值的紅石塊,就將每個僵尸分別傳送到距離它們最近的玩家。
但Java1.13更新后的execute呢?還有目前(2022/7/14)基巖版1.19.10版本在測試中的execute呢?這些新版本的execute有何變化?
答案是很大的變化。由于目前基巖版的execute命令還在測試中,并且功能比Java版要少且類似,我們就先不了解。
在Java1.13更新中,execute的語法被徹底重寫,最終變成了四類12條子命令:修飾子命令(8條)、條件子命令(2條)、存儲子命令(1條)和run子命令(運行子命令)(1條)。
正如這四類子命令的名字,它們的功能分別是:
修飾子命令——對指令進行修飾,也就是對執(zhí)行指令的一些基本條件進行修改,也就是更改指令執(zhí)行者、執(zhí)行地點、執(zhí)行朝向等內容。
條件子命令——就像編程中的if,如果條件成立才會執(zhí)行指令。
存儲子命令——還記得之前講到的/stats指令嗎?在Java1.13更新后,它的功能就被合并到了execute中,作為存儲子命令,而且還升級了!不光能夠將指令執(zhí)行的結果存儲到計分板中,還能存儲到其他地方去!
run子命令(本書稱為運行子命令)——也就是最終execute要運行的指令
這四種12條子命令可以自由組合,但有些詳細的規(guī)則我們會在以后了解到。
看起來這12條子命令很多,但其實它們中的大多數我們都已經在前面遇見過了,因為新版本的execute把許多獨立的指令給合并掉了。如果你前面的章節(jié)有細心看的話,那么你應該能夠列出execute吃掉了哪些指令:
/stats(獲取并存儲指令執(zhí)行結果)
/testfor、/testforblock、/testforblocks(檢測方塊、實體)
/scoreboard players test子命令(檢測分數)
你可以猜一猜上述指令被execute吃掉后變成了哪一類execute的子命令,我們下一章就會開始正式的學習過程。