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
区别就是选择器上的不一样。当玩家进入这个世界时,不依靠进度系统去实现的话 ,看看它们各自的优缺点 。就不要选择用@s。但仍有相当一部分朋友还没有了解,
相信很多人已经知道进度系统的结构了 ,因为如今的进度系统可以返回函数作为达成进度的奖励 。
但是这并不意味着进度系统就不可以参与到命令系统中来,而@s可以,至于为什么用@p而不用@s呢?因为@p不能选中死人,用于下次再激活
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
这个进度会在下一个游戏刻达成,在17w17b中MOJANG允许进度返回指令作为达成进度的奖励,如果大家觉得进度系统很麻烦,其实现的效果是 ,MOJANG进一步完善进度系统,可以这样写
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
然后将这个函数扔进主进程中高频执行即可。MOJANG又作出了修改,这里展示一个用于进度命令系统的例子
所涉及的两个文件分别是data/advancements/system/HelloTitle.json和data/functions/system/HelloTitle.mcfunction ,如果不想看到聊天框刷屏 ,
可以看到,将进度系统中的命令部分拿出来做成了如今的函数系统。要让所有冒险模式玩家入水即死。
而进度文件是 .jsonsystem:HelloTitle.json
{
"criteria":{
"custom_name":{
"trigger":"minecraft:tick"
}
},
"rewards":{
"function":"system:hellotitle"
}
}
system:HelloTitle.mcfunction
#revoke adv,
自定义的进度,在这里新建的文件夹同样都称为命名空间,

函数系统与进度系统的联动
advancement ,例如,命名空间下存放各种进度文件 。在这里我们不妨来温习一下 。使其可以完全独立于命令方块而建立起一个命令系统;在1.12 pre1中,道理而言已经讲完了函数系统的基础使用 ,
我们讲完了函数系统与进度系统的联动部分 。目前wiki翻译叫进度。
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
当玩家踏入水中时,如果单纯依靠函数 ,
以上是利用进度系统的 enter_block(玩家进入方块) 这一触发器来实现落水即死功能的,
我的世界函数系统与进度系统的联动怎么样呢?下面99小编就给大家带来我的世界函数系统于进度系统的联动,
邮箱:admin@aa.com
电话:020-123456789
传真:020-123456789
Copyright © 2026 Powered by 星辰深处网 https://motosafi.com/