经典单机游戏《空军任务》3D版


[中文名]:空军任务 [拼音]:kong jun ren wu [发布日期]:2024-11-15

运行环境:Win2003/2000/9X/vista/XP/
单机游戏语言:简体中文
单机游戏类型:国外游戏 - 动作射击
授权方式:共享版
单机游戏大小:22.6 MB

 

空军任务全解析

 

空战的设定:

对于空军来说,最多有5项任务:

转移基地任务:
把你的一支空军部队从当前基地转移到另一个基地,目标地点只能为你自己或同盟国的城市,境内要塞,航母(对于战斗机而言),潜艇/导弹驱逐舰(对于导弹而言)

进攻性任务:
包括空中打击任务,轰炸任务和侦察任务
这些任务都是以相同的方式执行的,其中侦察任务似乎永远不会被拦截。空中打击任务和轰炸任务执行时,会同时附带执行对目标地块的侦察任务
进攻性任务执行的步骤:
第一步:选择任务,空中打击、侦查和轰炸三者之一
第二步:选择目标地块
第三步:计算是否会被拦截
第四步a:如果被拦截了,发生空战
第四步a:如果未被拦截了,执行原计划任务
需要注意一点,一旦被拦截了,无论空战的结果如何,原计划任务均会被放弃

拦截:

能够拦截空军的单位包括:
1.执行了拦截任务的空军单位(同时需要在该空军单位执行任务的范围之内)
2.有一定拦截几率的地面单位(同样需要在其拦截范围之内)

对于每次空中入侵,有且只有一支部队会尝试进行拦截,并且默认会是拦截概率最高的那支部队执行拦截任务。也就是说,对于对手的一次空中入侵,1个防空步兵的作用与10个防空步兵的作用是完全相同的。
当拦截概率相同时,会随机选取一支部队(也有可能是选取单位列表中位于前排的部队)进行拦截,单位的力量对此毫无影响。
对于地面部队,拦截概率永远是固定的(例如防空步兵的拦截概率永远为40%),而对于空中部队,拦截概率与该单位的血量成正比(因此战斗机在满血时拦截概率为100%,而在30HP时仅为30%)因此,如果一个30HP的战斗机与一个防空步兵均能执行拦截任务,将优先选择防空步兵,不管他剩下的HP为多少。要注意移动过的地面部队将不能执行拦截任务,地面部队在一回合内拦截的次数也不能多于一次。而对于执行拦截任务的空军单位,他们可以多次执行拦截任务直到被击落。注意当某支空军部队执行拦截任务受损时,他的拦截概率会随之下降,因此在下次拦截任务时,他的优先级会下降。
对于具有一定躲避几率的空军单位(如隐形轰炸机),有相应的概率能直接执行原计划任务,忽略一切防空。假如未能如此,再按常规方法计算拦截概率。

例子1:对方有一架战斗机,一名防空步兵布防。第一架隐形轰炸机前往轰炸,假设未能成功躲避,那么被拦截的概率将为100%(满血的战斗机)。不妨假设经过空战后,对方的战斗机剩25HP。第二架轰炸机被拦截的概率将为40%(防空步兵),假设拦截失败,那么第二架轰炸机将成功执行轰炸任务。第三家轰炸机被拦截的概率仍为40%(因为防空步兵第一次拦截失败了),假设这次拦截成功并发生空战。第四架轰炸机被拦截的概率为25%(因为防空步兵已经拦截过了,只剩下了25HP的战斗机)

就如同地面作战,空战也是一回合一回合地进行的,不过最大的作战回合数规定为5(设置在变量INTERCEPTION_MAX_ROUNDS中)。
在作战开始前会先计算每一回合的胜率和对对方能造成的伤害。
空军单位的力量计算公式:基础力量*(1+格斗晋升)*剩余HP/100
而对于地面单位,计算公式与普通地面作战完全一样,包括HP,驻扎,地形等修正
在每一回合,进攻方对防御方造成伤害的概率仍为:进攻方力量/(进攻方力量+防御方力量)
而在每一回合,能对对方造成的伤害是与力量毫无关系的,它只决定于拦截概率,公式为:
造成伤害=拦截概率*常数MAX_INTERCEPTION_DAMAGE(这个常数定义在GlobalDefines.xml中,默认为50)
同时还定义了另一个常数MIN_INTERCEPTION_DAMAGE(默认为10),适用于几乎没有拦截能力的进攻方(如轰炸机)。可以理解为拦截概率不足20%的自动上调至20%
要注意地面部队在发生空战是不会承受任何伤害的,空军单位在某回合获胜的唯一好处仅仅是避免其不会受到伤害。

例子1:一架战斗机(力量12)被一架喷气战斗机(力量24)拦截,两者均为满血。那么,力量的比值将为12/(12+24)=1/3,这意味着进攻方(战斗机)在每回合将有1/3的概率能获胜。双方每回合对对方所能造成的伤害均为50HP(100%的拦截概率*50)
例子2:一架喷气战斗机被防空步兵(力量18)拦截,忽略一切加成。那么,喷气战斗机每回合赢的概率为24/(24+18)=4/7,而每回合防空步兵对喷气战斗机所能造成的伤害为20HP(40%的拦截几率*50)。我们不需要计算喷气战斗机所能造成的伤害,因为在这种情况下,喷气战斗机不能对防空步兵造成任何伤害。

侦察任务:
这是最简单最安全的一个任务,没有任何被拦截的风险。只要在范围之内,你可以自由地侦查任意一个格子,而不必担心是否开放了边界等问题。所有空军单位都能用于侦察,并且视野是相同的。

空中打击任务:
当你选取了打击地点,并且没有被拦截,那么该地点防御力最强的单位将优先受到打击。打击伤害以以下的方式计算:
进攻方力量(A):与拦截任务的计算方法类似,基础力量*(1+格斗晋升)*剩余HP/100
防御方力量(D):与普通战斗的计算方法类似,但不受HP值的影响
定义变量F:F=(A+D+1)/2
那么,最终造成的伤害为:(A+F)/(D+F)*常数AIR_COMBAT_DAMAGE(默认为30)
空中打击所能造成的伤害是有上限的,定义在文件CIV4UnitInfos.xml里的iAirCombatLimit项目中,飞艇为20%,飞机为50%,巡航导弹为100%(这意味着它能杀死单位)

这里要注意一点:以前有一篇文章提出伤害的计算公式为20*(3A+D)/(3D+A),但总有一些数据显示不太符合,看来应该修正为20*(3A+D+1)/(3D+A+1)

轰炸机在执行空中打击任务时,除了直接打击目标单位以外,还会对其他单位造成溅射伤害,溅射伤害计算公式我在之前的文章说的很清楚,这里就不重复了,只提两个新发现。

1.在选取溅射伤害打击的目标时,每一个目标都会产生一个随机数,然后与它的生命值相乘,再把得出的结果从高到低排序。这时,前N(N为能造成溅射伤害的最大目标个数)名的单位将承受溅射伤害,这意味着生命值越低,承受溅射伤害的概率越低。
2.当前N名的单位中,有若干单位免疫溅射伤害时,它们将不会受到伤害,也不会把伤害转嫁到别的单位上。这意味着队伍里免疫溅射伤害的单位在一定程度上能起到保护其他单位的作用。

例子1:一架战斗机对一名防空步兵(在丘陵上)进行空中打击。
战斗机的力量为12,防空步兵的力量为18*1.25=22.5
F=(12+22.5+1)/2=17.75
伤害值为30*(12+17.75)/(22.5+17.75)=22.174,取整得22

轰炸任务:
对于城市而言,能使文化造成的城防下降一个常数值iBombRate(轰炸机为16,隐形轰炸机为20,定义在CIV4UnitInfo.xml中),不过这个值需要受到HP的修正
对于地面设施而言,先从1到iBombRate中取一个随机数,再从1到地面设施的iBombDefense(定义在IV4ImprovementInfos.xml,一般的地面设施为5,矿山、采石场与油井为10,森林保护区为20)中取一个随机数,如果前者大于后者,成功炸毁。
 

 

下载地址:

http://61.134.37.55/201008/空军任务.exe