minecraft吧 关注:2,548,615贴子:31,866,040
  • 11回复贴,共1

【技术】【原版】基岩上方刷凋零骷髅的原理及实现

取消只看楼主收藏回复

1L
感谢 @915986386 最先发现部分堡垒可以在基岩上方刷凋零骷髅
@zoujt629 看源码证实了刷凋零骷髅的原理

以及我最后看源码解释了为什么只有部分堡垒可以和这些堡垒的条件

这是个非常重要的发现,首次实现了在生存下低耗资刷凋零骷髅!
I


1楼2013-10-12 14:03回复
    上一张效果图
    在基岩上方刷凋零骷髅可以利用despawn半径
    达到极高速度刷怪的目的
    ——来自 MCLive
    I


    来自手机贴吧3楼2013-10-12 14:04
    收起回复
      为了更好的展示这个的原理
      我写了一个简单的MOD
      在F3界面里会显示一些关于地狱堡垒刷怪的信息
      接下来讲解的时候会把这些信息的具体作用慢慢讲的
      ——来自 MCLive
      I


      来自手机贴吧11楼2013-10-12 14:07
      收起回复
        所谓地狱堡垒刷怪,就是区别于普通地狱的刷怪情况
        在地狱堡垒中,烈焰人、凋零骷髅、地狱史莱姆可以刷出
        在普通的地狱环境下,烈焰人和凋零骷髅无法刷出
        而地狱史莱姆只有在高亮度时才可以刷出
        因此要想获得凋零骷髅就得想办法利用地狱堡垒刷怪的区域
        ——来自 MCLive
        I


        来自手机贴吧17楼2013-10-12 14:13
        收起回复
          但是这种刷怪方法的明显缺陷就是速度太慢
          由于地狱周围无效面积非常大,而且猪人可以在任意亮度刷出
          因此这种方法效率非常低
          这也就是为什么至今也没有很高效率的生存可用的凋零骷髅塔
          PS 抱歉刚刚网络断了几个小时
          ——来自 MCLive
          I


          来自手机贴吧50楼2013-10-12 16:13
          收起回复
            而第二种刷怪方法至今才被发现,其实就是因为其很隐藏
            甚至看了源码也很难找到刷怪区域
            在玩家加载一个地狱堡垒时
            地狱堡垒就会被添加到一个hashmap里面
            这个hashmap是运行时才即时计算的,不保存在存档里
            而玩家在地狱中行走的时候,周围33x33个chunk中的地狱堡垒都会被加载
            ——来自 MCLive
            I


            来自手机贴吧52楼2013-10-12 16:19
            收起回复
              而被选中的地狱堡垒就会进行第二种堡垒刷怪
              堡垒的bounding box,也就是能围住堡垒的最小立方体
              只要地狱砖方块的x和z坐标在这个立方体内
              那么这个地狱砖就可以刷怪
              无论这个地狱砖是天然生成的还是手工生成的
              ——来自 MCLive
              I


              来自手机贴吧57楼2013-10-12 16:26
              收起回复
                而由于在地狱砖上刷怪时并不会判断其y坐标是否在立方体内
                因此我们可以把地狱砖的刷怪版放在基岩上以提高刷怪效率
                但是,最大的问题仍然是在hashmap上
                可以看到我们这个时候有4个堡垒在hashmap里面
                但是只有一个堡垒会被选择作为第二种刷怪的堡垒
                而hashmap的迭代器的选择又是无法预知的
                那么我们怎么知道这4个堡垒哪个堡垒会是进行第二种刷怪呢?
                ——来自 MCLive
                I


                来自手机贴吧58楼2013-10-12 16:28
                收起回复
                  注意到,hashmap并不保存在存档文件里面
                  仅仅是在运行时计算的
                  所以如果我们这个时候退出重进游戏
                  那么之前hashmap里的所有数据都会消失
                  接下来玩家周围的33x33个chunk中的所有堡垒仍然会照常加载
                  可以看到,现在的hashmap里面只有眼前这个堡垒了
                  自然,hashmap的迭代器就肯定会选到这一个堡垒
                  那么这个堡垒就必定会进行第二种刷怪了
                  ——来自 MCLive
                  I


                  来自手机贴吧59楼2013-10-12 16:32
                  收起回复
                    总结一下,要强制让hashmap的迭代器选择到我们想要的堡垒
                    只需要让hashmap里面只有一个堡垒,迭代器别无选择即可
                    重进游戏的时候hashmap会重置
                    而此时如果玩家33x33个chunk周围只有1个堡垒的话
                    那么自然hashmap里面就只有一个元素了
                    迭代器也就只会选到这个堡垒,这个堡垒就必定会进行第二种刷怪
                    因此我们的目的就是,在地狱中寻找一个地狱堡垒
                    而且这个地狱堡垒周围的33x33个chunk中没有任何其他堡垒
                    如图就是一个非常完美的选址
                    ——来自 MCLive
                    I


                    来自手机贴吧60楼2013-10-12 16:35
                    收起回复
                      整个凋零刷怪塔的代码原理就是这样了
                      这个可以说是世界范围内都非常重要的MC发现
                      第一次在生存中可以做到如此高效率的刷凋零骷髅!
                      再次感谢两位帮到的朋友 @915986386 @zoujt629
                      以及 @火黑_213275070 也进行了不少测试
                      总之非常好顶赞!
                      ——来自 MCLive
                      I


                      来自手机贴吧65楼2013-10-12 16:43
                      收起回复
                        适用于1.7.10的MOD ShowFortress,可以直接显示出hashmap中的内容
                        更方便的寻找区域地狱砖刷怪的地狱堡垒
                        http://tieba.baidu.com/p/3199750350


                        155楼2014-07-31 20:01
                        收起回复