fn_Eagles.sqf
//scriptName "fn_crows.sqf"; scriptName "fn_Eagles.sqf"; /* Author: Karel Moricky Description: Spawns flock of crows circling the area. Parameter(s): _this select 0: ARRAY - Position of flock _this select 1 (Optional): NUMBER - area size _this select 2 (Optional): NUMBER - number of crows Returns: ARRAY - list of all spawned crows ---------------------------------------------------- Modified SteelRat */ private ["_flockPos","_flockArea","_flockCount","_wp0","_wp1","_wp2","_wp3","_wps","_crowList","_crow","_isWater"]; _flockPos = _this select 0; _flockArea = if (count _this > 1) then {_this select 1} else {50}; _flockCount = if (count _this > 2) then {_this select 2} else {_flockArea / 5}; _flockHeight = if (count _this > 3) then {_this select 3} else {30 + random 10}; if (typename _flockPos == typename objnull) then {_flockPos = position _flockPos}; if (typename _flockPos == typename "") then {_flockPos = markerpos _flockPos}; _isWater = surfaceIsWater _flockPos; _flockPos set [2,_flockHeight]; _wp0 = [_flockPos, _flockArea, 00] call BIS_fnc_relPos; _wp1 = [_flockPos, _flockArea, 090] call BIS_fnc_relPos; _wp2 = [_flockPos, _flockArea, 180] call BIS_fnc_relPos; _wp3 = [_flockPos, _flockArea, 270] call BIS_fnc_relPos; _wps = [_wp0,_wp1,_wp2,_wp3]; _crowList = []; for "_i" from 1 to _flockCount do { /* _crow = "crow" camcreate [ (_flockPos select 0) - _flockArea + (random _flockArea)*2, (_flockPos select 1) - _flockArea + (random _flockArea)*2, _flockHeight ]; */ _pos = [ (_flockPos select 0) - _flockArea + (random _flockArea)*2, (_flockPos select 1) - _flockArea + (random _flockArea)*2, _flockHeight ]; _crow = createVehicle ["Eagle_F", [0,0,0], [], 0, "NONE"]; if (_isWater) then { _crow setPosASL (ATLtoASL _pos); } else { _crow setPosATL _pos; }; [_crow,_wp0,_wp1,_wp2,_wp3,_flockArea] execfsm "A3\Functions_F\Environment\fn_crows.fsm"; _crowList = _crowList + [_crow]; }; _crowList;
Вызов
[player, 20, 8, 60] execVM "\RootDirectory\Functions\Environment\fn_Eagles.sqf";
Дефолтная конфигурация орла
class cfgNonAiVehicles { class Bird; class Eagle_F : Bird { model = "\a3\Data_F_Curator\Eagle\eagle.p3d"; singSound[] = {"A3\data_f_curator\sound\cfgNonAiVehicles\eagle_f_3", db0, 1, 300}; canBeShot = false; minHeight = 60; avgHeight = 70; maxHeight = 80; minSPeed = 5; maxSpeed = 25; // max speed on level road, km/h acceleration = 5; turning = 0.5; }; };
Параметры вполне интуитивно понятны, значит можно создать своего орла с каждому подходящими параметрами
class cfgNonAiVehicles { class Eagle_F; class My_Eagle_F : Eagle_F { canBeShot = true; // я хочу иметь возможность убить орла) minHeight = 5; // мин высота полёта avgHeight = 50; // средняя высота полёта maxHeight = 100; // макс высота полёта /* Те параметры которые не собираетесь менять, перечислять по новому не надо */ }; };
Прокатит ли конфигурация в description.ext миссии, я хз, кто попробует расскажете, я так думаю. Ну а если не прокатит, то аддон, без вариантов.