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 миссии, я хз, кто попробует расскажете, я так думаю. Ну а если не прокатит, то аддон, без вариантов.











