切換
舊版
前往
大廳
主題

[情報|攻略]無插件!不用修改器!在原版遊戲中產生含顏色代碼的物品和實體

極巨龍神塔奇 | 2016-10-01 11:01:49 | 巴幣 506 | 人氣 941

無插件!在遊戲中產生含顏色代碼之物品/實體

  在遊戲中,若不安裝相應的插件或模組,是無法直接輸入顏色代碼的「§」字元的,但可以利用Unicode編碼來「輸入」。在Minecraft的JSON語法中,可以利用「\u」來印出指定的Unicode字元,而分節符號「§」的編碼為「\u00A7」,故若要輸出分節符號,則需要以JSON來迂迴。
  為了放置含有樣式代碼的指令方塊,我們需要先放置一塊告示牌,再點擊告示牌來放置含代碼的指令方塊,如下:
/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"[{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/say \u00A71\\\\\\\"Hello \u00A71World!\\\\\\\"\\\"}\"}}]"}
  當要顯示反斜線要輸入「\\」;要顯示雙引號要輸入「\"」;要顯示單引號要輸入「\'」。但當要在引號內使用第二層引號時,就必須使用三條反斜線,而第三層的引號須使用七條反斜線,依此類推。具體公式為: 「(2^層數) - 1」。目前標籤解析還尚有許多未知錯誤,建議盡量不要在引號內顯示引號,容易造成錯誤。
  註:某些NBT標籤可以省略引號不括,但容易造成執行上的錯誤,請自行斟酌。
  上述的指令可以拆解成以下的部分:
/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"[{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/say \u00A71\\\\\\\"Hello \u00A71World!\\\\\\\"\\\"}\"}}]"}
  藍色的部分為指令殼層,也就是最一開始放置告示牌的指令,而綠色是放置的告示牌點擊時所執行的指令,為放置含有指令的指令方塊。而綠色的部分又可拆解成:
/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/say \u00A71\\\\\\\"Hello \u00A71World!\\\\\\\"\\\"}
  黃色的部分才是我們真正得到最後執行的指令,執行結果為[@] "Hello World!"

指令範例:
.產生藍色「Dinnerbone」名稱的綿羊:/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"[{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/summon sheep ~ ~1 ~ {CustomName:\\\\\\\"\u00A71Dinnerbone\\\\\\\"}\\\"}\"}}]"}
.將上述的綿羊名字改成綠色的「Grumm」:/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"[{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/entitydata @e[name=\u00A71Dinnerbone] {CustomName:\\\\\\\"\u00A7AGrumm\\\\\\\"}\\\"}\"}}]"}
.給予最靠近的玩家指令方塊,執行時伺服器顯示簡易告示「[System] Hello, players!」:/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"[{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~1 ~ minecraft:command_block 0 replace {Command:\\\"/give @p minecraft:command_block 1 0 {BlockEntityTag:{CustomName:\\\\\\\"\u00A7C\u00A7LSystem\\\\\\\",Command:\\\\\\\"/say \u00A79Hello, \u00A79players!\\\\\\\"}}\\\"}\"}}]"}

(待續)
送禮物贊助創作者 !
0
留言

創作回應

更多創作