|
发表于 2015-12-18 11:53:54
|
显示全部楼层
随手写的,实际上并没有试验过。兴之所至,我可不对这段脚本负责,出错什么的是绝对正常的。总之别来找我就对了 lol
- //shell.sqf 脚本文件
- /*
- 功能:
- 创造一枚炮弹,飞向目标。在目标为物体的情况下,进行有限的预判。
- 可以设定弹药类型,初始点,目标/目标点,弹药初速,和弹药初始散布。
- 其中弹药初速和弹药初始散布为可选项,可写可不写。
-
- 参数:
- [
- "弹药类型" (字符串),
- 起始点 (坐标 posATL),
- 目标/目标点 (物体 或者 坐标 posATL),
- 弹药初速 (数值 可选 默认值为弹药的typicalSpeed),
- 弹药初始散布 (数值 可选 默认值为0)
- ]
-
- 用例:
- ["Sh_155mm_AMOS",[0,0,3000],tank1,2000,5] execVM "shell.sqf";
- ["Sh_120mm_HE_Tracer_Red",(getPosATL player) vectorAdd [0,0,700],(getPosATL player) vectorAdd ( (vectorDir player) vectorMultiply 500 )] execVM "shell.sqf";
- */
- _shellType = _this select 0;
- _startPos = _this select 1;
- _target = _this select 2;
- _speed = if(count _this > 3)then {_this select 3} else { getNumber(configFile>>"CfgAmmo">>_shellType>>"typicalSpeed") };
- _spread = if(count _this > 4)then {_this select 4} else {0};
- _targetPos = [0,0,0];
- if(typeName _target isKindOf "OBJECT")then
- {
- _targetPos = getPosATL _target;
- _targetPos = _targetPos vectorAdd ( (velocity _target) vectorMultiply ((_startPos vectorDistance _targetPos) / _speed));
- }
- else
- {
- _targetPos = _target;
- };
- _vel = (_startPos vectorFromTo _targetPos) vectorMultiply _speed;
- _shell = createVehicle [_shellType,_startPos,[],_spread,'CAN_COLLIDE'];
- _shell setVelocity _vel;
- //shell.sqf 脚本文件 结束
复制代码
- //编辑器 在玩家面前刷出一枚炮弹 (也许吧 lol)
- myScript = ["Sh_120mm_HE_Tracer_Red",(getPosATL player) vectorAdd [0,0,700],(getPosATL player) vectorAdd ( (vectorDir player) vectorMultiply 500 )] execVM "shell.sqf";
复制代码 |
|