導覽
腳本方塊是一個為Minecraft 1.7.10 設計的模組,提供了一個能夠在特定情況下執行的腳本方塊以及一套工具。
在遊戲的根目錄創建文件夾ScriptBlockData並把Json(或Json5)放入其中。
解析Json5需要鳳梨通靈術作為Lib,否則會跳過解析。 內容詳情請見 規範
主名稱: /script
別名:/scb, /sc
別名與主名稱效果相同。
參數:
reload - 重新讀取。
set [文件名] - 得到存儲文件夾內腳本文件的記錄之章,右擊腳本方塊可以寫入腳本。
block - 得到一個腳本方塊。
run <玩家名称> [文件名] - 立刻對玩家執行腳本。
腳本解析依賴一種較為嚴格的規範,這聞起來就像是一種具有嚴謹規範的解釋性語言。
模組解析器會且隻會解析列表和字符串(數字會在解析時被自動轉義,而無法轉義的內容則會拋出異常。)
解析器會嘗試在一個大列表中解析細節列表,也就是說即便你隻有一個內容也必須使用兩個列表。
如下所示:
[
[
"@Command",
"say", "Hello", "World!"
]
]
這個內容被觸發後將會嚮服務器發送“Hello World!”。相關內容會在解釋“@Command”關鍵字時說明。
@Set
別名:@SetVar
@Set 關鍵词需要兩個參數,如下:
[
"@Set", "Test",
"Hello!"
]
上述的內容是將變量“Test”存儲到變量池並申明內容字符串“Hello!”。
如果我們需要存入一個數字?請使用帶小數方便解析器理解。如下:
[
"@Set", "TestNumber",
"10.0"
]
好,那麼知道它會被存入變量池,如何從變量池中拿到數據?
字符“%”幫助我們拿到變量,而且變量可以傳給另一個變量,如下演示:
"@Set", "AnotherTestNumber",
"%TestNumber"
]
這樣我們就把“TestNumber”的值傳給新的變量“AnotherTestNumber”了。
當然,這裏還有一些魔術參數,使用字符“&”申明一個魔術參數得到一些遊戲內的數據。
方法名稱 內容用途 &Player 得到觸發的玩家的名稱 &World 得到當前世界名稱 &Health 得到玩家當前生命 &Hunger 得到玩家當前飽食 &Item 得到玩家手上物品 &Lv 得到玩家人物等級 &Random 得到0-100之間的隨機數
運算關鍵組
運算能夠插入大部分地方,比如@Set。這裏有個運算的示例:
[
"@Set", "AnotherTestNumber",
["@Add",
"%TestNumber", "10.0"
]
]
當解析完此條目時,變量“AnotherTestNumber”的值將會是“TestNumber + 10.0”的結果。
變量運算組需要兩位參數,兩位參數均支持使用數字形式的字符串,變量和另一個運算組。
@Add 關鍵詞用於申明兩位數相加。
@Min 關鍵詞用於申明兩位數相減。
@Mul 關鍵詞用於申明兩位數相乘。
@Exc 關鍵詞用於申明兩位數相除。
判斷句柄
使用關鍵詞@If申明一個判斷,參數允許使用字符串,變量和運算組。@If的下一位參數需要接入一個判斷形式:
@Is 關鍵詞用於判斷兩個參數內容相同。
@IsNot 關鍵詞用於判斷兩個參數內容不同。
@Greater 關鍵詞用於判斷第一個參數大於第二個參數。
@Less 關鍵詞用於判斷第一個參數小於第二個參數。
下麵是一段截取自Json5的文本,Json中請刪除註解。
[
"@If", "@Is",
"%Test", "Hello!",
["@Set", "Test", "True!"], // 返回值為True,這一段執行
["@Set", "Test", "False!"] // 反之是這一段執行。
]
上述的一段腳本將會返回True,那麼Test的值會被設為“True!”。
@Command
到了我們的重頭戲,現在讓我們提供一段指令。還記得一開始的那段腳本嗎?把它拿回來:
[
[
"@Command",
"say", "Hello", "World!"
]
]
@Command 關鍵詞能夠輸出一段命令。通常我們要如何輸出一段命令?用say來說,輸出Hello World!的話,我們應該寫成這樣: /say Hello World!
無論是對於Minecraft的命令解釋器,還是對於我們的腳本解釋器,這一段命令將會被分為三段:say,Hello,World!。如果命令帶參數也是同理。將這三段分別填入申明了@Command的列表中最終會被拚合為一段。請註意,請不要在字符串中提供空格。
這段指令的發送身份將會是控製臺(等價於命令方塊)。@Command 關鍵詞可以在@If 句柄中被作為判斷後執行任務進行申明,@Command中不接受任何運算,但是可以使用“%”關鍵字來申明一些魔術變量和你的變量池變量。我們的變量池裏有“Test”,那麼這兒提供“%Test”即可。關於@Command 可用的魔術變量如表:
變量名 內容 %Player 返回觸發的玩家的名稱 %World 返回當前世界的名稱 %Pos 返回坐標(x y z) %PlayerPos 返回玩家的坐標(x y z)
- 腳本方塊: 腳本方塊是這個模組的核心內容,需要配合其他物品進行操作。
- 記錄之章: 使用指令獲得或使用空白之章複製獲得的記錄之章才能被使用。右擊腳本方塊可以填充(或覆蓋)腳本內容。
- 空白之章: 右擊一個內容不為空的腳本方塊可以複製內容並變為記錄之章。
- 歸空之帚: 右擊某個方塊會清掃
3*3*3
範圍內的腳本方塊的畫皮,使其形象初始化。 - 繪作之觸: 右擊一個非腳本方塊的方塊可以取得方塊的貼圖,再右擊腳本方塊可以進行僞裝。
- 窺視之眼: 檢查腳本方塊的腳本內容。
- 機械之心: 無視觸發形式直接執行腳本方塊的腳本(如果有)。
- 和諧之音: 改變腳本方塊的觸發方式。有四種狀態:關閉,僅踩踏觸發,僅右擊觸發,踩踏或右擊(混合)。
模組分發等均基於主許可證:鳳梨許可證。