中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
楼主: FFUR2007SLX2_5

[教程] 《武装突袭3》脚本编写高级教程【255楼,武装突袭3——疯狂的戴夫和他的重量】

    [复制链接]
发表于 2014-7-1 21:58:13 | 显示全部楼层
本帖最后由 qevhytpl 于 2014-7-2 22:26 编辑
FFUR2007SLX2_5 发表于 2014-6-28 22:25
你可以使用BIS_fnc_dirTo + setDir设置方位角。

VectorDistance + getPosASL得到向量直线距离,以及高 ...

  1. _tar = _this select 0; //目标
  2. _Heli = _this select 1; //攻击直升机
  3. _d = _this select 2;//设置提前量
  4. _d_s = _this select 3;//开始运算距离
  5. _d_a = _this select 4;//调整姿态距离 _d_a - 5 < _d
  6. _gl = _this select 5;//
  7. _Heli move position _tar;
  8. waituntil{[_tar,_Heli] call BIS_fnc_distance2D < _d_s};//开始攻击运算
  9. _angle =[_Heli,_tar] call BIS_fnc_dirTo;//获取方位角
  10. _Heli setDir _angle;
  11. _a = getpos _Heli select 0;//获取飞机方位信息
  12. _b = getpos _Heli select 1;
  13. _c = getpos _Heli select 2;
  14. _a0 = _a + (_d_s-_d)*sin _angle;//设置预瞄准点
  15. _b0 = _b + (_d_s-_d)*cos _angle;
  16. _position_0 = [_a0,_b0,_c];//设置预瞄准位置
  17. _marker0 = createMarker ["C_0",_position_0];
  18. _marker0 setMarkerType "mil_dot";
  19. _marker0 setMarkerColor "ColorRed";  

  20. _d_3D = [_a,_b,_c] vectorDistance _position_0;
  21. _d_2D = sqrt(_d_3D^2-_c^2);//2D距离
  22. _angle_y = _d_3D atan2 _c;//仰角
  23. _angle_f = _angle_y-90;//攻击俯角

  24. _a1 = _a + 2*_d_s*sin _angle;//设置一次攻击完成路点
  25. _b1 = _b + 2*_d_s*cos _angle;
  26. _position_1 = [_a1,_b1,_c];//设置路点位置
  27. _marker1 = createMarker ["C_1",_position_1];
  28. _marker1 setMarkerType "mil_dot";
  29. _marker1 setMarkerColor "ColorRed";
  30. //设置飞行姿态
  31. _angle_c//飞机当前俯角
  32. _v = speed _Heli//飞机当前速度
  33. _d_u = _d_a/_v*20;
  34. if(_angle_c>_angle_f)then{
  35. _angle_a = (_angle_f - _angle_c)/20;//角度增加值1
  36. for [{_i=0}, {_i<20}, {_i=_i+1}]do{
  37. _angle_f_a = _angle_c+_angle_a;
  38. [_Heli,_angle_f_a,0] call BIS_fnc_setPitchBank;
  39. sleep _d_u;
  40. };
  41. }else{
  42. _angle_a = (_angle_c - _angle_f)/20;//角度增加值2
  43. for [{_i=0}, {_i<20}, {_i=_i+1}]do{
  44. _angle_f_a = _angle_c+_angle_a;
  45. [_Heli,_angle_f_a,0] call BIS_fnc_setPitchBank;
  46. sleep _d_u;
  47. };
  48. };
  49. //保持飞行姿态并开火
  50. firing = true;
  51. nul=[_Heli,14,_gl]execVM"fire.sqf";//开火
  52. while{firing}do{
  53. [_Heli,_angle_f_a,0] call BIS_fnc_setPitchBank;
  54. sleep 0.1;
  55. };
  56. //向下一路点运动
  57. _Heli move _position_1;
复制代码

  1. private["_Heli","_c","_gl"];
  2. _Heli = _this select 0; //直升机
  3. _c = _this select 1;//发射数量
  4. _gl = _this select 2;//gl
  5. for [{_i=0}, {_i<_c}, {_i=_i+1}]do{
  6. _gl action ["USEWEAPON", _Heli, driver _Heli,1];
  7. sleep 0.7;
  8. };
  9. firing=false;//退出保持飞行姿势循环
复制代码

大概搞成这个样子,目前不知道如何得到飞机的当前俯角,另外一旦使用BIS_fnc_setPitchBank,飞机就没有速度了。
发表于 2014-7-4 19:34:43 | 显示全部楼层
一直不懂得说
 楼主| 发表于 2014-7-5 00:47:34 | 显示全部楼层
qevhytpl 发表于 2014-7-1 21:58
大概搞成这个样子,目前不知道如何得到飞机的当前俯角,另外一旦使用BIS_fnc_setPitchBank,飞机 ...

http://vbs3ex.lofter.com/post/7f6a1_1726e43

3D指向函数,[obj,targetpos,duration] spawn VBS3_fnc_DirTo3D; 将一个物体对准另一个物体,俯仰角及方位角转动过程间隔时间可控。
发表于 2014-7-5 16:31:04 | 显示全部楼层
FFUR2007SLX2_5 发表于 2014-7-5 00:47
http://vbs3ex.lofter.com/post/7f6a1_1726e43

3D指向函数,[obj,targetpos,duration] spawn VBS3_fnc ...

这个挺好的,可惜是VBS里的,我们用不了,能否照葫芦画瓢呢?
 楼主| 发表于 2014-8-13 22:12:52 | 显示全部楼层
本帖最后由 FFUR2007SLX2_5 于 2014-8-13 22:15 编辑

#260 ArmA3 15 Years' Anniversary



http://www.chinavme.com/thread-30285-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2014-8-24 20:21:45 | 显示全部楼层
感谢提供帮助
发表于 2014-10-6 11:19:47 | 显示全部楼层
学习{:soso_e134:}{:soso_e134:}但是头晕
发表于 2014-11-14 09:54:58 | 显示全部楼层
顺序好复杂,有没有提挈好顺序的版本。。。
发表于 2015-1-31 21:37:17 | 显示全部楼层
学习下                     
发表于 2015-2-6 21:45:57 | 显示全部楼层
期待版主的多人任务教程,造福多人任务编写爱好者!  发表于 2013-11-20 21:27
发表于 2015-2-7 03:58:38 | 显示全部楼层

期待版主的多人任务教程,造福多人任务编写爱好者
发表于 2015-3-19 23:19:20 | 显示全部楼层
谢谢楼主无私分享
发表于 2015-3-19 23:19:25 | 显示全部楼层
谢谢楼主无私分享
发表于 2015-6-23 20:08:32 | 显示全部楼层
好啊,溜达溜达
发表于 2015-6-23 20:26:05 | 显示全部楼层
多多地评论呀
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-5-3 16:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表