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

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 1793|回复: 5

[求助] 如何凭空生成一枚弹药,嗖地飞向目标?

[复制链接]
发表于 2015-12-13 12:50:25 | 显示全部楼层 |阅读模式
好吧,我承认我神兽了,周日嘛。
我的编辑指南不知道藏在哪里了,只好来求助。。。
发表于 2015-12-14 11:20:20 | 显示全部楼层
老白,凭空生成弹药我倒会,但还要嗖的飞向目标那就还要有待研究
发表于 2015-12-14 11:22:45 | 显示全部楼层
用GETPOS语句或DO MOVE 语句估计不行
发表于 2015-12-14 12:17:39 | 显示全部楼层
曾经沧海 发表于 2015-12-14 11:20
老白,凭空生成弹药我倒会,但还要嗖的飞向目标那就还要有待研究

我觉得生成能飞的弹药有困难,不如先生成载具,打完再消失。
发表于 2015-12-14 12:41:44 | 显示全部楼层
cycle6 发表于 2015-12-14 12:17
我觉得生成能飞的弹药有困难,不如先生成载具,打完再消失。

主要是弹药的归类不同,顺便问一句在编辑指南里好像也没有生成的弹药后再飞向目标吧?
发表于 2015-12-18 11:53:54 | 显示全部楼层
随手写的,实际上并没有试验过。兴之所至,我可不对这段脚本负责,出错什么的是绝对正常的。总之别来找我就对了 lol

  1. //shell.sqf 脚本文件
  2. /*

  3.         功能:
  4.                 创造一枚炮弹,飞向目标。在目标为物体的情况下,进行有限的预判。
  5.                 可以设定弹药类型,初始点,目标/目标点,弹药初速,和弹药初始散布。
  6.                 其中弹药初速和弹药初始散布为可选项,可写可不写。
  7.        
  8.         参数:
  9.         [
  10.                 "弹药类型" (字符串),
  11.                 起始点 (坐标 posATL),
  12.                 目标/目标点 (物体 或者 坐标 posATL),
  13.                 弹药初速 (数值 可选 默认值为弹药的typicalSpeed),
  14.                 弹药初始散布 (数值 可选 默认值为0)
  15.         ]
  16.        
  17.         用例:
  18.                 ["Sh_155mm_AMOS",[0,0,3000],tank1,2000,5] execVM "shell.sqf";
  19.                 ["Sh_120mm_HE_Tracer_Red",(getPosATL player) vectorAdd [0,0,700],(getPosATL player) vectorAdd ( (vectorDir player) vectorMultiply 500 )] execVM "shell.sqf";

  20. */
  21. _shellType = _this select 0;
  22. _startPos =  _this select 1;
  23. _target = _this select 2;
  24. _speed = if(count _this > 3)then {_this select 3} else { getNumber(configFile>>"CfgAmmo">>_shellType>>"typicalSpeed") };
  25. _spread = if(count _this > 4)then {_this select 4} else {0};
  26. _targetPos = [0,0,0];
  27. if(typeName _target isKindOf "OBJECT")then
  28. {
  29.         _targetPos = getPosATL _target;
  30.         _targetPos = _targetPos vectorAdd ( (velocity _target) vectorMultiply ((_startPos vectorDistance _targetPos) / _speed));
  31. }
  32. else
  33. {
  34.         _targetPos = _target;
  35. };
  36. _vel = (_startPos vectorFromTo _targetPos) vectorMultiply _speed;
  37. _shell = createVehicle [_shellType,_startPos,[],_spread,'CAN_COLLIDE'];
  38. _shell setVelocity _vel;
  39. //shell.sqf 脚本文件 结束
复制代码


  1. //编辑器 在玩家面前刷出一枚炮弹 (也许吧 lol)
  2. myScript = ["Sh_120mm_HE_Tracer_Red",(getPosATL player) vectorAdd [0,0,700],(getPosATL player) vectorAdd ( (vectorDir player) vectorMultiply 500 )] execVM "shell.sqf";
复制代码
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-19 17:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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