創作內容

7 GP

【Minecraft】Tellraw指令使用方法-基礎篇

作者:岩壁巨人拍立得│2018-01-22 16:47:39│巴幣:14│人氣:8340
大家好,這裡是岩壁巨人
最近為了製作新的地圖而研究了很多關於指令還有NBT Tag的東西
然而,因為我的建築能力實在不太行,建築部分只好交給我室友,我則負責全部的指令。
結果因為建築還沒完工,指令沒辦法繼續弄的情況下,實在是閒得發慌(#

今天就來發文介紹一下"tellraw"這個指令吧

先上圖解釋他的用法



是不是很簡單呢

這個指令強大的地方在於它能做為一個"文本處理系統"
除了能改變文字樣式(顏色、粗體、斜體、底線、刪除線等)
也能利用clickEvents和hoverEvents 去執行更高級的指令

更重要的是,tellraw指令還能支援解析部分Unicode
像是我們利用「§」這個符號('U00A7) 可以改變文字的樣式和格式
比較常見的是在書本裡


實際上,我打的東西是長這樣:

我名為§5§L雪莉§0 是家中的長女
幾天前遷家於此
在那之後妹妹§d§L薇拉§0無緣無故失蹤了

當然這個也可以運用在tellraw指令上面
比方說




這四個字串的指令分別是
/tellraw @a {"text":"\ u00a76用法:/tellraw <玩家> <原始 json 訊息>"}
/tellraw @a {"text":"\ u00a72用法:/tellraw <玩家> <原始 json 訊息>"}
/tellraw @a {"text":"\ u00a74用法:/tellraw <玩家> <原始 json 訊息>"}
/tellraw @a {"text":"\ u00a75用法:/tellraw <玩家> <原始 json 訊息>"}

("\"跟"u"中間不應有空格,空格只是為了避免它轉成§符號)

Unicode字符請參見這裡

常用的像是
§0黑     §1深藍
§2綠     §3青
§4深紅  §5深紫  
§6金      §7灰
§8深灰  §9藍     
§a淺綠  §b淺青
§c紅      §d粉紅
§e黃      §f白

§L   粗體   §M   刪除線  
§N  底線   §O   斜體
§K  亂碼   §R   重置

注意: 要先打樣式再打格式,不然格式會被樣式吃掉
另外,你還可以使用換行字符「\ n」,不過換行之後的Unicode樣式、格式都會重置。

範例:("\"跟"u"中間不應有空格,空格只是為了避免它轉成§符號)

/tellraw @a {"text":"\ u00a76用法:/tellraw <玩家>\ n \ u00a76<原始 json 訊息>"}



json訊息跟NBT Tag的不同點在於 你想設定的資料要用雙引號刮起來,
印象中這個限制在以前的版本沒有,不知道哪個版本改動之後一定要用雙引號。

/give @a pumpkin_pie 1 3 {display:{Name:"垃圾堆撿來的南瓜派",Lore:[其實也挺豪ㄘ]}}

display、Name這些NBT資料就不必使用雙引號刮起來,用雙引號的話,指令會完全不能使用。

所以在使用json的時候要注意,記得把雙引號加上。

接下來介紹常用的tellraw文本組件

"text":

最基本的文字,
如果有多個{"text"}要用中括號把它們刮起來,並且用逗號分隔。
(當然不只侷限於這個組件的組合,跟其他組件也是一樣)

範例:

/tellraw @a [{"text":"Hello,"},{"text":"everyone."}]



"color"、"bold"、"italic"、"underline"、"strikethrough"、"obfusecated"
這幾個組件分別是:顏色粗體斜體底線刪除線、亂碼。
因為大部分時候都可以用Unicode來實現,而且可以節省字數,所以我很少用。
比較需要注意的是,除了color以外,其他的組件都是要用true/false來設定,
比方說:

/tellraw @a {"text":"麥當牢歡樂送","color":"gold","bold":"true"}


其實能用更少的字數達成一樣的效果,故可以改寫成這樣:
("\"跟"u"中間不應有空格,空格只是為了避免它轉成§符號)
/tellraw @a {"text":\ u00a76\ u00a7L麥當牢歡樂送"}


"selector"

目標選擇器,顧名思義可以用來選擇目標,指令方塊上有寫道:
@p @r @a 這三個可以選擇玩家(最近、隨機、全部)
@e @s可以選擇實體(全部、執行中)

利用這些東西,再搭配NBT即可精確選擇你要的目標,並且透過tellraw指令印出來。

給大家看幾個例子就會懂了




地圖上只有我跟羊兩個實體,那如果再多幾個實體呢?



由此可知,目標選擇器可以選擇多個實體


"keybind"

熱鍵,會告訴玩家某個動作的熱鍵,這個真的不太常用。

範例:

/tellraw @a {"keybind":"key.jump"}


"translate"
這個我要跟"with"一起介紹

他其實不是一個內建的翻譯語言的功能,因為他能翻譯的東西只限Minecraft裡面的文本
這部分因為不太用到,所以就來解釋一下他的其他功能。
通常translate會跟with一起搭配,會有點像是python的format語法那樣。

先給大家看個範例:

/tellraw @a {"translate":"Nearest player: %s","with":[{"selector":"@p"}]}


%s會抓取"with"內部的第一條數據,該數據為「由目標選擇器來選擇一個最近的玩家(@p)」
那其實還有%d(抓整數) %f(抓浮點數) 之類的東西,因為不常用就不一一介紹了。

那用"text"能不能達到一樣的效果?

請看以下例子:
/tellraw @a {"text":"Nearest player: %s","with":[{"selector":"@p"}]}


答案是不行,"text"物件印出來的東西只能是字串。

如果不使用以上功能,直接打字串上去,其實就跟text一樣,沒有什麼功能。

像是:
/tellraw @a {"translate":"Eating apple."}


"score"

這個組件要搭配/scoreboard 記分板指令才能使用,
記分板上沒設定任何東西的話,tellraw指令就不會印出任何字。
能利用的地方像是:
記分板拿來計時,tellraw指令告訴玩家你的通關時間。

一開始,我先設定一個計時用的記分板↓
/scoreboard objectives add Time dummy
/scoreboard objectives setdisplay sidebar Time
/scoreboard players set LZK Time 200

右邊就會顯示這個

當然也可以不讓他顯示,為了要打文所以才讓他顯示。

至於計時器的方法就用連閃器連接指令方塊把時間累加上去就好
這裡主要是介紹把記分板上的東西印出來的方法
假如200是玩家通關的秒數,而我要把這個時間讓玩家知道
於是我就打出以下指令
/tellraw @a [{"text":"通關時間:"},{"score":{"name":"@p","objective":"Time"}},{"text":"秒"}]


稍微美編一下("\"跟"u"中間不應有空格,空格只是為了避免它轉成§符號)
/tellraw @a [{"text":"\ u00a76通關時間:"},{"score":{"name":"@p","objective":"Time"},"color":"dark_green"},{"text":"\ u00a72秒"}]



這次的介紹就到這邊啦~tellraw指令是不是非常簡單呢?
除了能把文字弄得美美的,也可以做很多事情哦,下集待續

回家作業:
請利用/tellraw指令做出以下結果,並將指令貼上來。

答案下集揭曉

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3863131
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

7喜歡★bakiyalo 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【Minecraft】實... 後一篇:【Minecraft】T...

追蹤私訊切換新版閱覽

作品資料夾

yvonne40528歡迎來讀新詩ゝω・
是哪一盞清脆光點/指引我穿越一叢叢幽暗怒火/腳步並非已無朦朧/深淵的勸誘依舊格外香甜魅惑看更多我要大聲說6小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】