博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【转】Travian]战斗伤亡计算——从入门到精通

Posted on 2008-06-17 17:01  单摆  阅读(2734)  评论(0编辑  收藏  举报
1. Travian的战斗胜负是怎样决定的呢?

大多数游戏,战斗双方的攻击和防御都要考虑进去。
这一点Travian比较特别,影响战斗的只有进攻方的攻击值和防守方的防御值。
进攻方的防御值和防守方的攻击值是完全不起作用的。
正因为如此,Travian中的进攻部队和防守部队才会区别那么明显。

判断一场战斗的胜负,就是看进攻方的总攻击值和防守方的总防御值哪个大。

2. 攻击值和防御值如何计算?

可以很容易查到不同兵种的攻击和防御数值,比如http://help.travian.com/index.php?type=faq&mod=410&s=400

用这些数值乘上对应士兵的数量再加起来就可以了。当然最终的结果会受到很多因素的影响,包括攻防的升级、城墙、行宫/宫殿、士气、英雄的技能。我们先暂时不考虑这些,从最简单的情形开始。

例1:
1000帝国兵+1000古罗马步兵的总攻击值为:70×1000+40×1000=11000
2000禁卫兵的总防御值为:65×2000=13000(对步兵),35×2000=7000(对骑兵)

由于进攻方都是步兵,11000<13000,所以防守方获胜。

3. 那么双方的伤亡怎样决定呢?

我们先来看比较简单的情形,也就是普通攻击方式。

3.1 普通攻击方式中双方伤亡的计算

败方很简单,100%死亡。

胜方的伤亡率 = (败方的总战斗值/胜方的总战斗值)^(3/2) × 100%

这里,战斗值代表攻击值或者防御值。进攻方用攻击值,防守方用防御值。
具体来说就是双方战斗值比值的三次方的平方根。

在例1中
进攻方 伤亡率: 100%
防守方 伤亡率: (11000/13000)^(3/2)×100%=77.83%

也就是说,死亡 2000×77.83% = 1557个。

3.2 Raid攻击方式中双方伤亡的计算

在Raid中,双方的伤亡率之和=100%

首先,按照普通方式,算出胜方的伤亡率P。

然后,在Raid中,胜方的伤亡率变成 P/(1+P),而败方等于(100%-胜方伤亡率),也就是1/(1+P)

还是用例1中的战斗来看
防守方获胜,所以Raid模式下的伤亡率为 0.7783/(1+0.7783)=43.77%,也就是875个禁卫兵。
进攻方伤亡率 =100%-43.77%=56.23%,也就是562个帝国兵,562个古罗马步兵。

注意一场战斗中某一方的不同兵种的伤亡率都是完全一样的。英雄则是减少同样百分比的生命。
如果英雄在某次战斗中损失生命超过90%那么英雄死亡。

以上是排除了各种其他因素以后的计算,在实际战斗中,有很多因素都影响到双方的攻防数值。让计算结果变得更加复杂。
下面我们具体来看看这些因素有哪些,怎样发挥作用。

4. 步兵和骑兵混合的计算

当进攻方同时拥有步兵和骑兵的时候,计算会变得更复杂一些。

首先,我们要算出二者在攻击值中的权重

例2:100雷法和50剑士攻击100个禁卫兵。
总攻击值: 100×90+50×65=9000+3250=12250。
其中,
骑兵攻击值=9000/12250=0.7346
步兵攻击值=3250/12250=0.2654

我们可以看到,骑兵的攻击在总攻击值中占了大约3/4,而步兵是1/4。

现在来看看防守方,100禁卫兵有6500步兵防御值和3500骑兵防御值。

实际的防御值就是按上面攻击方的权重来进行计算:

6500×0.2654+3500×0.7346 =2571.1 + 1725.1 = 4296.2

后面的计算就和3中提到的一样了。把12250作为总攻击值,4296.2作为总防御值。如果这是一次普通攻击,那么禁卫全灭,攻击方的伤亡率为(4296.2/12250)^(3/2)×100%=20.77%,也就是说,损失21个雷法和10个剑士。


5. 城墙的作用

城墙可以有效的提高防守方部队的防御总值,这种提高是按比例的。

不同种族的城墙提高防御的比例不一样,罗马最高,日尔曼最低。
罗马的城墙每提升一级,防御加成比上一级多3%,高卢是2.5%,日尔曼是2%。
具体数值为:
罗马:34.4%(LV10)、80.6%(LV20)
高卢:28.0%(LV10)、63.9%(LV20)
日尔曼:21.9%(LV10)、48.6%(LV20)


6. 攻防的提升

在铁匠铺和军械库里可以分别提升部队的攻击和防御数值,这种提升只对所在村的部队有效。当然升级完成以后对所有该村生产的部队都有效,包括之前生产的部队。而且即使升级用的建筑消失,已经提升的科技仍然不变。

每级攻防的提升比上一级增加1.5%的效果。
计算的时候是累乘而不是累加,不过可以用累加来得到近似的结果。

10级攻防提升为16.1%
20级攻防提升为34.7%

攻防提升的价值并不能简单的用多出了多少攻防数值来衡量。比如说,1347个0级的帝国和1000个20级的帝国攻击总值虽然一样,但是在一次战斗中,同样是损失50%,前者就要多损失100多个。而且前者需要更长的制造时间、更高的人口维护。


7. 行宫/宫殿的作用

行宫/宫殿会增加防守方的防御值,但是增加的数值是固定的。因此在初期作用较大,后期作用很小。

增加的具体数值为 2×等级的平方

1、10、20级的时候分别为:2、200、800。


8. 英雄的作用

英雄的技能中有按比例提升全体部队攻击和防御数值的技能,每一级提升0.2%,技能最高100级,也就是最多提升20%。

英雄的技能只对该玩家所属的部队有效。

英雄、科技和城墙的作用是相加而不是相乘。
例如100级群体防御的英雄、20级的防御科技、20级的罗马城墙,总共提供的防御加成为20%+34.7%+80.6%=135.3%。


9. 士气的作用

当一个总人口数较高的玩家攻击一个总人口数较低的玩家时,士气的因素会影响防守方的防御加成。
当进攻方的人口比防守方多出7.5倍以上时,防守方的防御加成可以达到50%。
当进攻方的人口等于防守方或者更少时,防守方的防御加成为0%。

防御加成和人口比值之间的关系是一条曲线,具体的公式不明。

以上就是现在已经知道的影响战斗结果的因素。
冲车的计算位于哪个步骤仍然不明。