Skip to content

Latest commit

 

History

History
173 lines (142 loc) · 6.83 KB

README_TW.md

File metadata and controls

173 lines (142 loc) · 6.83 KB

| English | 简体中文 | >臺灣正體< |

導覽

簡述

腳本方塊是一個為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範圍內的腳本方塊的畫皮,使其形象初始化。
  • 繪作之觸: 右擊一個非腳本方塊的方塊可以取得方塊的貼圖,再右擊腳本方塊可以進行僞裝。
  • 窺視之眼: 檢查腳本方塊的腳本內容。
  • 機械之心: 無視觸發形式直接執行腳本方塊的腳本(如果有)。
  • 和諧之音: 改變腳本方塊的觸發方式。有四種狀態:關閉,僅踩踏觸發,僅右擊觸發,踩踏或右擊(混合)。

許可證


模組分發等均基於主許可證:鳳梨許可證。

鳳梨許可證

AFL-3.0