UU看書

第七章 指令的格式與指令執行的三要素

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

(本章的指令並不是原版真實存在的指令,而是作者瞎編的。)

在學習指令之前,你還得了解一下指令格式的語法,不然到時候看不懂格式別怪我。

Minecra官方的指令格式有六種術語、三種括號(基岩版是兩種)。一種是ltgt(安卓客戶端會亂碼,建議用網頁版或IOS客戶端,不然接下來你怎麼看指令格式啊?),另一種是,還有一種是。具體的內容如下:

純文字照著寫即可(如serverinfo中的info引數)

lt引數描述gt必填,根據括號內對引數的描述填寫(如namelt玩家gt中的“玩家”引數)

lt引數描述引數描述gt必填,選擇括號內其中一項填寫,符號“”在這裡表示“或”的意思(如droplt物品ID方塊IDgt中的“物品ID或方塊ID”引數)

第一項第二項必填,選擇括號內其中一項引數填寫(如learnmathphysics中的“math或physics”引數)

引數描述選填,根據括號內對引數的描述填寫(如set座標中的“座標”引數)

第一項第二項選填,選擇括號內其中一項填寫(如finditementity中的“item或entity”引數)

在基岩版中,並沒有“第一項第二項”這樣的指令格式,而是“lt第一項第二項gt”。並且,基岩版的引數描述也有特定的格式:“描述內容值型別”。如“方塊座標Int”,在這邊Int就是引數填的是整數數值的意思(實際上Int這個值型別並不完全是這樣的,具體的內容會在以後NBT的教學中講到)

需要注意:本書中文指令格式較為混亂,且並沒有完全按照Minecraft本身的指令格式,因此建議真的要查指令格式還是到MinecraftWiki。至於為什麼不完全按照Minecraft本身的指令格式,因為剛開始寫本書的時候沒怎麼注意doge。

目前我已經在改善本書的指令格式,現在的情況已經好很多了。

本書採用的指令格式大體是這樣的:

純文字同官方

lt引數描述gt同官方,但部分舊章節會採用一些奇奇怪怪的括號,如“《》”和“〈〉”。

第一項第二項大部分章節還是採用類似基岩版的尖括號包裹。

lt引數描述引數描述gt同官方

引數描述同官方

第一項第二項同官方

引數描述引數描述選填,根據括號內其中一項對引數的描述填寫。

lt引數描述引數描述gt同『引數描述引數描述』

lt第一項第二項gt同『第一項第二項』

引數描述Java版和基岩版混用

除了指令格式的語法外,你還得了解一下指令執行時的三要素:執行位置、執行者、引數。

執行位置——簡單來說就是指令執行的位置,你可以透過一個問句來理解它:這條指令在哪裡執行?

執行者——就是執行指令的東西,你也可以透過一個問句來理解它:執行這條指令的人是誰?

引數——就是你給指令提供的引數,你還是可以透過一個問句來理解它:執行這條指令的人要對什麼東西幹什麼事情?

(注:指令本質上並無對這三個東西有三要素之稱,這裡只是為了方便大家理解給它們套了個頭銜)

這三要素有什麼用呢?

如果你用過MCreator這個軟體來建立指令,你會發現建立指令後MCreator要求你寫一個指令執行時的流程(也就是遊戲解析並執行指令的過程),同時遊戲將給這個流程提供以下資訊:

Entity執行指令的實體(對應“執行者”)

xyz執行指令的X、Y、Z座標(對應“執行位置”)

World執行指令的維度(還是對應“執行位置”)

Cmdparams提供的引數(對應“引數”)

也就是說,一條指令執行的時候,肯定會被提供以上資訊。

其中『引數』我們得稍微講一下。

我們在序言中講解引數時是透過舉例的方式,並沒有給其下一個明確的定義,所以其實我們還是不知道引數究竟是什麼。

所以引數究竟是什麼呢?

引數(Parameter),又稱元素(Elements),是指一條指令中除指令開頭的單詞和字首外,提供的其他資訊。

比如在指令tps200true中,字首『』和指令單詞tp(有些指令教程也叫做指令頭,反正怎麼叫都可以,沒有一個固定稱謂)之外的『s』目標選擇器,相對座標『』,旋轉角度『200』和安全檢查模式『true』均為引數。

引數按照其作用,可以籠統地分為六類:

子命令——有些指令,比如scoreboard會有很多的作用,此時就需要子命令來將不同的作用區分開來。(為什麼不叫子指令呢?)

位置(座標)——指令執行的地點,也就是上面的三要素之一,一般是一個座標

目標——指令所操作的物件。如果物件是實體,一般用的是UUID、玩家名或目標選擇器;如果物件是方塊,一般用的是座標;如果物件是其他的一些東西,一般就會用一些特殊的ID。

(注:本書中,預設將UUID、玩家名和目標選擇器合併起來。所以後面如果你看到一個引數可以填寫目標選擇器,那就大機率也能填寫玩家名和UUID)

值——這東西無法很好的定義,因為在不同的指令中,值型別的引數的作用不一致,但大多數情況下的作用都是具體化對目標的操作。比如在『將玩家傳送至一個地點』的指令中,這個地點的座標就是一個值型別的引數。當然你其實並不需要現在就將它理解得十分透徹,後面學習的過程中你慢慢就會懂了。

模式——對目標進行操作時,所採取的模式。比如傳送玩家的時候,你可以選擇是預設模式,還是開啟安全傳送模式。

NBT、JSON——一般位於指令的末尾,對目標進行更具體的選擇或進行一些更高階的操作。

一條指令大多數情況下可以填寫多個引數。引數與指令開頭的單詞還有其他引數之間在大多數情況下要有一個空格予以區分。例外情況是基岩版的相對座標和目標選擇器,引數內一般不會包含空格。

所以空格在指令中十分重要,千萬要記住了!

這就是本章的全部內容。接下來我們將會步入正式的指令學習階段。

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

新書推薦

我的世界生命藝術 饕餮術士 獵者天下 網遊:重生獲得百倍幸運 網遊之三國王者 籃球少年,從灌籃炸框開始閃耀 崛起於卡拉迪亞