minecraft吧 关注:2,547,327贴子:31,851,467

【教程】单刻即时输出的GPS by乙烯

只看楼主收藏回复

大家好,我是乙烯。
来打个招呼吧。


IP属地:江苏1楼2015-11-12 08:03回复
    mcbbs那个人?


    IP属地:山东来自Android客户端4楼2015-11-12 08:06
    收起回复
      实验的内容很简单,tp一个实体进边界之地就明朗了。
      summon Zombie ~ ~1 ~ {CustomName:hi}
      召唤一个叫hi的僵尸。

      由于我实验的地方的z坐标为负数,所以我们选择z轴负方向的边界之地。
      tp @e[name=hi] ~ ~ ~-30000000
      tp进边界之地,这个没啥好说的,接下来就是重头戏了。
      测量好执行次序之后,让以下指令控制在上一条之后激活。
      首先我们来实验一下
      tp @e[name=hi] ~ ~ ~30000000
      当然这条指令的目的就是将僵尸tp回来,而激活之后的结果是,僵尸显示在原地,其实已经去了一趟边界了。


      IP属地:江苏5楼2015-11-12 08:06
      回复
        那么如果我们把第二条指令修改为execute @e[name=hi] ~ ~ ~ tp @e[name=hi] ~ ~ ~30000000会怎样呢?
        答案是,僵尸不见了。
        这样的对照实验我们可以很鲜明的看出区别,在于边界之地的实体并不能用exe指令来执行指令。
        [07:01:48] 你输入的数字 (-3.000093340725673E7)太小了,它至少需要为-30000000
        通过这样的反馈信息我们也可以注意到一些有趣的冷知识。就是命令内部的一些数据其实也是有取值范围的,比如这里的坐标。
        那么进行其他的一些实验以确保确实exe是不能执行的。
        确认完成。


        IP属地:江苏6楼2015-11-12 08:07
        收起回复
          那么这个不能用的发现能用在哪里呢?自然gps应该是可以用上的,因为这个可以判断实体是否在边界之地里。那么我们来进行系统的架构。
          首先,还是万年二分法。
          这里讲解一下,这里我们需要先创建x和z两个计分板变量。
          /scoreboard objectives add x dummy
          /scoreboard objectives add z dummy
          这里以x变量为例子。注意,每个变量一个实体。
          然后召唤一个实体进行判断。
          execute @a ~ 0 ~ summon ArmorStand ~ ~ ~{CustomName:"mark"}
          然后执行以下一组指令让系统初始化
          /scoreboard players reset @a x
          tp @e[name=mark] ~-16777216 ~ ~
          tp @e[name=mark] ~-16777216 ~ ~
          /scoreboard players remove @a x 30000000
          execute @e[name=mark] ~ ~ ~ tp@e[name=mark] ~16777216 ~ ~
          execute @e[name=mark] ~ ~ ~ tp@e[name=mark] ~16777216 ~ ~
          接下来运行以下规律的指令
          tp @e[name=mark] ~16777216 ~ ~
          execute @e[name=mark] ~ ~ ~ scoreboardplayers add @a x 16777216
          execute @e[name=mark] ~ ~ ~ tp@e[name=mark] ~-16777216 ~ ~
          每组指令的数字需要除以2,以此递推。直到数字变为1。
          当然最后不要忘记kill掉这个计算的实体。
          kill @e[name=mark]


          IP属地:江苏7楼2015-11-12 08:07
          回复
            这个的精髓就在于利用exe进行判断实体是否在边界之地内部。这比我原来所使用的选择器的判断方法高效很多。话是这么说啦,但是还是比较抽象不是吗,这里我就把我平时喜欢用的方法说一下。我一般喜欢用这个指令来直接看。
            /tellraw @a [{"score":{"objective":"x","name":"x"},"bold":"true"},{"text":","},{"score":{"objective":"z","name":"z"},"bold":"true"}]
            高频执行这个指令,然后没病走两步,就可以很生动的看到坐标的变化。
            而且这个模块运行起来一点都不卡,实用性非常高。我已经使用到我最近写的一个原版mod里面了。我会在楼中楼里面附上那贴的链接,你们可以去那个帖子下载下来看看。


            IP属地:江苏8楼2015-11-12 08:08
            收起回复
              @1163698402 @婴垣帝凤 申请加精 @祭雪夏炎 @天空之城TCD


              IP属地:江苏9楼2015-11-12 08:12
              回复
                @zat喵
                @duoduo_123dong
                @招财草仔
                @阿散井发了
                @Eater_X
                @天上一片红云
                @让他该人士说
                @Halfaller
                @小兔子大萝卜
                请评价我的帖子。


                IP属地:江苏10楼2015-11-12 08:23
                收起回复


                  来自Android客户端11楼2015-11-12 08:31
                  回复
                    高产触
                    推荐加精


                    IP属地:云南来自Android客户端12楼2015-11-12 08:46
                    回复
                      单独发足够精品 不过作为另一个精品贴的模块再精一次感觉怪怪的


                      IP属地:北京13楼2015-11-12 08:55
                      收起回复
                        膝盖给了,原理大致能理解,不过没看懂初始化的部分唔……
                        按照6L的exe反馈,应该是在exe里的~获取数值超限,导致指令失败?


                        IP属地:江苏来自iPhone客户端14楼2015-11-12 09:51
                        回复
                          补充2l内容
                          今天呢,来教大家怎样制作一个单刻输出的GPS,相信认识我的人多多少少会知道我在几个月前水过一个GPS原型机。在那时syl跟我说的GPS能够单刻输出结果。这点让我很是在意,并一直琢磨着如何做到。之前的一次意外让我无意中摸索到了诀窍。
                          等我做出来兴高采烈的和syl说的时候他告诉我外国人做过了。唉————————syl我和你说不带你这么玩的(╯‵□′)╯︵┻━┻。总之分享是美德,别计较这个了,先把这个技术推广吧。
                          首先来介绍一下GPS是指的什么吧。玩命令的同学应该都知道mc是没有提供给命令系统读取坐标的接口,那么不能获取坐标在某些方面其实还是很不方便的。所以之前那个原型机做到了输出整数的坐标。现在的这个系统也能做到,并且是每时每刻瞬间输出的类型。
                          那么这里的话我也大概说一下具体原理。整个事情是这样的,前段时间呢,是要去研究边界之地,结果呢,手贱,传送的边界之地里面去了,然后我就显示了掉线。单人游戏也会掉线这一点我觉得非常的有趣,但是那个存档之后也就打不开了,由于是随机生成的地图,所以其实也并不重要。但是,我们需要透过现象看本质,如果玩家在边界之地会被处理为掉线,那么其他实体会怎样呢,随后我就进行了一下实验。
                          实验的内容很简单,tp一个实体进边界之地就明朗了。


                          IP属地:江苏15楼2015-11-12 09:54
                          收起回复
                            推荐加精


                            IP属地:北京来自iPhone客户端16楼2015-11-12 14:12
                            回复
                              楼主什么cpu


                              IP属地:浙江来自iPhone客户端18楼2015-11-22 22:09
                              回复