minecraft吧 关注:2,545,200贴子:31,823,392
  • 14回复贴,共1

【红石小白】论用命令方块做的移位器

取消只看楼主收藏回复



成品和无节操镇楼,顺便说一下,我是红石小白


IP属地:广东1楼2013-09-14 14:27回复
    嘛,说说原理吧,先用命令方块创造一个变量
    再用testfor去检测变量
    然后再用add remove去对变量进行加减,就是这么简单,我们开始做吧


    IP属地:广东4楼2013-09-14 14:29
    回复
      第一步,我们要先得到命令方块(创造的物品栏里没有)
      想要得到命令方块,我们要先输入代码 /give @p 137 64
      这个代码可以给最近的人64个命令方块


      IP属地:广东6楼2013-09-14 14:31
      回复
        好了,然后我们开始创造变量
        在命令方块里输入这条命令可以创造变量
        /scoreboard objectives add (变量名称) dummy

        如图,变量的名字就叫做..........0w0


        IP属地:广东8楼2013-09-14 14:33
        收起回复
          于是乎我们就成功的创造了变量
          接下来我们队变量进行检测吧
          testfor @p[score_(变量名称)_min=1] 这条命令可以检测某个变量的最小值为1时通过比较器输出红石信号(变量名字+min=*是最小值;变量名字=*是最大值)
          如图,注意这条命令没有斜杆。上条命令有,这点要注意


          IP属地:广东9楼2013-09-14 14:38
          回复
            想要testfor这个命令可以通过比较器输出,那就让命令方块不停的受到时钟信号
            经过各种实验,发现在新版本MC中,占资源最小,最易控制的就数漏斗时钟信号了

            就是这样,两个对着的漏斗,再往里面放一个东西,就可以了,想要停止的话
            就直接给其中一个漏斗信号就好了(使其停止工作)


            IP属地:广东10楼2013-09-14 14:42
            回复
              然后呢,我们就可以建移位器的主要部分啦
              如图,这次我们做一个5位的移位器
              从左到右,输入的命令分别是
              testfor @p[score_(变量名称)_min=1]
              testfor @p[score_(变量名称)_min=2]
              testfor @p[score_(变量名称)_min=3]
              testfor @p[score_(变量名称)_min=4]
              testfor @p[score_(变量名称)_min=5]


              IP属地:广东11楼2013-09-14 14:45
              回复
                接下来,就要对变量进行改变了,于是我们获得了几条命令
                scoreboard players set <player> <objective> <count>
                scoreboard players add <player> <objective> <count>
                scoreboard players remove <player> <objective> <count>
                注意,player处可直接输入@p,objective是变量名称,count是变化目标
                懂一点英文的人应该不难发现,第一条命令是直接把变量变成某个数
                第二条是加某个数,第三条是减某个数
                因为是移位器,所以我们取第二第三条


                IP属地:广东13楼2013-09-14 14:49
                回复

                  现在我又添加了两个命令方块,可以从对话框看出,一个是+1,一个是-1


                  IP属地:广东14楼2013-09-14 14:50
                  回复
                    有人说,接下来不就好了吗,那我告诉你
                    不行,因为min检测的是最小值,所以说,如果变量=2的话,那么1和2都会亮起
                    于是乎我们又要做一个机关来切断信号


                    IP属地:广东15楼2013-09-14 14:53
                    回复
                      我们试想一下,如果最小值是1,当前值是5的话,那么会有12345的灯都亮了
                      但是,如果我们再弄多一个检测,,就是当最小值为2时,直接切断最小值为1的输出
                      那么结果就很明了啦


                      IP属地:广东16楼2013-09-14 14:55
                      回复




                        具体建造过程,因为要弄两层的命令方块,所以把后面的时钟电路改了一下


                        IP属地:广东17楼2013-09-14 14:58
                        回复

                          上面那层的命令方块输入的东西与下面那层的大致一样,但是检测值要+1
                          分别是从左到右
                          testfor @p[score_(变量名称)_min=2]
                          testfor @p[score_(变量名称)_min=3]
                          testfor @p[score_(变量名称)_min=4]
                          testfor @p[score_(变量名称)_min=5]
                          testfor @p[score_(变量名称)_min=6]


                          IP属地:广东18楼2013-09-14 15:00
                          回复
                            居然手贱吧4打成了14


                            IP属地:广东19楼2013-09-14 15:04
                            回复
                              于是乎整台机器就完成了
                              哇哈哈哈哈顺带一提,这货宽1,双向移位,可无限延长
                              @天空之城TCD
                              @a464723626
                              我要一个精品0A0


                              IP属地:广东20楼2013-09-14 15:07
                              回复