战地2吧 关注:143,199贴子:3,884,072
  • 38回复贴,共1
求助

给武直加ai问题

只看楼主收藏回复

给武直移植了j10的空空导弹和空对地导弹,ai文件也写了但是电脑就是不会用,看见坦克和和直升机也不打,是我ai写错了嘛


IP属地:重庆来自Android客户端1楼2023-12-18 17:08回复
    去aix2找带空空导弹和对地导弹的武直,移植它们的ai文件过来,参考里面的茶隼武直或阿帕奇武直。顺便,战斗机ai可以移植poe2的,poe2的战斗机挺猛的,你躲房子里占点都能被敌人战斗机投炸弹炸死


    IP属地:湖北来自Android客户端2楼2023-12-18 17:49
    收起回复
      这是以前在战地资源网抄的ai解析,或许对你有帮助,毕竟我很少去修改电脑ai,基本直接套用,只要不出错就行,反正也不指望电脑杀敌,直接自己上阵
      weaponTemplate.indirect 0
      这里的数值代表武器种类 数值通常为 0 和 1 ,0代表平抛武器(0°-45°), 1代表炸弹类投掷武器(45°-90°) 这里的0和1不要随便改 保持默认即可 否则会出错
      注:某些特定情况下 可以使用0或1 将会影响BOT的投弹方式
      weaponTemplate.minRange 0.0
      weaponTemplate.maxRange 1500.0
      BOT使用武器的距离,增大数值可以增强BOT的积极性 如果数值太大会减慢BOT的移动速度(飞机由于速度很快除外[偷笑] )
      WeaponTemplate.WeaponFire PIAltFire / PIFire
      使用武器应该使用鼠标右键或左键(并不常用)
      weaponTemplate.optimalRangePercentage 1
      设定武器最佳开火距离百分比
      weaponTemplate.setStrength Infantry 5.0 //步兵
      weaponTemplate.setStrength LightArmour 4.0 //轻装甲(小车、固定防空飞弹、固定反坦克导弹)
      weaponTemplate.setStrength HeavyArmour 2.0 //重装甲(APC、防空车、坦克)
      weaponTemplate.setStrength NavalArmour 3.0 // 海军 (无定义)
      weaponTemplate.setStrength Helicopter 6.0 //直升机
      weaponTemplate.setStrength Airplane 1.0 // 固定翼
      这里是攻击等级 BOT会优先攻击数值更大的目标 有一个误区必须说明 这里的数值只是一个相对数值 并不是越大越好
      注:这里的攻击对象都是系统设定的默认值 特定情况下可以重新定义
      weaponTemplate.deviationCorrectionTime 0.1
      BOT从拿起武器到瞄准的反应时间(这个我试过貌似没多大变化)
      weaponTemplate.fireRate 1800
      BOT使用的武器的开火速率
      weaponTemplate.allowedDeviation 9.0
      允许精度误差 如果没有这句 默认值为15.0 如果想提高BOT狙击手的打击精度 将这个值缩小 小于1精度就非常高了 几乎百发百中 如果允许的误差太大 就可能出现诸如向自己后方敌机发射导弹的搞笑场面 所以更大的误差精度建议只用于炸弹 默认值:15
      当两种武器攻击等级相近时 BOT会优先使用允许精度更大的武器
      weaponTemplate.Deviation 9.0
      不知道怎么翻译 开火概率与反应速度的综合 如果把这个数值改到很小 那么只要准星经过敌人 BOT就会立即开火
      同weaponTemplate.allowedDeviation BOT会优先使用数值更小的武器
      weaponTemplate.setFiringPose Standing
      开火时的动作 BOT会尽可能这样做 可以选择的动作有 Standing(站立) Crouching(蹲下) Lying(匍匐)
      weaponTemplate.setExplosionRadius 7.5
      告诉BOT某个武器为爆炸物需要躲避 这个语句有一个存活时间大概为2-3秒 超过这个时间BOT就会认为该武器已经不在有威胁
      weaponTemplate.setFiresThroughTransparent 0
      0为直射 若为1 则允许BOT使用武器向目标周围开火而不是射向目标本身
      补充一下,是关于枪械AI的。
      武器的ai\weapon.ai里有一行weaponTemplate.setSoundSphereRadius(一般枪械没有这句,也不需要刻意加上) ,这个后面的数字就是开枪后会被bot发现的距离,单位是m,如果你想用带消音器的枪射击而不被bot发现就把这个调小,使bot听不到枪声。
      比如我给SAS特种兵用的MP5SD6,我就在AI里面加入这句 weaponTemplate.setSoundSphereRadius 10.0 。那么在10米外的BOT中枪,如果它不是正面面对着你,他直到死为止都无法发现你,自然无法对你进行有效反击。这个语句适用于一切加消音器的枪械。
      weaponTemplate.optimalRangePercentage 这个代码是表示最佳开火距离的百分比。意思也就是说在这个距离上开火最有效。
      另外,如果AI同时有自动步枪和狙击步枪的话,根据设定而有很大的变化。
      假定目标为步兵,狙击步枪的AI定义伤害是10而自动步枪是5的话,那么AI就会在任何情况下优先使用狙击步枪。
      而如果距离十分接近,那么根据OptimalRangePercentage的数值优先级会逐渐下降,随后就会掉到自动步枪以下,这时AI就会使用自动步枪了(注意,自动步枪的优先值也会跟着下降)
      如果进入了狙击步枪后的最小允许射击距离后还没有进入自动步枪的最小允许射击距离,那么AI就会开始使用自动步枪
      而如果AI定义伤害都是10,那么AI会优先使用射程远的,如果狙击步枪(假设狙击步枪射程比较远)没有子弹了,就有可能会换到自动步枪进行攻击(很少见,但有时会做)。
      还有,如果自动步枪FireThroughTransparment有的话,而且对步兵的定义伤害小于狙击步枪。在目标躲在掩体后面的情况下,AI就会换到自动步枪进行攻击。这也是手雷AI原理。


      IP属地:湖北3楼2023-12-18 23:34
      收起回复
        你的空对地导弹是“AHE_Z10_bomblauncher”,而不是“air_j10_bomblauncher”啊,air_j10_bomblauncher是你直接引用的歼10航弹的武器代码,你自己就没注意到你不能在你的ahe_z10的T档里修改炸弹的数据吗?



        IP属地:湖北4楼2025-03-11 06:51
        收起回复
          不如去移植一辆能打空地导弹的武直


          IP属地:重庆来自Android客户端5楼2025-03-11 08:41
          收起回复
            这个吧,我刚试了下,确实,你自己搞得那个空对地导弹ai,我一切换到副驾驶位就会闪退,估摸着你ai文件哪个数据有问题,简单点的话,你要不想闪退就整个原版的空对地导弹ai,比如我把你武直的空对地导弹ai换成了原版苏30空对地导弹的ai,不闪退,也会打人,几率也不算小


            IP属地:湖北6楼2025-03-11 21:11
            收起回复