1 楼 发表于 2012-02-12 01:42 |
打印
只看楼主 |
|
我最开始时,我一直尝试修改电视制导导弹让他可以被AI控制,而且更真实。
现实中的电视制导导弹你不需要点击鼠标,你只需要移动光标导弹就会调整到瞄准光标所指的方向。
所以,我最初尝试的是:在导弹上添加一个由鼠标控制的RotationalBundle,然后再在上面添加Camera,但结果是:失败。
因为战地2的制导导弹和1942不一样,1942是直接进入那个载具,而战地2里你依然在原来的载具里,而导弹只不过是一个分身(不知道直接发射载具会不会达成和战地1942相同的效果)
后来呢,我又继续搜索与电视制导导弹相关的信息。
我发现一个战地2很不真实的设定:电视制导导弹全部依靠玩家手动制导。而现实中,电视制导导弹都具备自动追踪目标的能力,而WSO只需要在一些比较复杂的环境下对电视制导导弹的制导系统进行纠正就行了。例如,AGM-65H/J/K(战地2的AGM-65应该是L型,还有一个E型也是激光制导但是需要地面照射)
于是,我就有了这个Idea。(实际上是阴差阳错弄出来的)
代码是这样的,以AH1Z毒蛇攻击直升机为例。
首先,先打开AH1Z的.tweak文件(应该是ahe_ah1z.tweak)
搜索AHE_AH1Z_CoGunner_HellFireLauncherTV
然后找到这段代码:
rem ---BeginComp:LPTargetComp ---
ObjectTemplate.createComponent LPTargetComp
ObjectTemplate.target.maxDistance 9999
ObjectTemplate.target.setTargetAtMaxDistance 1
ObjectTemplate.target.targetSystem TSTVGuided
ObjectTemplate.target.targetObjectTemplate UniqueTarget
ObjectTemplate.target.disableFireWhenActiveMissile 1
rem ---EndComp ---
把ObjectTemplate.target.targetObjectTemplate UniqueTarget
改成
ObjectTemplate.target.targetObjectTemplate LaserPainterTarget
然后再去找AGM-114的文件:agm_114_tv.tweak
找到
rem ---BeginComp:SeekClosestTargetComp ---
ObjectTemplate.createComponent SeekClosestTargetComp
ObjectTemplate.seek.targetType TTUnique
ObjectTemplate.seek.trackingDelay 0.2
ObjectTemplate.seek.maxAngleLock 360
ObjectTemplate.seek.maxDistLock 3000
ObjectTemplate.seek.reLockTime 0
rem ---EndComp ---
把TTUnique改成Laser
maxAngleLock改成15-20 (太广的话就无聊了)
最后再添加一个代码:
ObjectTemplate.seek.directionBonus 0.01
这样的话他才有可能在出现多个目标的时候听你的。(怕出错所以没试过0.00)
最后,试试吧。
这只是我的一个副产品。
当初尝试改TV时忘记改了些东西给弄出来的。
情况是:我发射了AGM-114(不是TV),Mouse也没有禁用。
发射后,AGM-114就一直飞,我就点了下鼠标(当时无聊把UniqueTarget改成了LaserPainterTarget)
然后AGM-114就向刚才鼠标点的地方飞过去了,然后又锁定上了一辆坦克……
成品暂时没有,我还想再改点东西……
如果大家愿意那么久试试吧……
PS:参数可能不是最优状态
|
|
|