[版本]1.12.2
[问题]
我想做5分钟[自定义时间]的命令方块倒计时,且倒计时持续显示在物品栏上方
如: 你的时间还有 04:59
如果时间为: 00:00 的话执行命令
找大佬解答~
[问题]
我想做5分钟[自定义时间]的命令方块倒计时,且倒计时持续显示在物品栏上方
如: 你的时间还有 04:59
如果时间为: 00:00 的话执行命令
找大佬解答~
5分钟红石延时+每秒执行一次命令(不同的命令方块依次)+最后一个命令方块执行命令
你给的金粒也太少了吧...
我的想法是:
#1.创建一个计分板,/scoreboard objectives add time dummy
#2.再创建一个计分板,/scoreboard objectives add time1 dummy
#3.再创建一个计分板,/scoreboard objectives add time2 dummy#4.当你想要倒计时的时候,在一个普通的命令方块里输入/scoreboard players set @a time1 5
#5.在那个命令方块后面,放一个保持开启的连锁命令方块,输入/scoreboard players set @a time2 0
#6.在一个保持开启的循环性命令方块内输入/execute @a[score_time2=0,score_time2_min=0] ~ ~ ~ scoreboard players set @a time2 60
#7.在(#6.)后面放一个保持开启的,条件限制的连锁命令方块,输入/scoreboard players remove @a time1 1
#8.在一个保持开启的循环性命令方块内输入/scoreboard players add @a time 1
#9.在(#8.)后面放一个保持开启的不受限制的连锁命令方块,输入/execute @a[score_time_min=20] ~ ~ ~ scoreboard players remove @a time2 1
#10.在(#9.)后面放一个保持开启的条件限制的连锁型命令方块,输入/scoreboard players reset @a[score_time_min=20] time
#11.最后是显示,在保持开启的循环性命令方块内输入/title @r actionbar [{"text":"你的时间还有:","color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"time1","name":"@p"},"color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"text":":","color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"time2","name":"@p"},"color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false}]
完事。除了#11都是手打的指令,可能会出错,欢迎追问。
(为了30金粒我拼了)
我的想法是:
#1.创建一个计分板,/scoreboard objectives add time dummy
#2.再创建一个计分板,/scoreboard objectives add time1 dummy
#3.再创建一个计分板,/scoreboard objectives add time2 dummy#4.当你想要倒计时的时候,在一个普通的命令方块里输入/scoreboard players set @a time1 5
#5.在那个命令方块后面,放一个保持开启的连锁命令方块,输入/scoreboard players set @a time2 0
#6.在一个保持开启的循环性命令方块内输入/execute @a[score_time2=0,score_time2_min=0] ~ ~ ~ scoreboard players set @a time2 60
#7.在(#6.)后面放一个保持开启的,条件限制的连锁命令方块,输入/scoreboard players remove @a time1 1
#8.在一个保持开启的循环性命令方块内输入/scoreboard players add @a time 1
#9.在(#8.)后面放一个保持开启的不受限制的连锁命令方块,输入/execute @a[score_time_min=20] ~ ~ ~ scoreboard players remove @a time2 1
#10.在(#9.)后面放一个保持开启的条件限制的连锁型命令方块,输入/scoreboard players reset @a[score_time_min=20] time
#11.最后是显示,在保持开启的循环性命令方块内输入/title @r actionbar [{"text":"你的时间还有:","color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"time1","name":"@p"},"color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"text":":","color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"time2","name":"@p"},"color":"gold","bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false}]
完事。除了#11都是手打的指令,可能会出错,欢迎追问。
(为了30金粒我拼了)
本帖最后由 chaoren019 于 2020-2-21 15:23 编辑
还是发出来吧。。。憋着满难受的(敬请看上面的回答)
(计分板分数均指有需要的玩家在此计分板上的分数)
首先是计时
创建一个计分板,在此记为x1;
将x1的值设为5*60*20=6000(每秒有20个游戏刻)
在一个循环方块中输入
scoreboard players scoreboard players remove @a x1 1
这样你的命令会每秒执行20次,执行6000次后即是5分钟
然后用此命令检测:
/execute @e[score_x1=0] ~ ~ ~ <你想要执行的指令>
接下来是显示
因为计分板不能乘除参数,所以有点麻烦
建立第二个计分板,记为x2
第三个计分板,记为x3;
第四个计分板(⊙o⊙),记为x4;
将x4的分数设为20
用循环方块将x2的分数先设为x1的分数,然后接一个连锁方块,将x2的分数除以x4,也就是20
(如果只要秒数的话现在就可以输出了。。。但是你要的是分和秒。。。)
然后接一个连锁,检测如果x2大于60将x2分数减去60,在用一个连锁将x3分数加上1,循环执行直到x2小于60
或者你可以用函数
最后输出,在这一串命令方块的末尾,用execute检测指定玩家,以他的身份执行输出:
title @p title [{"text":"你的时间还有","bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"x3","name":"@s"},"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"text":":","bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"x2","name":"@s"},"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false}]
还是发出来吧。。。憋着满难受的(敬请看上面的回答)
(计分板分数均指有需要的玩家在此计分板上的分数)
首先是计时
创建一个计分板,在此记为x1;
将x1的值设为5*60*20=6000(每秒有20个游戏刻)
在一个循环方块中输入
scoreboard players scoreboard players remove @a x1 1
这样你的命令会每秒执行20次,执行6000次后即是5分钟
然后用此命令检测:
/execute @e[score_x1=0] ~ ~ ~ <你想要执行的指令>
接下来是显示
因为计分板不能乘除参数,所以有点麻烦
建立第二个计分板,记为x2
第三个计分板,记为x3;
第四个计分板(⊙o⊙),记为x4;
将x4的分数设为20
用循环方块将x2的分数先设为x1的分数,然后接一个连锁方块,将x2的分数除以x4,也就是20
(如果只要秒数的话现在就可以输出了。。。但是你要的是分和秒。。。)
然后接一个连锁,检测如果x2大于60将x2分数减去60,在用一个连锁将x3分数加上1,循环执行直到x2小于60
或者你可以用函数
最后输出,在这一串命令方块的末尾,用execute检测指定玩家,以他的身份执行输出:
title @p title [{"text":"你的时间还有","bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"x3","name":"@s"},"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"text":":","bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false},{"score":{"objective":"x2","name":"@s"},"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false}]
STIM0v0 发表于 2020-2-21 15:19
那时间为00:00该如何执行设置好的指令咧
抱歉写太多忘了
可以这样:
在一个保持开启的循环性命令方块内输入scoreboard players test @a[score_time1_min=0] time2 0 0
,然后想输入什么指令在这个命令方块后面连锁就行了
天佑酱 发表于 2020-2-21 15:28
抱歉写太多忘了
可以这样:
在一个保持开启的循环性命令方块内输入scoreboard players test @a[score_tim ...
不对啊,你这个到3:60就执行命令