brotato吧 关注:9,848贴子:49,595
  • 11回复贴,共1

【转载】源码级的冷却机制

只看楼主收藏回复

本文用到的excel表格由国外大佬Darkly77提供,涉及的源代码分析也由他完成,并且我因为正好也在平行时空做了相同的事。。。所以我可以保证内容的可靠性
这是由Darkly制作的网页小程序,专门用来计算冷却。
https://brotato.codemuffin.com/
这是文中用到的表格
https://pan.baidu.com/s/1tK0Mw5HXFu-puDxkp-O9tQ?pwd=v4v3
我是在此基础上进行了翻译,然后加了几个公式。
说实在话,本文的内容和公式固然精准,但却不够简洁和优雅,建议大家也可以顺便看看我另一个帖子,虽然从游戏过程中采集数据进行的拟合建模,计算上没有这么精确,但是更为简洁方便记忆和应用。
https://tieba.baidu.com/p/8182932285?pid=146348347928&cid=0#146348347928


IP属地:广东1楼2023-01-28 16:41回复
    首先大家要区分Cooldown和冷却这两个东西,
    Cooldown是和武器绑定的一个固定数字(见图二),本身是不会因为攻速或者别的什么东西改变的。
    冷却是在游戏中武器面板上显示的数字,指的是武器相邻两次发起攻击行为的时间间隔。这个定义需要非常的严谨,因为后面会有很多相似的概念。
    图一是远程武器的计算公式,
    Cooldown对冷却的影响也是一个固定的数字,然后再加上Recoil_Duration*2
    这里的Recoil Duration算是作者早期设计的一个阑尾,本身没有物理意义,但是确实还在。
    攻速通过影响Cooldown间接影响冷却,要注意攻速大于0和小于0时,用的公式不一样。攻速+100%冷却减半,攻速-100%冷却翻倍。
    另外如果你有兴趣重复我和Darkly大佬都做过的分析过程,可以看图三(你疯了吧)




    IP属地:广东2楼2023-01-28 16:42
    收起回复
      图一是近战武器的计算过程
      相比于远程,近战武器的冷却要复杂的多,可以分为三个阶段:攻击阶段、返回阶段、等待阶段。
      攻击阶段武器脱手,沿着计算好的路径运动,对进入碰撞体积内的所有敌人造成伤害;
      返回阶段武器径直飞回手里,此过程不会造成伤害;
      等待阶段武器不会攻击,但会找好下一个要攻击的目标并且计算路径。
      三个阶段的时长加起来,才是近战武器显示的冷却时间。
      Cooldown对应等待阶段的时间,Recoil_duration依旧是个阑尾,
      攻击阶段时间受攻速影响,攻速越快时间越短,但这部分时间最低不会低于0.01秒,还受到攻击轨迹长短的影响。
      而攻击轨迹长短受到范围的影响,范围越大时间越长,反之越短,但不会低过0,攻速越快,这部分的影响会越小,但会保持在一个范围。
      我自己的理解是,攻速越快,相当于武器运动的速度也会越快。
      返回阶段受到攻速影响,攻速越快,时间越短,但是当攻速为负时,是固定的0.2秒。
      实际代码看图二



      IP属地:广东3楼2023-01-28 16:43
      回复
        在excel文档的最后还附有一些近战武器在特定范围下的冷却变化,以及品质对武器的冷却影响,甚至还有构筑物的冷却时间。有兴趣可以下载文档查看。关于范围对冷却的影响在我另一个帖子里有一条近似公式。
        https://tieba.baidu.com/p/8182932285?pid=146348347928&cid=0#146348347928




        IP属地:广东4楼2023-01-28 16:44
        回复
          其实大多数在意的并不是近战武器要怎么堆攻速,因为近战武器想安全输出不管怎么样都得堆范围,也就只有长矛这种范围能够降范围提攻速
          吧内最需要的还是,冲锋枪,加特林,喷火器这种基础攻击速度极快的武器,攻速计算到底是个什么原理,为什么不能打出和面板一样的攻速,为什么冲锋枪在100%攻速的情况下少了33%的子弹,在200%的攻速下少了110%的子弹量


          IP属地:广西6楼2023-01-28 17:28
          收起回复


            IP属地:广东7楼2023-01-28 20:29
            收起回复
              膜大佬好东西


              IP属地:加拿大9楼2023-01-29 12:48
              回复