54 lines
1.4 KiB
Plaintext
54 lines
1.4 KiB
Plaintext
params [
|
|
"_sectorpos",
|
|
"_classname",
|
|
[ "_precise_position", false ],
|
|
[ "_random_rotate", true ]
|
|
];
|
|
|
|
private _newvehicle = objNull;
|
|
private _spawnpos = zeropos;
|
|
|
|
if ( _precise_position ) then {
|
|
_spawnpos = [] + _sectorpos;
|
|
} else {
|
|
while { _spawnpos distance zeropos < 1000 } do {
|
|
_spawnpos = ( [ _sectorpos, random 150, random 360 ] call bis_fnc_relpos ) findEmptyPosition [10, 100, 'B_Heli_Transport_01_F'];
|
|
if ( count _spawnpos == 0 ) then { _spawnpos = zeropos; };
|
|
};
|
|
};
|
|
|
|
_newvehicle = objNull;
|
|
if ( _classname in opfor_choppers ) then {
|
|
_newvehicle = createVehicle [_classname, _spawnpos, [], 0, 'FLY'];
|
|
_newvehicle flyInHeight (100 + (random 200));
|
|
} else {
|
|
_newvehicle = _classname createVehicle _spawnpos;
|
|
_newvehicle setpos _spawnpos;
|
|
};
|
|
_newvehicle allowdamage false;
|
|
|
|
clearWeaponCargoGlobal _newvehicle;
|
|
clearMagazineCargoGlobal _newvehicle;
|
|
clearItemCargoGlobal _newvehicle;
|
|
clearBackpackCargoGlobal _newvehicle;
|
|
|
|
if ( _classname in militia_vehicles ) then {
|
|
[ _newvehicle ] call F_libSpawnMilitiaCrew;
|
|
} else {
|
|
createVehicleCrew _newvehicle;
|
|
sleep 0.1;
|
|
{ _x addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; } foreach (crew _newvehicle);
|
|
};
|
|
|
|
_newvehicle addMPEventHandler ['MPKilled', {_this spawn kill_manager}];
|
|
if ( _random_rotate ) then {
|
|
_newvehicle setdir (random 360);
|
|
};
|
|
_newvehicle setVectorUp surfaceNormal position _newvehicle;
|
|
|
|
sleep 0.1;
|
|
_newvehicle allowdamage true;
|
|
_newvehicle setdamage 0;
|
|
|
|
_newvehicle
|