我的世界函數命令怎么用 函數系統的構成介紹
我的世的構世界1.12版本中新增了函數系統,那么我的界函世界1.12版本函數命令怎么用?下面99小編就給大家帶來我的世界函數命令系統的構成詳細介紹。

1.12中,函數與進度系統的令用出現,讓命令脫離命令方塊——這句曾經說過的函數玩笑般的預言,正式成為可能。系統
函數系統的成介構成
函數系統的由來
函數(function)系統,是世的構 MC 1.12 Pre-1 版本中新增的一個功能,它將原來進度系統中返回指令的界函部分單獨提取出來,做成了現在的數命紹函數系統。
函數系統的令用形式
函數系統由命名空間和函數文件組成,這些文件保存在存檔目錄/data/functions/下。函數functions目錄下的系統文件夾,稱為命名空間,成介杭州高級外圍女上門資源vx《1662-044-1662》提供外圍女上門服務快速選照片快速安排不收定金面到付款30分鐘可到達各個命名空間下存放不同的世的構函數文件。實際上,命名空間就是方便我們編寫者分類并管理各種函數文件。
函數文件是以.mcfunction為后綴名的文本文件,建議采用utf-8無BOM編碼以防顯示錯亂。簡單來講,一個函數等價于一個多行命令方塊,函數文件里面每一行寫一條指令,當執行這個函數時,里面的指令會按行依次執行。如果在一個函數中調用其它函數,那么在同一游戲刻,被調用的函數中所有指令先執行完,再繼續當前函數中后續的指令,就像插隊一樣,我們在后面對比命令方塊時還會說到這個。
請注意:在 1.12 Pre-3 版本中存在一個嚴重漏洞,即命令執行體不能正確地通過execute傳遞到被調用的函數中去,這個漏洞有望在后續版本以及正式版修復。
以下是本文用到的一個函數系統的目錄,帶有"+"的表示為目錄
+ functions
+ say
hi.mcfunction
bye.mcfunction
Text1.mcfunction
text2.mcfunction
+ system
+ process
_process.mcfunction
_main.mcfunction
player_tick.mcfunction
如何調用函數
在 1.12 中,MOJANG新增了function指令和一條名為gameLoopFunction的游戲規則來輔助我們使用函數系統。function指令的格式如下:
function <命名空間:函數名>
function <命名空間:函數名>
這兩條都是可行的。其中,if|unless是在1.12 pre-4加入的功能,后面我會解釋到這個。我們先來說說第一種形式。例如上面的目錄中,要調用system這個命名空間下的_main文件,就是輸入這樣的指令:
function system:_main
現在,我們來看一個例子例如say命名空間下的Text1.mcfunction和text2.mcfunction,里面分別寫上這些內容
Text1.mcfunction
#這是一個范例,在function文件中可以用#來注釋行。請注意,不能夠使用//來注釋!
say 1
function say:text2
say 2
text2.mcfunction
say 3
say 4
當我在系統后臺輸入function say:text1時,聊天框會出現這些內容:
[server] 1
[server] 3
[server] 4
[server] 2
也就是說,執行function指令的人,會把函數里面的指令依次執行——我在系統后臺輸入function指令,就是系統在執行,我自己輸入function指令,就是我本人在執行。大家可能注意到了,函數中支持使用#進行注釋(舊版本支持//注釋,當前版本已經不再支持),也就是說被注釋行不會作為指令而執行,這一點有多方便相比不比我再說了。同時需要大家注意:函數中所有指令不能夠以/開頭。例如,你可以這樣寫:
say @s
但是不能這樣寫:
/say @s
最后有一點需要注意的是,在function指令中調用函數時,不區分大小寫。例如前面say命名空間下的Text1.mcfunction,我在調用的時候寫的是say:text1
然后是第二種形式,也就是帶有if|unless的。我簡單舉兩個例子,大家就知道是什么意思了。
say:tellraw.mcfunction
scoreboard objectives add timer dummy 計時器
scoreboard players add @s timer 1
function random:title if @s[score_timer_min=1200]
scoreboard players reset @s[score_timer_min=1200] timer random:title.mcfunction
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title1"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title2"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title3"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title4"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title5"]}
entitydata @r[r=0,type=area_effect_cloud,tag=rnd_title] { CustomName:"rnd_title"}
execute @e[name=rnd_title,tag=rnd_title1] ~ ~ ~ tellraw @a[r=0,c=1] ["1"]
execute @e[name=rnd_title,tag=rnd_title2] ~ ~ ~ tellraw @a[r=0,c=1] ["2"]
execute @e[name=rnd_title,tag=rnd_title3] ~ ~ ~ tellraw @a[r=0,c=1] ["3"]
execute @e[name=rnd_title,tag=rnd_title4] ~ ~ ~ tellraw @a[r=0,c=1] ["4"]
execute @e[name=rnd_title,tag=rnd_title5] ~ ~ ~ tellraw @a[r=0,c=1] ["5"]
將say:tellraw放到主進程中
execute @a ~ ~ ~ function say:tellraw
則每位玩家每分鐘將會看到1~5中隨機一個數字出現在聊天框。也就是說,只有計時器分數滿1200的人會執行后面的隨機部分。那么很顯然,帶有if的意思就是,如果能找到后面的選擇器,就執行這個函數,否則不執行。相當于testfor。
那么unless的意思也就很明顯了:在找不到后面的選擇器的時候,執行這個函數,相當于testfor+非門。
gameLoopFunction
講完調用,就該講講高頻了。玩命令方塊的人都知道高頻是實現許多功能的前提。在函數系統中,MOJANG 為我們提供了一條名為gameLoopFunction的游戲規則來實現高頻。它的格式是
gamerule gameLoopFunction <命名空間:函數>
也就是說,你可以指定一個函數來高頻執行,這個高頻是20Hz的,也就是每一個游戲刻都會執行一遍。新建的存檔如果沒有執行過這條指令,而是用gamerule gameLoopFunction來查詢的話,得到的返回值是-
為了方便,我們將這個規則簡稱為glf。在舊版本中,glf指定的函數,由系統(server)作為執行體;而在新的版本中,MOJANG 引入了虛擬執行體,例如將 say:text2 指定為glf時,每一個游戲刻得到的結果是這樣的
[say:text2] 3
[say:text2] 4
也就是說,系統不再作為執行體,而是由虛擬的執行體代為執行。
關于 glf 多說兩句。使用 glf 去高頻執行一個函數,和使用 RCB(循環型命令方塊,紫色那種)去執行,是不一樣的。區別主要在于其更新順序先后。一般而言不會造成嚴重影響,但是在某些情況會不一樣。比如,使用 CB 能檢測到生物的{ HurtTime:10s}這個 NBT,而使用 glf 執行函數只能檢測到的是{ HurtTime:9s},檢測不到10,這是因為關于函數的更新,都放在了生物更新之后,而 CB 的更新則是在生物更新之前。詳情可以看這里。按照 Searge 的說法,函數并不是命令方塊的完全替代。這個說法,大家就見仁見智了。
以上是函數系統的相關構成,以及如何調用函數。接下來我們來了解一下函數系統的模塊分類>>>。
(責任編輯:娛樂)
- PS公布了《星鳴特攻》泰歐角色演示視頻將于8月23日發售
- 彩電企業腹背受敵:上下游廠商侵蝕整機市場
- 漫威新片《烏孀婦》公布新預報 眾姐空中遁擊斗勁敵
- 珍寶海陳舫遭受風波沉進北海 《食神》《龍爭虎斗》曾與景
- 《飆酷車神2》PC配置要求公布 支持4K分辨率
- 天貓M11和天貓M10盒子區別 一張圖告訴你
- 《超等戰役 雜烈GER》第兩部預報 定檔9月1日上映
- 《愛麗絲:猖獗回回》再次從Steam下架 那多是個掉誤
- 《靈魂能力6》新角色吉光宣傳片 采用虛幻4開發
- 《大年夜家一起沒有雅顏察色。正在線》Steam正式出售 支撐中文免費玩耍
- 甩開寒期檔第兩名4.7億:《侏羅紀天下3》內天票房沖破6億大年夜閉
- 《龍族胡念》足游新一輪測試即將去襲 蛇岐八家挨制過程暴光
- 《圣歌》配音情報曝光 支持簡體中文 等級會上調
- 《糖豆人:終究淘汰賽》齊新預報 21日免費登岸齊仄臺
- 《粘粘世界2》宣布8月2日正式發行不在Steam上架
- 三大因素驅動 精品化成為彩電業發展新趨勢
- 海信電視高端品鑒會 ULED打造卓越畫質
- 《我叫MT4》新版本本日上線 新職業圣騎士退場
- 《絕地求生》建立反作弊方案 引入BattleEye系統
- 隱卡代價雪崩!千萬謹慎礦渣:保有范圍下達上千億
- 北京外圍(北京外圍女)外圍預約(電話微信189-4469-7302)提供頂級外圍女上門,優質資源可滿足你的一切要求 views+
- 杭州包夜外圍外圍上門外圍女(電話微信189-4469-7302)一二線熱門城市上門真實可靠快速安排90分鐘到達 views+
- 昆明模特包夜(微信189-4469-7302)提供一二線城市可以真實可靠快速安排90分鐘到達 views+
- 濟南包夜美女全套外圍上門外圍女(電話微信189-4469-7302)提供頂級外圍女上門,伴游,空姐,網紅,明星,車模等優質資源,可滿足你的一切要求 views+
- 海口外圍預約平臺(外圍上門)外圍外圍上門外圍女(微信189-4469-7302)一二線城市外圍預約、空姐、模特、留學生、熟女、白領、老師、優質資源 views+
- 貴陽外圍(外圍上門)外圍預約(電話微信189-4469-7302)提供高端外圍上門真實靠譜快速安排不收定金見人滿意付款 views+
- 長春包夜外圍上門外圍女姐(微信189-4469-7302)一二線城市均可安排、高端一手資源、高質量外圍女模特空姐、學生妹應有盡有 views+
- 義烏提包夜美女(微信189-4469-7302)一二線城市外圍模特伴游預約、空姐、模特、留學生、熟女、白領、老師、優質資源覆蓋全國 views+
- 揚州包夜外圍外圍上門外圍女(電話微信189-4469-7302)一二線熱門城市上門真實可靠快速安排90分鐘到達 views+
- 上海同城美女預約外圍上門外圍女(微信189-4469-7302)提供全套一條龍外圍上門外圍女 views+
