命令方块做服务器清理系统,我的世界命令方块 如何在服务器中做签到装置

导读

这里给大家介绍一个用原版命令方块做的签到装置,我用的版本是1.12(1.9以上的应该都行),废话不多说了,先开始吧

我看大家总是说我做的都是新手向,这回来一个难一点的的

大家应该都知道在服务器中可以签到,对吧。这里就给大家介绍一个用原版命令方块做的签到装置,我用的版本是1.12(1.9以上的应该都行),废话不多说了,先开始吧!

首先来一张效果图(也就这么几个):

我们先要创建一些变量:

scoreboard objectives add qd dummy

scoreboard objectives add time1 dummy

scoreboard objectives add time2 dummy

scoreboard objectives add jl dummy

这些变量分别是qd(签到),time1(时间1),time2(时间2),jl(奖励)

然后给予一本签到书来签到:/give @a minecraft:written_book 1 0 {title:"签到书",author:"遛遛",pages:["[{text:\"========\",color:green,bold:true,clickEvent:{action:\"run_command\",value:\"/scoreboard players set @s qd 1\"},hoverEvent:{action:\"show_text\",value:\"点我签到\"}},{text:签到处,color:red,bold:true},{text:\"========\",color:green,bold:true},{text:\" \"},{text:\" \"},{text:abc,color:red,bold:true,obfuscated:true},{text:点我签到,color:gold,bold:true,obfuscated:false},{text:cba,color:red,bold:true,obfuscated:true},{text:\" ========\",color:green,obfuscated:false,bold:true},{text:\"签到处\",color:red,bold:true},{text:\"========\",color:green,bold:true}]"]}

只要点击书本的"点我签到"就可以签到了

不过这条指令有点复杂,我解释一下:

3bc32f18f926106681407bb0afbec645.png

(注:run_command只能用在clickEvent上,show_text也只能用在hoverEvent上)

有些玩家可能会问:

为什么在用些地方的"会变成\"?比如:/give @a written_book 1 0 {title:"疑问",author:"Netro777",pages:["{text:\"疑问\"}"]}

先举个例子,如果我要用tellraw指令打出:

他们说:"那个男生说:"我考了0分""

一般人会打成这样:

tellraw @a [{"text":"他们说:"那个男生说:"我考了0分"""}]

其实是错的,是这样:

tellraw @a [{"text":"他们说:\"那个男生说:\"我考了0分\"\""}]

加了"\",就让符号"区分了关系,指令的符号"和句子里的符号"会让电脑混淆了关系,加了"\",就让电脑知道哪个是指令里的符号",哪个是句子里的符号的"

跟这个书本指令一样,如果在两个符号"之中的符号"没有加符号\的话也会让电脑出错

不好意思,有点扯远了

0863e2471812c561c5e014113562163f.png

接下来是循环部分:

额额,好像拍到了什么不该拍的东西了

以下指令分别是从下往上每个命令方块的指令(第5,6个为条件制约):注意:第五个和第六个指令方块为条件制约

第一个为保持开启的RCB

其余的都为保持开启的CCB

1~6指令为签到成功并重置

7~9指令为没按时签到并重置

10~12指令为计算时间

13~14为奖励部分(可以自己设定)

/tellraw @a[score_qd_min=1,score_time1=0] [{"text":"恭喜您!","color":"yellow","bold":"true"},{"text":"签到成功!","color":"aqua","bold":"true"}]

/tellraw @a[score_qd_min=1,score_time1=0] [{"text":"以后要","color":"dark_aqua","bold":"true"},{"text":"继续签到哟!","color":"gold","bold":"true"}]

这里是用来提醒玩家他们已经签到成功了(上面)

scoreboard players set @a[score_qd_min=1,score_time1=0] jl 1

这里将目标jl(奖励)设成1(上面)

scoreboard players set @a[score_qd_min=1,score_time1=0] qd 0

scoreboard players set @a time1 86400

scoreboard players set @a[score_time1_min=86400] time2 0

这里将时间,签到分数重置(上面)

/tellraw @a[score_qd_min=1,score_time1_min=1] [{"text":"您现在还不能签到哟","color":"red","bold":"true"}]

/tellraw @a[score_qd_min=1,score_time1_min=1] [{"text":"您还需要","color":"red","bold":"true"},{"score":{"name":"*","objective":"time1"},"color":"gold","bold":"true"},{"text":"秒才能签到哟","color":"red","bold":"true"}]

这里提醒玩家还需要多少时间才能签到(上面)

scoreboard players set @a[score_qd_min=1,score_time1_min=1] qd 0

这里将玩家的签到分数设成0(上面)

scoreboard players add @a time2 1

scoreboard players remove @a[score_time2_min=20,score_time1_min=1] time1 1

scoreboard players set @a[score_time2_min=20] time2 0

这里是计算时间的(上面),命令方块一直给time2加一分,所以time2的分数到了20,也就是1秒(每一刻游戏刻命令方块都在运作,20游戏刻=1秒,所以过了20游戏刻,就相当于加了20分),当time2的分数到达20(一秒)时,就给time1减1分并把time2重新设成0,这样就形成了一个循环。一开始如果签到成功时就把time1设成86400(因为这是用秒作单位,所以24x60x60),每一秒减一分,当分数到了0就不减(因为score_time1_min=1,就代表当分数大于等于1时就减1,到了0就小于1,也就不减了)

/tellraw @a[score_jl_min=1] [{"text":"奖励:","color":"yellow","bold":"true"},{"text":"获得15胜点","color":"aqua","bold":"true"}]

scoreboard players set @a[score_jl_min=1] jl 0

这里告诉玩家奖励(上面),奖励可以自己设置,不过最后的scoreboard players set @a[score_jl_min=1] jl 0要加上,重置嘛

注意:循环指令的方向是从第一个到最后一个

签到不成功和签到成功的效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值