heroes5吧 关注:37,354贴子:878,749

回复:【H5禁书目录】之亡灵超生魔法深究

只看楼主收藏回复

那么这个现象其实非常诡异 测试起来也很复杂 这里就不上具体测试内容了 没啥太大意义 只说点大致原理和结果 同时要注意的是 h5源代码谁也没有 所以任何通过表面来猜测的东西都有可能不是实际的情况 这里咱就随便用一种很简单的方式去理解 不排除其他人有其他解释和算法


IP属地:中国香港31楼2015-01-19 17:56
回复
    针对超生的bug 咱对这个现象的理解就是
    3.1的亡灵复生这个魔法 使用5次之后对非亡灵生物实现的是真复活 而且是100%的真复活
    那有童鞋要说了 你看你看 你之前28L还说死掉了58个 怎么这里说完全复活呢 别急 让咱继续把话说完
    这个就是游戏机理中取整算法出现了点问题 导致本来应该完全复活的生物 会死掉一些 这个算法后面的篇幅会详细介绍
    所以3.1超生的bug其实是由两个bug组合而成的
    1. 超生5次的时候生物被真正复活
    2. 但是超生5次的时候因为取整有些生物会死掉

    lx稍微说说为啥有些生物会死掉


    IP属地:中国香港本楼含有高级字体32楼2015-01-19 18:04
    回复
      让我们把之前24l超生盾卫的每一步的细节都贴出来 这个时候蜂群女32咒力专家召唤 刚好可以复活100个红盾 也就是1200的hp
      第一次超生 一切正常 复活1200点

      但是第二次的时候就有点意思了,999点 12*0.8=9.6 四舍五入之后应该是10点 也就是说100个红盾这时候应该1000的hp 但是现在只算999的hp总量

      第三次的时候也是如此

      而且我们可以看到 少了一点超生量 但是并没有导致最后一个红盾少掉1点hp 依然是满的

      最后一次超生 奇怪的取整依然存在:


      IP属地:中国香港33楼2015-01-19 18:12
      回复
        不过在继续之前 想让我们小插曲一下补充一点基础知识


        IP属地:中国香港通过百度相册上传34楼2015-01-19 18:12
        收起回复
          。。。


          来自Android客户端35楼2015-01-19 19:21
          回复
            下面就是很简单的一点小知识
            h5里面超生每次降低20%的原始生命上限 因此超生5次之后理论上来说这个生物的hp会被降到0点
            但是实际上的情况却不是这样子的 当超生5次之后 h5自动取整把0%取整为1% 所以下面的一个算法的1%也是这么推测了的 但是这个不是关键 关键是很多新手总觉得好像超生5次之后生命值会变成1 这是不对的 生命值变成1%后四舍五入 所以高级兵可能出现超生5次之后hp2点 甚至3点的情况 150点以上的hp超生后为2点 250点以上为3点 以此类推
            下面举几个例子 多头 老树 红龙 一看就明白




            IP属地:中国香港本楼含有高级字体36楼2015-01-19 20:52
            回复
              我就青菜到低是谁,那个大神告诉一声


              IP属地:缅甸来自Android客户端37楼2015-01-19 21:53
              收起回复
                这样子现在我们就有召唤流的新玩法啦!
                超生5次 直接各种无损 但是之前也说了 这个打法的问题在于 超生5次之后还是会损失掉一些兵力的 那么这个兵力是怎么损失的算法就很重要了 实际上咱知道这个打法之后超生大德去mf结果最后死光光 这里面的损失算法很重要
                那么下面就公布一下这个损失的算法
                超生5次之后死亡生物的个数 =
                (第一次超生总量*1% + 第二次超生总量*1% + 第三次超生总量*1% + 第四次超生总量*1% + 第五次超生总量*1%)/超生5次后的生命值上限


                IP属地:中国香港本楼含有高级字体38楼2015-01-20 12:29
                收起回复
                  这里解释一下 ls计算公式中的超生总量 指的是折算成原始hp的超生总量
                  比如你第五次超生起来100个红盾 hp都是1 看起来好像只有200的超生量 但是实际上的超生量应该是1200 折算成没超生过hp总量的
                  另外 实际上的超生总量不等于英雄咒力计算出来的结果 比如你死掉了一个农民 然后超生 那么超生总量这个情况下就是3 只算复活起来的生物的数量
                  举个例子 之前我们使用红盾对吧 那么怎么计算红盾的损失呢? 红盾每次都是被满员超生的 所以每次超生生命值为1200 然后红盾5次超生后生命值上限为1 那么计算方法就是
                  (1200*1%)*5 / 1 = 60个
                  这么一看 损失了58个 这个计算方法不准确嘛! 事实上咱也没说过这个公式绝对准确 具体原因是因为取整算法 可能后续的某几次超生的hp总量不是1200而是1199然后被折算成了11个结果少损1个等等情况 实际上的问题太复杂这里不做深入研究 不过公式本身还是没有问题的 下面我们就可以各种验证


                  IP属地:中国香港本楼含有高级字体39楼2015-01-20 12:43
                  回复
                    不愧是天天,这种事情都能推导出来


                    IP属地:山东来自Android客户端41楼2015-01-21 01:03
                    回复
                      5还有青菜头一次看见


                      IP属地:山东来自Android客户端42楼2015-01-21 01:04
                      回复
                        让我们再来测试下这个公式的问题 下面我们找100个黑tt 让对手的死神摸死两个之后 超生 重复这个过程5次
                        看看最后能剩下多少


                        IP属地:中国香港43楼2015-01-21 12:35
                        回复
                          使用我们之前的公式 黑tt每次被摸死2个 超生的复活量就是380 黑tt生命值190 超生5次之后应该是2
                          (380*0.01*5)/2 = 9.5 是9个或者10个的样子
                          结果果不其然


                          IP属地:中国香港44楼2015-01-21 12:38
                          回复
                            那么有了这个公式 虽然在每次超生取整算法上的细节还不是很清楚 但是咱也说了 谁也不可能拿着计算器玩h5 关键在于从这个公式中我们能得到啥有用的信息 可以看到这么一点
                            损失生物的个数 只与每次的治疗量有关
                            这句话很重要 想想吧 我们每次英雄用超生 尤其是非召唤的英雄用超生 治疗量都是固定的 往往都很低 只能治疗一定生命值的生物 这时候损失的个数就已经固定了 这是个很有意思的话题 具体怎么样 下面上图说话
                            我们找来hp总量为600的农民 红盾 妖姬和翡翠龙做实验 看看是什么结果


                            IP属地:中国香港本楼含有高级字体45楼2015-01-21 12:41
                            回复