BB_Functions.sqf?UMBB_Reload.sqf?UZclear_vehicle.sqf?U!description.extU:hull3\briefing\blufor.sqfUhull3\briefing\civilian.sqfUhull3\briefing\indfor.sqfUhull3\briefing\opfor.sqfUhull3\hull3.hUinit.sqf'dAinitPlayerLocal.sqf0dbKami_Macros.h?Umission.sqmdG_#include "Kami_Macros.h" #define BB_WEAPON_TO_REMOVE "missiles_DAR" #define BB_WEAPON_TO_ADD "Gatling_30mm_Plane_CAS_01_F" #define BB_AMMO_TO_ADD "1000Rnd_Gatling_30mm_Plane_CAS_01_F" #define BB_RELOAD_DELAY 30 // seconds #define BLU_BB_AMOUNT 16 #define OPF_BB_AMOUNT 16 #define TOTAL_BB_AMOUNT (BLU_BB_AMOUNT + OPF_BB_AMOUNT) #define BB_TRACKING_MARKER_DELAY 5 #define BB_HELI_CLASSNAME "B_Heli_Light_01_armed_F" BB_Init ={ [] call BB_InitDebug; BB_ReloadCountdown = true; BB_ReloadMe = nil; if (isServer) then { [] call BB_BuildHeliArray; [] call BB_InitAllHelis; [] call BB_InitAllPilots; [["Server init finished."]] call BB_DebugLog; }; if (!isServer || !isMultiplayer) then { [player] call BB_Addaction_RequestReload; }; }; BB_InitDebug = { BB_Debug = if (isMultiplayer) then { false; } else { true; }; }; BB_DebugLog = { FUN_ARGS_1(_message); if (BB_Debug) then { hint format ["%1 - [BB]: %2",time,(format _message)]; diag_log format ["%1 - [BB]: %2",time,(format _message)]; }; }; BB_InitAllPilots = { { [_x,_forEachIndex] call BB_InitPilot; //sleep 0.1; } forEach allUnits; }; BB_InitPilot = { FUN_ARGS_2(_pilot,_index); [_pilot,false] call BB_SetReloadInProgress; [_pilot] call BB_InitPilotMarker; [["Initialising Pilot: %1 at Index: %2",_pilot,_index]] call BB_DebugLog; }; BB_InitPilotMarker = { FUN_ARGS_1(_pilot); if (side _pilot == west) then { [_pilot,"ColorBlue"] spawn BB_InitTrackingMarker; } else { [_pilot,"ColorRed"] spawn BB_InitTrackingMarker; }; }; BB_InitTrackingMarker = { FUN_ARGS_2(_unit,_colour); DECLARE(_marker) = [_unit] call BB_CreateMarker; _marker setMarkerColor _colour; [_unit,_marker] spawn BB_TrackingMarkerLoop; }; BB_TrackingMarkerLoop = { FUN_ARGS_2(_unit,_marker); while {alive _unit} do { _marker setMarkerPos [(getposATL _unit) select 0,(getposATL _unit) select 1]; _marker setMarkerDir (getDir _unit); sleep BB_TRACKING_MARKER_DELAY; }; deleteMarker _marker; }; BB_CreateMarker = { FUN_ARGS_1(_unit); DECLARE(_name_str) = "BB_tracker_" + str(_unit); DECLARE(_marker) = createMarker [_name_str,[0,0,0]]; _marker setMarkerShape "ICON"; _marker setMarkerType "mil_triangle"; _marker setMarkerSize [0.6,0.6]; _marker setMarkerText str(name _unit); _marker; }; BB_BuildHeliArray = { PVT_2(_i,_plane_name); DECLARE(_plane_array) = []; for "_i" from 1 to TOTAL_BB_AMOUNT do { _plane_name = "helo_" + str(_i); _plane_name = missionNamespace getVariable _plane_name; _plane_array pushBack _plane_name; [["Current Plane: %1",_plane_name]] call BB_DebugLog; //sleep 0.1; }; [["Final plane array: %1",_plane_array]] call BB_DebugLog; BB_FullHeliArray = _plane_array; // make available to all scopes //publicVariable "BB_FullHeliArray"; }; BB_InitAllHelis = { { [_x,_forEachIndex] call BB_InitHeli; null = [_x] execVM "clear_vehicle.sqf"; //sleep 0.1; } forEach BB_FullHeliArray; }; BB_InitHeli = { FUN_ARGS_2(_plane,_plane_index); [["Initialising Plane: %1 at index %2",_plane,_plane_index]] call BB_DebugLog; _plane setVehicleAmmo 0.5; [_plane] call BB_RemoveBBOrdnance; [_plane] call BB_AddBBOrdnance; [_plane,_plane_index] call BB_SetHeliTexture; }; BB_SetHeliTexture = { FUN_ARGS_2(_plane,_index); INC(_index); if (_index <= BLU_BB_AMOUNT) then { _plane setObjectTextureGlobal [0,"\ca\ca_e\data\flag_blufor_co.paa"]; //_plane setObjectTextureGlobal [1,"\ca\ca_e\data\flag_blufor_co.paa"]; _chemlight = "Chemlight_blue" createVehicle (position _plane); _chemlight attachto [_plane,[0,0,0]]; } else { _plane setObjectTextureGlobal [0,"\ca\ca_e\data\flag_opfor_co.paa"]; //_plane setObjectTextureGlobal [1,"\ca\ca_e\data\flag_opfor_co.paa"]; _chemlight = "Chemlight_red" createVehicle (position _plane); _chemlight attachto [_plane,[0,0,0]]; }; }; BB_RemoveBBOrdnance = { FUN_ARGS_1(_plane); _plane removeWeaponTurret [BB_WEAPON_TO_REMOVE,[-1]] }; BB_AddBBOrdnance = { FUN_ARGS_1(_plane); _plane addWeaponTurret [BB_WEAPON_TO_ADD,[-1]]; _plane addMagazineTurret [BB_AMMO_TO_ADD,[-1]]; }; BB_Addaction_RequestReload = { FUN_ARGS_1(_pilot); _pilot addAction ["Request Reload","BB_Reload.sqf",nil,1000,false,true,"","(vehicle _this == vehicle _target) && !([_this] call BB_GetReloadInProgress) && ([_this] call BB_PlayerInBB) && ([_this] call BB_ReloadValid)"]; }; BB_PlayerInBB = { FUN_ARGS_1(_player); DECLARE(_in_BB) = false; if ((typeOf (vehicle _player)) == BB_HELI_CLASSNAME) then { _in_BB = true; }; _in_BB; }; BB_ReloadValid = { FUN_ARGS_1(_player); DECLARE(_ammo_level) = (vehicle _player) ammo "1000Rnd_Gatling_30mm_Plane_CAS_01_F"; DECLARE(_valid) = false; if (_ammo_level == 0) then { _valid = true; }; _valid; }; BB_SetReloadInProgress = { FUN_ARGS_2(_pilot,_status); _pilot setVariable ["BB_ReloadInProgress",_status,true]; }; BB_GetReloadInProgress = { FUN_ARGS_1(_pilot); DECLARE(_variable) = _pilot getVariable ["BB_ReloadInProgress",false]; _variable; }; BB_Reload = { FUN_ARGS_1(_player); if ([_player] call BB_ReloadValid) then { [_player,true] call BB_SetReloadInProgress; for "_i" from BB_RELOAD_DELAY to 1 step -1 do { sleep 1; hintSilent format ["Weapon Reload in: %1s",_i]; }; sleep 1; (vehicle _player) setVehicleAmmo 1.0; hintSilent "Weapon successfully reloaded!"; sleep 2; [_player,false] call BB_SetReloadInProgress; } else { hintSilent "Weapon magazine is not empty yet!"; sleep 2; hintSilent ""; }; };#include "Kami_Macros.h" // _this select 1: caller [(_this select 1)] spawn BB_Reload;// Add: // null = [this] execVM "clear_vehicle.sqf"; // to the unit's init line. if (!isServer) exitWith {}; private "_vehicle"; _vehicle = _this select 0; clearMagazineCargoGlobal _vehicle; clearWeaponCargoGlobal _vehicle; clearItemCargoGlobal _vehicle; clearBackpackCargoGlobal _vehicle;#include "hull3\hull3.h" enableDebugConsole = 1; disableChannels[]={2,4,6}; onLoadName = "Aerial Warfare"; onLoadMission = "Made with Hull3"; author = "Winter"; loadScreen = "x\ark\addons\hull3\resources\hull3_logo.paa"; class Header { gameType = Coop; minPlayers = 1; maxPlayers = 32; }; respawn = 0; respawndelay = 3; respawnTemplates[] = {"Hull3_RespawnHandler"}; class Params { class Hull3_Date { title = "Moon Phase"; values[] = {0,1}; texts[] = {"New Moon", "Full Moon"}; default = 1; code = "hull3_mission_date = %1"; }; class Hull3_TimeOfDay { title = "Time of Day"; values[] = {0,1,2,3,4,5,6,7}; texts[] = {"Dawn", "Early Morning", "Morning", "Noon", "Afternoon", "Evening", "Dusk", "Night"}; default = 7; code = "hull3_mission_timeOfDay = %1"; }; class Hull3_Fog { title = "Fog"; values[] = {0,1,2}; texts[] = {"None", "Light", "Heavy"}; default = 0; code = "hull3_mission_fog = %1"; }; class Hull3_Weather { title = "Weather"; values[] = {0,1,2,3,4,5,6,7,8,9}; texts[] = {"Random", "Clear (Calm)", "Clear (Light Winds)", "Clear (Strong Winds)", "Overcast (Calm)", "Overcast (Light Winds)", "Overcast (Strong Winds)", "Rain (Light Winds)", "Rain (Strong Winds)", "Storm"}; default = 1; code = "hull3_mission_weather = %1"; }; class Hull3_SafetyTimer { title = "Safety Timer"; values[] = {9999,0}; texts[] = {"On", "Off"}; default = 0; code = "hull3_mission_safetyTimerEnd = %1"; }; }; class CfgDebriefingSections { class acex_killTracker { title = "Acex Killed Events"; variable = "acex_killTracker_outputText"; }; }; allowProfileGlasses = 0; // BLUFOR Notes // Mission player createDiaryRecord ["Diary", ["Mission","
Take to the skies and kill the enemy "]]; // Credits player createDiaryRecord ["Diary", ["Credits", "
Made by Winter "]]; // BLUFOR Notes // Situation player createDiaryRecord ["Diary", ["Situation","
*** Insert general information about the situation here.***

ENEMY FORCES
*** Insert information about enemy forces here.***

FRIENDLY FORCES
*** Insert information about friendly forces here.*** "]]; // Mission player createDiaryRecord ["Diary", ["Mission","
*** Insert the mission here. *** "]]; // Execution player createDiaryRecord ["Diary", ["Execution","
COMMANDER'S INTENT
*** Insert very short summary of plan here. ***

MOVEMENT PLAN
*** Insert movement instructions here. ***

FIRE SUPPORT PLAN
*** Insert fire support instructions here. ***

SPECIAL TASKS
*** Insert instructions for specific units here. *** "]]; // Administration player createDiaryRecord ["Diary", ["Administration","
*** Insert information on administration and logistics here. *** "]]; // Credits player createDiaryRecord ["Diary", ["Credits", "
Made by "]]; // BLUFOR Notes // Situation player createDiaryRecord ["Diary", ["Situation","
*** Insert general information about the situation here.***

ENEMY FORCES
*** Insert information about enemy forces here.***

FRIENDLY FORCES
*** Insert information about friendly forces here.*** "]]; // Mission player createDiaryRecord ["Diary", ["Mission","
*** Insert the mission here. *** "]]; // Execution player createDiaryRecord ["Diary", ["Execution","
COMMANDER'S INTENT
*** Insert very short summary of plan here. ***

MOVEMENT PLAN
*** Insert movement instructions here. ***

FIRE SUPPORT PLAN
*** Insert fire support instructions here. ***

SPECIAL TASKS
*** Insert instructions for specific units here. *** "]]; // Administration player createDiaryRecord ["Diary", ["Administration","
*** Insert information on administration and logistics here. *** "]]; // Credits player createDiaryRecord ["Diary", ["Credits", "
Made by "]]; // OPFOR Notes // Mission player createDiaryRecord ["Diary", ["Mission","
Take to the skies and kill the enemy "]]; // Credits player createDiaryRecord ["Diary", ["Credits", "
Made by Winter "]]; class Hull3 { isEnabled = 1; class Briefing { blufor = "hull3\briefing\blufor.sqf"; opfor = "hull3\briefing\opfor.sqf"; indfor = "hull3\briefing\indfor.sqf"; civilian = "hull3\briefing\civilian.sqf"; }; };call compile preprocessFile "BB_Functions.sqf"; [] call BB_Init;0 spawn { sleep 1; setAperture 2; setViewDistance 4000; setTerrainGrid 50; };#ifndef KAMI_MACROS_H #define KAMI_MACROS_H // WARNING // Macros are sensitive for "," (comma), "(", ")" (parenthese) and " " (space). // Provide only the asked numbers of arguments, without additional commas and without spaces beetween commas. // Example: // PUSH_ALL(_units, [_unit] call getPlayersAroundUnit); // This will work as intended. // PUSH_ALL(_units, [_unit, 100] call getPlayersAroundUnit); // This won't work, as the macro identifies 100 as a third parameter. // Use AS_ARRAY_* instead of passing actual arrays. // PUSH_ALL(_units, AS_ARRAY_2(_unit, 100) call getPlayersAroundUnit); // Creates private declaritions for arguments. // Example: // GIVEN: // WHEN: // PVT_3(_unit,_group,_trigger); // THEN: // private ["_unit","_group","_trigger"]; #define PVT_1(VAR1) private #VAR1 #define PVT_2(VAR1,VAR2) private [#VAR1,#VAR2] #define PVT_3(VAR1,VAR2,VAR3) private [#VAR1,#VAR2,#VAR3] #define PVT_4(VAR1,VAR2,VAR3,VAR4) private [#VAR1,#VAR2,#VAR3,#VAR4] #define PVT_5(VAR1,VAR2,VAR3,VAR4,VAR5) private [#VAR1,#VAR2,#VAR3,#VAR4,#VAR5] #define PVT_6(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6) private [#VAR1,#VAR2,#VAR3,#VAR4,#VAR5,#VAR6] #define PVT_7(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7) private [#VAR1,#VAR2,#VAR3,#VAR4,#VAR5,#VAR6,#VAR7] #define PVT_8(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8) private [#VAR1,#VAR2,#VAR3,#VAR4,#VAR5,#VAR6,#VAR7,#VAR8] #define PVT_9(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9) private [#VAR1,#VAR2,#VAR3,#VAR4,#VAR5,#VAR6,#VAR7,#VAR8,#VAR9] // Creates array selection for arguments. Only works if the array is a variable! // Example: // GIVEN: // _strings = ["unit", "group", "trigger"]; // WHEN: // SELECT_3(_strings,_unit,_group,_trigger); // THEN: // _unit == "unit"; // _group == "group"; // _trigger == "trigger"; #define SELECT_1(ARRAY,VAR1) VAR1 = (ARRAY) select 0 #define SELECT_2(ARRAY,VAR1,VAR2) SELECT_1(ARRAY,VAR1); VAR2 = (ARRAY) select 1 #define SELECT_3(ARRAY,VAR1,VAR2,VAR3) SELECT_2(ARRAY,VAR1,VAR2); VAR3 = (ARRAY) select 2 #define SELECT_4(ARRAY,VAR1,VAR2,VAR3,VAR4) SELECT_3(ARRAY,VAR1,VAR2,VAR3); VAR4 = (ARRAY) select 3 #define SELECT_5(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5) SELECT_4(ARRAY,VAR1,VAR2,VAR3,VAR4); VAR5 = (ARRAY) select 4 #define SELECT_6(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6) SELECT_5(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5); VAR6 = (ARRAY) select 5 #define SELECT_7(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7) SELECT_6(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6); VAR7 = (ARRAY) select 6 #define SELECT_8(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8) SELECT_7(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7); VAR8 = (ARRAY) select 7 #define SELECT_9(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9) SELECT_8(ARRAY,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8); VAR9 = (ARRAY) select 8 // Creates private declarations and selection from _this array for arguments. // Recommended for function/script argument processing. // Example: // GIVEN: // _this = ["unit", "group", "trigger"]; // WHEN: // FUN_ARGS_3(_unit,_group,_trigger); // THEN: // private ["_unit","_group","_trigger"]; // _unit == "unit"; // _group == "group"; // _trigger == "trigger"; #define FUN_ARGS_1(VAR1) \ PVT_1(VAR1); \ SELECT_1(_this,VAR1) #define FUN_ARGS_2(VAR1,VAR2) \ PVT_2(VAR1,VAR2); \ SELECT_2(_this,VAR1,VAR2) #define FUN_ARGS_3(VAR1,VAR2,VAR3) \ PVT_3(VAR1,VAR2,VAR3); \ SELECT_3(_this,VAR1,VAR2,VAR3) #define FUN_ARGS_4(VAR1,VAR2,VAR3,VAR4) \ PVT_4(VAR1,VAR2,VAR3,VAR4); \ SELECT_4(_this,VAR1,VAR2,VAR3,VAR4) #define FUN_ARGS_5(VAR1,VAR2,VAR3,VAR4,VAR5) \ PVT_5(VAR1,VAR2,VAR3,VAR4,VAR5); \ SELECT_5(_this,VAR1,VAR2,VAR3,VAR4,VAR5) #define FUN_ARGS_6(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6) \ PVT_6(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6); \ SELECT_6(_this,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6) #define FUN_ARGS_7(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7) \ PVT_7(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7); \ SELECT_7(_this,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7) #define FUN_ARGS_8(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8) \ PVT_8(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8); \ SELECT_8(_this,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8) #define FUN_ARGS_9(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9) \ PVT_9(VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9); \ SELECT_9(_this,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9) // Adds a value to the end of an array. // Example: // GIVEN: // _numbers = [1, 3, 5, 1]; // _number = 1; // WHEN: // PUSH(_numbers, _number); // THEN: // _numbers == [1, 3, 5, 1, 1]; #define PUSH(ARRAY,VAL) (ARRAY) set [count (ARRAY), (VAL)] // Adds all values from one array to another. // Example: // GIVEN: // _numbers = [5, 9, 6]; // _otherNumbers = [1, 3, 8]; // WHEN: // PUSH_ALL(_numbers, _otherNumbers); // THEN: // _numbers == [5, 9, 6, 1, 3, 8]; #define PUSH_ALL(TO,FROM) { PUSH(TO,_x); } foreach (FROM) // Filters the FROM array with a condition and adds the values that return true to the TO array. // The values from the FROM array can be referenced by variable "_x". // Example: // GIVEN: // _numbers = []; // _otherNumbers = [1, 2, 3, 6, 8]; // _condition = {_x % 2 == 0}; // WHEN: // FILTER_PUSH_ALL(_numbers, _otherNumbers, _condition); // THEN: // _numbers == [2, 6, 8]; #define FILTER_PUSH_ALL(TO,FROM,COND) { if (call COND) then { PUSH(TO,_x); }; } foreach (FROM) // Selects a random value from an array. // Example: // GIVEN: // _behaviours = ['AWARE', 'SAFE']; // WHEN: // _random = SELECT_RAND(_behaviours); // THEN: // _random == 'AWARE' or _random == 'AWARE' #define SELECT_RAND(ARRAY) (ARRAY) select (floor (random (count (ARRAY)))) // Adds 1 to the variable. // Example: // GIVEN: // _i = 0; // WHEN: // INC(_i); // THEN: // _i == 1; #define INC(VAR) VAR = VAR + 1 // Subtracts 1 from the variable. // Example: // GIVEN: // _i = 3; // WHEN: // DEC(_i); // THEN: // _i == 2; #define DEC(VAR) VAR = VAR - 1 // Creates an array from given arguments. // Example: // GIVEN: // WHEN: // _array = AS_ARRAY_2('AWARE','SAFE'); // THEN: // _array == ['AWARE', 'SAFE']; #define AS_ARRAY_1(VAL1) [VAL1] #define AS_ARRAY_2(VAL1,VAL2) [VAL1,VAL2] #define AS_ARRAY_3(VAL1,VAL2,VAL3) [VAL1,VAL2,VAL3] #define AS_ARRAY_4(VAL1,VAL2,VAL3,VAL4) [VAL1,VAL2,VAL3,VAL4] #define AS_ARRAY_5(VAL1,VAL2,VAL3,VAL4,VAL5) [VAL1,VAL2,VAL3,VAL4,VAL5] // Returns the longest axis of trigger. // Example: // GIVEN: // _trigger = trigger; // triggerArea _trigger == [300, 400, -31.2, false]; // WHEN: // _longestAxis = LONGEST_AXIS(_trigger); // THEN: // _longestAxis == 400; #define LONGEST_AXIS(TRG) (if ((triggerArea (TRG)) select 0 > (triggerArea (TRG)) select 1) then {(triggerArea (TRG)) select 0} else {(triggerArea (TRG)) select 1}) // Creates a private declaration for a variable and enables instant assigment. // Example: // GIVEN: // WHEN: // DECLARE(_group) = _x; // THEN: // private "_group"; _group = _x; #define DECLARE(VAR) private #VAR; VAR #endif //KAMI_MACROS_HraPC_ version6EditorData>sourceNameark_gtvt32_aerial_warfareaddonsCUP_BaseConfigsA3_Ui_FA3_Air_F_Heli_Light_01A3_Characters_Face_nouniformrestrictionsace_parachuteAddonsMetaData[randomSeed{uqScenarioDataRIntrogMissionOutroLoose]OutroWin*^C_moveGridStep?angleGridStep >scaleGridStep?autoGroupingDist AtogglesItemIDProviderMarkerIDProviderCamera[nextIDcnextIDposrEZקB܌Cdirl?վ5.?up>eh?>aside l@?0([ListkRitemsItem0Item1Item2jItem3Item4fItem5RclassNameCUP_BaseConfigsnameCUP_BaseConfigsclassNameA3_Ui_FnameArma 3 - User InterfaceauthorBohemia Interactiveurlhttps://www.arma3.comjclassNameA3_Air_FnameArma 3 Alpha - AircraftauthorBohemia Interactiveurlhttps://www.arma3.comclassNameA3_Characters_FnameArma 3 Alpha - Characters and ClothingauthorBohemia Interactiveurlhttps://www.arma3.comfclassNameace_nouniformrestrictionsnameACE3 - No Uniform RestrictionsauthorACE-Teamurlhttps://ace3.acemod.org/classNameace_parachutenameACE3 - ParachuteauthorACE-Teamurlhttps://ace3.acemod.org/RauthorCyruzgIntelxtimeOfChangesDstartWeather>startWind=startWaves=forecastWeather>forecastWind=forecastWaves=forecastLightnings=yearmonthdayhour minutestartFogDecayT<forecastFogDecayT<IntelEntities]briefingNameark_gtvt32_aerial_warfareoverviewTextAH9 vs AH9 | No SafetytimeOfChangesFstartWeather>startWind=startWaves=forecastWeather>forecastWind=forecastWaves=forecastLightnings=wavesForcedwindForcedyearmonthday hour minutestartFogDecayT<forecastFogDecayT<DitemsCItem0E Item1 Item20 Item3 Item4n Item5AItem6Item7Item8Item9Item10`Item113Item12Item13Item14Item15Item16UItem17)Item18Item19Item20Item21yItem22MItem231Item24Item25Item26Item27 Item28e!Item299"Item30 #Item31#Item32$Item33%Item34]&Item351'Item36(Item37*Item38=,Item39-Item40/Item41G1Item422Item434Item44Q6Item457Item469Item47[;Item48 =Item49>Item50e@Item51BItem52CItem53qEItem54!GItem55HItem56JItem571LItem58MItem59OItem60AQItem61RItem62TItem63QVItem64XItem65YItem66a[]dataTypeMarkerpositionDEfBdCnameOPFtypeFaction_CUP_OPFORangleCidatlOffsetT? dataTypeMarkerpositionխffBy,EnameBLUtypeFaction_CUP_BLUFORidatlOffsetQv0 dataTypeMarkerposition+DڑB,#DnameAOtypemil_flagcolorNameColorRedid dataTypeObjectPositionInfo sideEmptyflagsAttributesM idtypeB_Heli_Light_01_armed_Fn positionbj4BDanglesQ%@M@M skill?namehelo_16n dataTypeObjectPositionInfo sideEmptyflagsAttributes!idtypeB_Heli_Light_01_armed_FAposition1+ MBDanglesۊ=]%@o@!skill?namehelo_1AdataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FpositiondE/BDanglesr=]%@@skill?namehelo_2dataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_Fpositioni@BDangleswe=]%@@skill?namehelo_3dataTypeObjectPositionInfobsideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FpositionO BDanglesd =]%@N ;skill?namehelo_4dataTypeObjectPositionInfo5sideEmptyflagsAttributesmidtypeB_Heli_Light_01_armed_Fposition\BuBfDanglesJ8<]%@PU?=]%@@`skill?namehelo_11dataTypeObjectPositionInfosideEmptyflagsAttributes4idtypeB_Heli_Light_01_armed_FUpositionZDoBDangles&=]%@I;4skill?namehelo_12UdataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_F)position:E`BdDangles,=]%@D<skill?namehelo_13)dataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_Fpositionmz2BDangles<]%@T<skill?namehelo_14dataTypeObjectPositionInfoxsideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_Fposition JBDangles;]%@X<skill?namehelo_15dataTypeObjectPositionInfoLsideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FpositionE~BZCangles @@%B;skill?namehelo_32dataTypeObjectPositionInfo sideEmptyflagsAttributesXidtypeB_Heli_Light_01_armed_Fyposition/EQBCangles@@8@Xskill?namehelo_17ydataTypeObjectPositionInfosideEmptyflagsAttributes,idtypeB_Heli_Light_01_armed_FMposition E|BCangles@@@,skill?namehelo_18MdataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FatlOffset1position!EtB~Cangles0@@@skill?namehelo_191dataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FatlOffset6positionE0ۀBXCangles6n@@l@skill?namehelo_20dataTypeObjectPositionInfosideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_Fposition fE^€BJCangles<@t;@skill?namehelo_21dataTypeObjectPositionInfodsideEmptyflagsAttributesidtypeB_Heli_Light_01_armed_FpositionoE6B0CanglesiL=@)@skill?namehelo_22dataTypeObjectPositionInfo8 sideEmptyflagsAttributesp idtypeB_Heli_Light_01_armed_F position6E=}B)Cangles;Y=@W@p skill?namehelo_23 dataTypeObjectPositionInfo !sideEmptyflagsAttributesD!idtypeB_Heli_Light_01_armed_Fe!positionfEo'BCangles<@@D!skill?namehelo_24e!dataTypeObjectPositionInfo!sideEmptyflagsAttributes"idtypeB_Heli_Light_01_armed_F9"positionE(B Cangles)<@l@"skill?namehelo_259"dataTypeObjectPositionInfo"sideEmptyflagsAttributes"idtypeB_Heli_Light_01_armed_F #position&YEM}BQCangles]@@JW@"skill?namehelo_26 #dataTypeObjectPositionInfo#sideEmptyflagsAttributes#idtypeB_Heli_Light_01_armed_F#position`E٢}BCangles'p@@Q@#skill?namehelo_27#dataTypeObjectPositionInfo\$sideEmptyflagsAttributes$idtypeB_Heli_Light_01_armed_F$positionGE}B,-Cangles5@@/@$skill?namehelo_28$dataTypeObjectPositionInfo0%sideEmptyflagsAttributesh%id typeB_Heli_Light_01_armed_F%positiongE6"~B8Cangles@@@h%skill?namehelo_29%dataTypeObjectPositionInfo&sideEmptyflagsAttributes<&id!typeB_Heli_Light_01_armed_F]&position Ee}BCangles@@@<&skill?namehelo_30]&dataTypeObjectPositionInfo&sideEmptyflagsAttributes'id"typeB_Heli_Light_01_armed_F1'position_x E}BCangles <@Ҷ@'skill?namehelo_311'dataTypeGroupsideWestEntities{'Attributes(id#(itemsItem0'(dataTypeObjectPositionInfo(sideWestflagsAttributes<(id$typeB_Pilot_F(positionM;<3B"BEangles @Q%@y@<(skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable((dataTypeGroupsideEastEntities))Attributes*id%*itemsItem0F)*dataTypeObjectPositionInfo)sideEastflagsAttributes)id&typeO_Pilot_F*positionBEVxB*Cangles3<y@ <)skill?rankLIEUTENANTinit [this, ["faction", "CUP_RU_MOD_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable**dataTypeGroupsideWestEntities*Attributes7,id'=,itemsItem0*7,dataTypeObjectPositionInfob+sideWestflagsAttributes+id(typeB_Pilot_F7,position_00B;Dangles:]%@@+skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable7,=,dataTypeGroupsideWestEntities,Attributes-id)-itemsItem0,-dataTypeObjectPositionInfo-sideWestflagsAttributesH-id*typeB_Pilot_F-positionwQ,BDanglesr=]%@c@H-skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable--dataTypeGroupsideWestEntities5.Attributes/id+/itemsItem0R./dataTypeObjectPositionInfo.sideWestflagsAttributes.id,typeB_Pilot_F/positionP.B}DanglesvEI=]%@_@.skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable//dataTypeGroupsideWestEntities/AttributesA1id-G1itemsItem00A1dataTypeObjectPositionInfol0sideWestflagsAttributes0id.typeB_Pilot_FA1position95BDanglesB=]%@U;0skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayableA1G1dataTypeGroupsideWestEntities1Attributes2id/2itemsItem012dataTypeObjectPositionInfo2sideWestflagsAttributesR2id0typeB_Pilot_F2position,1mB Danglesq*<]%@rv ށB)Eangles@]%@@\7skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable77dataTypeGroupsideWestEntitiesI8Attributes9id79itemsItem0f89dataTypeObjectPositionInfo8sideWestflagsAttributes 9id8typeB_Pilot_F9positionZҁBHEanglesB@]%@@ 9skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable99dataTypeGroupsideWestEntities9AttributesU;id9[;itemsItem0:U;dataTypeObjectPositionInfo:sideWestflagsAttributes:id:typeB_Pilot_FU;position#*ЁBq<Eangles'@]%@9@:skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayableU;[;dataTypeGroupsideWestEntities;Attributes=id; =itemsItem0;=dataTypeObjectPositionInfo.<sideWestflagsAttributesf<id<typeB_Pilot_F=positionLCB7Dangles @]%@@f<skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable= =dataTypeGroupsideWestEntitiesS=Attributes>id=>itemsItem0p=>dataTypeObjectPositionInfo=sideWestflagsAttributes>id>typeB_Pilot_F>positiong^>B}Dangles<]%@9>skill?rankLIEUTENANTinit [this, ["faction", "CUP_USMC_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable>>dataTypeGroupsideWestEntities?Attributes_@id?e@itemsItem0?_@dataTypeObjectPositionInfo?sideWestflagsAttributes?id@typeB_Pilot_F_@positionyBhDanglesS<]%@mCangles@y@@l\skill?rankLIEUTENANTinit [this, ["faction", "CUP_RU_MOD_WD"], ["gear", "P"]] call hull3_unit_fnc_init;descriptionPilotisPlayable ]]Intel"]*^timeOfChangesDstartWeather>startWind=startWaves=forecastWeather>forecastWind=forecastWaves=forecastLightnings=yearmonthdayhour minutestartFogDecayT<forecastFogDecayT<*^Intel;^C_timeOfChangesDstartWeather>startWind=startWaves=forecastWeather>forecastWind=forecastWaves=forecastLightnings=yearmonthdayhour minutestartFogDecayT<forecastFogDecayT