《我的世界》服务器签到装置建造教程
2017-08-12 16:25:40来源:论坛编辑:评论(0)
《我的世界》中服务器中可以签到,很多玩家就想做出一个服务器签到装置。具体怎么做?下面就为大家带来玩家“Netro777”提供的服务器签到装置建造教程,一起来看看吧。
教程:
大家应该都知道在服务器中可以签到,对吧。这里就给大家介绍一个用原版命令方块做的签到装置,我用的版本是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}]"]}
只要点击书本的"点我签到"就可以签到了
不过这条指令有点复杂,我解释一下:
英语
注释
用法
意思
written_book
书
/give @a written_book 1 0
给所有玩家一本书
title
标题
{title:"呵呵"}
标题为"呵呵"
author
作者
{author:"遛遛"}
作者为"遛遛"
pages
页数
{pages:["{text:\"Page1\"}","{text:\"Page2\"}"]}
在第一页显示"Page1"在第二页显示"Page2"
text
内容
{text:\"Here is nothing\"}
内容为"Here is nothing"
color
颜色
{color:aqua}
颜色为蓝色
bold
粗体
{bold:true}
粗体为真
obfuscated
乱码
{obfuscated:false}
乱码为假
clickEvent
点击事件
{clickEvent:{action:\"run_command\",value:\"/say Hello\"}}
点击就会触发指令:"/say Hello"
hoverEvent
触摸事件
{hoverEvent:{action:\"show_text\",value:\"Hi\"}}
触摸就会显示:"Hi"
action(run_command)
动作
{clickEvent:{action:\"run_command\",value:\"/kill @s\"}}
点击就会运行指令(value)
action(show_text)
动作
{hoverEvent:{action:\"show_text\",value:\"You will die!\"}}
触摸就会显示内容(value)
value
值
{clickEvent:{action:\"run_command\",value:\"/say No!!!\"}}
点击就会运行值("/say No!!!")
(注: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分\"\""}]
加了"\",就让符号"区分了关系,指令的符号"和句子里的符号"会让电脑混淆了关系,加了"\",就让电脑知道哪个是指令里的符号",哪个是句子里的符号的"
跟这个书本指令一样,如果在两个符号"之中的符号"没有加符号\的话也会让电脑出错
接下来是循环部分:
以下指令分别是从下往上每个命令方块的指令(第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要加上,重置嘛
注意:循环指令的方向是从第一个到最后一个
签到不成功和签到成功的效果:
以上就是具体教程介绍,希望能对各位玩家有所帮助!