本帖最后由 尚和道人 于 2021-7-20 17:51 编辑
完 美 机 场 3.0
修复生产全类型空军的机场的所有BUG
2019年11月11日,在 Forever丨圣洁和我的共同努力下, 实现了机场生产包括入侵者战机、夜鹰直升机、基洛夫在内的一切空军单位的功能。
然而随着时间的推移,这个当时看上去非常完美的机场慢慢暴露出了两个非常棘手的问题:
一、机场内的0X0建筑(下称假机场)偶尔会自爆,导致机场位停满后就再也无法生产载具类战机。 (虽然概率非常低,几十局才会遇到一次,但是遇到就很尴尬。)
二、被敌方工程师占领的机场内的假机场依然会存在,且不会变成敌方的,导致敌方机场位停满后就再也无法生产载具类战机。 (所以之前我一直设置机场不能被工程师占领)
为了修复这两个BUG,让机场功能更加完美,我特地让AlexB定制了Ares新功能:
SW.Attractors=敌方指示者
SW.Suppressors=友军抑制者
SW.AttractorRange=敌方指示者指示范围
SW.SuppressorRange=友军抑制者抑制范围
新功能文件:(仅在Ares3.0基础上增加了以上功能,Aers3.0其它功能经长时间测试不受影响。)
下面我们就来看看如何利用新功能修复上述两个BUG。(这里只讲改进的思路,全代码请查看原帖!)
首先修复第一个假机场无故自爆无法得到补充的BUG: 1、取消机场的HoverPad=yes代码,将假机场的投放方式从“当有己方单位指示”改为“当不受己方单位抑制”。 以前假机场是机场建造时中心产生一个看不见的很快就死亡的战机作为指示者,投放一个假机场,因为指示者只会随机场出现一次,所以当假机场无故自爆,机场就没办法再产生假机场补上了。
2、机场投送假机场的超武加上“SW.Suppressors=假机场”,假机场加上SW.SuppressorRange=1。 这样的话当机场新建立的时候,因为在1的范围内还没有假机场抑制投送超武,所以会立即投送一个假机场到机场内部,而当已经投送了一个之后,机场的投送超武就会被内部的假机场所抑制,就不再会投送了,除非遇到假机场无故自爆,才会因为失去抑制而立马再空投一个假机场补上。
再来修复敌方机场被工程师占领,内部的敌方假机场不会消失的BUG: 3、取消假机场可攻击己方单位的代码,并设置假机场自杀武器可以攻击敌方机场。 也就是取消假机场代码中的“AttackCursorOnFriendlies=yes”和“AttackFriendlies=yes”这两句。
4、给机场设置假武器和威胁度。 也就是说,当我用工程师占领了敌方机场,那么机场就变成我的了,此时内部敌方残存假机场就会攻击外部我方机场而触发自杀武器自爆掉,与此同时,因为工程师占领了敌方机场后,内部并没有我方假机场作为抑制者,所以会立马投放一个我方的假机场来替补。
5、让除了假机场自杀武器外的所有弹头都不会主动攻击机场,并隐藏机场在建造时的攻击圈。 可以为机场新增一个护甲,新护甲受伤害比值等于之前的护甲,然后利用“Versus.shit.PassiveAcquire=no”设置除了假机场自杀武器外的所有弹头都不会主动攻击机场,再用“HasRadialIndicator=yes“、“Sensors=yes”、“SensorArray=yes”、“SensorsSight=0.5”代码来隐藏机场在建造时的攻击圈。
至此,目前机场生产直升机除了无法指定集合点之外(这个目前平台根本无法做到)
就不再有任何BUG了!
|