西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页游戏资讯玩家心得 → 帝国时代3范围攻击原理详解

帝国时代3范围攻击原理详解

前往专题相关软件相关文章发表评论 来源:西西整理时间:2012/11/22 14:22:20字体大小:A-A+

作者:西西TS点击:0次评论:0次标签: 帝国时代3

  • 类型:修改器(游戏工具)大小:261KB语言:中文 评分:2.6
  • 标签:
立即下载
3 页 解惑篇

解惑篇

既然是解惑,那么我就开门见山地先说出我的结论:

综合了本人对近战兵种的实验采样,结果表明帝国3中只有“一”种统一的范围伤害算法和“三”种范围伤害模型。


·理论讲解前的准备:

既然结论已经给出,我就先从这“一”种统一的范围伤害算法来说。首先有三点共识是大家不能否认的,那就是:
1, 受到直接攻击的单位不会受到范围攻击,
2, 受到范围伤害的单位其承受的伤害不会超过受到直接攻击的单位。
3, 在范围伤害范围内受到伤害的具体值与该单位和受到直接攻击的单位的距离有关,并成反比例趋势。也就是说,离直接命中的那个单位越远,受到伤害越小。

前2点应该很好理解,针对第三点,我们列出一个受到伤害随距离增加而渐渐减小的数列,我管这个表述方式叫做,“范围伤害效果分布图”:

A 100% 100% C100% 90% 80% D70% 60% 50% B40% 30% 20% 10%

在下面的文章中我将以此效果图的形式讲解和例举许多范围伤害模型。因此请务必先理解我这种粗糙的表达方式。

上面这行数据中,单位A被直接命中,我们假设每个数字中间的间隔是1个单位距离,那么距离直接命中单位为1或2个距离的那个单位将同样受到100%的伤害,而距离为3的单位受到90%,距离为8的单位受到40%的伤害。例如这里的例子中C受到100%范围伤害,D受到80%-70%之间的范围伤害,B受到50%-40%之间的范围伤害。另外请注意此图中受到100%伤害的范围很大,这是一个理解本人算法理论的关键点。

本人所设想的理论中虽然有3类模型,但算法只有一种,因此这很符合奥卡姆剃刀理论对于简单真理的追寻,这表明至少在经验主义下我是占据优势的。请大家注意的是,例如量子物理学中的“测不准原则”这类高深的理论也仅仅是在经验主义下占有优势就已经被世人所接受和承认了。


叉烧要配米线的范围伤害理论算法模型:

在帝国3中范围攻击的算法是一种链式算法,即每个在伤害范围内的目标单位将依次受到伤害,而受到伤害的具体值与和直接命中的单位的距离有关,并且受到伤害的单位顺序也和距离有关。范围伤害总是会找上距离最近的那个单位。另外要注意的是攻击链中出现的单位不会再次进入同一次攻击的攻击链。
在这种算法中我们首先要作出一个假设,若一门火炮的范围攻击伤害为200%,那么其意义是,这门火炮的范围伤害上限小于攻击力的200%,注意,我用的不是小于等于,而是小于。这是本理论算法的关键所在。以公式可以表示为:

造成的范围伤害 < 范围伤害上限


本理论的“三”种范围伤害模型:

·其一是以火箭炮,神火飞鸦以及各种近战步兵,骑兵为代表的单次范围伤害模型;

假设一门火箭炮对A进行攻击,火箭炮的攻击力是300,范围伤害是600,是典型的范围伤害200%火炮。

A 100%B C100% 100% 90% 80% D70% 60% 50% 40% 30% 20% 10%

各个单位的相对距离如上面所示。则链式攻击过程如下:
第一次直接攻击造成A受到300伤害
第二次范围攻击造成B受到300伤害
第三次范围攻击造成C受到300伤害
然而事实上C将不受到伤害,这是因为该3次攻击伤害总和已经不符合
“造成的范围伤害 < 范围伤害上限”这一条件。因此这次攻击只能对A造成300伤害,B造成300伤害,其余各个单位不受伤害。
这次伤害的伤害链可表示为: A(300)--B(300)--C(0)
这一结果符合实验中提到的“2人受到100%伤害,无任何误伤”这种情况。
另外这一过程中并不是首先对C造成伤害,而是在对B进行伤害后就计算对C伤害的可能性,当进行到对C攻击时若这次链攻击只剩下100%的范围伤害上限,则将使这次攻击值为0。

因此我们可以得到这次攻击链中算法的过程图

因此我们看到当范围伤害为攻击力的200%时,只要直接目标之后的第一个范围伤害目标(这里指B)受到了100%伤害,整个攻击链就将不再继续产生伤害。这是因为剩下的100%攻击伤害在让C承受时有超过范围伤害上限的风险。注意,这一流程中并不判断C所在的位置所产生的伤害比例是否真的会承受100%伤害,只要剩下的伤害上限少于或等于攻击力的100%时,就将只能对下一单位造成0的伤害并在之后停止攻击链。由于攻击链停止,因此不会再有人受到范围伤害。
那么如果第一个范围伤害目标(这里指B)并没有受到100%伤害,假设B受到80%伤害,那么剩余范围伤害上限为120%,则C将继续受到其与A距离之差所得的伤害。我们假设C若受到15%伤害,那么剩余范围伤害上限依然超过100%,为105%,会判定下一次攻击不会超过伤害上限,因此攻击范围内若还有其他目标则将继续受到伤害,直到剩余范围伤害上限下降并低于100%时,下一个目标无论距离如何将只受到0的伤害。
至此我们应当已经了解了无二次弹射的范围伤害上限为200%的火炮所造成的伤害会如何了。事实上即便范围伤害上限高于200%我们也能算出来了。
P.S.我们如果用日本武士或双手剑士做同样的目标密集型攻击实验则很容易造成对2个目标造成100%伤害而却没有其他目标受到任何伤害的结果,这点说明此类火炮与近战伤害是完全相同的计算系统,因此也会出现200%伤害范围共有的这个问题。另外如果用伤害为20,范围上限为68的骷髅武士时则结果就完全不同了,在密集目标实验中,他能轻松斩到4个目标因为68的范围伤害上限早已超过300%,不会存在100%的“判定危机”。而在斩到4个目标并造成100%伤害后,除去本体攻击外,范围伤害上限也消耗了300%,已经小于100%,因此这次攻击的攻击链中第5个目标就只受到0点伤害了。
另外在近战实验中,约有1/300的几率,一个日本武士能砍出25+25+25的伤害,但这并不意味着日本武士能够逃离本人的法则。在实战中,有经验的玩家会记得经常会发现0生命值却没有倒下的单位,这是因为该单位生命值在0.5与0之间,尽管四舍五入表示为0,但仍然算是生存。因此当这名武士给直接目标造成100%伤害,而第一次范围攻击对第二目标造成99%攻击时,剩余范围伤害上限则是101%,因此第三目标依然能够受到符合其距离的伤害,如果第三目标十分接近直接目标的话,则仍然可以受到接近全额伤害的打击。而其显示值则很有可能是你的范围伤害到达了上限。但实际上在小数点后面的位数上仍未达到上限。而这一样本发生几率极小则更加证明了推理的准确。
在往下看本文的同时要注意的是,在上表中第一次B受到100%范围伤害时,C受到了0伤害并”进入攻击链”。这对理解下一个模型(二次弹道火炮模型)有帮助。

·其二是以鹰炮,土耳其巨炮,重加农炮,长炮等为代表的弹道二次伤害模型;
这类与第一类的区别在攻击链结尾。第一类模型中,当上述流程进行到C受到了0伤害时,攻击链结束。而在第二类中,攻击链并不会结束,此时攻击链将进入到二次弹射伤害环节:

比如在单位密度较密集时就会产生下面这样的攻击链

当出现这样的攻击链时实际上就造成了“有2个目标承受全额伤害,而其余目标略有损伤。这样的结果中,那些其余目标的略有损伤是由二次弹射所造成的。而其他状况与第一种模型完全相同。这里要注意的是二次弹射是攻击链的延续,因此其目标与初始目标不重复,而二次弹射的伤害上限是独立存在的,并不会受之前伤害的影响。若二次弹射的炮弹掉落轨迹十分好的话,伤害甚至能够超过第一次发射炮弹造成的全部伤害。





·其三是以管炮,格林机枪为代表的合理性更强且更具有实用性范围伤害模型。

与上面两种模型不同,管炮对密集目标通常只会造成3个伤害严重的单位,而其他目标则可能不会受到任何攻击。另外,从实验中发现管炮似乎不会造成与直接攻击相当的单体范围攻击。基于这2个特点我为管炮设计了一个不同于上面各类兵种的范围模型

这是之前的模型:
A 100%B C100% 100% 90% 80% D70% 60% 50% B40% 30% 20% 10%
在目标密集攻击时,我们已经知道火炮或其他范围攻击单位若是200%伤害上限往往会造成伤害链为100%--100%--0%的杯具。

而这是管炮的模型:
A 75%B C75% 75% 50% 40% 30% 20% 10% 5%

这样的范围模型坏处是攻击无法非常集中,但好处却是能轻松突破范围伤害的上限检查。200%伤害上限则不会由于第一次范围攻击为100%就被卡住。例如100%--100%--0%的杯具将不会上演。若做密集目标攻击实验,则取而代之的则是:100%-75%(此时剩余上限是125%,完全OK)--75%。这样一来,就会在第四个目标卡住,因为200%上限减去75%+75%只剩下50%,上限检测又将使下一次攻击的伤害为0。这也是为什么我们在密集目标攻击实验时管炮往往可以同时攻击3个目标,但却很难攻击到4个目标的原因。
注意,75%这个数字只是我的猜测,因为管炮的范围攻击即便对着距离极近的目标也无法造成100%伤害反而更接近75%。但这个比例实际是多少并不是特别重要,只要这一最大的范围伤害低于100%,就能突破攻击链中第三目标到第四目标的问题,并能够解释试验中的现象从而证明本人的理论了。


本理论解释了范围攻击的一切,而以下则是提供一个证明攻击链和攻击上限检查限制存在的证据:

在此图中,ABC密集排列,DEF略分开一点
因此攻击链前三位将会使ABC,若此时以火箭炮或神火飞鸦攻击A,B,C中的一个,那么将会造成100%--100%--0%的情况。也就是说A,B,C中将阵亡2人,但第三个人将以100%的几率存活,绝无第二种情况出现。由此完全可以证明了200%范围伤害火炮在这种情况下于攻击链的终结判定时将给予0伤害的这个事实。并由此证明了攻击链以及攻击链末端判定皆为事实。而由此证明了本人的理论成立。

当然,若使用其他的大型火炮也同样可以证明,因为A,B,C中未受到伤害的那个单位绝不会被第二次弹射误伤,原因是该单位已经在第一次攻击中进入了攻击链,并受到0伤害,将免疫第二次弹射带来的伤害,但周围的3个单位则将可能受到二次弹射伤害,而使用神火飞鸦和火箭炮则周边的几个单位也将不会受到任何伤害,因为这2个单位在没有二次弹射设定,在A,B,C中的2人受到伤害,第三人受到0伤害后攻击链就终结了。
另外我要指出的是,帝国3中范围伤害的结果是极为精密的,距离不同伤害不同这点甚至精确到小数点后3位。

另外本文并没有完结一切的意思,而只是作为一个开端,希望更多更优秀的研究报告出炉


 

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)