游客發(fā)表
發(fā)帖時(shí)間:2025-11-26 02:25:35
我的世度系動(dòng)函世界函數(shù)系統(tǒng)與進(jìn)度系統(tǒng)的聯(lián)動(dòng)怎么樣呢?下面99小編就給大家?guī)?lái)我的世界函數(shù)系統(tǒng)于進(jìn)度系統(tǒng)的聯(lián)動(dòng),函數(shù)系統(tǒng)的界函基礎(chǔ)基礎(chǔ)使用攻略。

函數(shù)系統(tǒng)與進(jìn)度系統(tǒng)的聯(lián)動(dòng)
advancement,亦簡(jiǎn)稱adv,統(tǒng)進(jìn)統(tǒng)聯(lián)統(tǒng)目前wiki翻譯叫進(jìn)度。攻略這里就不多作介紹了。世度系動(dòng)函在17w17b中MOJANG允許進(jìn)度返回指令作為達(dá)成進(jìn)度的界函基礎(chǔ)獎(jiǎng)勵(lì),讓不少玩家發(fā)現(xiàn)了新大陸。數(shù)系數(shù)系使用隨后在17w18b中,統(tǒng)進(jìn)統(tǒng)聯(lián)統(tǒng)MOJANG進(jìn)一步完善進(jìn)度系統(tǒng),攻略使其可以完全獨(dú)立于命令方塊而建立起一個(gè)命令系統(tǒng);在1.12 pre1中,世度系動(dòng)函MOJANG又作出了修改,界函基礎(chǔ)將進(jìn)度系統(tǒng)中的數(shù)系數(shù)系使用杭州濱江找上門(找美女上門約炮)vx《189=4143》提供外圍女上門服務(wù)快速選照片快速安排不收定金面到付款30分鐘可到達(dá)命令部分拿出來(lái)做成了如今的函數(shù)系統(tǒng)。
但是統(tǒng)進(jìn)統(tǒng)聯(lián)統(tǒng)這并不意味著進(jìn)度系統(tǒng)就不可以參與到命令系統(tǒng)中來(lái),因?yàn)槿缃竦墓ヂ赃M(jìn)度系統(tǒng)可以返回函數(shù)作為達(dá)成進(jìn)度的獎(jiǎng)勵(lì)。
相信很多人已經(jīng)知道進(jìn)度系統(tǒng)的結(jié)構(gòu)了,但仍有相當(dāng)一部分朋友還沒(méi)有了解,在這里我們不妨來(lái)溫習(xí)一下。
自定義的進(jìn)度,所有文件都保存在存檔目錄/data/advancements/下,在這里新建的文件夾同樣都稱為命名空間,命名空間下存放各種進(jìn)度文件。進(jìn)度文件使用 json 格式。這里展示一個(gè)用于進(jìn)度命令系統(tǒng)的例子
所涉及的兩個(gè)文件分別是data/advancements/system/HelloTitle.json和data/functions/system/HelloTitle.mcfunction,這里進(jìn)度和函數(shù)都用同樣的命名空間和文件名方便記憶和管理,可以看到函數(shù)文件是 .mcfunction,而進(jìn)度文件是 .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
這個(gè)進(jìn)度會(huì)在下一個(gè)游戲刻達(dá)成,對(duì)象是全體在線玩家,達(dá)成進(jìn)度后會(huì)執(zhí)行HelloTitle.mcfunction中的指令。其實(shí)現(xiàn)的效果是,當(dāng)玩家進(jìn)入這個(gè)世界時(shí),會(huì)在聊天框看見問(wèn)候語(yǔ)(其他人看不到)。
可以看到,相比于以前命令方塊高頻,這里采用了進(jìn)度系統(tǒng)的 tick 觸發(fā)器和@s選擇器。如果單純用命令方塊高頻或者函數(shù)系統(tǒng),那么只需要這樣
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
區(qū)別就是選擇器上的不一樣。如果大家覺(jué)得進(jìn)度系統(tǒng)很麻煩,可以不去使用,但是接下來(lái)我們會(huì)看到一個(gè)使用進(jìn)度系統(tǒng)的其他觸發(fā)器來(lái)調(diào)用函數(shù)的例子。例如,要讓所有冒險(xiǎn)模式玩家入水即死。
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":" 被水淹沒(méi)了"}]
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
當(dāng)玩家踏入水中時(shí),我們要給玩家加上一個(gè)tag,然后殺掉他。至于為什么用@p而不用@s呢?因?yàn)锧p不能選中死人,而@s可以,如果不想看到聊天框刷屏,就不要選擇用@s。
以上是利用進(jìn)度系統(tǒng)的 enter_block(玩家進(jìn)入方塊) 這一觸發(fā)器來(lái)實(shí)現(xiàn)落水即死功能的,如果單純依靠函數(shù),不依靠進(jìn)度系統(tǒng)去實(shí)現(xiàn)的話,可以這樣寫
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":" 被水淹沒(méi)了"}]
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
然后將這個(gè)函數(shù)扔進(jìn)主進(jìn)程中高頻執(zhí)行即可。
我們講完了函數(shù)系統(tǒng)與進(jìn)度系統(tǒng)的聯(lián)動(dòng)部分。道理而言已經(jīng)講完了函數(shù)系統(tǒng)的基礎(chǔ)使用,那么在最后,我們來(lái)聊聊函數(shù)系統(tǒng)與命令方塊系統(tǒng)的對(duì)比吧,看看它們各自的優(yōu)缺點(diǎn)。
隨機(jī)閱讀
熱門排行
友情鏈接