minecraft吧 关注:2,536,826贴子:31,735,479
  • 21回复贴,共1

这是一个鸽子CBer与Mojang斗智斗勇的故事

只看楼主收藏回复

大家好,这里是忙于学习的鸽子C60
《机器人逃脱》差不多是我现在花心思最多,做的最认真的作品了,虽然因为忙于学习也没有多少时间做罢了
目前为止,这个地图的工程量也只有计划中的60%(公开的版本只有50%),不过初期版本在bbs受到了比较好的评价(比我的某个满是差评的作品好了不知道多少倍),也是给了我很大的信心,要做好这个作品
目前为止,作品没有遇到什么技术上的大难题,非要说有的话就是遇到了两个mojang写的bug让我很头疼,不过好在最后都比较妥善地解决了(不是我的bug我为什么要修啊喂)
先说第一个bug吧,这个bug我不是第一次遇到了
实体在被传送超多多个区块的时候,在当前tick内可能会无法被基于位置的选择器选中。这个问题我首先在做一个数据包的时候遇到,当时的结论是目标选择器的distance参数造成问题,不过当时也只是简单地删掉了这个参数,因为当初加这个参数只是为了优化,删掉后也就是性能可能会稍微差一点,虽然那一点基本没啥影响。。。
这次,我也是使用了distance参数,但这个distance就是为了限制实体的位置,因此不能删去。然后这个bug直接导致的一个问题就是,在切换角色的一瞬间,部分机关可能被瞬间恢复,然后又立刻激活,发出的提示音非常让人不爽,而且还可能导致站在一些机关上的角色从机关中穿过去。。。怎么形容呢,反正很影响游戏体验就是了。。。
于是我把这个问题发到了一个群里。然后经群友提醒,这是一个已经被上报的bug。

也就是说,这个问题是确实存在的(15年的bug现在还不修?)
我对此无能为力,因为命令无法改代码,那么这个问题只能想办法绕过去,不能硬碰硬(或者很难,因为基本要重构命令部分)
然后我想到如果只有1t内无法检测到实体,那么只要我这1t内不进行操作,到下1t再检测机关触发,这个问题不就能够解决了吗?事实证明,这样的话问题确实能够被很好地绕过去。于是,这个问题被较为轻松(?)地解决了
然后第二个bug,我刚开始设计第四个角色的时候就发现了,直到最近才查明白成因
第四个角色的设定是可以攀爬藤蔓,而其他角色无法攀爬藤蔓。想做出这个设定,可以在操控其他角色的时候在藤蔓的位置放置falling_block实体,然后在切换为绿色角色的时候在falling_block实体的位置放置藤蔓,以此达到目的。
但是后来我发现一个问题,就是有时候绿色角色无法攀爬藤蔓,甚至我有时候手动执行放置藤蔓的函数后也不行,但重新切换为绿色角色后就可以攀爬了,于是乎这成了一个玄学问题。。。
然后我最近又碰到了这个问题,于是我手动执行了在应该出现藤蔓的位置放置藤蔓的命令,然后提示我无法放置???
于是我想探究一下这究竟是怎么回事。我在旁边的一个不该出现藤蔓的位置放置了一个藤蔓,可以正常放置。
然后我就想知道那个位置究竟是什么。于是我见证了系统指着一个“空气”说它是藤蔓的情景。。。(解释一下,这个位置看不到任何东西,也无法攀爬,但是系统会说这里有个藤蔓,但是保存退出后再进入却会正常显示出藤蔓)
所以我推测这又是一个游戏bug。于是乎我翻了下漏洞追踪器,果然找到了一个关于这个的bug上报

1.8就有的bug。。。
大致意思就是如果falling_block实体所处的方块如果与falling_block的方块相同,那么就有可能导致方块变成鬼方块——看不到,无法互动,但确实存在。
好吧,想办法绕过去吧。。。既然这个bug的触发条件是falling_block与所处的方块相同,那我只要保证falling_block与方块不同是不是就能解决这个bug了?于是我提取了原版藤蔓的材质,并改了下另一个方块的材质,然后把falling_block换成另一个方块。
测试后发现确实不会出现无法攀爬藤蔓的问题了,但是又出现了另一个问题。。。

藤蔓的材质是受着色器影响的,原材质是纯黑白的。。。
没办法,只好截了个图,然后一点一点从截图里抠出来藤蔓的着色,最后终于得到一个比较理想的结果了。。。这个问题终于彻底解决了
现在只有60%的工程量,那最后40%的工程里不知还会不会遇到别的bug。。。希望别吧。。。


IP属地:湖北1楼2020-09-24 18:28回复
    话说有人看得懂吗?


    IP属地:湖北2楼2020-09-24 18:28
    收起回复
      心疼你一秒钟


      IP属地:广东3楼2020-09-24 19:10
      收起回复
        bugjang名不虚传


        来自Android客户端6楼2020-09-24 22:38
        收起回复
          bugjump很屑,行为包官方文档缺失很多东西,不知道别人哪来途径知道缺失的,总不能一只参考别人的包吧,毕竟也得有个初始啊。


          IP属地:广东7楼2020-09-24 23:57
          收起回复