Last active
November 9, 2019 20:03
-
-
Save commy2/ec7c2b76419e3d4c759b02ca85bd1320 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (!isServer) exitWith {}; | |
private _dir = getDir player; | |
private _position = aimPos player; | |
_dir = _dir + 90; | |
private _direction = [cos _dir, sin _dir, 0]; | |
private _fnc_carpetBomber = { | |
params ["_position", "_direction"]; | |
private _distance = 1000; | |
private _height = 200; | |
private _speed = 200; | |
private _velocity = _direction vectorMultiply (_speed / 3.6); | |
private _origin = _position vectorAdd (_direction vectorMultiply -_distance); | |
_origin set [2, getTerrainHeightASL _position + _height]; | |
private _model = createVehicle ["RHS_TU95MS_vvs_old", ASLToAGL _origin, [], 0, "FLY"]; | |
createVehicleCrew _model; | |
private _bomber = createVehicle ["WeaponHolderSimulated", ASLToAGL _origin, [], 0, "FLY"]; | |
_model attachTo [_bomber]; | |
_bomber setPosASL _origin; | |
_bomber setVectorDir _direction; | |
private _dropDistance = 300 + 430/2; | |
private _fnc_dropBombs = { | |
params ["_bomber"]; | |
for "_i" from 1 to 48 do { | |
private _delay = (_i - 1) * random [0.1,0.15,0.25]; | |
[{ | |
params ["_bomber"]; | |
if (!alive _bomber) exitWith {}; | |
private _position = getPosASL _bomber; | |
private _dir = vectorDir _bomber; | |
private _up = vectorUp _bomber; | |
private _lat = _dir vectorCrossProduct _up; | |
private _velocity = velocity _bomber; | |
_position = _position vectorAdd (_dir vectorMultiply 0) vectorAdd (_up vectorMultiply -2); | |
_position = _position vectorAdd (_lat vectorMultiply random [-6, 0, 6]); | |
private _bomb = "Bo_Mk82" createVehicle [0,0,1E4]; | |
_bomb setPosASL _position; | |
_bomb setVectorDirAndUp [_dir, _up]; | |
_bomb setVelocity (_velocity vectorMultiply 0.5); | |
}, _bomber, _delay] call CBA_fnc_waitAndExecute; | |
}; | |
}; | |
[[_bomber, _velocity], { | |
[{ | |
params ["_bomber", "_velocity"]; | |
_bomber setVelocity _velocity; | |
_bomber setVectorDirAndUp [vectorNormalized _velocity, [0,0,1]]; | |
!alive _bomber | |
}, {}, _this] call CBA_fnc_waitUntilAndExecute; | |
}] remoteExec ["call", 0, _bomber]; | |
[{ | |
params ["_bomber", "_position", "_dropDistance", "_fnc_dropBombs"]; | |
if (_bomber distance2D _position < _dropDistance) exitWith { | |
_bomber call _fnc_dropBombs; | |
true | |
}; | |
!alive _bomber | |
}, {}, [_bomber, _position, _dropDistance, _fnc_dropBombs]] call CBA_fnc_waitUntilAndExecute; | |
[{ | |
params ["_bomber", "_origin", "_distance"]; | |
if (getPosASL _bomber vectorDistance _origin > 2 * _distance) then { | |
private _group = group _bomber; | |
private _crew = crew _bomber; | |
deleteVehicle _bomber; | |
{deleteVehicle _x} forEach _crew; | |
deleteGroup _group; | |
}; | |
!alive _bomber | |
}, {}, [_bomber, _origin, _distance]] call CBA_fnc_waitUntilAndExecute; | |
}; | |
[[_position, _direction], _fnc_carpetBomber] remoteExec ["call", 2]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment