我的世界函數系統與進度系統聯動 函數系統的基礎使用攻略
我的世度系動函世界函數系統與進度系統的聯動怎么樣呢?下面99小編就給大家帶來我的世界函數系統于進度系統的聯動,函數系統的界函基礎基礎使用攻略。

函數系統與進度系統的聯動
advancement,亦簡稱adv,統進統聯統目前wiki翻譯叫進度。攻略這里就不多作介紹了。世度系動函在17w17b中MOJANG允許進度返回指令作為達成進度的界函基礎獎勵,讓不少玩家發現了新大陸。數系數系使用隨后在17w18b中,統進統聯統MOJANG進一步完善進度系統,攻略使其可以完全獨立于命令方塊而建立起一個命令系統;在1.12 pre1中,世度系動函MOJANG又作出了修改,界函基礎將進度系統中的數系數系使用合肥外圍(外圍美女)外圍聯系方式(電話微信181-2989-2716)一二線城市預約、空姐、模特、熟女、白領、優質資源命令部分拿出來做成了如今的函數系統。
但是統進統聯統這并不意味著進度系統就不可以參與到命令系統中來,因為如今的攻略進度系統可以返回函數作為達成進度的獎勵。
相信很多人已經知道進度系統的結構了,但仍有相當一部分朋友還沒有了解,在這里我們不妨來溫習一下。
自定義的進度,所有文件都保存在存檔目錄/data/advancements/下,在這里新建的文件夾同樣都稱為命名空間,命名空間下存放各種進度文件。進度文件使用 json 格式。這里展示一個用于進度命令系統的例子
所涉及的兩個文件分別是data/advancements/system/HelloTitle.json和data/functions/system/HelloTitle.mcfunction,這里進度和函數都用同樣的命名空間和文件名方便記憶和管理,可以看到函數文件是 .mcfunction,而進度文件是 .json
system:HelloTitle.json
{
"criteria":{
"custom_name":{
"trigger":"minecraft:tick"
}
},
"rewards":{
"function":"system:hellotitle"
}
}
system:HelloTitle.mcfunction
#revoke adv,用于下次再激活
advancement revoke @s only system:hellotitle
#命令部分
scoreboard objectives add helloTitle stat.leaveGame
scoreboard players tag @s[tag=HelloTitle,score_helloTitle_min=1] remove HelloTitle
tellraw @s[tag=!HelloTitle] ["",{ "text":"Hello ","color":"yellow"},{ "selector":"@s"},{ "text":"! Welcome to Minecraft!","color":"yellow"}]
scoreboard players tag @s[tag=!HelloTitle] add HelloTitle
scoreboard players reset @s[score_helloTitle_min=1] helloTitle
這個進度會在下一個游戲刻達成,對象是全體在線玩家,達成進度后會執行HelloTitle.mcfunction中的指令。其實現的效果是,當玩家進入這個世界時,會在聊天框看見問候語(其他人看不到)。
可以看到,相比于以前命令方塊高頻,這里采用了進度系統的 tick 觸發器和@s選擇器。如果單純用命令方塊高頻或者函數系統,那么只需要這樣
scoreboard objectives add helloTitle stat.leaveGame
scoreboard players tag @a[tag=HelloTitle,score_helloTitle_min=1] remove HelloTitle
execute @a[tag=!HelloTitle] ~ ~ ~ tellraw @s ["",{ "text":"Hello ","color":"yellow"},{ "selector":"@s"},{ "text":"! Welcome to Minecraft!","color":"yellow"}]
scoreboard players tag @a[tag=!HelloTitle] add HelloTitle
scoreboard players reset @a[score_helloTitle_min=1] helloTitle
區別就是選擇器上的不一樣。如果大家覺得進度系統很麻煩,可以不去使用,但是接下來我們會看到一個使用進度系統的其他觸發器來調用函數的例子。例如,要讓所有冒險模式玩家入水即死。
rules:DieInWater.json
{
"criteria":{
"1":{
"trigger":"enter_block",
"condition":{
"block":"water"
}
}
},
"rewards":{
"function":"rules:dieinwater"
}
}
rules:DieInWater.mcfunction
#revoke
advancement revoke @s only rules:dieinwater
#commands
scoreboard players tag @p[m=2,r=0] add waterKill
execute @s[tag=waterKill] ~ ~ ~ tellraw @a [{ "selector":"@s"},{ "color":"white","text":" 被水淹沒了"}]
execute @s[tag=waterKill] ~ ~ ~ gamerule showDeathMessages false
kill @s[tag=waterKill]
execute @s[tag=waterKill] ~ ~ ~ gamerule showDeathMessages true
scoreboard players tag @s[tag=waterKill] remove waterKill
當玩家踏入水中時,我們要給玩家加上一個tag,然后殺掉他。至于為什么用@p而不用@s呢?因為@p不能選中死人,而@s可以,如果不想看到聊天框刷屏,就不要選擇用@s。
以上是利用進度系統的 enter_block(玩家進入方塊) 這一觸發器來實現落水即死功能的,如果單純依靠函數,不依靠進度系統去實現的話,可以這樣寫
rules:DieInWater_FUNCONLY.mcfunction
execute @a[m=2] ~ ~ ~ detect ~ ~ ~ water -1 scoreboard players tag @p[r=0] add waterKill
execute @a[tag=waterKill] ~ ~ ~ tellraw @a [{ "selector":"@s"},{ "color":"white","text":" 被水淹沒了"}]
execute @a[tag=waterKill] ~ ~ ~ gamerule showDeathMessages false
kill @a[tag=waterKill]
execute @a[tag=waterKill] ~ ~ ~ gamerule showDeathMessages true
scoreboard players tag @a[tag=waterKill] remove waterKill
然后將這個函數扔進主進程中高頻執行即可。
我們講完了函數系統與進度系統的聯動部分。道理而言已經講完了函數系統的基礎使用,那么在最后,我們來聊聊函數系統與命令方塊系統的對比吧,看看它們各自的優缺點。
相關文章
最近卡普空公布了洛克人11的消息,這款游戲將在18年上線,新作也是經歷了很多波折,主管洛克人的稻船敬二離職對游戲開發造成比較大的影響,不過官方最終決定不會放棄這一經典IP,所以新作的曝料也是卡普空對玩2025-11-23
《黃金訊斷》是一款超下自正在度戰役MMO足游,來日誥日小編給大年夜家帶去獲得大年夜量經歷戰boss積分的快速通講!那便是游戲中限時開放的弄法——鄉主之刃,上里小編為大年夜家供應最下效支割經歷戰boss2025-11-23
《講無邊》牢固隊體系是交際弄法中尾要設定,同時牢固隊的構成借將享有下額的禍利設定。牢固隊禍利包露品級BUFF,離線托管,團購劣惠,消耗返利等多種嘉獎禍利。上里便讓我們體會下每項禍利詳細能夠帶給我們的是2025-11-23
E3 2019:硬核動做《噬血代碼》新預報公布 9月27日出售
面擊進進E3游戲展專題,海量諜報一掃而光 萬代北夢宮頒布收表,《噬血代碼》將于本年9月27日出售,登岸PC、PS4戰Xbox One仄臺。同時借公布了新的預報片。新預報:gsVideo("劣酷", "2025-11-23
??? 植物小學停餐了,大家都很著急去哪兒吃飯。這時小兔媽媽說:“你們不用著急,都到我這來吃飯,好嗎?”大家早都聽說兔媽媽做的飯香甜可口,非常盼望這一天早點來到。時間就像一只慢吞吞的小烏龜(torto2025-11-23
本日2月11日),Bungie工做室公布《運氣2:正姬魅影》“保護者簡報”飽吹影片,《運氣2:正姬魅影》將于2月23日正式上線。飽吹片:保護者,您需供先體會您的恩敵,才氣擊敗他們。薩瓦圖恩的崛起是一個2025-11-23
