我的世界中国版NWT电子钟怎么做 NWT电子钟有什么用

编辑:五音 发布时间:

许多玩家都知道我的世界游戏非常好玩,我的世界也有非常多的高级操作。你知道NWT丨分数转方块如何在MC里做一个电子钟吗?本篇教程基于1.8版本。各位小伙伴们一定要学会喲,超好玩小编就带大家详细了解一下

      许多玩家都知道我的世界游戏非常好玩,我的世界也有非常多的高级操作。你知道NWT丨分数转方块如何在MC里做一个电子钟吗?本篇教程基于1.8版本。至于为什么不用高版本的mc呢?因为这是去年做的东西。各位小伙伴们一定要学会喲,接下来就由超好玩小编就带大家详细了解一下这个问题。

     

更多物品合成都可以在超好玩我的世界合成表内查询:

http://www.18touch.com/zhuan/mc/static/simulator.html


 先放一个图:

   


      正如图中所见,空中有一个时钟,每过一分钟末位就会+1,到了60会自动进一小时。

      其实时间是三个计分板(作者懒,可以做成一个计分板,为了更加好区分,这里用三个计分板)分别是s(秒)min(分钟)h(小时)

      那么这个时钟只显示小时和分钟,所以只把小时和分钟两个积分转换到方块就可以了。

      那么重点来了,如何把积分转换成方块呢

      当然是clone,我们需要一个被clone的区域:


      这是十个已经摆好的数字(0到9),到时候需要哪一个,就clone哪一个

我的世界中国版NWT电子钟怎么做

      假如我有一个五位数的积分,这个五位数从00000到99999都有可能,那么想要表示所有的数字,需要穷举100000次才能做到,显然这个工作量是不允许的。

      但是如果能把五位数拆成五个数,比如把12345拆成1、2、3、4、5,无个数字位,那么每个数字位需要穷举10次,五个数字位只要50次就可以了,减少了很大工作量。

      如果一个分数是abcde,(abcde各代表一个数字)那么将abcde/10=abcd??????e(得数是abcd,余数是e)这样就得到了个位数e,再将得数abcd/10=abc??????d,这样就得到了十位数d,依次除以10四次,就能得到全部五个位数。再将每个位数穷举10次,就能完成分数到方块的转化了。


      下面来具体说一下时钟所用的指令(此时钟有个缺陷,由于命令方块不能把电脑时间调进来,所以每次重新进入存档需要调表,只有一直开着存档或者服务器才能维持时钟一直运转)


      首先想要时钟精确运转,就需要精确的计算一秒钟,可以运用fill高频,让加分指令每秒运行20次,每加20分加一秒

      (计分板等自行创建,在此只说原理)

      /scoreboard players add @e[type=ArmorStand,r=3,name=js] FX 1

      /execute @e[name=js,type=ArmorStand,score_FX_min=20,score_FX=20] ~ ~ ~ /setblock ~ ~ ~-5 redstone_block

      /scoreboard players set @e[type=ArmorStand,r=3,name=js,score_FX_min=20,score_FX=20] FX 0

      复制代码

  

 

      我们暂且吧这个红石块连接的电路称为每秒执行一次的命令区A

      即为每过一秒,就在图示位置放置一个红石块,之后连接命令方块清除红石块(/setblock ~-2 ~ ~ air)

      之后召唤一个名为BJSJ的盔甲架来存时间:

      <div class="blockcode"><blockquote>/summon ArmorStand ~ ~ ~ {CustomName:"BJSJ",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      复制代码


      同时在每秒执行一次的命令区A连接下列四个命令方块

      /scoreboard players add @e[type=ArmorStand,name=BJSJ] s 1

      /execute @e[score_s_min=60,type=ArmorStand,name=BJSJ] ~ ~ ~ /scoreboard players set @e[type=ArmorStand,name=BJSJ] s 0

      /execute @e[score_min_min=60,type=ArmorStand,name=BJSJ] ~ ~ ~ /scoreboard players set @e[type=ArmorStand,name=BJSJ] min 0

      /execute @e[score_min_min=60,type=ArmorStand,name=BJSJ] ~ ~ ~ /scoreboard players add @e[type=ArmorStand,name=BJSJ] hour 1

      复制代码

      这样就完成了在BJSJ盔甲架上的计时,但是此时在此盔甲架上有三个积分:两位数的hour,两位数的min,两位数的s,抛去s不用转换为方块,我们需要把min和hour两个积分分别转换为两个个位数。


      在每秒执行一次的命令区A另外防止一个命令方块:

      /execute @e[name=BJSJ,type=ArmorStand,score_s_min=1,score_s=1] ~ ~ ~ /setblock 96 3 91 redstone_block

      复制代码

      此setblock放置的红石块每分钟才会放置一次,我们暂且把这个红石块连接的电路,称作每分钟执行一次的命令区B

      此时需要再次召唤四个盔甲架,分别来存储hour的个位,十位、min的个位,十位。

      /summon ArmorStand ~ ~ ~ {CustomName:"BJSJM",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      /summon ArmorStand ~ ~ ~ {CustomName:"BJSJM1",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      /summon ArmorStand ~ ~ ~ {CustomName:"BJSJH",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      /summon ArmorStand ~ ~ ~ {CustomName:"BJSJH1",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      复制代码

      在命令区B首先把BJSJ在min和hour上的分数存到刚刚创建的四个盔甲架上方便后续运算:

      /scoreboard players operation @e[type=ArmorStand,name=BJSJH] hour = @e[type=ArmorStand,name=BJSJ] hour

      /scoreboard players operation @e[type=ArmorStand,name=BJSJM] min = @e[type=ArmorStand,name=BJSJ] min

      /scoreboard players operation @e[type=ArmorStand,name=BJSJH1] hour = @e[type=ArmorStand,name=BJSJ] hour

      /scoreboard players operation @e[type=ArmorStand,name=BJSJM1] min = @e[type=ArmorStand,name=BJSJ] min

      复制代码

      创建一个名为10的盔甲架,并把它在FX记分板上的分数设定为10,用来当除数

      /summon ArmorStand ~ ~ ~ {CustomName:"10",CustomNameVisible:1b,NoGravity:0,Invisible:1}

      /scoreboard players set @e[type=ArmorStand,name=10] FX 10

      复制代码

      之后连接另外四个命令方块分别计算出小时和分钟的个位十位

      /scoreboard players operation @e[type=ArmorStand,name=BJSJH] hour /= @e[type=ArmorStand,name=10] FX

      /scoreboard players operation @e[type=ArmorStand,name=BJSJM] min /= @e[type=ArmorStand,name=10] FX

      /scoreboard players operation @e[type=ArmorStand,name=BJSJH1] hour %= @e[type=ArmorStand,name=10] FX

      /scoreboard players operation @e[type=ArmorStand,name=BJSJM1] min %= @e[type=ArmorStand,name=10] FX

      复制代码

      为了新手能看懂,在此稍作讲解/scoreboard players operation <选择器一> <记分板一> <运算方式> <选择器二> <记分板二> 该指令能对两个积分进行运算,运算结果最终会存到选择器一上,即选择器一在记分板上的分数会变为此指令运算的结果,/=为除法求得数,%=为除法求余数。


我的世界中国版NWT电子钟有什么用

      到此我们就得出了时钟上的四个数字,只要把每一位穷举10次即可

      穷举举例如下:

      /testfor @e[type=ArmorStand,name=BJSJM,score_min_min=1,score_min=1]

      连接比较器

      /clone x y z x1 y1 z1 x2 y2 z2

      复制代码

      即为检测在分钟个位上数字是否为一,如果是,则执行后续指令clone数字1到指定位置

      如此重复40次(整理一下坐标复制粘贴很快的)


      最终效果如下:

   


想要调整时间直接调整BJSJ的相应分数即可

/scoreboard players set @e[type=ArmorStand,name=BJSJ] s 00

/scoreboard players set @e[type=ArmorStand,name=BJSJ] min 00

/scoreboard players set @e[type=ArmorStand,name=BJSJ] hour 00

复制代码

这样一个时钟就大功告成啦~\(≧▽≦)/~

  

看完我的世界NWT丨分数转方块是如何在MC里做一个电子钟的,是不是更加的了解这款游戏了呢?大家在玩我的世界过程中要是遇到了什么疑问的话,可以加入我的世界超好玩的qq群:450745885(已满)、657717684(二群)


>>>我的世界红石功能大全<<<

红石基础系列:[红石] [红石块] [红石脉冲] [红石火把] [红石中继器]

红石创作系列:[水动电梯] [双向铁门] [直升降机] [热微波炉] [热发射器]

红石自动系列:[自动铺轨机] [自动造雪机] [小麦收割机] [自动烤肉机]