arma3吧 关注:50,814贴子:493,773
  • 11回复贴,共1

让飞机攻击目标,创建CAS近空支援

只看楼主收藏回复

123


IP属地:广东1楼2020-03-28 12:10回复
    飞机CAS创建一个支援模块就行,不过攻击完就走了。。。
    _center = createCenter sideLogic;
    _grp = createGroup _center;
    _cas = _grpp createUnit ["ModuleCAS_F", _targetPos攻击的位置 , [], 0, ""];
    _angle = round random 360;
    _cas setDir _angle;
    _cas setVariable ["vehicle", "飞机类名", true];
    _cas setVariable ["type", 3, true]; //1 0=机炮 1=导弹 2=二者, 3=炸弹


    IP属地:广东2楼2020-03-28 12:16
    回复
      自家飞机空中盘旋待命增加攻击敌人概率的方法,它会根据需要使用不同武器攻击,人员会用机炮,车辆则有空地导弹时使用
      _veh commandTarget _tag;
      _veh commandFire _tag;
      玩家用激光指示目标(其实是在目标处创建一个可以被本阵营导弹锁定的目标实体,用热成像可观察到)如果飞机飞过AI看到了会自行锁定投弹的,但是实际玩家操控飞机并非一定需要激光照射才能扔炸弹,让AI驾驶的飞机使用炸弹的方法:
      kk_fn_setPosAGLS = {
      params ["_obj", "_pos"];
      _pos set [2, worldSize];
      _obj setPosASL _pos;
      _pos set [2, vectorMagnitude (_pos vectorDiff getPosVisual _obj)];
      _obj setPosASL _pos;
      };
      kk_spawn_laser = {
      params ["_veh","_tag"];
      _class = switch (side _veh) do {
      case west: {"LaserTargetW"};
      case east: {"LaserTargetE"};
      default {"LaserTargetW"};
      };
      _laser = _class createVehicle (visiblePositionASL _tag);
      _laser
      };
      _laser = [_veh, _tag] call kk_spawn_laser;
      waitUntil {
      if (!alive _veh || {!alive _tag}) exitWith {deleteVehicle _laser; true};
      _veh = vehicle _tag;
      _pos = visiblePosition _veh;
      if ((_pos select 0)+(_pos select 1) != 0) then {
      if(surfaceIsWater _pos)then{_pos = visiblePositionASL _veh};
      [_laser, _pos] call kk_fn_setPosAGLS;
      };
      sleep .1;
      false
      }; //必须用循环设置激光实体位置,如果是建筑物会设置位置到楼顶的不会遮挡住


      IP属地:广东3楼2020-03-28 12:57
      收起回复
        好贴,全干货,不过怎么在BILIBILI上看不到你的作品啊


        IP属地:江西4楼2020-03-28 15:58
        回复
          兄弟,问一下***站有视频作品吗?想拜读一番


          IP属地:江西来自Android客户端5楼2020-05-27 16:03
          收起回复
            +3


            IP属地:河北来自Android客户端6楼2020-06-12 16:34
            回复