commit 9e023649acb0d002e41970e5af224823e8cc89e4 Author: Samuele Lorefice Date: Sat May 24 16:17:33 2025 +0200 initial files diff --git a/kp_liberation.brf_sumava/CfgFunctions.hpp b/kp_liberation.brf_sumava/CfgFunctions.hpp new file mode 100644 index 0000000..3c49c92 --- /dev/null +++ b/kp_liberation.brf_sumava/CfgFunctions.hpp @@ -0,0 +1,103 @@ +class KPLIB { + class functions { + file = "functions"; + + class addActionsFob {}; + class addActionsPlayer {}; + class addObjectInit {}; + class addRopeAttachEh {}; + class allowCrewInImmobile {}; + class checkClass {}; + class checkCrateValue {}; + class checkGear {}; + class checkWeaponCargo {}; + class cleanOpforVehicle {}; + class clearCargo {}; + class crAddAceAction {}; + class crateFromStorage {}; + class crateToStorage {}; + class crawlAllItems {}; + class createClearance {}; + class createClearanceConfirm {}; + class createCrate {}; + class createManagedUnit {}; + class crGetMulti {}; + class crGlobalMsg {}; + class doSave {}; + class fillStorage {}; + class forceBluforCrew {}; + class getAdaptiveVehicle {}; + class getBluforRatio {}; + class getCommander {}; + class getCrateHeight {}; + class getFobName {}; + class getFobResources {}; + class getGroupType {}; + class getLessLoadedHC {}; + class getLoadout {}; + class getLocalCap {}; + class getLocationName {}; + class getMilitaryId {}; + class getMobileRespawns {}; + class getNearbyPlayers {}; + class getNearestBluforObjective {}; + class getNearestFob {}; + class getNearestSector {}; + class getNearestTower {}; + class getNearestViVTransport {}; + class getOpforCap {}; + class getOpforFactor {}; + class getOpforSpawnPoint {}; + class getPlayerCount {}; + class getResistanceTier {}; + class getSaveableParam {}; + class getSaveData {}; + class getSectorOwnership {}; + class getSectorRange {}; + class getSquadComp {}; + class getStoragePositions {}; + class getUnitPositionId {}; + class getUnitsCount {}; + class getWeaponComponents {}; + class handlePlacedZeusObject {}; + class hasPermission {}; + class initSectors {}; + class isBigtownActive {}; + class isClassUAV {}; + class isRadio {}; + class log {}; + class potatoScan {}; + class protectObject {}; + class secondsToTimer {}; + class setDiscordState {}; + class setFobMass {}; + class setLoadableViV {}; + class setLoadout {}; + class setVehicleCaptured {}; + class setVehicleSeized {}; + class sortStorage {}; + class spawnBuildingSquad {}; + class spawnCivilians {}; + class spawnGuerillaGroup {}; + class spawnMilitaryPostSquad {}; + class spawnMilitiaCrew {}; + class spawnRegularSquad {}; + class spawnVehicle {}; + class swapInventory {}; + }; + class functions_curator { + file = "functions\curator"; + + class initCuratorHandlers { + postInit = 1; + }; + class requestZeus {}; + }; + class functions_ui { + file = "functions\ui"; + + class overlayUpdateResources {}; + }; + #include "scripts\client\CfgFunctions.hpp" + #include "scripts\server\CfgFunctions.hpp" +}; diff --git a/kp_liberation.brf_sumava/GREUH/GREUH_config.sqf b/kp_liberation.brf_sumava/GREUH/GREUH_config.sqf new file mode 100644 index 0000000..2ab850f --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/GREUH_config.sqf @@ -0,0 +1,8 @@ +// Permettre aux joueurs de modifier leur distance de vue +GREUH_allow_viewdistance = true; + +// Permettre aux joueurs de modifier la qualité de l environnement +GREUH_allow_worldquality = true; + +// Permettre aux joueurs de modifier leurs escouades +GREUH_allow_customsquads = true; diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_actionmanager.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_actionmanager.sqf new file mode 100644 index 0000000..58a16b6 --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_actionmanager.sqf @@ -0,0 +1,6 @@ +_idact = -1; +while { true } do { + waitUntil{ sleep 0.3; alive player }; + _idact = player addAction ["" + localize "STR_GREUH_EXTENDED_OPTIONS_ACTIONMENU" + "","GREUH\scripts\GREUH_dialog.sqf","",-1000,false,true]; + waitUntil{ sleep 0.3; !alive player}; +}; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_activate.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_activate.sqf new file mode 100644 index 0000000..f72f03d --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_activate.sqf @@ -0,0 +1,49 @@ +if (isDedicated) then { exit }; + +waitUntil { alive player }; + +desiredviewdistance_inf = viewDistance; +desiredviewdistance_veh = viewDistance; +desiredviewdistance_obj = 75; +desired_fps = 0; +show_teammates = false; +show_nametags = false; +show_platoon = false; +desired_vehvolume = 100; + +greuh_options_profile = profileNamespace getVariable "GREUH_OPTIONS_PROFILE"; +if ( !isNil "greuh_options_profile" ) then { + desiredviewdistance_inf = greuh_options_profile select 0; + desiredviewdistance_veh = greuh_options_profile select 1; + desiredviewdistance_obj = greuh_options_profile select 2; + show_teammates = greuh_options_profile select 3; + show_platoon = greuh_options_profile select 4; + if ( count greuh_options_profile > 5 ) then { + desired_vehvolume = greuh_options_profile select 5; + if ( isNil "desired_vehvolume" ) then { + desired_vehvolume = 100; + }; + }; + if ( count greuh_options_profile > 6 ) then { + show_nametags = greuh_options_profile select 6; + if ( isNil "show_nametags" ) then { + show_nametags = false; + }; + }; + if ( count greuh_options_profile > 7) then { + desired_fps = greuh_options_profile select 7; + if ( isNil "desired_fps" ) then { + desired_fps = 0; + }; + }; +}; + +[] call compile preprocessFileLineNumbers "GREUH\GREUH_config.sqf"; +[] call compile preprocessFileLineNumbers "GREUH\scripts\GREUH_version.sqf"; +execVM "GREUH\scripts\GREUH_actionmanager.sqf"; +if ( GREUH_allow_mapmarkers ) then { execVM "GREUH\scripts\GREUH_playermarkers.sqf"; }; +if ( GREUH_allow_platoonview ) then { execVM "GREUH\scripts\GREUH_platoonoverlay.sqf"; }; +if ( GREUH_allow_platoonview ) then { execVM "GREUH\scripts\GREUH_cache_units.sqf"; }; +if ( GREUH_allow_customsquads ) then { execVM "GREUH\scripts\GREUH_squadmanagement.sqf"; }; +if ( GREUH_allow_viewdistance ) then { execVM "GREUH\scripts\GREUH_view_distance_management.sqf"; }; +execVM "GREUH\scripts\GREUH_dynamic_view_distance.sqf"; diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_cache_units.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_cache_units.sqf new file mode 100644 index 0000000..eccb4d1 --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_cache_units.sqf @@ -0,0 +1,17 @@ +private [ "_scanned_units", "_scanned_groups" ]; + +waitUntil { !isNil "nametags_distance" }; + +while { true } do { + + _scanned_units = [ allUnits, { ( alive _x ) && ( side group _x == GRLIB_side_friendly ) } ] call BIS_fnc_conditionalSelect; + _scanned_units = [ _scanned_units, { (_x == leader group player ) || (_x distance player < nametags_distance) } ] call BIS_fnc_conditionalSelect; + _scanned_units = [ _scanned_units, { (_x != player) && (( vehicle player ) != ( vehicle _x )) } ] call BIS_fnc_conditionalSelect; + GRLIB_nametag_units = [] + _scanned_units; + + _scanned_groups = [ allGroups, { ( side _x == side player ) && ( isplayer (leader _x) ) } ] call BIS_fnc_conditionalSelect; + _scanned_groups = [ _scanned_groups, { ( count units _x > 1 ) || ( count units _x == 1 && leader _x != player ) } ] call BIS_fnc_conditionalSelect; + GRLIB_overlay_groups = [] + _scanned_groups; + + sleep 1; +}; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dialog.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dialog.sqf new file mode 100644 index 0000000..773d5bc --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dialog.sqf @@ -0,0 +1,115 @@ +_squadcontrols = [511,512,513,514,515,521,522,523,524,525,526,527]; +_platooncontrols = [611,612,613,614]; +_viewcontrols = [712,713,714,722,723,724,732,733,734]; +_worldcontrols = [812,813,814,815]; +_markerscontrols = [911,912,913,914]; +_allbuttons = [6677,511,512,513,514,613,614,812,813,814,815,913,914,712,722,732]; +_rename_controls = [521,522,523,524,525,526,527]; +_leader_controls = [561,562,563,564,565,566,567]; +renaming = false; +choosingleader = false; + +_dialog = createDialog "GREUH_Menu"; +waitUntil { dialog }; + +if ( GREUH_allow_customsquads ) then { + ctrlShow [501, false]; +} else { + ctrlShow [501, true]; + { ctrlShow [_x, false] } foreach _squadcontrols; +}; + +if ( GREUH_allow_platoonview ) then { + ctrlShow [601, false]; +} else { + ctrlShow [601, true]; + { ctrlShow [_x, false] } foreach _platooncontrols; +}; + +if ( GREUH_allow_viewdistance ) then { + ctrlShow [701, false]; + sliderSetRange [712, 1000, 10000]; + sliderSetPosition [712, desiredviewdistance_inf]; + sliderSetSpeed [712, 500, 500]; + sliderSetRange [722, 1000, 10000]; + sliderSetPosition [722, desiredviewdistance_veh]; + sliderSetSpeed [722, 500, 500]; + sliderSetRange [732, 30, 100]; + sliderSetPosition [732, desiredviewdistance_obj]; + sliderSetSpeed [732, 5, 5]; + ctrlSetText [ 960, format ["%1",desired_fps] ]; +} else { + ctrlShow [701, true]; + { ctrlShow [_x, false] } foreach _viewcontrols; +}; + +if ( GREUH_allow_worldquality ) then { + ctrlShow [801, false]; +} else { + ctrlShow [801, true]; + { ctrlShow [_x, false] } foreach _worldcontrols; +}; + +if ( GREUH_allow_mapmarkers ) then { + ctrlShow [901, false]; +} else { + ctrlShow [901, true]; + { ctrlShow [_x, false] } foreach _markerscontrols; +}; + +if ( true ) then { + sliderSetSpeed [ 1102, 5, 5]; + sliderSetRange [ 1102, 0, 100]; + sliderSetPosition [ 1102, desired_vehvolume ]; +}; + +while { dialog && alive player } do { + + if ( renaming ) then { + { ctrlEnable [_x, false] } foreach (_allbuttons); + { ctrlShow [_x, true] } foreach _rename_controls; + { ctrlShow [_x, false] } foreach _leader_controls; + } else { + if ( choosingleader ) then { + { ctrlEnable [_x, false] } foreach _allbuttons; + { ctrlShow [_x, false] } foreach _rename_controls; + { ctrlShow [_x, true] } foreach _leader_controls; + } else { + { ctrlEnable [_x, true] } foreach _allbuttons; + { ctrlShow [_x, false] } foreach (_rename_controls + _leader_controls); + ctrlEnable [513,(leader (group player) == player)]; + ctrlEnable [514,(leader (group player) == player)]; + }; + }; + + if ( GREUH_allow_platoonview ) then { ctrlShow [612, show_platoon]; }; + if ( GREUH_allow_mapmarkers ) then { ctrlShow [912, show_teammates]; }; + ctrlShow [ 962, show_nametags ]; + + if ( GREUH_allow_customsquads ) then { + lbClear 515; + { + _brakets = ""; + if ( _x == group player ) then { _brakets = ">> "; }; + lbAdd [515, format [ "%4%1 - %2 (%3)",groupId _x, name leader _x, count units _x,_brakets ]]; + } foreach groups_list; + }; + + if ( GREUH_allow_viewdistance ) then { + ctrlSetText [713, format [ '%1m' ,round desiredviewdistance_inf]]; + ctrlSetText [723, format [ '%1m' ,round desiredviewdistance_veh]]; + ctrlSetText [733, format [ '%1m' ,round ((desiredviewdistance_obj / 100.0) * desiredviewdistance_inf) ]]; + }; + + ctrlSetText [ 1103, format [ "%1%2", round (desired_vehvolume), "%" ] ]; + + desired_fps = parseNumber (ctrlText 960); + + uiSleep 0.2; +}; + +if (!alive player) then { closeDialog 0 }; + +greuh_options_profile = [ desiredviewdistance_inf, desiredviewdistance_veh, desiredviewdistance_obj, show_teammates, show_platoon, desired_vehvolume, show_nametags, desired_fps ]; +profileNamespace setVariable [ "GREUH_OPTIONS_PROFILE",greuh_options_profile ]; +saveProfileNamespace; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dynamic_view_distance.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dynamic_view_distance.sqf new file mode 100644 index 0000000..9b61f6b --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_dynamic_view_distance.sqf @@ -0,0 +1,44 @@ +GREUH_view_distance_factor = 1.0; +GREUH_force_adjust_view_distance = false; +private _min_view_distance_factor = 0.25; +private _base_increment = 0.075; +private _corrected_increment = -1; +private _consecutive_before_adjust = 3; +private _consecutive_fps_too_low = 0; +private _consecutive_fps_too_fast = 0; +private _smoothing_margin = 0.1; + +while { true } do { + + _corrected_increment = _base_increment * GREUH_view_distance_factor; + + if ( (diag_fps * ( 1 - _smoothing_margin )) < desired_fps ) then { + _consecutive_fps_too_low = _consecutive_fps_too_low + 1; + _consecutive_fps_too_fast = 0; + }; + + if ( (diag_fps * ( 1 + _smoothing_margin )) > desired_fps ) then { + _consecutive_fps_too_fast = _consecutive_fps_too_fast + 1; + _consecutive_fps_too_low = 0; + }; + + if ( GREUH_view_distance_factor > _min_view_distance_factor && _consecutive_fps_too_low >= _consecutive_before_adjust ) then { + _consecutive_fps_too_low = 0; + GREUH_view_distance_factor = GREUH_view_distance_factor - _corrected_increment; + if ( GREUH_view_distance_factor < _min_view_distance_factor ) then { + GREUH_view_distance_factor = _min_view_distance_factor; + }; + GREUH_force_adjust_view_distance = true; + }; + + if ( GREUH_view_distance_factor < 1.0 && _consecutive_fps_too_fast >= _consecutive_before_adjust ) then { + _consecutive_fps_too_fast = 0; + GREUH_view_distance_factor = GREUH_view_distance_factor + _corrected_increment; + if ( GREUH_view_distance_factor > 1.0 ) then { + GREUH_view_distance_factor = 1.0; + }; + GREUH_force_adjust_view_distance = true; + }; + + sleep 0.75; +}; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_platoonoverlay.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_platoonoverlay.sqf new file mode 100644 index 0000000..a23601d --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_platoonoverlay.sqf @@ -0,0 +1,139 @@ +platoon_icon1 = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa"; +platoon_icon2 = "\A3\ui_f\data\igui\cfg\cursors\board_ca.paa"; +soldier_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\private_gs.paa"; +formation_leader_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa"; +commander_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa"; +group_leader_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa"; +wounded_icon = "\A3\ui_f\data\map\vehicleicons\pictureHeal_ca.paa"; + +nametags_distance = 32.0; + +private [ "_groups", "_unitstocount", "_totalx", "_totaly", "_totalz", "_alpha", "_textalpha", "_size", "_screenpos", "_grouppos", "_distlabel", "_dist", "_nextunit", "_color", "_drawicon", "_displayname", "_iconpos" ]; + +waitUntil { !isNil "GRLIB_overlay_groups" }; +waitUntil { !isNil "GRLIB_nametag_units" }; + +["platoon_overlay", "onEachFrame", { + + if ( show_platoon ) then { + + { + if ( count units _x > 0 ) then { + _totalx = 0; + _totaly = 0; + _totalz = 0; + _grouppos = []; + _unitstocount = []; + { + if ( _x distance (leader group _x) < 300) then { + _unitstocount pushback _x; + _totalx = _totalx + (getpos _x select 0); + _totaly = _totaly + (getpos _x select 1); + _totalz = _totalz + (getpos _x select 2); + }; + } foreach units _x; + + if ( count _unitstocount > 0 ) then { + _totalx = _totalx / (count _unitstocount); + _totaly = _totaly / (count _unitstocount); + _totalz = _totalz / (count _unitstocount); + }; + + if ( _totalz > 2.1 ) then { + _grouppos = [_totalx, _totaly, _totalz + 10]; + } else { + _grouppos = [_totalx, _totaly, 2.1]; + }; + _alpha = 0.5; + _textalpha = 0; + _size = 0.8; + + _screenpos = worldToScreen _grouppos; + + if (count _screenpos != 0) then { + if ( (abs (((worldToScreen _grouppos) select 0) - 0.5) < 0.06) && (abs (((worldToScreen _grouppos) select 1) - 0.5) < 0.08)) then { + _alpha = 1; + _textalpha = 1; + _size = 1; + }; + }; + + _dist = player distance _grouppos; + _distlabel = ""; + if ( _dist > 200 ) then { + if ( _dist >= 1000 ) then { + _distlabel = format [" (%1km)", floor (_dist / 1000)]; + } else { + _distlabel = format [" (%1m)", (floor (_dist / 100)) * 100]; + }; + }; + + _color = [0.8,1,0.2,_alpha]; + if ( _x == group player) then { _color = [1,0.9,0.3,_alpha] }; + drawIcon3D [platoon_icon1, _color, _grouppos, _size / 2, _size / 2,0, format ["%1 - %2%3",groupID _x, name (leader _x),_distlabel], 2, 0.03 * _textalpha, "puristaMedium"]; + drawIcon3D [platoon_icon2, _color, _grouppos, _size, _size,0, "", 2, 0.04, "puristaMedium"]; + }; + } foreach GRLIB_overlay_groups; + }; + + if ( show_nametags ) then { + { + _nextunit = _x; + + private _local_nametags_distance = nametags_distance; + if( _nextunit == leader group player ) then { + _local_nametags_distance = nametags_distance * 3; + }; + _alpha = 1; + if ( _nextunit distance player > (_local_nametags_distance / 2) ) then { + _alpha = 1 - ((((_nextunit distance player) - (_local_nametags_distance / 2)) * 2) / _local_nametags_distance); + }; + + _color = []; + if ( _nextunit in (units group player)) then { + + switch ( _nextunit getVariable [ "GRLIB_squad_color", "MAIN" ] ) do { + case "BLUE" : { _color = [0.15,0.35,1.0,_alpha] }; + case "RED" : { _color = [0.8,0,0,_alpha] }; + case "YELLOW" : { _color = [0.85,0.85,0,_alpha] }; + case "GREEN" : { _color = [0,0.75,0,_alpha] }; + default { _color = [0.9,0.9,0.9,_alpha] }; + }; + + } else { + _color = [0.92,0.7,0.25,_alpha]; + }; + + _drawicon = soldier_icon; + if ( _nextunit getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then { + _drawicon = wounded_icon; + } else { + if ( _nextunit == [] call KPLIB_fnc_getCommander ) then { + _drawicon = commander_icon; + } else { + if ( _nextunit == (leader group _nextunit) && (count (units group _nextunit) > 1 ) ) then { + _drawicon = group_leader_icon; + } else { + if ( ( isFormationLeader _nextunit ) && ( count formationMembers _nextunit > 1 ) ) then { + _drawicon = formation_leader_icon; + }; + }; + }; + }; + + _displayname = ""; + if(count (squadParams _nextunit) != 0) then { + _displayname = "[" + ((squadParams _nextunit select 0) select 0) + "] "; + }; + _displayname = _displayname + ( name _nextunit ); + + _height = 2 + ((player distance _nextunit) / (0.75 * _local_nametags_distance)); + + _iconpos = [ getPosATL _nextunit select 0, getPosATL _nextunit select 1, (getPosATL _nextunit select 2) + _height ]; + + drawIcon3D [ _drawicon, _color, _iconpos , 0.75, 0.75,0, format [ "%1", _displayname] , 2, 0.032, "puristaMedium"]; + + } foreach GRLIB_nametag_units; + }; + +}] call BIS_fnc_addStackedEventHandler; diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_playermarkers.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_playermarkers.sqf new file mode 100644 index 0000000..65ff6ca --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_playermarkers.sqf @@ -0,0 +1,190 @@ +private _marked_players = []; +private _marked_vehicles = []; +private _marked_squadmates = []; +private _marker_objs = []; +private _color = ""; +private _ticks = 0; +private _cfg = configFile >> "cfgVehicles"; + +if ( side player == GRLIB_side_friendly ) then { + _color = GRLIB_color_friendly; +} else { + _color = GRLIB_color_enemy; +}; + +while { true } do { + waitUntil { sleep 0.2; show_teammates }; + while { show_teammates } do { + + if ( _ticks == 0 ) then { + + { + private _nextmarker = _x select 0; + private _nextobj = _x select 1; + if ( (isNull _nextobj) || !(alive _nextobj) ) then { + deleteMarkerLocal _nextmarker; + }; + } foreach _marker_objs; + + private _playableunits = []; + if ( count playableUnits > 0 ) then { + _playableunits = [ playableUnits, { (side (group _x)) == (side (group player)) } ] call BIS_fnc_conditionalSelect; + } else { + _playableunits = [ player ]; + }; + + { + if ( vehicle _x == _x ) then { + _marked_players pushbackUnique _x; + } else { + _marked_vehicles pushbackUnique (vehicle _x); + }; + } foreach _playableunits; + + { + if ( alive _x && !(isPlayer _x) ) then { + if ( vehicle _x == _x ) then { + _marked_squadmates pushbackUnique _x; + } else { + _marked_vehicles pushbackUnique (vehicle _x); + }; + }; + } foreach (units (group player)); + + private _stuff_to_unmark = []; + { + if ( (vehicle _x != _x) || !(alive _x) ) then { + _stuff_to_unmark pushback _x; + _marked_players = _marked_players - [_x]; + }; + } foreach _marked_players; + + { + if ( (vehicle _x != _x) || !(alive _x) ) then { + _stuff_to_unmark pushback _x; + _marked_squadmates = _marked_squadmates - [_x]; + }; + } foreach _marked_squadmates; + + { + if ( (count (crew _x) == 0) || !(alive _x) ) then { + _stuff_to_unmark pushback _x; + _marked_vehicles = _marked_vehicles - [_x]; + }; + } foreach _marked_vehicles; + + { + private _nextmarker = _x getVariable [ "spotmarker", "" ]; + if ( _nextmarker != "" ) then { + deleteMarkerLocal _nextmarker; + _x setVariable [ "spotmarker", "" ]; + }; + } foreach _stuff_to_unmark; + + { + private _nextplayer = _x; + private _marker = _nextplayer getVariable [ "spotmarker", "" ]; + if ( _marker == "" ) then { + _marker = ( createMarkerLocal [ format [ "playermarker%1", (allUnits find _x) * (time % 1000) * (floor (random 100)) ], getpos _nextplayer ] ); + _marker_objs pushback [ _marker, _nextplayer ]; + _nextplayer setVariable [ "spotmarker", _marker ]; + + private _playername = ""; + if( count (squadParams _nextplayer) != 0 ) then { + _playername = "[" + ((squadParams _nextplayer select 0) select 0) + "] "; + }; + _playername = _playername + (name _nextplayer); + _marker setMarkerTextLocal _playername; + + _marker setMarkerSizeLocal [ 0.75, 0.75 ]; + _marker setMarkerColorLocal _color; + }; + + private _markertype = "mil_start"; + if ( _nextplayer getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then { + _markertype = "MinefieldAP"; + }; + _marker setMarkerTypeLocal _markertype; + } foreach _marked_players; + + { + private _nextai = _x; + private _marker = _nextai getVariable [ "spotmarker", "" ]; + + if ( _marker == "" ) then { + _marker = ( createMarkerLocal [ format [ "squadaimarker%1", (allUnits find _x) * (time % 1000) * (floor (random 10000)) ], getpos _nextai ] ); + _marker_objs pushback [ _marker, _nextai ]; + _nextai setVariable [ "spotmarker", _marker ]; + _marker setMarkerTypeLocal "mil_triangle"; + _marker setMarkerSizeLocal [ 0.6, 0.6 ]; + _marker setMarkerColorLocal _color; + }; + + _marker setMarkerTextLocal format [ "%1", ( [ _nextai ] call KPLIB_fnc_getUnitPositionId )]; + } foreach _marked_squadmates; + + { + private _nextvehicle = _x; + private _marker = _nextvehicle getVariable [ "spotmarker", "" ]; + if ( _marker == "" ) then { + _marker = ( createMarkerLocal [ format [ "vehiclemarker%1", (vehicles find _x) * (time % 1000) * (floor (random 10000)) ], getpos _nextvehicle ] ); + _marker_objs pushback [ _marker, _nextvehicle ]; + _nextvehicle setVariable [ "spotmarker", _marker ]; + _marker setMarkerTypeLocal "mil_arrow2"; + _marker setMarkerSizeLocal [0.75,0.75]; + _marker setMarkerColorLocal _color; + }; + + private _datcrew = crew _nextvehicle; + private _vehiclename = ""; + { + if (isPlayer _x) then { + _vehiclename = _vehiclename + (name _x); + } else { + _vehiclename = _vehiclename + ( format [ "%1", [ _x ] call KPLIB_fnc_getUnitPositionId ] ); + }; + + if( (_datcrew find _x) != ((count _datcrew) - 1) ) then { + _vehiclename = _vehiclename + ","; + }; + _vehiclename = _vehiclename + " "; + } foreach _datcrew; + + _vehiclename = _vehiclename + "(" + getText (_cfg >> typeOf _nextvehicle >> "displayName") + ")"; + _marker setMarkerTextLocal _vehiclename; + } foreach _marked_vehicles; + }; + + private _markerunits = [] + _marked_players + _marked_squadmates + _marked_vehicles; + { + private _nextunit = _x; + private _marker = _nextunit getVariable [ "spotmarker", "" ]; + if ( _marker != "" ) then { + _marker setMarkerPosLocal (getPos _nextunit); + private _mrkdir = getDir _nextunit; + if ( isPlayer _nextunit ) then { + if ( _nextunit getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then { + _mrkdir = 0; + }; + }; + _marker setMarkerDirLocal _mrkdir; + }; + } foreach _markerunits; + + _ticks = _ticks + 1; + + if ( _ticks > 10 ) then { + _ticks = 0; + }; + sleep 0.1; + }; + + { + private _nextunit = _x; + private _marker = _nextunit getVariable [ "spotmarker", "" ]; + if ( _marker != "" ) then { + deleteMarkerLocal _marker; + _nextunit setVariable [ "spotmarker", "" ]; + }; + } forEach (allUnits + vehicles); +}; diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_squadmanagement.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_squadmanagement.sqf new file mode 100644 index 0000000..b13947b --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_squadmanagement.sqf @@ -0,0 +1,105 @@ +groups_list = []; +squadaction = ""; +squadname = ""; +if (isNil "global_group_ids") then { global_group_ids = [] }; +if (isNil "global_groups_renamed") then { global_groups_renamed = [] }; + +global_new_leader = []; + +while { true } do { + + if ( squadaction != "" ) then { + _grp = grpNull; + switch (squadaction) do { + case "create" : { + _grp = createGroup [(side player), true]; + [player] join _grp; + hint "New squad created"; + }; + case "join" : { + if(lbCurSel 515 != -1) then { _grp = groups_list select (lbCurSel 515); }; + if (!(isNull _grp) && (_grp != group player)) then { + [player] join _grp; + hint "Squad joined"; + }; + }; + case "rename" : { + if ( leader group player == player ) then { + renaming = true; + ctrlSetText [527, (groupid (group player))]; + waitUntil { ((squadaction == "") || (squadname != "") || !(dialog) || !(alive player)) }; + if ( alive player && dialog && ( squadname != "" )) then { + if ( (group player) in global_groups_renamed ) then { + global_group_ids set [global_groups_renamed find (group player),squadname]; + } else { + global_group_ids = global_group_ids + [squadname]; + global_groups_renamed = global_groups_renamed + [group player]; + }; + publicVariable "global_group_ids"; + publicVariable "global_groups_renamed"; + }; + squadname = ""; + renaming = false; + } else { + hint "Sorry, only the squad leader can rename their squad."; + }; + }; + case "leader" : { + if ( leader group player == player ) then { + choosingleader = true; + choose_squadleader = -10; + + _player_group_filtered = []; + { + if ( isPlayer _x ) then { + _player_group_filtered = _player_group_filtered + [_x]; + }; + } foreach (units group player); + + lbClear 567; + { + + lbAdd [567, name _x ]; + } foreach _player_group_filtered; + + _count_units_grp_player = count (units group player); + waitUntil { ((squadaction == "") || (choose_squadleader >= 0) || !(dialog) || !(alive player) || (_count_units_grp_player != count (units group player))) }; + if ( alive player && dialog && ( choose_squadleader >= 0 )) then { + global_new_leader = [group player, _player_group_filtered select choose_squadleader]; + publicVariable "global_new_leader"; + }; + choose_squadleader = -10; + choosingleader = false; + } else { + hint "Sorry, only the squad leader can choose a new leader."; + }; + }; + }; + squadaction = ""; + }; + + { if ( (isplayer leader _x) && (side _x == side player) && !(_x in groups_list)) then { groups_list = groups_list + [_x] }; } foreach allGroups; + { if (!(_x in allGroups) || (!isplayer leader _x)) then { groups_list = groups_list - [_x] }; } foreach groups_list; + + { + if (count global_groups_renamed != 0) then { + if (_x in global_groups_renamed) then { + if (groupid _x != global_group_ids select (global_groups_renamed find _x)) then { + _x setgroupid [(global_group_ids select (global_groups_renamed find _x))]; + }; + }; + }; + } foreach groups_list; + + if ( count global_new_leader != 0 ) then { + if ( group player == global_new_leader select 0 ) then { + (global_new_leader select 0) selectLeader (global_new_leader select 1); + hint format ["%1 is your new squad leader.",name (global_new_leader select 1)]; + global_new_leader = []; + }; + }; + + sleep 0.5; + +}; + diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_version.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_version.sqf new file mode 100644 index 0000000..63ec518 --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_version.sqf @@ -0,0 +1,4 @@ +GREUH_version = 1.2; + +player createDiarySubject ["GREUH Options","GREUH Options"]; +player createDiaryRecord ["GREUH Options", ["GREUH Options", format ["GREUH Extended Options
arma.greuh.org

Scripted by [GREUH] Zbug
Version %1",GREUH_version]]]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_view_distance_management.sqf b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_view_distance_management.sqf new file mode 100644 index 0000000..001ba05 --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/Scripts/GREUH_view_distance_management.sqf @@ -0,0 +1,58 @@ +private _olddistance_inf = -1; +private _olddistance_veh = -1; +private _olddistance_obj = -1; +private _olddesiredvolume = -1; +private _was_vehicle = false; +private _min_view_distance = 300; +private _desired_inf = -1; +private _desired_veh = -1; +private _desired_obj = -1; + + +waitUntil { !isNil "GREUH_view_distance_factor" }; +waitUntil { !isNil "GREUH_force_adjust_view_distance" }; + +while { true } do { + waitUntil { sleep 0.3; + (round _olddistance_inf != round desiredviewdistance_inf) + || (round _olddistance_veh != round desiredviewdistance_veh) + || (round _olddistance_obj != round desiredviewdistance_obj) + || ( (( vehicle player == player ) && _was_vehicle) + || (( vehicle player != player ) && !_was_vehicle) ) + || !(alive player) + || ( round _olddesiredvolume != round desired_vehvolume) + || GREUH_force_adjust_view_distance }; + waitUntil { alive player }; + GREUH_force_adjust_view_distance = false; + _olddistance_inf = round desiredviewdistance_inf; + _olddistance_veh = round desiredviewdistance_veh; + _olddistance_obj = round desiredviewdistance_obj; + _olddesiredvolume = desired_vehvolume; + _was_vehicle = ( vehicle player != player ); + + if ( _was_vehicle ) then { + + _desired_veh = (round desiredviewdistance_veh) * GREUH_view_distance_factor; + if ( _desired_veh < _min_view_distance ) then { + _desired_veh = _min_view_distance; + }; + setViewDistance _desired_veh; + + 1 fadeSound ( desired_vehvolume / 100.0 ); + } else { + + _desired_inf = (round desiredviewdistance_inf) * GREUH_view_distance_factor; + if ( _desired_inf < _min_view_distance ) then { + _desired_inf = _min_view_distance; + }; + setViewDistance _desired_inf; + + 1 fadeSound 1; + }; + + _desired_obj = (((desiredviewdistance_obj / 100.0) * desiredviewdistance_inf) * GREUH_view_distance_factor); + if ( _desired_obj < _min_view_distance) then { + _desired_obj = _min_view_distance; + }; + setObjectViewDistance _desired_obj; +}; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/GREUH/UI/GREUH_interface.hpp b/kp_liberation.brf_sumava/GREUH/UI/GREUH_interface.hpp new file mode 100644 index 0000000..6a1ad6d --- /dev/null +++ b/kp_liberation.brf_sumava/GREUH/UI/GREUH_interface.hpp @@ -0,0 +1,889 @@ +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUT_BUTTON 16 // Arma 2 - textured button + +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_List_N_Box 102 // Arma 2 - N columns list box + + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define CT_MAP_MAIN 101 +#define ST_PICTURE 48 + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + +#define FontM "puristaMedium" + +#define BORDERSIZE 0.01 + +#define BASE_Y 0.075 + +class RscListBox { + idc = -1; + type = 5; + style = 0 + 0x10; + font = FontM; + sizeEx = 0.018 * safezoneH; + rowHeight = 0.02 * safezoneH; + color[] = COLOR_LIGHTGRAY; + colorText[] = COLOR_WHITE; + colorScrollbar[] = COLOR_BRIGHTGREEN; + colorSelect[] = COLOR_BRIGHTGREEN; + colorSelect2[] = COLOR_BRIGHTGREEN; + colorSelectBackground[] = COLOR_LIGHTGRAY; + colorSelectBackground2[] = COLOR_LIGHTGRAY; + colorActive[] = COLOR_BRIGHTGREEN; + colorDisabled[] = COLOR_GREEN; + columns[] = {0.1, 0.7, 0.1, 0.1}; + period = 0; + colorBackground[] = COLOR_GREEN; + maxHistoryDelay = 1.0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + shadow = 2; + + class ListScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +class RscCombo { + idc = -1; + type = 4; + style = 1; + x = 0; + y = 0; + w = 0.3; + h = 0.035; + colorSelect[] = COLOR_BRIGHTGREEN; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_GREEN; + colorSelectBackground[] = COLOR_LIGHTGRAY; + colorScrollbar[] = COLOR_BRIGHTGREEN; + arrowEmpty ="\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + wholeHeight = 0.45; + color[] = COLOR_LIGHTGRAY; + colorActive[] = COLOR_BRIGHTGREEN; + colorDisabled[] = COLOR_GREEN; + font = FontM; + sizeEx = 0.031; + soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + soundExpand[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + soundCollapse[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + maxHistoryDelay = 1.0; + + class ComboScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +class GREUH_Menu { + idd = 5565; + movingEnable = false; + controlsBackground[] = {}; + controls[] = {"GREUH_OuterBG", "BgPicture", "GREUH_OuterBG_F","GREUH_InnerBG", "GREUH_InnerBG_F","GREUH_Header","GREUH_SquadLabel", + "GREUH_SquadZone","GREUH_PlatoonLabel","GREUH_ViewDistance","GREUH_WorldQuality", + "GREUH_Close","GREUH_ButtonWorldVeryLow","GREUH_ButtonWorldLow","GREUH_ButtonWorldNormal","GREUH_ButtonWorldHigh", + "GREUH_Slider","GREUH_SliderVD","GREUH_LabelMarkers","GREUH_TeammatesYes","GREUH_TeammatesNo","GREUH_LabelPlatoon", + "GREUH_PlatoonYes","GREUH_PlatoonNo","GREUH_LabelPlatoonActive","GREUH_LabelMarkersActive","GREUH_SquadList", + "GREUH_ButtonJoin","GREUH_ButtonNew","GREUH_ButtonRename","GREUH_PlatoonZone","GREUH_ViewZone","GREUH_WorldZone", + "GREUH_MarkersZone","GREUH_Squad_OuterBG","GREUH_Squad_InnerBG","GREUH_Squad_OuterBG_F","GREUH_Squad_InnerBG_F", + "GREUH_ButtonName_Rename","GREUH_ButtonName_Abort","GREUH_Squad_TextField","GREUH_LabelVD","GREUH_ButtonLeader", + "GREUH_SliderVeh","GREUH_LabelVDVeh","GREUH_SliderVDVeh","GREUH_SliderObj","GREUH_LabelVDObj","GREUH_SliderVDObj", + "GREUH_Leader_OuterBG", "GREUH_Leader_InnerBG", "GREUH_Leader_OuterBG_F", "GREUH_Leader_InnerBG_F", + "GREUH_ButtonLeader_Choose", "GREUH_ButtonLeader_Abort", "GREUH_Squad_Combo", "GREUH_VehSound", "GREUH_SliderVehSound", + "GREUH_LabelVehSound","GREUH_LabelNametags","GREUH_NametagsActive","GREUH_NametagsYes","GREUH_NametagsNo", + "GREUH_FPSLabel","GREUH_FPSEdit"}; + objects[] = {}; + + class BgPicture { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {0.5, 0.4, 0.25, 0.6}; + colorBackground[] = {0, 0, 0, 1}; + font = FontM; + sizeEx = 0.023; + moving = false; + text = "res\camo03.jpg"; + x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = ((BASE_Y + 0.02) * safezoneH) + safezoneY - (3 * BORDERSIZE); + w = (0.2 * safezoneW) + (4 * BORDERSIZE); + h = (0.79 * safezoneH) + (6 * BORDERSIZE); + }; + + class GREUH_OuterBG { + idc = -1; + type = CT_STATIC; + style = ST_SINGLE; + colorText[] = COLOR_BLACK; + colorBackground[] = COLOR_BROWN; + font = FontM; + sizeEx = 0.023; + x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = ((BASE_Y + 0.02) * safezoneH) + safezoneY - (3 * BORDERSIZE); + w = (0.2 * safezoneW) + (4 * BORDERSIZE); + h = (0.79 * safezoneH) + (6 * BORDERSIZE); + text = ""; + }; + class GREUH_OuterBG_F : GREUH_OuterBG { + style = ST_FRAME; + }; + class GREUH_InnerBG : GREUH_OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.15 * safezoneW + safezoneX) - ( BORDERSIZE); + y = ((BASE_Y + 0.07) * safezoneH) + safezoneY - (1.5 * BORDERSIZE); + w = 0.2 * safezoneW + (2 * BORDERSIZE); + h = 0.74 * safezoneH + (3 * BORDERSIZE); + }; + class GREUH_InnerBG_F : GREUH_InnerBG { + style = ST_FRAME; + }; + class GREUH_StdText { + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.02 * safezoneH; + shadow = 2; + }; + class GREUH_StdHeader : GREUH_StdText { + style = ST_CENTER; + sizeEx = 0.03 * safezoneH; + }; + class GREUH_Header : GREUH_StdHeader { + x = 0.15 * safezoneW + safezoneX - (BORDERSIZE); + y = ((BASE_Y + 0.01) * safezoneH) + safezoneY; + w = 0.2 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_GREUH_EXTENDED_OPTIONS; + colorBackground[] = COLOR_LIGHTGRAY; + }; + class GREUH_ButtonGeneric { + idc = -1; + type = CT_BUTTON; + style = ST_CENTER; + default = false; + font = FontM; + sizeEx = 0.018 * safezoneH; + colorText[] = { 0, 0, 0, 1 }; + colorFocused[] = { 1, 1, 1, 1 }; + colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 }; + colorBackground[] = { 0.8, 0.8, 0.8, 0.8 }; + colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 }; + colorBackgroundActive[] = { 1, 1, 1, 1 }; + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + colorShadow[] = { 0, 0, 0, 0.5 }; + colorBorder[] = { 0, 0, 0, 1 }; + borderSize = 0; + soundEnter[] = { "", 0, 1 }; // no sound + soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1}; + soundClick[] = { "", 0, 1 }; // no sound + soundEscape[] = { "", 0, 1 }; // no sound + x = 0.15 * safezoneW + safezoneX; + w = 0.2 * safezoneW; h = 0.03 * safezoneH; + text = ""; + action = ""; + shadow = 1; + }; + class GREUH_Label : GREUH_StdHeader { + x = 0.15 * safezoneW + safezoneX; + w = 0.2 * safezoneW; + h = 0.03 * safezoneH; + sizeEx = 0.02 * safezoneH; + colorBackground[] = COLOR_LIGHTGREEN; + }; + + class GREUH_DefaultZone : GREUH_StdText { + style = ST_CENTER; + x = 0.15 * safezoneW + safezoneX; + w = 0.2 * safezoneW; + colorText[] = COLOR_LIGHTGRAY; + colorBackground[] = COLOR_RED_DISABLED; + text = $STR_GREUH_DISABLED; + }; + class GREUH_RegularLabel : GREUH_Label { + colorBackground[] = COLOR_NOALPHA; + style = ST_LEFT; + }; + class GREUH_Close : GREUH_ButtonGeneric { + idc = 6677; + x = 0.335 * safezoneW + safezoneX; + w = 0.015 * safezoneW; h = 0.02 * safezoneH; + y = ((BASE_Y + 0.015) * safezoneH) + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class GREUH_SquadZone : GREUH_DefaultZone { + idc = 501; + y = ((BASE_Y + 0.11) * safezoneH) + safezoneY; + h = (0.2 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_SquadLabel : GREUH_Label { + idc = 510; + y = ((BASE_Y + 0.07) * safezoneH) + safezoneY; + text = $STR_GREUH_SQUAD_MANAGEMENT; + }; + class GREUH_SquadList : RscListBox { + idc = 515; + x = 0.15 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = ((BASE_Y + 0.11) * safezoneH) + safezoneY; + h = (0.2 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_ButtonSquad : GREUH_ButtonGeneric { + x = 0.3 * safezoneW + safezoneX + BORDERSIZE; + w = ((0.2 * safezoneW) / 4) - BORDERSIZE; + }; + class GREUH_ButtonJoin : GREUH_ButtonSquad { + idc = 511; + text = $STR_GREUH_JOIN; + action = "squadaction = 'join';"; + y = ((BASE_Y + 0.11) * safezoneH) + safezoneY; + }; + class GREUH_ButtonNew : GREUH_ButtonSquad { + idc = 512; + text = $STR_GREUH_CREATE; + action = "squadaction = 'create';"; + y = ((BASE_Y + 0.15) * safezoneH) + safezoneY; + }; + class GREUH_ButtonRename : GREUH_ButtonSquad { + idc = 513; + text = $STR_GREUH_RENAME; + action = "squadaction = 'rename';"; + y = ((BASE_Y + 0.19) * safezoneH) + safezoneY; + }; + class GREUH_ButtonLeader : GREUH_ButtonSquad { + idc = 514; + text = $STR_GREUH_LEADER; + action = "squadaction = 'leader';"; + y = ((BASE_Y + 0.23) * safezoneH) + safezoneY; + }; + class GREUH_Squad_OuterBG : GREUH_OuterBG { + idc = 521; + style = ST_SINGLE; + x = (0.37 * safezoneW + safezoneX) - (BORDERSIZE); + y = ((BASE_Y + 0.18) * safezoneH) + safezoneY - (1.5 * BORDERSIZE); + w = 0.2 * safezoneW + (2 * BORDERSIZE); + h = 0.05 * safezoneH + (3 * BORDERSIZE); + }; + class GREUH_Squad_InnerBG : GREUH_OuterBG { + idc = 522; + colorBackground[] = COLOR_GREEN; + x = (0.37 * safezoneW + safezoneX); + y = ((BASE_Y + 0.18) * safezoneH) + safezoneY; + w = 0.2 * safezoneW; + h = 0.05 * safezoneH; + }; + class GREUH_Squad_OuterBG_F : GREUH_Squad_OuterBG { + idc = 523; + style = ST_FRAME; + }; + class GREUH_Squad_InnerBG_F : GREUH_Squad_InnerBG { + idc = 524; + style = ST_FRAME; + }; + class GREUH_ButtonName : GREUH_ButtonGeneric { + w = ((0.2 * safezoneW) / 5) - BORDERSIZE; + y = ((BASE_Y + 0.19) * safezoneH) + safezoneY; + }; + class GREUH_ButtonName_Rename : GREUH_ButtonName { + idc = 525; + x = 0.4875 * safezoneW + safezoneX; + text = $STR_GREUH_RENAME; + action = "squadname = ctrlText 527;"; + }; + class GREUH_ButtonName_Abort : GREUH_ButtonName { + idc = 526; + x = (0.4875 * safezoneW + safezoneX) + ((0.2 * safezoneW) / 5); + text = $STR_GREUH_CANCEL; + action = "squadaction = '';"; + }; + class GREUH_Squad_TextField : GREUH_ButtonName { + idc = 527; + type = CT_EDIT; + style = ST_LEFT; + x = (0.37 * safezoneW + safezoneX) + BORDERSIZE; + w = 0.11 * safezoneW; + text = ""; + action = ""; + colorText[] = COLOR_WHITE; + colorSelection[] = COLOR_BRIGHTGREEN; + autocomplete = ""; + }; + + class GREUH_Leader_OuterBG : GREUH_OuterBG { + idc = 561; + style = ST_SINGLE; + x = (0.37 * safezoneW + safezoneX) - (BORDERSIZE); + y = ((BASE_Y + 0.22) * safezoneH) + safezoneY - (1.5 * BORDERSIZE); + w = 0.2 * safezoneW + (2 * BORDERSIZE); + h = 0.05 * safezoneH + (3 * BORDERSIZE); + }; + class GREUH_Leader_InnerBG : GREUH_OuterBG { + idc = 562; + colorBackground[] = COLOR_GREEN; + x = (0.37 * safezoneW + safezoneX); + y = ((BASE_Y + 0.22) * safezoneH) + safezoneY; + w = 0.2 * safezoneW; + h = 0.05 * safezoneH; + }; + class GREUH_Leader_OuterBG_F : GREUH_Leader_OuterBG { + idc = 563; + style = ST_FRAME; + }; + class GREUH_Leader_InnerBG_F : GREUH_Leader_InnerBG { + idc = 564; + style = ST_FRAME; + }; + class GREUH_ButtonLeaderGen : GREUH_ButtonGeneric { + w = ((0.2 * safezoneW) / 5) - BORDERSIZE; + y = ((BASE_Y + 0.23) * safezoneH) + safezoneY; + }; + class GREUH_ButtonLeader_Choose : GREUH_ButtonLeaderGen { + idc = 565; + x = 0.4875 * safezoneW + safezoneX; + text = $STR_GREUH_CHOOSE; + action = "choose_squadleader = lbCurSel 567;"; + }; + class GREUH_ButtonLeader_Abort : GREUH_ButtonLeaderGen { + idc = 566; + x = (0.4875 * safezoneW + safezoneX) + ((0.2 * safezoneW) / 5); + text = $STR_GREUH_CANCEL; + action = "squadaction = ''"; + }; + class GREUH_Squad_Combo : RscCombo { + idc = 567; + x = (0.37 * safezoneW + safezoneX) + BORDERSIZE; + w = 0.11 * safezoneW; + y = ((BASE_Y + 0.23) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + }; + class GREUH_PlatoonZone : GREUH_DefaultZone { + idc = 601; + y = ((BASE_Y + 0.35) * safezoneH) + safezoneY; + h = (0.04 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_PlatoonLabel : GREUH_Label { + idc = 610; + y = ((BASE_Y + 0.31) * safezoneH) + safezoneY; + text = $STR_GREUH_PLATOON_SQUAD_AWARENESS; + }; + class GREUH_LabelPlatoon : GREUH_RegularLabel { + idc = 611; + y = ((BASE_Y + 0.35) * safezoneH) + safezoneY; + text = $STR_GREUH_SHOW_PLATOON_OVERLAY; + }; + class GREUH_LabelPlatoonActive : GREUH_RegularLabel { + idc = 612; + style = ST_RIGHT; + colorText[] = COLOR_BRIGHTGREEN; + text = $STR_GREUH_ACTIVE; + x = 0.2 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = ((BASE_Y + 0.35) * safezoneH) + safezoneY; + }; + class GREUH_PlatoonYes : GREUH_ButtonGeneric { + idc = 613; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.35) * safezoneH) + safezoneY; + x = 0.305 * safezoneW + safezoneX; + text = $STR_GREUH_YES; + action = "show_platoon = true"; + }; + class GREUH_PlatoonNo : GREUH_ButtonGeneric { + idc = 614; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.35) * safezoneH) + safezoneY; + x = (0.32 + BORDERSIZE) * safezoneW + safezoneX; + text = $STR_GREUH_NO; + action = "show_platoon = false"; + }; + class GREUH_ViewZone : GREUH_DefaultZone { + idc = 701; + y = ((BASE_Y + 0.51) * safezoneH) + safezoneY; + h = (0.04 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_ViewDistance : GREUH_Label { + idc = 711; + y = ((BASE_Y + 0.47) * safezoneH) + safezoneY; + text = $STR_GREUH_ADJUST_VIEW_DISTANCE; + }; + class GREUH_Slider { + idc = 712; + type = CT_SLIDER; + style = SL_HORZ; + x = 0.19 * safezoneW + safezoneX; + w = 0.12 * safezoneW; + y = ((BASE_Y + 0.515) * safezoneH) + safezoneY; + h = 0.025 * safezoneH; + text = $STR_GREUH_VIEW_DISTANCE; + color[] = { 1, 1, 1, 1 }; + coloractive[] = { 1, 1, 1, 1 }; + onSliderPosChanged = "desiredviewdistance_inf = (sliderPosition 712)"; + }; + class GREUH_SliderVD : GREUH_Label { + idc = 713; + style = ST_LEFT; + x = 0.31 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.505) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = ""; + }; + class GREUH_LabelVD : GREUH_Label { + idc = 714; + style = ST_LEFT; + x = 0.15 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.505) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = $STR_GREUH_INFANTRY; + }; + class GREUH_SliderVeh { + idc = 722; + type = CT_SLIDER; + style = SL_HORZ; + x = 0.19 * safezoneW + safezoneX; + w = 0.12 * safezoneW; + y = ((BASE_Y + 0.545) * safezoneH) + safezoneY; + h = 0.025 * safezoneH; + text = $STR_GREUH_VIEW_DISTANCE; + color[] = { 1, 1, 1, 1 }; + coloractive[] = { 1, 1, 1, 1 }; + onSliderPosChanged = "desiredviewdistance_veh = (sliderPosition 722)"; + }; + class GREUH_SliderVDVeh : GREUH_Label { + idc = 723; + style = ST_LEFT; + x = 0.31 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.535) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = ""; + }; + class GREUH_LabelVDVeh : GREUH_Label { + idc = 724; + style = ST_LEFT; + x = 0.15 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.535) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = $STR_GREUH_VEHICLES; + }; + class GREUH_SliderObj { + idc = 732; + type = CT_SLIDER; + style = SL_HORZ; + x = 0.19 * safezoneW + safezoneX; + w = 0.12 * safezoneW; + y = ((BASE_Y + 0.575) * safezoneH) + safezoneY; + h = 0.025 * safezoneH; + text = $STR_GREUH_VIEW_DISTANCE; + color[] = { 1, 1, 1, 1 }; + coloractive[] = { 1, 1, 1, 1 }; + onSliderPosChanged = "desiredviewdistance_obj = (sliderPosition 732)"; + }; + class GREUH_SliderVDObj : GREUH_Label { + idc = 733; + style = ST_LEFT; + x = 0.31 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.565) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = ""; + }; + class GREUH_LabelVDObj : GREUH_Label { + idc = 734; + style = ST_LEFT; + x = 0.15 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.565) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = $STR_GREUH_OBJECTS; + }; + class GREUH_FPSLabel : GREUH_Label { + idc = 724; + style = ST_LEFT; + x = 0.15 * safezoneW + safezoneX; + w = 0.3 * safezoneW; + y = ((BASE_Y + 0.61) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + sizeEx = 0.018 * safezoneH; + text = $STR_GREUH_ADJUST_VIEW_DISTANCE_TO_KEEP_FPS_ABOVE; + }; + class GREUH_FPSEdit { + idc = 960; + type = CT_EDIT; + style = ST_LEFT + ST_FRAME; + x = 0.317 * safezoneW + safezoneX; + w = 0.03 * safezoneW; + y = ((BASE_Y + 0.61) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + colorSelection[] = {1,1,1,0.25}; + colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 }; + colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 }; + font = FontM; + sizeEx = 0.02 * safezoneH; + autocomplete = ""; + text = ""; + shadow = 0; + }; + class GREUH_WorldZone : GREUH_DefaultZone { + idc = 801; + y = ((BASE_Y + 0.7) * safezoneH) + safezoneY; + h = (0.04 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_WorldQuality : GREUH_Label { + idc = 810; + y = ((BASE_Y + 0.66) * safezoneH) + safezoneY; + text = $STR_GREUH_ADJUST_TERRAIN_DETAILS; + }; + class GREUH_ButtonWorld : GREUH_ButtonGeneric { + w = ((0.2 * safezoneW) / 4) - BORDERSIZE; + y = ((BASE_Y + 0.7) * safezoneH) + safezoneY; + }; + class GREUH_ButtonWorldVeryLow : GREUH_ButtonWorld { + idc = 812; + x = 0.15 * safezoneW + safezoneX; + text = $STR_GREUH_VERY_LOW; + action = "setTerrainGrid 50; hint 'Terrain details set to Very Low'"; + }; + class GREUH_ButtonWorldLow : GREUH_ButtonWorld { + idc = 813; + x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 1); + text = $STR_GREUH_LOW; + action = "setTerrainGrid 25; hint 'Terrain details set to Low'"; + }; + class GREUH_ButtonWorldNormal : GREUH_ButtonWorld { + idc = 814; + x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 2); + text = $STR_GREUH_NORMAL; + action = "setTerrainGrid 12.5; hint 'Terrain details set to Normal'"; + }; + class GREUH_ButtonWorldHigh : GREUH_ButtonWorld { + idc = 815; + x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 3); + text = $STR_GREUH_HIGH; + action = "setTerrainGrid 3.125; hint 'Terrain details set to High'"; + }; + class GREUH_MarkersZone : GREUH_DefaultZone { + idc = 901; + y = ((BASE_Y + 0.43) * safezoneH) + safezoneY; + h = (0.04 * safezoneH) - (2 * BORDERSIZE); + }; + class GREUH_LabelNametags : GREUH_RegularLabel { + idc = 961; + y = ((BASE_Y + 0.39) * safezoneH) + safezoneY; + text = $STR_GREUH_SHOW_PLAYER_NAMETAGS; + }; + class GREUH_NametagsActive : GREUH_RegularLabel { + idc = 962; + style = ST_RIGHT; + colorText[] = COLOR_BRIGHTGREEN; + text = $STR_GREUH_ACTIVE; + x = 0.2 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = ((BASE_Y + 0.39) * safezoneH) + safezoneY; + }; + class GREUH_NametagsYes : GREUH_ButtonGeneric { + idc = 963; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.39) * safezoneH) + safezoneY; + x = 0.305 * safezoneW + safezoneX; + text = $STR_GREUH_YES; + action = "show_nametags = true"; + }; + class GREUH_NametagsNo : GREUH_ButtonGeneric { + idc = 964; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.39) * safezoneH) + safezoneY; + x = (0.32 + BORDERSIZE) * safezoneW + safezoneX; + text = $STR_GREUH_NO; + action = "show_nametags = false"; + }; + class GREUH_LabelMarkers : GREUH_RegularLabel { + idc = 911; + y = ((BASE_Y + 0.43) * safezoneH) + safezoneY; + text = $STR_GREUH_SHOW_TEAMMATES_ON_MAP; + }; + class GREUH_LabelMarkersActive : GREUH_RegularLabel { + idc = 912; + style = ST_RIGHT; + colorText[] = COLOR_BRIGHTGREEN; + text = $STR_GREUH_ACTIVE; + x = 0.2 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = ((BASE_Y + 0.43) * safezoneH) + safezoneY; + }; + class GREUH_TeammatesYes : GREUH_ButtonGeneric { + idc = 913; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.43) * safezoneH) + safezoneY; + x = 0.305 * safezoneW + safezoneX; + text = $STR_GREUH_YES; + action = "show_teammates = true"; + }; + class GREUH_TeammatesNo : GREUH_ButtonGeneric { + idc = 914; + w = ((0.08 * safezoneW) / 4); + y = ((BASE_Y + 0.43) * safezoneH) + safezoneY; + x = (0.32 + BORDERSIZE) * safezoneW + safezoneX; + text = $STR_GREUH_NO; + action = "show_teammates = false"; + }; + + class GREUH_VehSound : GREUH_Label { + idc = 1101; + y = ((BASE_Y + 0.74) * safezoneH) + safezoneY; + text = $STR_GREUH_INVEHICLE_SOUND_VOLUME; + }; + class GREUH_SliderVehSound { + idc = 1102; + type = CT_SLIDER; + style = SL_HORZ; + x = 0.15 * safezoneW + safezoneX; + w = 0.16 * safezoneW; + y = ((BASE_Y + 0.785) * safezoneH) + safezoneY; + h = 0.025 * safezoneH; + text = $STR_GREUH_VIEW_DISTANCE; + color[] = { 1, 1, 1, 1 }; + coloractive[] = { 1, 1, 1, 1 }; + onSliderPosChanged = "desired_vehvolume = (sliderPosition 1102)"; + }; + class GREUH_LabelVehSound : GREUH_Label { + idc = 1103; + style = ST_LEFT; + x = 0.31 * safezoneW + safezoneX; + w = 0.05 * safezoneW; + y = ((BASE_Y + 0.775) * safezoneH) + safezoneY; + h = 0.03 * safezoneH; + colorBackground[] = COLOR_NOALPHA; + text = $STR_GREUH_TEST; + }; +}; + +class GreuhButton { + idc = -1; + type = CT_BUTTON; + style = ST_CENTER; + default = false; + font = FontM; + sizeEx = 0.018 * safezoneH; + colorText[] = { 0, 0, 0, 1 }; + colorFocused[] = { 1, 1, 1, 1 }; + colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 }; + colorBackground[] = { 0.8, 0.8, 0.8, 0.8 }; + colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 }; + colorBackgroundActive[] = { 1, 1, 1, 1 }; + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + colorShadow[] = { 0, 0, 0, 0.5 }; + colorBorder[] = { 0, 0, 0, 1 }; + borderSize = 0; + soundEnter[] = { "", 0, 1 }; // no sound + soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1}; + soundClick[] = { "", 0, 1 }; // no sound + soundEscape[] = { "", 0, 1 }; // no sound + x = 0.45 * safezoneW + safezoneX; + y = ((BASE_Y + 0.7) * safezoneH) + safezoneY; + w = 0.1 * safezoneW; + h = 0.04 * safezoneH; + text = ""; + action = ""; + shadow = 1; +}; + +class GREUH_respawn { + idd = 5566; + movingEnable = false; + controlsBackground[] = {"GREUH_BleedoutBar_BG"}; + controls[] = {"GREUH_BleedoutBar","GREUH_BleedoutBar_F","GREUH_Useless","GREUH_Respawn","GREUH_ReviveLabel","GREUH_WoundedLabel", "GREUH_ReplaceAI"}; + objects[] = {}; + class GREUH_Respawn : GreuhButton { + idc = -1; + x = 0.45 * safezoneW + safezoneX; + y = 0.75 * safezoneH + safezoneY; + w = 0.1 * safezoneW; + h = 0.04 * safezoneH; + text = $STR_GREUH_RESPAWN; + action = "player setDamage 1"; + }; + class GREUH_ReplaceAI : GreuhButton { + idc = 678; + x = 0.45 * safezoneW + safezoneX; + y = 0.8 * safezoneH + safezoneY; + w = 0.1 * safezoneW; + h = 0.04 * safezoneH; + text = $STR_GREUH_REPLACE_NEAREST_AI; + action = "replace_ai = 1"; + }; + class GREUH_Useless : GREUH_Respawn { + idc = -1; + x = -5; + y = -5; + w = 0.1; + h = 0.1; + text = ""; + action = ""; + }; + class GREUH_ReviveLabel { + idc = 5567; + type = CT_STATIC; + style = ST_CENTER; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.02 * safezoneH; + shadow = 1; + x = 0.4 * safezoneW + safezoneX; + y = 0.7 * safezoneH + safezoneY; + w = 0.2 * safezoneW; + h = 0.025 * safezoneH; + text = ""; + }; + class GREUH_WoundedLabel { + idc = 4567; + type = CT_STATIC; + style = ST_CENTER; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.07 * safezoneH; + shadow = 1; + x = 0.3 * safezoneW + safezoneX; + y = 0.25 * safezoneH + safezoneY; + w = 0.4 * safezoneW; + h = 0.07 * safezoneH; + text = $STR_REVIVE_LABEL; + }; + class GREUH_BleedoutBar { + idc = 6699; + type = CT_STATIC; + style = ST_SINGLE; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_BLEEDOUT; + font = FontM; + sizeEx = 0.023; + x = 0.4 * safezoneW + safezoneX; + y = 0.7 * safezoneH + safezoneY; + w = 0.2 * safezoneW; + h = 0.03 * safezoneH; + text = ""; + }; + class GREUH_BleedoutBar_BG : GREUH_BleedoutBar { + idc = -1; + colorBackground[] = COLOR_BLACK_ALPHA; + x = 0.4 * safezoneW + safezoneX - 0.005; + y = 0.7 * safezoneH + safezoneY - 0.005; + w = 0.2 * safezoneW + 0.01; + h = 0.03 * safezoneH + 0.01; + }; + class GREUH_BleedoutBar_F : GREUH_BleedoutBar { + idc = 6698; + colorText[] = COLOR_WHITE; + style = ST_FRAME; + x = 0.4 * safezoneW + safezoneX - 0.005; + y = 0.7 * safezoneH + safezoneY - 0.005; + w = 0.2 * safezoneW + 0.01; + h = 0.03 * safezoneH + 0.01; + }; +}; diff --git a/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_classes.hpp b/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_classes.hpp new file mode 100644 index 0000000..2011930 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_classes.hpp @@ -0,0 +1,1100 @@ +/* + Killah Potatoes GUI base classes + + File: KPGUI_classes.hpp + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-09-13 + Last Update: 2020-05-09 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Base UI classes for KPGUI. +*/ + +/* + --- Default grid --- +*/ + +#define GUI_GRID_WAbs ((safezoneW / safezoneH) min 1.2) +#define GUI_GRID_HAbs (GUI_GRID_WAbs / 1.2) +#define GUI_GRID_W (GUI_GRID_WAbs / 40) +#define GUI_GRID_H (GUI_GRID_HAbs / 25) +#define GUI_GRID_X (safezoneX) +#define GUI_GRID_Y (safezoneY + safezoneH - GUI_GRID_HAbs) + +/* + --- Default text sizes --- +*/ + +#define GUI_TEXT_SIZE_SMALL (GUI_GRID_H * 0.8) +#define GUI_TEXT_SIZE_MEDIUM (GUI_GRID_H * 1) +#define GUI_TEXT_SIZE_LARGE (GUI_GRID_H * 1.2) + +/* + --- General Classes --- +*/ + +// Scrollbar +class KPGUI_PRE_ScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + shadow = 0; + scrollSpeed = 0.06; + width = 0; + height = 0; + autoScrollEnabled = 0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; +}; + +// Title bar for dialogs +class KPGUI_PRE_Title { + deletable = 0; + fade = 0; + type = 0; + idc = -1; + colorBackground[] = KP_COLOR_PLAYERDEFINE; + colorText[] = {1, 1, 1, 1}; + text = "DIALOG TITLE"; + fixedWidth = 0; + colorShadow[] = {0, 0, 0, 0.5}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + x = 0; + y = 0; + w = 0; + h = safeZoneH * KP_HEIGTH_TITLE; + style = 0; + shadow = 1; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_XL; + linespacing = 1; +}; + +// Cross symbol for dialog close +class KPGUI_PRE_CloseCross { + deletable = 0; + fade = 0; + type = 11; + style = 48 + 2048; + color[] = {1, 1, 1, 0.75}; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 0.75}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; + text = "\A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; + default = 0; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + tooltip = "$STR_DISP_CLOSE"; + idc = -1; + x = 0; + y = 0; + w = safeZoneW * 0.014; + h = safeZoneH * 0.025; + font = "RobotoCondensed"; + shadow = 2; + sizeEx = KP_TEXT_M; + url = ""; + action = "closeDialog 0"; +}; + +// Help or version info icon +class KPGUI_PRE_VersionIcon: KPGUI_PRE_CloseCross { + text = "\A3\Ui_f\data\Map\Markers\Military\unknown_CA.paa"; + tooltip = ""; + action = ""; +}; + +// General background for the dialog area +class KPGUI_PRE_Background { + deletable = 0; + fade = 0; + type = 0; + idc = -1; + colorBackground[] = KP_COLOR_BACKGROUND; + colorText[] = {1, 1, 1, 1}; + text = ""; + fixedWidth = 0; + colorShadow[] = {0, 0, 0, 0.5}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + x = 0; + y = 0; + w = 0; + h = 0; + style = 0; + shadow = 1; + font = "RobotoCondensed"; + SizeEx = KP_TEXT_M; + linespacing = 1; +}; + +// Normal Text +class KPGUI_PRE_Text { + deletable = 0; + fade = 0; + type = 0; + idc = -1; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = ""; + fixedWidth = 0; + colorShadow[] = {0, 0, 0, 0.5}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + x = 0; + y = 0; + w = 0; + h = 0; + style = 0; + shadow = 1; + font = "RobotoCondensed"; + SizeEx = KP_TEXT_M; + linespacing = 1; +}; + +// Inline Title +class KPGUI_PRE_InlineTitle: KPGUI_PRE_Text { + style = 2; + sizeEx = KP_TEXT_L; +}; + +// Active Text +class KPGUI_PRE_ActiveText { + deletable = 0; + fade = 0; + type = 11; + style = 2; + color[] = {0, 0, 0, 1}; + colorActive[] = {0.3, 0.4, 0, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; + text = ""; + default = 0; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + idc = -1; + x = 0; + y = 0; + w = 0; + h = 0; + font = "RobotoCondensed"; + shadow = 2; + sizeEx = KP_TEXT_M; + url = ""; +}; + +// Picture +class KPGUI_PRE_Picture: KPGUI_PRE_Text { + style = 48; +}; + +// Active Picture +class KPGUI_PRE_ActivePicture: KPGUI_PRE_ActiveText { + color[] = {1, 1, 1, 0.5}; + colorActive[] = {1, 1, 1, 1}; + style = 48; +}; + +// Active Picture which keeps aspect ratio +class KPGUI_PRE_ActivePictureRatio: KPGUI_PRE_ActivePicture { + style = 48 + 2048; +}; + +// Picture which keeps aspect ratio +class KPGUI_PRE_PictureRatio: KPGUI_PRE_Picture { + style = 48 + 2048; +}; + +// Button +class KPGUI_PRE_Button { + deletable = 0; + fade = 0; + type = 1; + text = ""; + colorText[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorBackground[] = KP_COLOR_BACKGROUND; + colorBackgroundDisabled[] = {0, 0, 0, 0.5}; + colorBackgroundActive[] = {0, 0, 0, 1}; + colorFocused[] = KP_COLOR_BACKGROUND; + colorShadow[] = {0, 0, 0, 0}; + colorBorder[] = {0, 0, 0, 1}; + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick", 0.09, 1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1}; + idc = -1; + style = 2; + x = 0; + y = 0; + w = 0; + h = safeZoneH * KP_HEIGTH_BUTTON; + shadow = 2; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_M; + url = ""; + offsetX = 0; + offsetY = 0; + offsetPressedX = 0; + offsetPressedY = 0; + borderSize = 0; +}; + +// Inline Button +class KPGUI_PRE_InlineButton: KPGUI_PRE_Button { + colorBackground[] = {0.25, 0.25, 0.25, 1}; + colorBackgroundDisabled[] = {0, 1, 0, 1}; + colorBackgroundActive[] = {0.3, 0.3, 0.3, 1}; + colorFocused[] = {0.25, 0.25, 0.25, 1}; + offsetPressedX = safeZoneW * 0.0005; + offsetPressedY = safeZoneH * 0.001; +}; + +// Controls group +class KPGUI_PRE_ControlsGroup { + deletable = 0; + fade = 0; + class VScrollbar: KPGUI_PRE_ScrollBar { + color[] = {1, 1, 1, 1}; + width = 0.021; + autoScrollEnabled = 1; + }; + class HScrollbar: KPGUI_PRE_ScrollBar { + color[] = {1, 1, 1, 1}; + height = 0.028; + }; + class Controls {}; + type = 15; + idc = -1; + x = 0; + y = 0; + w = 0; + h = 0; + shadow = 0; + style = 16; +}; + +// Controls group no scrollbars +class KPGUI_PRE_ControlsGroupNoScrollbars: KPGUI_PRE_ControlsGroup { + class VScrollbar: VScrollbar { + width = 0; + }; + class HScrollbar: HScrollbar { + height = 0; + }; +}; + +// Combo +class KPGUI_PRE_Combo { + deletable = 0; + fade = 0; + type = 4; + colorSelect[] = {0, 0, 0, 1}; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = KP_COLOR_BACKGROUND; + colorScrollbar[] = {1, 0, 0, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorPicture[] = {1, 1, 1, 1}; + colorPictureSelected[] = {1, 1, 1, 1}; + colorPictureDisabled[] = {1, 1, 1, 0.25}; + colorPictureRight[] = {1, 1, 1, 1}; + colorPictureRightSelected[] = {1, 1, 1, 1}; + colorPictureRightDisabled[] = {1, 1, 1, 0.25}; + colorTextRight[] = {1, 1, 1, 1}; + colorSelectRight[] = {0, 0, 0, 1}; + colorSelect2Right[] = {0, 0, 0, 1}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect", 0.1, 1}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand", 0.1, 1}; + soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse", 0.1, 1}; + maxHistoryDelay = 1; + class ComboScrollBar: KPGUI_PRE_ScrollBar { + color[] = {1, 1, 1, 1}; + }; + colorSelectBackground[] = {1, 1, 1, 0.7}; + colorActive[] = {1, 0, 0, 1}; + style = 16 + 512; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_M; + shadow = 0; + x = 0; + y = 0; + w = 0; + h = 0; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; +}; + +// Checkbox +class KPGUI_PRE_CheckBox { + color[] = {1, 1, 1, 0.7}; + colorFocused[] = {1, 1, 1, 1}; + colorHover[] = {1, 1, 1, 1}; + colorPressed[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.2}; + colorBackground[] = {0, 0, 0, 0}; + colorBackgroundFocused[] = {0, 0, 0, 0}; + colorBackgroundHover[] = {0, 0, 0, 0}; + colorBackgroundPressed[] = {0, 0, 0, 0}; + colorBackgroundDisabled[] = {0, 0, 0, 0}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; + idc = -1; + type = 77; + deletable = 0; + style = 2; + checked = 0; + x = 0; + y = 0; + w = safeZoneW * 0.014; + h = safeZoneH * 0.025; + textureChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureFocusedChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureFocusedUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureHoverChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureHoverUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + texturePressedChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + texturePressedUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureDisabledChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureDisabledUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; +}; + +// ListBox +class KPGUI_PRE_ListBox { + deletable = 0; + fade = 0; + type = 5; + rowHeight = 0; + colorText[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorScrollbar[] = {1, 0, 0, 0}; + colorSelect[] = {0, 0, 0, 1}; + colorSelect2[] = {0, 0, 0, 1}; + colorSelectBackground[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground2[] = {1, 1, 1, 0.5}; + colorBackground[] = {0, 0, 0, 0.3}; + soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect", 0.09, 1}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + colorPicture[] = {1, 1, 1, 1}; + colorPictureSelected[] = {1, 1, 1, 1}; + colorPictureDisabled[] = {1, 1, 1, 0.25}; + colorPictureRight[] = {1, 1, 1, 1}; + colorPictureRightSelected[] = {1, 1, 1, 1}; + colorPictureRightDisabled[] = {1, 1, 1, 0.25}; + colorTextRight[] = {1, 1, 1, 1}; + colorSelectRight[] = {0, 0, 0, 1}; + colorSelect2Right[] = {0, 0, 0, 1}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + class ListScrollBar: KPGUI_PRE_ScrollBar { + color[] = {1, 1, 1, 1}; + autoScrollEnabled = 1; + }; + colorShadow[] = {0, 0, 0, 0.5}; + x = 0; + y = 0; + w = 0; + h = 0; + style = 16; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_M; + shadow = 0; + period = 1.2; + maxHistoryDelay = 1; +}; + +class KPGUI_PRE_ListNBox { + deletable = 0; + fade = 0; + type = 102; + rowHeight = 0; + colorText[] = {1, 1, 1, 1}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0, 0, 0, 1}; + colorSelect2[] = {0, 0, 0, 1}; + colorSelectBackground[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground2[] = {1, 1, 1, 0.5}; + colorBackground[] = {0, 0, 0, 1}; + maxHistoryDelay = 1; + soundSelect[] = {"", 0.1, 1}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + drawSideArrows = 0; + columns[] = {0.3, 0.6, 0.7}; + idcLeft = -1; + idcRight = -1; + class ListScrollBar: KPGUI_PRE_ScrollBar {}; + color[] = {0.95, 0.95, 0.95, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorPicture[] = {1, 1, 1, 1}; + colorPictureSelected[] = {1, 1, 1, 1}; + colorPictureDisabled[] = {1, 1, 1, 1}; + class ScrollBar: KPGUI_PRE_ScrollBar {}; + style = 16; + shadow = 0; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_M; + period = 1.2; + x = 0; + y = 0; + w = 0; + h = 0; +}; + +// XListBox +class KPGUI_PRE_XListBox { + deletable = 0; + fade = 0; + idc = -1; + type = 42; + x = 0.1; + y = 0.1; + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = KP_COLOR_BACKGROUND; + soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect", 0.09, 1}; + colorPicture[] = {1, 1, 1, 1}; + colorPictureSelected[] = {1, 1, 1, 1}; + colorPictureDisabled[] = {1, 1, 1, 0.25}; + colorPictureRight[] = {1, 1, 1, 1}; + colorPictureRightSelected[] = {1, 1, 1, 1}; + colorPictureRightDisabled[] = {1, 1, 1, 0.25}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + style = 2 + 16 + 1024; + shadow = 2; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + w = 0; + h = 0; + font = "RobotoCondensed"; + sizeEx = KP_TEXT_M; +}; + +// Slider +class KPGUI_PRE_Slider { + deletable = 0; + fade = 0; + type = 43; + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 0.6}; + colorDisable[] = {1, 1, 1, 0.4}; + colorDisabled[] = {1, 1, 1, 0.2}; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + style = 16 + 1024; + shadow = 0; + x = 0; + y = 0; + h = 0; + w = 0; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; +}; + +// Editbox +class KPGUI_PRE_EditBox { + deletable = 0; + fade = 0; + type = 2; + x = 0; + y = 0; + w = 0.2; + h = 0.04; + colorBackground[] = {0, 0, 0, 0.3}; + colorText[] = {0.95, 0.95, 0.95, 1}; + colorDisabled[] = {1, 1, 1, 0.25}; + colorSelection[] = { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 1 + }; + autocomplete = ""; + text = ""; + size = 0.2; + tooltipColorText[] = {1, 1, 1, 1}; + tooltipColorBox[] = {1, 1, 1, 1}; + tooltipColorShade[] = {0, 0, 0, 0.65}; + style = 64; + font = "RobotoCondensed"; + shadow = 2; + sizeEx = KP_TEXT_M; + canModify = 1; +}; + +// MapControl +class KPGUI_PRE_MapControl { + deletable = 0; + fade = 0; + type = 101; + idc = 51; + style = 16 + 32; + colorBackground[] = {0.969, 0.957, 0.949,1}; + colorOutside[] = {0, 0, 0, 1}; + colorText[] = {0, 0, 0, 1}; + font = "TahomaB"; + sizeEx = 0.04; + colorSea[] = {0.467, 0.631, 0.851, 0.5}; + colorForest[] = {0.624, 0.78, 0.388, 0.5}; + colorRocks[] = {0, 0, 0, 0.3}; + colorCountlines[] = {0.572, 0.354, 0.188, 0.25}; + colorMainCountlines[] = {0.572, 0.354, 0.188, 0.5}; + colorCountlinesWater[] = {0.491, 0.577, 0.702, 0.3}; + colorMainCountlinesWater[] = {0.491, 0.577, 0.702, 0.6}; + colorForestBorder[] = {0, 0, 0, 0}; + colorRocksBorder[] = {0, 0, 0, 0}; + colorPowerLines[] = {0.1, 0.1, 0.1, 1}; + colorRailWay[] = {0.8, 0.2, 0, 1}; + colorNames[] = {0.1, 0.1, 0.1, 0.9}; + colorInactive[] = {1, 1, 1, 0.5}; + colorLevels[] = {0.286, 0.177, 0.094, 0.5}; + colorTracks[] = {0.84, 0.76, 0.65, 0.15}; + colorRoads[] = {0.7, 0.7, 0.7, 1}; + colorMainRoads[] = {0.9, 0.5, 0.3, 1}; + colorTracksFill[] = {0.84, 0.76, 0.65, 1}; + colorRoadsFill[] = {1, 1, 1, 1}; + colorMainRoadsFill[] = {1, 0.6, 0.4, 1}; + colorGrid[] = {0.1, 0.1, 0.1, 0.6}; + colorGridMap[] = {0.1, 0.1, 0.1, 0.6}; + stickX[] = {0.2, {"Gamma", 1, 1.5}}; + stickY[] = {0.2, {"Gamma", 1, 1.5}}; + class Legend { + colorBackground[] = {1, 1, 1, 0.5}; + color[] = {0, 0, 0, 1}; + x = SafeZoneX + GUI_GRID_W; + y = SafeZoneY + safezoneH - 4.5 * GUI_GRID_H; + w = 10 * GUI_GRID_W; + h = 3.5 * GUI_GRID_H; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_SMALL; + }; + class ActiveMarker { + color[] = {0.3, 0.1, 0.9, 1}; + size = 50; + }; + class Command { + color[] = {1, 1, 1, 1}; + icon = "\a3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Task { + taskNone = "#(argb,8,8,3)color(0,0,0,0)"; + taskCreated = "#(argb,8,8,3)color(0,0,0,1)"; + taskAssigned = "#(argb,8,8,3)color(1,1,1,1)"; + taskSucceeded = "#(argb,8,8,3)color(0,1,0,1)"; + taskFailed = "#(argb,8,8,3)color(1,0,0,1)"; + taskCanceled = "#(argb,8,8,3)color(1,0.5,0,1)"; + colorCreated[] = {1, 1, 1, 1}; + colorCanceled[] = {0.7, 0.7, 0.7, 1}; + colorDone[] = {0.7, 1, 0.3, 1}; + colorFailed[] = {1, 0.3, 0.2, 1}; + color[] = { + "(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])", + "(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])", + "(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])", + "(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])" + }; + icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; + iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; + iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; + iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; + iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; + size = 27; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class CustomMark { + color[] = {1, 1, 1, 1}; + icon = "\a3\ui_f\data\map\mapcontrol\custommark_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Tree { + color[] = {0.45, 0.64, 0.33, 0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = 12; + importance = "0.9 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class SmallTree { + color[] = {0.45, 0.64, 0.33, 0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = 12; + importance = "0.6 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Bush { + color[] = {0.45, 0.64, 0.33, 0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = "14/2"; + importance = "0.2 * 14 * 0.05 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Church { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Chapel { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Cross { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Rock { + color[] = {0.1, 0.1, 0.1, 0.8}; + icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; + size = 12; + importance = "0.5 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Bunker { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 14; + importance = "1.5 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Fortress { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Fountain { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; + size = 11; + importance = "1 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class ViewTower { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; + size = 16; + importance = "2.5 * 16 * 0.05"; + coefMin = 0.5; + coefMax = 4; + }; + class Lighthouse { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Quay { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Fuelstation { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Hospital { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class BusStop { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class LineMarker { + textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)"; + lineWidthThin = 0.008; + lineWidthThick = 0.014; + lineDistanceMin = 3e-005; + lineLengthMin = 5; + }; + class Transmitter { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Stack { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.4; + coefMax = 2; + }; + class Ruin { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; + size = 16; + importance = "1.2 * 16 * 0.05"; + coefMin = 1; + coefMax = 4; + }; + class Tourism { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; + size = 16; + importance = "1 * 16 * 0.05"; + coefMin = 0.7; + coefMax = 4; + }; + class Watertower { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Waypoint { + color[] = {1, 1, 1, 1}; + importance = 1; + coefMin = 1; + coefMax = 1; + icon = "\a3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + }; + class WaypointCompleted { + color[] = {1, 1, 1, 1}; + importance = 1; + coefMin = 1; + coefMax = 1; + icon = "\a3\ui_f\data\map\mapcontrol\waypointcompleted_ca.paa"; + size = 18; + }; + colorTrails[] = {0.84, 0.76, 0.65, 0.15}; + colorTrailsFill[] = {0.84, 0.76, 0.65, 0.65}; + class power { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class powersolar { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class powerwave { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class powerwind { + color[] = {1, 1, 1, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Shipwreck { + color[] = {0, 0, 0, 1}; + icon = "\A3\ui_f\data\map\mapcontrol\Shipwreck_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + moveOnEdges = 1; + x = "SafeZoneXAbs"; + y = SafeZoneY + 1.5 * GUI_GRID_H; + w = "SafeZoneWAbs"; + h = SafeZoneH - 1.5 * GUI_GRID_H; + shadow = 0; + ptsPerSquareSea = 5; + ptsPerSquareTxt = 20; + ptsPerSquareCLn = 10; + ptsPerSquareExp = 10; + ptsPerSquareCost = 10; + ptsPerSquareFor = 9; + ptsPerSquareForEdge = 9; + ptsPerSquareRoad = 6; + ptsPerSquareObj = 9; + showCountourInterval = 0; + scaleMin = 0.001; + scaleMax = 1; + scaleDefault = 0.16; + maxSatelliteAlpha = 0.85; + alphaFadeStartScale = 2; + alphaFadeEndScale = 2; + fontLabel = "RobotoCondensed"; + sizeExLabel = GUI_TEXT_SIZE_SMALL; + fontGrid = "TahomaB"; + sizeExGrid = 0.02; + fontUnits = "TahomaB"; + sizeExUnits = GUI_TEXT_SIZE_SMALL; + fontNames = "EtelkaNarrowMediumPro"; + sizeExNames = GUI_TEXT_SIZE_SMALL * 2; + fontInfo = "RobotoCondensed"; + sizeExInfo = GUI_TEXT_SIZE_SMALL; + fontLevel = "TahomaB"; + sizeExLevel = 0.02; + text = "#(argb,8,8,3)color(1,1,1,1)"; + idcMarkerColor = -1; + idcMarkerIcon = -1; + textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)"; + showMarkers = 1; +}; + +/* + --- Standard sized classes --- +*/ + +// Title bar +class KPGUI_PRE_DialogTitle: KPGUI_PRE_Title { + x = KP_GETX(KP_X_VAL,KP_WIDTH_VAL,0,1); + y = safeZoneY + safeZoneH * KP_Y_VAL; + w = KP_GETWPLAIN(KP_WIDTH_VAL,1); +}; + +// Cross symbol +class KPGUI_PRE_DialogCross: KPGUI_PRE_CloseCross { + x = KP_GETX_CROSS(KP_X_VAL); + y = KP_GETY_CROSS(KP_Y_VAL); +}; + +// Version info +class KPGUI_PRE_DialogVersionIcon: KPGUI_PRE_VersionIcon { + x = safeZoneX + safeZoneW * (KP_X_VAL + KP_WIDTH_VAL - 0.04); + y = KP_GETY_CROSS(KP_Y_VAL); +}; + +// Background +class KPGUI_PRE_DialogBackground: KPGUI_PRE_Background { + x = KP_GETX(KP_X_VAL,KP_WIDTH_VAL,0,1); + y = KP_GETY_AREA(KP_Y_VAL); + w = KP_GETWPLAIN(KP_WIDTH_VAL,1); + h = safeZoneH * KP_HEIGHT_VAL; +}; + +// Button pos 1 in 4 button row +class KPGUI_PRE_DialogButton: KPGUI_PRE_Button { + x = KP_GETX(KP_X_VAL,KP_WIDTH_VAL,0,4); + y = KP_GETY_BELOW(KP_Y_VAL,KP_HEIGHT_VAL); + w = KP_GETWPLAIN(KP_WIDTH_VAL,4); +}; + +/* + --- Large sized classes --- +*/ + +// Title bar +class KPGUI_PRE_DialogTitleL: KPGUI_PRE_Title { + x = KP_GETX(KP_X_VAL_L,KP_WIDTH_VAL_L,0,1); + y = safeZoneY + safeZoneH * KP_Y_VAL_L; + w = KP_GETWPLAIN(KP_WIDTH_VAL_L,1); +}; + +// Cross symbol +class KPGUI_PRE_DialogCrossL: KPGUI_PRE_CloseCross { + x = KP_GETX_CROSS(KP_X_VAL_L); + y = KP_GETY_CROSS(KP_Y_VAL_L); +}; + +// Version info +class KPGUI_PRE_DialogVersionIconL: KPGUI_PRE_VersionIcon { + x = safeZoneX + safeZoneW * (KP_X_VAL_L + KP_WIDTH_VAL_L - 0.04); + y = KP_GETY_CROSS(KP_Y_VAL_L); +}; + +// Background +class KPGUI_PRE_DialogBackgroundL: KPGUI_PRE_Background { + x = KP_GETX(KP_X_VAL_L,KP_WIDTH_VAL_L,0,1); + y = KP_GETY_AREA(KP_Y_VAL_L); + w = KP_GETWPLAIN(KP_WIDTH_VAL_L,1); + h = safeZoneH * KP_HEIGHT_VAL_L; +}; + +// Button pos 1 in 4 button row +class KPGUI_PRE_DialogButtonL: KPGUI_PRE_Button { + x = KP_GETX(KP_X_VAL_L,KP_WIDTH_VAL_L,0,4); + y = KP_GETY_BELOW(KP_Y_VAL_L,KP_HEIGHT_VAL_L); + w = KP_GETWPLAIN(KP_WIDTH_VAL_L,4); +}; + +/* + --- Corner sized classes --- +*/ + +// Title bar +class KPGUI_PRE_DialogTitleC: KPGUI_PRE_Title { + x = KP_GETX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = safeZoneY + safeZoneH * KP_Y_VAL_C; + w = KP_GETWPLAIN(KP_WIDTH_VAL_C,1); +}; + +// Cross symbol +class KPGUI_PRE_DialogCrossC: KPGUI_PRE_CloseCross { + x = safeZoneX + safeZoneW * (KP_X_VAL_C + KP_WIDTH_VAL_C - 0.02); + y = KP_GETY_CROSS(KP_Y_VAL_C); +}; + +// Version info +class KPGUI_PRE_DialogVersionIconC: KPGUI_PRE_VersionIcon { + x = safeZoneX + safeZoneW * (KP_X_VAL_C + KP_WIDTH_VAL_C - 0.04); + y = KP_GETY_CROSS(KP_Y_VAL_C); +}; + +// Background +class KPGUI_PRE_DialogBackgroundC: KPGUI_PRE_Background { + x = KP_GETX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETY_AREA(KP_Y_VAL_C); + w = KP_GETWPLAIN(KP_WIDTH_VAL_C,1); + h = safeZoneH * KP_HEIGHT_VAL_C; +}; + +// Button +class KPGUI_PRE_DialogButtonC: KPGUI_PRE_Button { + x = KP_GETX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETY_BELOW(KP_Y_VAL_C,KP_HEIGHT_VAL_C); + w = KP_GETWPLAIN(KP_WIDTH_VAL_C,1); +}; + +/* + --- Left panel sized classes --- +*/ + +// Title bar +class KPGUI_PRE_DialogTitle_LeftPanel: KPGUI_PRE_Title { + x = KP_GETX(KP_X_VAL_LP,KP_WIDTH_VAL_LP,0,1); + y = safeZoneY + safeZoneH * KP_Y_VAL_LP; + w = KP_GETWPLAIN(KP_WIDTH_VAL_LP,1); +}; + +// Cross symbol +class KPGUI_PRE_DialogCross_LeftPanel: KPGUI_PRE_CloseCross { + x = safeZoneX + safeZoneW * (KP_X_VAL_LP + KP_WIDTH_VAL_LP - 0.02); + y = KP_GETY_CROSS(KP_Y_VAL_LP); +}; + +// Version info +class KPGUI_PRE_DialogVersionIcon_LeftPanel: KPGUI_PRE_VersionIcon { + x = safeZoneX + safeZoneW * (KP_X_VAL_LP + KP_WIDTH_VAL_LP - 0.04); + y = KP_GETY_CROSS(KP_Y_VAL_LP); +}; + +// Background +class KPGUI_PRE_DialogBackground_LeftPanel: KPGUI_PRE_Background { + x = KP_GETX(KP_X_VAL_LP,KP_WIDTH_VAL_LP,0,1); + y = KP_GETY_AREA(KP_Y_VAL_LP); + w = KP_GETWPLAIN(KP_WIDTH_VAL_LP,1); + h = safeZoneH * KP_HEIGHT_VAL_LP; +}; + +// Button +class KPGUI_PRE_DialogButton_LeftPanel: KPGUI_PRE_Button { + x = KP_GETX(KP_X_VAL_LP,KP_WIDTH_VAL_LP,0,1); + y = KP_GETY_BELOW(KP_Y_VAL_LP,KP_HEIGHT_VAL_LP); + w = KP_GETWPLAIN(KP_WIDTH_VAL_LP,1); +}; + +/* + --- Other classes --- +*/ + +class KPGUI_PRE_LogoRightCorner: KPGUI_PRE_PictureRatio { + text = "KPGUI\res\kp512_CA.paa"; + x = "safezoneX + safezoneW - 5.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "safezoneY + safezoneH - 4.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; +}; diff --git a/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_defines.hpp b/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_defines.hpp new file mode 100644 index 0000000..fe5f0fa --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPGUI/KPGUI_defines.hpp @@ -0,0 +1,138 @@ +/* + Killah Potatoes GUI defines and functions + + File: KPGUI_defines.hpp + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-07-10 + Last Update: 2020-04-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + UI defines and functions used in mods and missions from the Killah Potatoes Gaming Community. +*/ + +// Prefix for this use case to avoid issues with duplicated definitions +#define KPGUI_PRE KPLIB + +/* + --- General Defines --- +*/ + +// Text sizes +#define KP_TEXT_XS safeZoneH * 0.016 +#define KP_TEXT_S safeZoneH * 0.018 +#define KP_TEXT_M safeZoneH * 0.02 +#define KP_TEXT_L safeZoneH * 0.025 +#define KP_TEXT_XL safeZoneH * 0.03 + +// Constant values for calculation +#define KP_SPACING_X 0.002 +#define KP_SPACING_Y 0.004 +#define KP_HEIGTH_TITLE 0.035 +#define KP_HEIGTH_BUTTON 0.025 + +// Colors +#define KP_COLOR_PLAYERDEFINE {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} +#define KP_COLOR_BACKGROUND {0, 0, 0, 0.5} + +/* + --- Functions --- +*/ + +/* + Get X coordinate + Example: KP_GETCX(KP_X_VAL,KP_WIDTH_VAL,2,4) + KP_X_VAL -> Left offset of the left dialog side from the edge of the screen + KP_WIDTH_VAL -> Width of the whole dialog (KP_X_VAL spacing to the left and to the right) + 2 -> Coordinate of the 3rd element position (0,1,2,3,etc.) + 4 -> In relation to a 4 element X grid + + GETX is for a coordinate in relation to the whole dialog width + GETCX is for a coordinate in relation to the content area (which has an equal spacing to all sides) +*/ + +#define KP_GETX(XVAL,WVAL,POS,GRID) safeZoneX + safeZoneW * (XVAL + POS * (WVAL + KP_SPACING_X) / GRID) +#define KP_GETCX(XVAL,WVAL,POS,GRID) safeZoneX + safeZoneW * (XVAL + (POS * WVAL + (GRID - POS) * KP_SPACING_X) / GRID) +#define KP_GETX_CROSS(XVAL) safeZoneX + safeZoneW * (1 - XVAL - 0.02) + +/* + Get Y coordinate + Example: KP_GETCY(KP_Y_VAL,KP_HEIGHT_VAL,3,8) + KP_Y_VAL -> Top offset of the dialog top from the edge of the screen + KP_HEIGHT_VAL -> Height of the area between title bar and bottom buttons in the dialog + 3 -> Coordinate of the 4th element position (0,1,2,3,etc.) + 8 -> In relation to a 8 element Y grid + + GETY_AREA is for the Y coordinate of the beginning of the background (which frames the content area) + GETY_BELOW is for the Y coordinate of the buttons below the background +*/ +#define KP_GETCY(YVAL,HVAL,POS,GRID) safeZoneY + safeZoneH * ((YVAL + KP_HEIGTH_TITLE + KP_SPACING_Y) + (POS * HVAL + (GRID - POS) * KP_SPACING_Y) / GRID) +#define KP_GETY_CROSS(YVAL) safeZoneY + safeZoneH * (YVAL + 0.005) +#define KP_GETY_AREA(YVAL) safeZoneY + safeZoneH * (YVAL + KP_HEIGTH_TITLE + KP_SPACING_Y) +#define KP_GETY_BELOW(YVAL,HVAL) safeZoneY + safeZoneH * (YVAL + KP_HEIGTH_TITLE + 2 * KP_SPACING_Y + HVAL) + +/* + Get width for an element + Example: KP_GETW(KP_WIDTH_VAL,2) + KP_WIDTH_VAL -> Width of the whole dialog (KP_X_VAL spacing to the left and to the right) + 2 -> Width for an element which fits 2 times in the content area from left to right (substracted by spacings to other elements left and right) + + GETW is in relation to the content area + GETWPLAIN is in relation to the whole dialog width (for the buttons below for example) +*/ +#define KP_GETW(WVAL,GRID) safeZoneW * ((WVAL - (GRID + 1) * KP_SPACING_X) / GRID) +#define KP_GETWPLAIN(WVAL,GRID) safeZoneW * ((WVAL - (GRID - 1) * KP_SPACING_X) / GRID) + +/* + Get height for an element + Example: KP_GETH(KP_HEIGHT_VAL,10) + KP_HEIGHT_VAL -> Height of the area between title bar and bottom buttons in the dialog + 10 -> Height for an element which fits 10 times in the content area from top to bottom (substracted by spacings to other elements above and below) +*/ +#define KP_GETH(HVAL,GRID) safeZoneH * ((HVAL - (GRID + 1) * KP_SPACING_Y) / GRID) + +/* + --- Standard sized dialog components --- + (X from 0.25 - 0.75, Y from 0.2 - 0.8) +*/ + +#define KP_X_VAL 0.25 +#define KP_Y_VAL 0.2 + +#define KP_WIDTH_VAL (1 - 2 * KP_X_VAL) +#define KP_HEIGHT_VAL (1 - 2 * KP_Y_VAL - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y) + +/* + --- Large sized dialog components --- + (X from 0.15 - 0.85, Y from 0.15 - 0.85) +*/ + +#define KP_X_VAL_L 0.15 +#define KP_Y_VAL_L 0.15 + +#define KP_WIDTH_VAL_L (1 - 2 * KP_X_VAL_L) +#define KP_HEIGHT_VAL_L (1 - 2 * KP_Y_VAL_L - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y) + +/* + --- Corner dialog components --- + (X from 0.035 - 0.235, Y from 0.05 - 0.8) +*/ + +#define KP_X_VAL_C 0.035 +#define KP_Y_VAL_C 0.05 + +#define KP_WIDTH_VAL_C 0.2 +#define KP_HEIGHT_VAL_C (0.75 - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y) + +/* + --- Left panel dialog components --- +*/ + +#define KP_X_VAL_LP 0.0025 +#define KP_Y_VAL_LP 0.0025 + +#define KP_WIDTH_VAL_LP 0.2 +#define KP_HEIGHT_VAL_LP (1 - 2 * KP_Y_VAL_LP - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y) + +// Classes include +#include "KPGUI_classes.hpp" diff --git a/kp_liberation.brf_sumava/KP/KPGUI/res/kp512_CA.paa b/kp_liberation.brf_sumava/KP/KPGUI/res/kp512_CA.paa new file mode 100644 index 0000000..5cf9a32 Binary files /dev/null and b/kp_liberation.brf_sumava/KP/KPGUI/res/kp512_CA.paa differ diff --git a/kp_liberation.brf_sumava/KP/KPPLM/KPPLM_functions.hpp b/kp_liberation.brf_sumava/KP/KPPLM/KPPLM_functions.hpp new file mode 100644 index 0000000..13b78ba --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/KPPLM_functions.hpp @@ -0,0 +1,50 @@ +/* + KP PLAYER MENU FUNCTIONS + + File: KPPLM_functions.hpp + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-06-02 + Last Update: 2020-04-08 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Defines for all functions for the KP Player Menu. +*/ + +class KPPLM { + class main { + file = "KP\KPPLM\fnc"; + + // Apply and save settings + class apply {}; + + // Creates a new group + class create {}; + + // Apply view distance and sound volume + class getInOut {}; + + // Joins selected group + class join {}; + + // Open the dialog + class openDialog {}; + + // Module post initialization + class postInit {}; + + // Module pre initialization + class preInit { + preInit = 1; + }; + + // Applies new name to group + class rename {}; + + // Save dialog settings + class save {}; + + // Get and display KP Ranks data + class showRankData {}; + }; +}; diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_apply.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_apply.sqf new file mode 100644 index 0000000..992674a --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_apply.sqf @@ -0,0 +1,40 @@ +/* + KPPLM_fnc_apply + + File: fn_apply.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-04 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Applies and saves the selected settings from the player menu dialog. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Apply current view distance and sound volume +[] call KPPLM_fnc_getInOut; + +// Apply terrain detail setting +switch (KPPLM_terrain) do { + case 0: {setTerrainGrid 50;}; + case 1: {setTerrainGrid 25;}; + case 2: {setTerrainGrid 12.5;}; + case 3: {setTerrainGrid 6.25;}; + case 4: {setTerrainGrid 3.125;}; + default {setTerrainGrid 10;}; +}; + +// Apply radio chatter setting +switch (KPPLM_radio) do { + case 1: {enableRadio true; 1 fadeRadio 0;}; + case 2: {enableRadio false; 1 fadeRadio 0;}; + default {enableRadio true; 1 fadeRadio 1;}; +}; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_create.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_create.sqf new file mode 100644 index 0000000..faac70e --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_create.sqf @@ -0,0 +1,27 @@ +/* + KPPLM_fnc_create + + File: fn_create.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Creates a new group for the player. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +private _grp = createGroup [(side player), true]; +[player] join _grp; + +// Refresh Dialog +closeDialog 0; +[{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_getInOut.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_getInOut.sqf new file mode 100644 index 0000000..d1459b7 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_getInOut.sqf @@ -0,0 +1,48 @@ +/* + KPPLM_fnc_getInOut + + File: fn_getInOut.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Sets the view distance and the sound volume of the player depending on the current vehicle. + Also changes the camera view, if functionality is enabled by the player. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Player on foot +if (isNull objectParent player) then { + setViewDistance KPPLM_viewFoot; + setObjectViewDistance KPPLM_viewFoot; + 1 fadeSound 1; +}; + +// Player in boat or land vehicle +if (vehicle player isKindOf "LandVehicle" || vehicle player isKindOf "Ship") then { + setViewDistance KPPLM_viewVeh; + setObjectViewDistance KPPLM_viewVeh; + 1 fadeSound KPPLM_soundVeh; + if (difficultyOption "thirdPersonView" == 1) then { + if (KPPLM_tpv > 1) then {player switchCamera "EXTERNAL";}; + }; +}; + +// Player in air vehicle +if (vehicle player isKindOf "Air") then { + setViewDistance KPPLM_viewAir; + setObjectViewDistance KPPLM_viewAir; + 1 fadeSound KPPLM_soundVeh; + if (difficultyOption "thirdPersonView" == 1) then { + if (KPPLM_tpv == 1 || KPPLM_tpv == 3) then {player switchCamera "EXTERNAL";}; + }; +}; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_join.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_join.sqf new file mode 100644 index 0000000..be67130 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_join.sqf @@ -0,0 +1,31 @@ +/* + KPPLM_fnc_join + + File: fn_join.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Joins the group which is currently selected in the group list. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Dialog controls +private _dialog = findDisplay 75803; +private _ctrlGroupList = _dialog displayCtrl 758038; + +private _grp = KPPLM_groups select (lbCurSel _ctrlGroupList); +[player] join _grp; + +// Refresh Dialog with a small delay +[{player in units (_this select 0)}, {closeDialog 0;}, [_grp]] call CBA_fnc_waitUntilAndExecute; +[{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_openDialog.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_openDialog.sqf new file mode 100644 index 0000000..530ce3b --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_openDialog.sqf @@ -0,0 +1,94 @@ +/* + KPPLM_fnc_openDialog + + File: fn_openDialog.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-03 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Opens the player menu dialog. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Create player options dialog +createDialog "KPPLM_dialog"; +disableSerialization; + +// Dialog controls +private _dialog = findDisplay 75803; +private _ctrlLabelRank = _dialog displayCtrl 758031; +private _ctrlRank = _dialog displayCtrl 758032; +private _ctrlLabelScore = _dialog displayCtrl 758033; +private _ctrlScore = _dialog displayCtrl 758034; +private _ctrlLabelPlaytime = _dialog displayCtrl 758035; +private _ctrlPlaytime = _dialog displayCtrl 758036; +private _ctrlNoRanks = _dialog displayCtrl 758037; +private _ctrlGroupList = _dialog displayCtrl 758038; +private _ctrlViewFoot = _dialog displayCtrl 7580310; +private _ctrlViewVeh = _dialog displayCtrl 7580311; +private _ctrlViewAir = _dialog displayCtrl 7580312; +private _ctrlTerrain = _dialog displayCtrl 7580313; +private _ctrlTpv = _dialog displayCtrl 7580314; +private _ctrlRadio = _dialog displayCtrl 7580315; +private _ctrlValueSound = _dialog displayCtrl 7580316; +private _ctrlSliderSound = _dialog displayCtrl 7580317; + +// Display KP Ranks data or hide the player menu entries for the data +if (KPPLM_KPR) then { + [] call KPPLM_fnc_showRankData; +} else { + { + _x ctrlShow false; + } forEach [_ctrlLabelRank, _ctrlRank, _ctrlLabelScore, _ctrlScore, _ctrlLabelPlaytime, _ctrlPlaytime]; +}; + +// Fill group list with all groups leaded by players +{ + if (player in units _x) then { + _ctrlGroupList lbSetCurSel (_ctrlGroupList lbAdd format [">> %1 - %2 (%3)", groupId _x, name leader _x, count units _x]); + } else { + _ctrlGroupList lbAdd format ["%1 - %2 (%3)", groupId _x, name leader _x, count units _x]; + }; + +} forEach KPPLM_groups; + +// Set initial values for view distances +_ctrlViewFoot ctrlSetText str KPPLM_viewFoot; +_ctrlViewVeh ctrlSetText str KPPLM_viewVeh; +_ctrlViewAir ctrlSetText str KPPLM_viewAir; + +// Fill density, auto tpv and radio dropdowns. Also preselect the saved values +_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINLOW"; // 50 +_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINSTANDARD"; // 25 +_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINHIGH"; // 12.5 +_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINVHIGH"; // 6.25 +_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINULTRA"; // 3.125 +_ctrlTerrain lbSetCurSel KPPLM_terrain; + +_ctrlTpv lbAdd localize "STR_KPPLM_TPDISABLED"; +_ctrlTpv lbAdd localize "STR_KPPLM_TPVAIR"; +_ctrlTpv lbAdd localize "STR_KPPLM_TPVLAND"; +_ctrlTpv lbAdd localize "STR_KPPLM_TPVALL"; +_ctrlTpv lbSetCurSel KPPLM_tpv; + +_ctrlRadio lbAdd localize "STR_KPPLM_RADIONO"; +_ctrlRadio lbAdd localize "STR_KPPLM_RADIOVOICE"; +_ctrlRadio lbAdd localize "STR_KPPLM_RADIOALL"; +_ctrlRadio lbSetCurSel KPPLM_radio; + +// Initialize sound slider range, position and speed +_ctrlSliderSound sliderSetRange [0, 100]; +_ctrlSliderSound sliderSetPosition (KPPLM_soundVeh * 100); +_ctrlSliderSound sliderSetSpeed [1, 1]; + +// Set sound value output to initial sound slider value +_ctrlValueSound ctrlSetText format ["%1%2", round sliderPosition _ctrlSliderSound, "%"]; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_postInit.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_postInit.sqf new file mode 100644 index 0000000..5623deb --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_postInit.sqf @@ -0,0 +1,58 @@ +/* + KPPLM_fnc_postInit + + File: fn_postInit.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2017-08-31 + Last Update: 2020-04-17 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + The postInit function of a module takes care of starting/executing the modules functions or scripts. + Basically it starts/initializes the module functionality to make all provided features usable. + + Parameter(s): + NONE + + Returns: + Module postInit finished [BOOL] +*/ + +if (!KPPLM_CBA) exitWith {["CBA not loaded. Aborting initialization!"] call BIS_fnc_error; false}; + +// Player section +if (hasInterface) then { + // Load settings, if available + private _settings = profileNamespace getVariable ["KPPLM_Settings", []]; + if !(_settings isEqualTo []) then { + KPPLM_viewFoot = _settings select 0; + KPPLM_viewVeh = _settings select 1; + KPPLM_viewAir = _settings select 2; + KPPLM_terrain = _settings select 3; + KPPLM_tpv = _settings select 4; + KPPLM_radio = _settings select 5; + KPPLM_soundVeh = _settings select 6; + }; + + // Add event handler + player addEventHandler ["GetInMan", {[] call KPPLM_fnc_getInOut}]; + player addEventHandler ["GetOutMan", {[] call KPPLM_fnc_getInOut}]; + + // Action to open the dialog + private _actionArray = [ + "" + localize "STR_KPPLM_ACTIONOPEN" + "", + {[] call KPPLM_fnc_openDialog;}, + nil, + -1000, + false, + true, + "", + '_target isEqualTo _originalTarget' + ]; + [_actionArray] call CBA_fnc_addPlayerAction; + + // Apply default/loaded values + [] call KPPLM_fnc_apply; +}; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_preInit.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_preInit.sqf new file mode 100644 index 0000000..45f7db2 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_preInit.sqf @@ -0,0 +1,47 @@ +/* + KPPLM_fnc_preInit + + File: fn_preInit.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-10-18 + Last Update: 2020-04-17 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + The preInit function defines global variables, adds event handlers and set some vital settings which are used in this module. + + Parameter(s): + NONE + + Returns: + Module preInit finished [BOOL] +*/ + +// Check if CBA is running +KPPLM_CBA = isClass (configFile >> "CfgPatches" >> "cba_main"); + +// Check if KP Ranks is running +KPPLM_KPR = isClass (configFile >> "CfgPatches" >> "KP_Ranks"); + +// View distance on foot +KPPLM_viewFoot = viewDistance; + +// View distance in land vehicle +KPPLM_viewVeh = viewDistance; + +// View distance in air vehicle +KPPLM_viewAir = viewDistance; + +// Terrain detail setting +KPPLM_terrain = 2; + +// Auto 3rd Person setting +KPPLM_tpv = 0; + +// Disable radio chatter setting +KPPLM_radio = 0; + +// Sound volume inside a vehicle +KPPLM_soundVeh = soundVolume; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_rename.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_rename.sqf new file mode 100644 index 0000000..4770d2c --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_rename.sqf @@ -0,0 +1,38 @@ +/* + KPPLM_fnc_rename + + File: fn_rename.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Set the new name for the group which is selected in the group list. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Dialog controls +private _dialog = findDisplay 75803; +private _ctrlGroupList = _dialog displayCtrl 758038; +private _ctrlEditName = _dialog displayCtrl 758039; +private _grp = KPPLM_groups select (lbCurSel _ctrlGroupList); + +// Only allow change, when player is leader +if (leader _grp == player) then { + _grp setGroupIdGlobal [ctrlText _ctrlEditName]; + + // Refresh Dialog + closeDialog 0; + [{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute; +} else { + hint localize "STR_KPPLM_NOTLEADER"; + [{hintSilent "";}, [], 3] call CBA_fnc_waitAndExecute; +}; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_save.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_save.sqf new file mode 100644 index 0000000..e5130cc --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_save.sqf @@ -0,0 +1,52 @@ +/* + KPPLM_fnc_save + + File: fn_save.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Saves the selected settings from the player menu dialog and calls the apply function. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Dialog controls +private _dialog = findDisplay 75803; +private _ctrlViewFoot = _dialog displayCtrl 7580310; +private _ctrlViewVeh = _dialog displayCtrl 7580311; +private _ctrlViewAir = _dialog displayCtrl 7580312; +private _ctrlTerrain = _dialog displayCtrl 7580313; +private _ctrlTpv = _dialog displayCtrl 7580314; +private _ctrlRadio = _dialog displayCtrl 7580315; +private _ctrlSliderSound = _dialog displayCtrl 7580317; + +// Fetch all selected values +KPPLM_viewFoot = round (parseNumber (ctrlText _ctrlViewFoot)); +if (KPPLM_viewFoot == 0) then {KPPLM_viewFoot = 1600;}; +KPPLM_viewVeh = round (parseNumber (ctrlText _ctrlViewVeh)); +if (KPPLM_viewVeh == 0) then {KPPLM_viewVeh = 1600;}; +KPPLM_viewAir = round (parseNumber (ctrlText _ctrlViewAir)); +if (KPPLM_viewAir == 0) then {KPPLM_viewAir = 1600;}; +KPPLM_terrain = lbCurSel _ctrlTerrain; +KPPLM_tpv = lbCurSel _ctrlTpv; +KPPLM_radio = lbCurSel _ctrlRadio; +KPPLM_soundVeh = (round sliderPosition _ctrlSliderSound) / 100; + +// Save settings in user profile +profileNamespace setVariable ["KPPLM_Settings", [KPPLM_viewFoot, KPPLM_viewVeh, KPPLM_viewAir, KPPLM_terrain, KPPLM_tpv, KPPLM_radio, KPPLM_soundVeh]]; +saveProfileNamespace; + +// Apply settings +[] call KPPLM_fnc_apply; + +// Close the dialog +closeDialog 0; + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_showRankData.sqf b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_showRankData.sqf new file mode 100644 index 0000000..5fb7e14 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/fnc/fn_showRankData.sqf @@ -0,0 +1,39 @@ +/* + KPPLM_fnc_showRankData + + File: fn_showRankData.sqf + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-05 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Reads the KP Ranks data of the current player and displays it in the player menu dialog. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +// Dialog controls +private _dialog = findDisplay 75803; +private _ctrlRank = _dialog displayCtrl 758032; +private _ctrlScore = _dialog displayCtrl 758034; +private _ctrlPlaytime = _dialog displayCtrl 758036; +private _ctrlNoRanks = _dialog displayCtrl 758037; + +// Disable no ranks hint +_ctrlNoRanks ctrlShow false; + +// Show data in dialog +_ctrlRank ctrlSetText ([] call KPR_fnc_getRankName); +if (KPR_levelSystem) then { + _ctrlScore ctrlSetText str ([] call KPR_fnc_getScore); +} else { + _ctrlScore ctrlSetText (localize "STR_KPPLM_NOLVLSYSTEM"); +}; +_ctrlPlaytime ctrlSetText ([] call KPR_fnc_getPlaytime); + +true diff --git a/kp_liberation.brf_sumava/KP/KPPLM/ui/KPPLM_dialog.hpp b/kp_liberation.brf_sumava/KP/KPPLM/ui/KPPLM_dialog.hpp new file mode 100644 index 0000000..ed26aca --- /dev/null +++ b/kp_liberation.brf_sumava/KP/KPPLM/ui/KPPLM_dialog.hpp @@ -0,0 +1,250 @@ +/* + KP player menu dialog + + File: KPPLM_dialog.hpp + Author: Wyqer - https://github.com/KillahPotatoes + Date: 2018-08-03 + Last Update: 2018-11-10 + License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html + + Description: + Provides various functionalities for the players like group management, view distances, etc. +*/ + +class KPPLM_dialog { + idd = 75803; + movingEnable = 0; + // Fetch all player groups when opened and free the variable when closed + onLoad = "KPPLM_groups = allGroups select {isPlayer (leader _x)}"; + onUnload = "KPPLM_groups = nil"; + + class controlsBackground { + + class KP_DialogTitle: KPGUI_PRE_DialogTitleC { + text = "$STR_KPPLM_TITLE"; + }; + + class KP_DialogArea: KPGUI_PRE_DialogBackgroundC {}; + + class KP_LabelPlayer: KPGUI_PRE_InlineTitle { + text = "$STR_KPPLM_LABELPLAYER"; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,0,16); + w = KP_GETW(KP_WIDTH_VAL_C,1); + h = KP_GETH(KP_HEIGHT_VAL_C,16); + }; + + class KP_TextRank: KPGUI_PRE_Text { + idc = 758031; + text = "$STR_KPPLM_RANK"; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,16); + w = KP_GETW(KP_WIDTH_VAL_C,2); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_TextScore: KP_TextRank { + idc = 758033; + text = "$STR_KPPLM_SCORE"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,5,48); + }; + + class KP_TextPlaytime: KP_TextRank { + idc = 758035; + text = "$STR_KPPLM_PLAYTIME"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,7,48); + }; + + class KP_NoRanks: KP_LabelPlayer { + idc = 758037; + style = 2; + colorText[] = {0.8, 0, 0, 0.75}; + text = "$STR_KPPLM_NORANKS"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,3,32); + sizeEx = KP_TEXT_L; + }; + + class KP_LabelGroups: KP_LabelPlayer { + text = "$STR_KPPLM_LABELGROUPS"; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,3,16); + w = KP_GETW(KP_WIDTH_VAL_C,1); + h = KP_GETH(KP_HEIGHT_VAL_C,16); + }; + + class KP_LabelView: KP_LabelPlayer { + text = "$STR_KPPLM_LABELVIEW"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,2); + }; + + class KP_TextViewFoot: KPGUI_PRE_Text { + text = "$STR_KPPLM_VIEWFOOT"; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,9,16); + w = KP_GETW(KP_WIDTH_VAL_C,2); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_TextViewVehicle: KP_TextViewFoot { + text = "$STR_KPPLM_VIEWVEHICLE"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,29,48); + }; + + class KP_TextViewAir: KP_TextViewFoot { + text = "$STR_KPPLM_VIEWAIR"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,31,48); + }; + + class KP_LabelMisc: KP_LabelPlayer { + text = "$STR_KPPLM_LABELMISC"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,16); + }; + + class KP_TextTerrain: KP_TextRank { + text = "$STR_KPPLM_TEXTTERRAIN"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,12,16); + }; + + class KP_TextTPV: KP_TextRank { + text = "$STR_KPPLM_TEXTTPV"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,19,24); + }; + + class KP_TextRadio: KP_TextRank { + text = "$STR_KPPLM_TEXTRADIO"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,10,12); + }; + + class KP_TextSound: KP_TextRank { + text = "$STR_KPPLM_TEXTSOUND"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,22,24); + }; + }; + + class controls { + + class KPPLM_Version: KPGUI_PRE_DialogVersionIconC { + tooltip = "$STR_KPPLM_VERSION"; + }; + + class KP_PlayerRank: KPGUI_PRE_Text { + idc = 758032; + style = 2; + text = ""; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,16); + w = KP_GETW(KP_WIDTH_VAL_C,2); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_PlayerScore: KP_PlayerRank { + idc = 758034; + text = ""; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,5,48); + }; + + class KP_PlayerTime: KP_PlayerRank { + idc = 758036; + text = ""; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,7,48); + }; + + class KP_GroupList: KPGUI_PRE_ListBox { + idc = 758038; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,4,16); + w = KP_GETW(KP_WIDTH_VAL_C,(4/3)); + h = KP_GETH(KP_HEIGHT_VAL_C,(24/5)); + onLBSelChanged = "ctrlSetText [758039, groupId (KPPLM_groups select (lbCurSel 758038))]"; + }; + + class KP_ButtonJoin: KPGUI_PRE_InlineButton { + text = "$STR_KPPLM_JOIN"; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,3,4); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,4,16); + w = KP_GETW(KP_WIDTH_VAL_C,4); + h = KP_GETH(KP_HEIGHT_VAL_C,(48/5)); + onButtonClick = "[] call KPPLM_fnc_join"; + }; + + class KP_ButtonCreate: KP_ButtonJoin { + text = "$STR_KPPLM_CREATE"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,17,48); + onButtonClick = "[] call KPPLM_fnc_create"; + }; + + class KP_RenameEdit: KPGUI_PRE_EditBox { + idc = 758039; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,24); + w = KP_GETW(KP_WIDTH_VAL_C,(4/3)); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_ButtonRename: KP_ButtonJoin { + text = "$STR_KPPLM_RENAME"; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,24); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + onButtonClick = "[] call KPPLM_fnc_rename"; + }; + + class KP_BoxViewFoot: KPGUI_PRE_EditBox { + idc = 7580310; + style = 65; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,4); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,9,16); + w = KP_GETW(KP_WIDTH_VAL_C,4); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_BoxViewVehicle: KP_BoxViewFoot { + idc = 7580311; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,29,48); + }; + + class KP_BoxViewAir: KP_BoxViewFoot { + idc = 7580312; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,31,48); + }; + + class KP_ComboTerrain: KPGUI_PRE_Combo { + idc = 7580313; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,12,16); + w = KP_GETW(KP_WIDTH_VAL_C,2); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + }; + + class KP_ComboTPV: KP_ComboTerrain { + idc = 7580314; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,19,24); + }; + + class KP_ComboRadio: KP_ComboTerrain { + idc = 7580315; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,10,12); + }; + + class KP_TextSoundValue: KP_PlayerRank { + idc = 7580316; + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,22,24); + }; + + class KP_SliderSound: KPGUI_PRE_Slider { + idc = 7580317; + x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1); + y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,23,24); + w = KP_GETW(KP_WIDTH_VAL_C,1); + h = KP_GETH(KP_HEIGHT_VAL_C,24); + tooltip = "$STR_KPPLM_TTSOUND"; + onSliderPosChanged = "ctrlSetText [7580316, format ['%1%2', round (_this select 1), '%']]"; + }; + + class KP_ApplyButton: KPGUI_PRE_DialogButtonC { + text = "$STR_KPPLM_APPLY"; + onButtonClick = "[] call KPPLM_fnc_save"; + }; + + class KP_DialogCross: KPGUI_PRE_DialogCrossC {}; + }; +}; diff --git a/kp_liberation.brf_sumava/KP/LICENSE b/kp_liberation.brf_sumava/KP/LICENSE new file mode 100644 index 0000000..94a0453 --- /dev/null +++ b/kp_liberation.brf_sumava/KP/LICENSE @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/kp_liberation.brf_sumava/KPLIB_debriefs.hpp b/kp_liberation.brf_sumava/KPLIB_debriefs.hpp new file mode 100644 index 0000000..92f9bc0 --- /dev/null +++ b/kp_liberation.brf_sumava/KPLIB_debriefs.hpp @@ -0,0 +1,17 @@ +/* + File: KPLIB_debriefs.hpp + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-09 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Debriefing defines for KP Liberation. +*/ + +class End1 { + title = $STR_SORRY; + subtitle = ""; + description = $STR_COMMANDER_NOT_AUTHORIZED; + pictureBackground = ""; +}; diff --git a/kp_liberation.brf_sumava/arsenal_presets/3cbBAF.sqf b/kp_liberation.brf_sumava/arsenal_presets/3cbBAF.sqf new file mode 100644 index 0000000..3ee0f17 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/3cbBAF.sqf @@ -0,0 +1,757 @@ +/* + 3CB BAF Arsenal Preset + Last Update: 2020-05-08 + + Needed: + - 3CB BAF Weapons - https://steamcommunity.com/sharedfiles/filedetails/?id=893339590 + - 3CB BAF Equipment - https://steamcommunity.com/sharedfiles/filedetails/?id=893328083 + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "UK3CB_BAF_AT4_CS_AP_Launcher", // ILAW HEDP Launcher + "UK3CB_BAF_AT4_CS_AT_Launcher", // ILAW HP Launcher + "UK3CB_BAF_L103A2", // L130A2 DP + "UK3CB_BAF_L105A1", // L105A1 + "UK3CB_BAF_L105A2", // L105A2 + "UK3CB_BAF_L107A1", // L107A1 + "UK3CB_BAF_L110_762", // L110 7.62 LMG + "UK3CB_BAF_L110A1", // L110A1 LMG + "UK3CB_BAF_L110A2", // L110A2 LMG + "UK3CB_BAF_L110A2RIS", // L110A2 RIS LMG + "UK3CB_BAF_L110A3", // L110A3 LMG + "UK3CB_BAF_L115A3_BL_Ghillie", // L115A3 Ghillie (Black) + "UK3CB_BAF_L115A3_BL", // L115A3 (Black) + "UK3CB_BAF_L115A3_DE_Ghillie", // L115A3 Ghillie (Sand) + "UK3CB_BAF_L115A3_DE", // L115A3 (Sand) + "UK3CB_BAF_L115A3_Ghillie", // L115A3 Ghillie + "UK3CB_BAF_L115A3", // L115A3 + "UK3CB_BAF_L117A2", // L117A1 + "UK3CB_BAF_L118A1_Covert_BL", // L118A1 AWC (Black) + "UK3CB_BAF_L118A1_Covert_DE", // L118A1AWC (Sand) + "UK3CB_BAF_L118A1_Covert", // L118A1 AWC + "UK3CB_BAF_L119A1_CQB", // L119A1 CQB + "UK3CB_BAF_L119A1_FG", // L119A1 witch Front Grip + "UK3CB_BAF_L119A1_UKUGL", // L119A1 UK UGL + "UK3CB_BAF_L119A1", // L119A1 + "UK3CB_BAF_L128A1", // L123A1 Shotgun + "UK3CB_BAF_L129A1", // L129A1 + "UK3CB_BAF_L131A1", // L131A1 + "UK3CB_BAF_L135A1", // L135A1 LRPAS + "UK3CB_BAF_L1A1_Wood", // L1A1 SLR (Wooden stock) + "UK3CB_BAF_L1A1", // L1A1 SLR + "UK3CB_BAF_L22", // L22 + "UK3CB_BAF_L22A2", // L22A2 + "UK3CB_BAF_L7A2", // L7A2 GPMG + "UK3CB_BAF_L85A2_EMAG", // L85A2 EMAG + "UK3CB_BAF_L85A2_RIS_D", // L85A2 RIS (Tan Rail Covers) + "UK3CB_BAF_L85A2_RIS_G", // L85A2 RIS (Green Rail Covers) + "UK3CB_BAF_L85A2_RIS_W", // L85A2 RIS (Winter Rail Covers) + "UK3CB_BAF_L85A2_RIS", // L85A2 RIS + "UK3CB_BAF_L85A2_UGL_HWS", // L85A2 with L123A3 HWS + "UK3CB_BAF_L85A2_UGL", // L85A2 witch L123A2 Ladder + "UK3CB_BAF_L85A2", // L85A2 + "UK3CB_BAF_L85A3_UGL", // L85A3 with L123A2 Ladder + "UK3CB_BAF_L85A3", // L85A3 + "UK3CB_BAF_L86A2", // L86A2 LSW + "UK3CB_BAF_L86A3", // L86A2 RIS DMR + "UK3CB_BAF_L91A1", // L91A1 SMG + "UK3CB_BAF_L92A1", // L92A1 SMG + "UK3CB_BAF_L98A2", // L98A2 Cadet GP + "UK3CB_BAF_L9A1", // L9A1 + "UK3CB_BAF_NLAW_Launcher" // NLAW Launcher +]; + +GRLIB_arsenal_magazines = [ + "UK3CB_BAF_12G_Pellets", // 12G 8rnd Buckshot + "UK3CB_BAF_12G_Slugs", // 12G 8rnd Slug + "UK3CB_BAF_1Rnd_Blank_Grenade_Shell", // 40mm Practice Round (L123) + "UK3CB_BAF_1Rnd_HE_Grenade_Shell", // 40mm HE Grenade Round (L123) + "UK3CB_BAF_1Rnd_HEDP_Grenade_Shell", // 40mm HEDP Grenade Round (L123) + "UK3CB_BAF_1Rnd_Smoke_Grenade_shell", // 40mm White Smoke (L123) + "UK3CB_BAF_1Rnd_SmokeBlue_Grenade_shell", // 40mm Blue Smoke (L123) + "UK3CB_BAF_1Rnd_SmokeGreen_Grenade_shell", // 40mm Green Smoke (L123) + "UK3CB_BAF_1Rnd_SmokeOrange_Grenade_shell", // 40mm Orange Smoke (L123) + "UK3CB_BAF_1Rnd_SmokePurple_Grenade_shell", // 40mm Purple Smoke (L123) + "UK3CB_BAF_1Rnd_SmokeRed_Grenade_shell", // 40mm Red Smoke (L123) + "UK3CB_BAF_1Rnd_SmokeYellow_Grenade_shell", // 40mm Yello Smoke (L123) + "UK3CB_BAF_338_5Rnd_Blank", // .338 5rnd Blank Mag + "UK3CB_BAF_338_5Rnd_Tracer", // .338 5rnd Tracer Mag + "UK3CB_BAF_338_5Rnd", // .338 5rnd Mag + "UK3CB_BAF_556_100Rnd_Blank", // 5.56mm 100rnd Blank Boxmag + "UK3CB_BAF_556_100Rnd_T", // 5.56mm 100rnd Tracer Boxmag + "UK3CB_BAF_556_100Rnd", // 5.56mm 100rnd Boxmag + "UK3CB_BAF_556_200Rnd_Blank", // 5.56mm 200rnd Blank Boxmag + "UK3CB_BAF_556_200Rnd_T", // 5.56mm 200rnd Tracer Boxmag + "UK3CB_BAF_556_200Rnd", // 5.56mm 200rnd Boxmag + "UK3CB_BAF_556_30Rnd_Blank", // 5.56mm 30rnd Blank Mag + "UK3CB_BAF_556_30Rnd_T", // 5.56mm 30rnd Tracer Mag + "UK3CB_BAF_556_30Rnd", // 5.56mm 30rnd Mag + "UK3CB_BAF_762_100Rnd_Blank", // 7.62mm 100rnd Blank Belt + "UK3CB_BAF_762_100Rnd_T", // 7.62mm 100rnd Tracer Belt + "UK3CB_BAF_762_100Rnd", // 7.62mm 100rnd Belt + "UK3CB_BAF_762_200Rnd_Blank", // 7.62mm 200rnd Blank Belt + "UK3CB_BAF_762_200Rnd_T", // 7.62mm 200rnd Tracer Belt + "UK3CB_BAF_762_200Rnd", // 7.62mm 200rnd Belt + "UK3CB_BAF_762_20Rnd_Blank", // 7.62mm 20rnd Blank Mag + "UK3CB_BAF_762_20Rnd_T", // 7.62mm 20rnd Tracer Mag + "UK3CB_BAF_762_20Rnd", // 7.62mm 20rnd Mag + "UK3CB_BAF_762_800Rnd_Blank", // 7.62mm 800rnd Blank Belt + "UK3CB_BAF_762_800Rnd_T", // 7.62mm 800rnd Tracer Belt + "UK3CB_BAF_762_800Rnd", // 7.62mm 800rnd Belt + "UK3CB_BAF_762_L42A1_10Rnd_Blank", // 7.62mm 10rnd Blank Mag + "UK3CB_BAF_762_L42A1_10Rnd_T", // 7.62mm 10rnd Tracer Mag + "UK3CB_BAF_762_L42A1_10Rnd", // 7.62mm 10rnd Mag + "UK3CB_BAF_762_L42A1_20Rnd_Blank", // 7.62mm 20rnd Blang Mag + "UK3CB_BAF_762_L42A1_20Rnd_T", // 7.62mm 20rnd Tracer Mag + "UK3CB_BAF_762_L42A1_20Rnd", // 7.62mm 20rnd Mag + "UK3CB_BAF_9_13Rnd", // 9mm 13rnd Mag + "UK3CB_BAF_9_15Rnd", // 9mm 15rnd Mag + "UK3CB_BAF_9_17Rnd", // 9mm 17rnd Mag + "UK3CB_BAF_9_30Rnd", // 9mm 30rnd Mag + "UK3CB_BAF_HandGrenade_Blank", // L111A1 Practice Grenade + "UK3CB_BAF_SmokeShell", // L50A1 White Smoke Grenade + "UK3CB_BAF_SmokeShellBlue", // L71 Blue Smoke Grenade + "UK3CB_BAF_SmokeShellGreen", // L68 Green Smoke Grenade + "UK3CB_BAF_SmokeShellOrange", // L69 Orange Smoke Grenade + "UK3CB_BAF_SmokeShellPurple", // L101 Purple Smoke Grenade + "UK3CB_BAF_SmokeShellRed", // L70 Red Smoke Grenade + "UK3CB_BAF_SmokeShellYellow", // L100 Yellow Smoke Grenade + "UK3CB_BAF_UGL_FlareCIR_F", // 40mm IR Flare (L123) + "UK3CB_BAF_UGL_FlareGreen_F", // 40mm Green Flare (L123) + "UK3CB_BAF_UGL_FlareRed_F", // 40mm Red Flare (L123) + "UK3CB_BAF_UGL_FlareWhite_F", // 40mm White Flare (L123) + "UK3CB_BAF_UGL_FlareYellow_F", // 40mm Yellow Flare (L123) + + // Vanilla Standard Grenades & Explosives + "APERSBoundingMine_Range_Mag", // APERS Bounding Mine + "APERSMine_Range_Mag", // APERS Mine + "APERSMineDispenser_Mag", // APERS Mine Dispenser + "APERSTripMine_Wire_Mag", // APERS Tripwire Mine + "ATMine_Range_Mag", // AT Mine + "B_IR_Grenade", // IR Grenade [NATO] + "Chemlight_blue", // Chemlight (Blue) + "Chemlight_green", // Chemlight (Green) + "Chemlight_red", // Chemlight (Red) + "Chemlight_yellow", // Chemlight (Yellow) + "ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge + "DemoCharge_Remote_Mag", // Explosive Charge + "Drone_Range_Mag_dummy", // AT Mine + "Drone_Range_Mag", // AT Mine + "HandGrenade", // RGO Grenade + "IEDLandBig_Remote_Mag", // Large IED (Dug-in) + "IEDLandSmall_Remote_Mag", // Small IED (Dug-in) + "IEDUrbanBig_Remote_Mag", // Large IED (Urban) + "IEDUrbanSmall_Remote_Mag", // Small IED (Urban) + "Laserbatteries", // Designator Batteries + "MiniGrenade", // RGN Grenade + "SatchelCharge_Remote_Mag", // Explosive Satchel + "SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine + "TrainingMine_Mag" // Training Mine +]; + +GRLIB_arsenal_items = [ + // Uniforms + "UK3CB_BAF_U_CombatUniform_Arctic_Ghillie_RM", // Combat Uniform Arctic Ghillie RM [BAF] + "UK3CB_BAF_U_CombatUniform_DDPM_Ghillie_RM", // Combat Uniform DDPPM Ghillie RM [BAF] + "UK3CB_BAF_U_CombatUniform_DDPM_RM", // Combat Uniform DDPM RM [BAF] + "UK3CB_BAF_U_CombatUniform_DDPM_ShortSleeve_RM", // Combat Uniform DDPM Rolled RM [BAF] + "UK3CB_BAF_U_CombatUniform_DDPM_ShortSleeve", // Combat Uniform DDPM Rolled [BAF] + "UK3CB_BAF_U_CombatUniform_DDPM", // Combat Uniform DDPM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMT_Ghillie_RM", // Combat Uniform DPM Tmp Ghillie RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMT_RM", // Combat Uniform DPM Tmp RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMT_ShortSleeve_RM", // Combat Uniform DPM Tmp Rolled RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMT_ShortSleeve", // Combat Uniform DPM Tmp Rolled [BAF] + "UK3CB_BAF_U_CombatUniform_DPMT", // Combat Uniform DPM Tmp [BAF] + "UK3CB_BAF_U_CombatUniform_DPMW_Ghillie_RM", // Combat Uniform DPM Wdl Ghillie RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMW_RM", // Combat Uniform DPM Wdl RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMW_ShortSleeve_RM", // Combat Uniform DPM Wdl Rolled RM [BAF] + "UK3CB_BAF_U_CombatUniform_DPMW_ShortSleeve", // Combat Uniform DPM Wdl Rolled [BAF] + "UK3CB_BAF_U_CombatUniform_DPMW", // Combat Uniform DPM Wdl [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_Ghillie_RM", // Combat Uniform MTP Ghillie RM [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_RM", // Combat Uniform MTP RM [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_ShortSleeve_RM", // Combat Uniform MTP Rolled RM [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_ShortSleeve", // Combat Uniform MTP Rolled [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_TShirt_RM", // Combat T-Shirt MTP RM [BAF] + "UK3CB_BAF_U_CombatUniform_MTP_TShirt", // Combat T-Shirt MTP [BAF] + "UK3CB_BAF_U_CombatUniform_MTP", // Combat Uniform MTP [BAF] + "UK3CB_BAF_U_CrewmanCoveralls_RTR", // Crewman Coveralls RTR [BAF] + "UK3CB_BAF_U_HeliPilotCoveralls_Army", // Heli Pilot Flight Suit Army [BAF] + "UK3CB_BAF_U_HeliPilotCoveralls_RAF", // Heli Pilot Flight Suit RAF [BAF] + "UK3CB_BAF_U_HeliPilotCoveralls_RN", // Heli Pilot Flight Suit EN [BAF] + "UK3CB_BAF_U_JumperUniform_DPMT", // Jumper Uniform DPM Tmp [BAF] + "UK3CB_BAF_U_JumperUniform_DPMW", // Jumper Uniform DPM Wdl [BAF] + "UK3CB_BAF_U_JumperUniform_MTP", // Jumper Uniform MTP [BAF] + "UK3CB_BAF_U_JumperUniform_Plain", // Jumper Uniform Plain [BAF] + "UK3CB_BAF_U_RolledUniform_MTP", // Rolled Shirt MTP [BAF] + "UK3CB_BAF_U_Smock_Arctic", // Smock Arctic [BAF] + "UK3CB_BAF_U_Smock_DDPM", // Smock DDPM [BAF] + "UK3CB_BAF_U_Smock_DPMT", // Smock DPM Tmp [BAF] + "UK3CB_BAF_U_Smock_DPMW_Arctic", // Smock DPM Wdl / Trousers Arctic [BAF] + "UK3CB_BAF_U_Smock_DPMW_DDPM", // Smock DPM Wdl / Trousers DDPM [BAF] + "UK3CB_BAF_U_Smock_DPMW_MTP", // Smock DPM Wdl / Trousers MTP [BAF] + "UK3CB_BAF_U_Smock_DPMW_OLI", // Smock DPM Wdl / Trousers Olive [BAF] + "UK3CB_BAF_U_Smock_DPMW", // Smock DPM Wdl [BAF] + "UK3CB_BAF_U_Smock_MTP_Arctic", // Smock MTP / Trousers Arctic [BAF] + "UK3CB_BAF_U_Smock_MTP_DDPM", // Smock MTP / Trousers DDPM [BAF] + "UK3CB_BAF_U_Smock_MTP_DPMW", // Smock MTP / Trousers DPM Wdl [BAF] + "UK3CB_BAF_U_Smock_MTP", // Smock MTP [BAF] + + // Headgear + "UK3CB_BAF_H_Beret_AAC_Over", // Beret Army Air Corps PRR Over [BAF] + "UK3CB_BAF_H_Beret_AAC_PRR", // Beret Army Air Corps PRR [BAF] + "UK3CB_BAF_H_Beret_AAC", // Beret Army Air Corps [BAF] + "UK3CB_BAF_H_Beret_BR_PRR_Over", // Beret Blues & Royals PRR Over [BAF] + "UK3CB_BAF_H_Beret_BR_PRR", // Beret Blues & Royals PRR [BAF] + "UK3CB_BAF_H_Beret_BR", // Beret Blues & Royals [BAF] + "UK3CB_BAF_H_Beret_CRArt_PRR_Over", // Beret Commando Royal Artillery PRR OVer [BAF] + "UK3CB_BAF_H_Beret_CRArt_PRR", // Beret Commando Royal Artillery PRR [BAF] + "UK3CB_BAF_H_Beret_CRArt", // Beret Commando Royal Artillery [BAF] + "UK3CB_BAF_H_Beret_CSG_PRR_Over", // Beret Coldstream Guards PRR Over [BAF] + "UK3CB_BAF_H_Beret_CSG_PRR", // Beret Coldstream Guards PRR [BAF] + "UK3CB_BAF_H_Beret_CSG", // Beret Coldstream Guards [BAF] + "UK3CB_BAF_H_Beret_GG_PRR_Over", // Beret Grenadier Guards PRR Over [BAF] + "UK3CB_BAF_H_Beret_GG_PRR", // Beret Grenadier Guards PRR [BAF] + "UK3CB_BAF_H_Beret_GG", // Beret Grenadier Guards [BAF] + "UK3CB_BAF_H_Beret_IG_PRR_Over", // Beret Irish Guards PRR Over [BAF] + "UK3CB_BAF_H_Beret_IG_PRR", // Beret Irish Guards PRR [BAF] + "UK3CB_BAF_H_Beret_IG", // Beret Irish Guards [BAF] + "UK3CB_BAF_H_Beret_LG_PRR_Over", // Beret Life Guards PRR Over [BAF] + "UK3CB_BAF_H_Beret_LG_PRR", // Beret Life Guards PRR [BAF] + "UK3CB_BAF_H_Beret_LG", // Beret Life Guards [BAF] + "UK3CB_BAF_H_Beret_Mer_PRR_Over", // Beret Mercian Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_Mer_PRR", // Beret Mercian Regt PRR [BAF] + "UK3CB_BAF_H_Beret_Mer", // Beret Mercian Regt [BAF] + "UK3CB_BAF_H_Beret_PR_PRR_Over", // Beret Parachute Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_PR_PRR", // Beret Parachute Regt PRR [BAF] + "UK3CB_BAF_H_Beret_PR", // Beret Parachute Regt [BAF] + "UK3CB_BAF_H_Beret_PWRR_PRR_Over", // Beret PWRR PRR Over [BAF] + "UK3CB_BAF_H_Beret_PWRR_PRR", // Beret PWRR PRR [BAF] + "UK3CB_BAF_H_Beret_PWRR", // Beret PWRR [BAF] + "UK3CB_BAF_H_Beret_RA_PRR_Over", // Beret Royal Anglian PRR Over [BAF] + "UK3CB_BAF_H_Beret_RA_PRR", // Beret Royal Anglian PRR [BAF] + "UK3CB_BAF_H_Beret_RA", // Beret Royal Anglian [BAF] + "UK3CB_BAF_H_Beret_RAF_PRR_Over", // Beret RAF PRR Over [BAF] + "UK3CB_BAF_H_Beret_RAF_PRR", // Beret RAF PRR [BAF] + "UK3CB_BAF_H_Beret_RAF", // Beret RAF [BAF] + "UK3CB_BAF_H_Beret_RAMC_Officer_PRR_Over", // Beret RAMC Ofc PRR Over [BAF] + "UK3CB_BAF_H_Beret_RAMC_Officer_PRR", // Beret RAMC Ofc PRR [BAF] + "UK3CB_BAF_H_Beret_RAMC_Officer", // Beret RAMC Ofc [BAF] + "UK3CB_BAF_H_Beret_RAMC_PRR_Over", // Beret RAMC Medic PRR Over [BAF] + "UK3CB_BAF_H_Beret_RAMC_PRR", // Beret RAMC Medic PRR [BAF] + "UK3CB_BAF_H_Beret_RAMC", // Beret RAMC Medic [BAF] + "UK3CB_BAF_H_Beret_RArt_PRR_Over", // Beret Royal Artillery PRR Over [BAF] + "UK3CB_BAF_H_Beret_RArt_PRR", // Beret Royal Artillery PRR [BAF] + "UK3CB_BAF_H_Beret_RArt", // Beret Royal Artillery [BAF] + "UK3CB_BAF_H_Beret_REng_PRR_Over", // Beret Royal Engineers PRR Over [BAF] + "UK3CB_BAF_H_Beret_REng_PRR", // Beret Royal Engineers PRR [BAF] + "UK3CB_BAF_H_Beret_REng", // Beret Royal Engineers [BAF] + "UK3CB_BAF_H_Beret_Rifles_PRR_Over", // Beret Rifles Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_Rifles_PRR", // Beret Rifles Regt PRR [BAF] + "UK3CB_BAF_H_Beret_Rifles", // Beret Rifles Regt [BAF] + "UK3CB_BAF_H_Beret_RLC_Commando_PRR_Over", // Beret Royal Logistics Coprs Cdo PRR Over [BFA] + "UK3CB_BAF_H_Beret_RLC_Commando_PRR", // Beret Royal Logistics Corps Cdo PRR [BFA] + "UK3CB_BAF_H_Beret_RLC_Commando", // Beret Royal Logistics Corps Cdo [BFA] + "UK3CB_BAF_H_Beret_RM_Bootneck_PRR_Over", // Beret Royal Marines Mne PRR Over [BAF] + "UK3CB_BAF_H_Beret_RM_Bootneck_PRR", // Beret Royal Marines Mne PRR [BAF] + "UK3CB_BAF_H_Beret_RM_Bootneck", // Beret Royal Marines Mne [BAF] + "UK3CB_BAF_H_Beret_RM_Officer_PRR_Over", // Beret Royal Marines Ofc PRR Over [BAF] + "UK3CB_BAF_H_Beret_RM_Officer_PRR", // Beret Royal Marines Ofc PRR [BAF] + "UK3CB_BAF_H_Beret_RM_Officer", // Beret Royal Marines Ofc [BAF] + "UK3CB_BAF_H_Beret_RM_Parade", // Beret Royal Marines Parade [BAF] + "UK3CB_BAF_H_Beret_RM_Recruit_PRR_Over", // Beret Royal Marines Rct PRR Over [BAF] + "UK3CB_BAF_H_Beret_RM_Recruit_PRR", // Beret Royal Marines Rct PRR [BAF] + "UK3CB_BAF_H_Beret_RM_Recruit", // Beret Royal Marines Rct [BAF] + "UK3CB_BAF_H_Beret_RMP_Over", // Beret Royal Military Police PRR Over [BAF] + "UK3CB_BAF_H_Beret_RMP_PRR", // Beret Royal Military Police PRR [BAF] + "UK3CB_BAF_H_Beret_RMP", // Beret Royal Military Police [BAF] + "UK3CB_BAF_H_Beret_RTR_PRR_Over", // Beret Royal Tank Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_RTR_PRR", // Beret Royal Tank Regt PRR [BAF] + "UK3CB_BAF_H_Beret_RTR", // Beret Royal Tank Regt [BAF] + "UK3CB_BAF_H_Beret_RW_PRR_Over", // Beret Royal Welsh PRR Over [BAF] + "UK3CB_BAF_H_Beret_RW_PRR", // Beret Royal Welsh PRR [BAF] + "UK3CB_BAF_H_Beret_RW", // Beret Royal Welsh [BAF] + "UK3CB_BAF_H_Beret_SAS_PRR_Over", // Beret SAS PRR Over [BAF] + "UK3CB_BAF_H_Beret_SAS_PRR", // Beret SAS PRR [BAF] + "UK3CB_BAF_H_Beret_SAS", // Beret SAS [BAF] + "UK3CB_BAF_H_Beret_SBS_PRR_Over", // Beret SBS PRR Over [BAF] + "UK3CB_BAF_H_Beret_SBS_PRR", // Beret SBS PRR [BAF] + "UK3CB_BAF_H_Beret_SBS", // Beret SBS [BAF] + "UK3CB_BAF_H_Beret_SG_PRR_Over", // Beret Scots Guard PRR Over [BAF] + "UK3CB_BAF_H_Beret_SG_PRR", // Beret Scots Guard PRR [BAF] + "UK3CB_BAF_H_Beret_SG", // Beret Scots Guard [BAF] + "UK3CB_BAF_H_Beret_Signals_PRR_Over", // Beret Royal Signals Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_Signals_PRR", // Beret Royal Signals Regt PRR [BAF] + "UK3CB_BAF_H_Beret_Signals", // Beret Royal Signals Regt [BAF] + "UK3CB_BAF_H_Beret_SR_PRR_Over", // Beret Scottish Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_SR_PRR", // Beret Scottish Regt PRR [BAF] + "UK3CB_BAF_H_Beret_SR", // Beret Scottish Regt [BAF] + "UK3CB_BAF_H_Beret_TYR_PRR_Over", // Beret Yorkshire Regt PRR Over [BAF] + "UK3CB_BAF_H_Beret_TYR_PRR", // Beret Yorkshire Regt PRR [BAF] + "UK3CB_BAF_H_Beret_TYR", // Beret Yorkshire Regt [BAF] + "UK3CB_BAF_H_Beret_UN_Officer_PRR_Over", // Beret UN Ofc PRR Over [BAF] + "UK3CB_BAF_H_Beret_UN_Officer_PRR", // Beret UN Ofc PRR [BAF] + "UK3CB_BAF_H_Beret_UN_Officer", // Beret UN Ofc [BAF] + "UK3CB_BAF_H_Beret_UN_PRR_Over", // Beret UN PRR Over [BAF] + "UK3CB_BAF_H_Beret_UN_PRR", // Beret UN PRR [BAF] + "UK3CB_BAF_H_Beret_UN", // Beret UN [BAF] + "UK3CB_BAF_H_Beret_WG_PRR_Over", // Beret Welsh Guards PRR Over [BAF] + "UK3CB_BAF_H_Beret_WG_PRR", // Beret Welsh Guards PRR [BAF] + "UK3CB_BAF_H_Beret_WG", // Beret Welsh Guards [BAF] + "UK3CB_BAF_H_Boonie_DDPM_PRR", // Boonie DDPM PRR (Under) [BAF] + "UK3CB_BAF_H_Boonie_DDPM", // Boonie DDPM [BAF] + "UK3CB_BAF_H_Boonie_DPMT_PRR", // Boonie DPM Tmp PRR (Under) [BAF] + "UK3CB_BAF_H_Boonie_DPMT", // Boonie DPM Tmp [BAF] + "UK3CB_BAF_H_Boonie_DPMW_PRR", // Boonie DPM Wdl PRR (Under) [BAF] + "UK3CB_BAF_H_Boonie_DPMW", // Boonie DPM Wdl [BAF] + "UK3CB_BAF_H_Boonie_MTP_PRR", // Boonie MTP PRR (Under) [BAF] + "UK3CB_BAF_H_Boonie_MTP", // Boonie MTP [BAF] + "UK3CB_BAF_H_CrewHelmet_A", // Crew Helmet MTP [BAF] + "UK3CB_BAF_H_CrewHelmet_B", // Crew Helmet Uncovered [BAF] + "UK3CB_BAF_H_CrewHelmet_DDPM_A", // Crew Helmet DDPM [BAF] + "UK3CB_BAF_H_CrewHelmet_DDPM_ESS_A", // Crew Helmet DDPM ESS [BAF] + "UK3CB_BAF_H_CrewHelmet_DPMT_A", // Crew Helmet DPM Tmp ESS [BAF] + "UK3CB_BAF_H_CrewHelmet_DPMT_ESS_A", // Crew Helmet DPM Tmp [BAF] + "UK3CB_BAF_H_CrewHelmet_DPMW_A", // Crew Helmet DPM Wdl [BAF] + "UK3CB_BAF_H_CrewHelmet_DPMW_ESS_A", // Crew Helmet DPM Wdl ESS [BAF] + "UK3CB_BAF_H_CrewHelmet_ESS_A", // Crew Helmet MTP ESS [BAF] + "UK3CB_BAF_H_Earphone", // Ear Defender Headset [BAF] + "UK3CB_BAF_H_Headset_PRR", // Headset PRR [BAF] + "UK3CB_BAF_H_Mk6_DDPM_A", // Helmet Mk6 DDPM (A) [BAF] + "UK3CB_BAF_H_Mk6_DDPM_B", // Helmet Mk6 DDPM (B) [BAF] + "UK3CB_BAF_H_Mk6_DDPM_C", // Helmet Mk6 DDPM Net (A) [BAF] + "UK3CB_BAF_H_Mk6_DDPM_D", // Helmet Mk6 DDPM Net ESS (A) [BAF] + "UK3CB_BAF_H_Mk6_DDPM_E", // Helmet Mk6 DDPM Net ESS (B) [BAF] + "UK3CB_BAF_H_Mk6_DDPM_F", // Helmet Mk6 DDPM Net ESS (C) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_A", // Helmet Mk6 DPM Tmp (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_B", // Helmet Mk6 DPM Tmp (B) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_C", // Helmet Mk6 DPM Tmp Net (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_D", // Helmet Mk6 DPM Tmp Net ESS (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_E", // Helmet Mk6 DPM Tmp Net ESS (B) [BAF] + "UK3CB_BAF_H_Mk6_DPMT_F", // Helmet Mk6 DPM Tmp Net ESS (C) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_A", // Helmet Mk6 DPM Wdl (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_B", // Helmet Mk6 DPM Wdl (B) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_C", // Helmet Mk6 DPM Wdl Net (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_D", // Helmet Mk6 DPM Wdl Net ESS (A) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_E", // Helmet Mk6 DPM Wdl Net ESS (B) [BAF] + "UK3CB_BAF_H_Mk6_DPMW_F", // Helmet Mk6 DPM Wdl Net ESS (C) [BAF] + "UK3CB_BAF_H_Mk7_Camo_A", // Helmet Mk7 MTP (A) [BAF] + "UK3CB_BAF_H_Mk7_Camo_B", // Helmet Mk7 MTP (B) [BAF] + "UK3CB_BAF_H_Mk7_Camo_C", // Helmet Mk7 MTP (C) [BAF] + "UK3CB_BAF_H_Mk7_Camo_CESS_A", // Helmet Mk7 MTP {ESS} (A) [BAF] + "UK3CB_BAF_H_Mk7_Camo_CESS_B", // Helmet Mk7 MTP {ESS} (B) [BAF] + "UK3CB_BAF_H_Mk7_Camo_CESS_C", // Helmet Mk7 MTP {ESS} (C) [BAF] + "UK3CB_BAF_H_Mk7_Camo_CESS_D", // Helmet Mk7 MTP {ESS} (D) [BAF] + "UK3CB_BAF_H_Mk7_Camo_D", // Helmet Mk7 MTP (D) [BAF] + "UK3CB_BAF_H_Mk7_Camo_E", // Helmet Mk7 MTP (E) [BAF] + "UK3CB_BAF_H_Mk7_Camo_ESS_A", // Helmet Mk7 MTP ESS (A) [BAF] + "UK3CB_BAF_H_Mk7_Camo_ESS_B", // Helmet Mk7 MTP ESS (B) [BAF] + "UK3CB_BAF_H_Mk7_Camo_ESS_C", // Helmet Mk7 MTP ESS (C) [BAF] + "UK3CB_BAF_H_Mk7_Camo_ESS_D", // Helmet Mk7 MTP ESS (D) [BAF] + "UK3CB_BAF_H_Mk7_Camo_F", // Helmet Mk7 MTP (F) [BAF] + "UK3CB_BAF_H_Mk7_HiVis", // Helmet Mk7 Hi-Vis [BAF] + "UK3CB_BAF_H_Mk7_Net_A", // Helmet Mk7 MTP Net (A) [BAF] + "UK3CB_BAF_H_Mk7_Net_B", // Helmet Mk7 MTP Net (B) [BAF] + "UK3CB_BAF_H_Mk7_Net_C", // Helmet Mk7 MTP Net (C) [BAF] + "UK3CB_BAF_H_Mk7_Net_CESS_A", // Helmet Mk7 MTP Net {ESS} (A) [BAF] + "UK3CB_BAF_H_Mk7_Net_CESS_B", // Helmet Mk7 MTP Net {ESS} (B) [BAF] + "UK3CB_BAF_H_Mk7_Net_CESS_C", // Helmet Mk7 MTP Net {ESS} (C) [BAF] + "UK3CB_BAF_H_Mk7_Net_CESS_D", // Helmet Mk7 MTP Net {ESS} (D) [BAF] + "UK3CB_BAF_H_Mk7_Net_D", // Helmet Mk7 MTP Net (D) [BAF] + "UK3CB_BAF_H_Mk7_Net_ESS_A", // Helmet Mk7 MTP Net ESS (A) [BAF] + "UK3CB_BAF_H_Mk7_Net_ESS_B", // Helmet Mk7 MTP Net ESS (B) [BAF] + "UK3CB_BAF_H_Mk7_Net_ESS_C", // Helmet Mk7 MTP Net ESS (C) [BAF] + "UK3CB_BAF_H_Mk7_Net_ESS_D", // Helmet Mk7 MTP Net ESS (D) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_A", // Helmet Mk7 MTP Scrim (A) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_B", // Helmet Mk7 MTP Scrim (B) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_C", // Helmet Mk7 MTP Scrim (C) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_D", // Helmet Mk7 MTP Scrim (D) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_E", // Helmet Mk7 MTP Scrim (E) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_ESS_A", // Helmet Mk7 MTP Scrim ESS (A) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_ESS_B", // Helmet Mk7 MTP Scrim ESS (B) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_ESS_C", // Helmet Mk7 MTP Scrim ESS (C) [BAF] + "UK3CB_BAF_H_Mk7_Scrim_F", // Helmet Mk7 MTP Scrim (F) [BAF] + "UK3CB_BAF_H_Mk7_Win_A", // Helmet Mk7 Arctic [BAF] + "UK3CB_BAF_H_Mk7_Win_ESS_A", // Helmet Mk7 Arctic ESS [BAF] + "UK3CB_BAF_H_PilotHelmetHeli_A", // Heli Pilot Helmet (A) [BAF] + "UK3CB_BAF_H_Wool_Hat", // Wool Commando Hat [BAF] + + // Facegear + "UK3CB_BAF_G_Balaclava_Win", // Balaclava Arctic + "UK3CB_BAF_G_Tactical_Black", // Tactical Glasses (Black) [BAF] + "UK3CB_BAF_G_Tactical_Clear", // Tactical Glasses (Clear) [BAF] + "UK3CB_BAF_G_Tactical_Grey", // Tactical Glasses (Grey) [BAF] + "UK3CB_BAF_G_Tactical_Orange", // Tactical Glasses (Orange)[BAF] + "UK3CB_BAF_G_Tactical_Yellow", // Tactical Glasses (Yellow) [BAF] + + // Vests + "UK3CB_BAF_V_HiVis", // Hi-Vis Jacket [BAF] + "UK3CB_BAF_V_Osprey_Winter", // Osprey Mk2 Arctic [BAF] + "UK3CB_BAF_V_Osprey_DDPM1", // Osprey Mk2 DDPM (A) [BAF] + "UK3CB_BAF_V_Osprey_DDPM2", // Osprey Mk2 DDPM (B) [BAF] + "UK3CB_BAF_V_Osprey_DDPM3", // Osprey Mk2 DDPM (C) [BAF] + "UK3CB_BAF_V_Osprey_DDPM4", // Osprey Mk2 DDPM (D) [BAF] + "UK3CB_BAF_V_Osprey_DDPM5", // Osprey Mk2 DDPM (E) [BAF] + "UK3CB_BAF_V_Osprey_DDPM6", // Osprey Mk2 DDPM (F) [BAF] + "UK3CB_BAF_V_Osprey_DDPM7", // Osprey Mk2 DDPM (G) [BAF] + "UK3CB_BAF_V_Osprey_DDPM8", // Osprey Mk2 DDPM (H) [BAF] + "UK3CB_BAF_V_Osprey_DDPM9", // Osprey Mk2 DDPM (I) [BAF] + "UK3CB_BAF_V_Osprey_DPMT1", // Osprey Mk2 DPM Tmp (A) [BAF] + "UK3CB_BAF_V_Osprey_DPMT2", // Osprey Mk2 DPM Tmp (B) [BAF] + "UK3CB_BAF_V_Osprey_DPMT3", // Osprey Mk2 DPM Tmp (C) [BAF] + "UK3CB_BAF_V_Osprey_DPMT4", // Osprey Mk2 DPM Tmp (D) [BAF] + "UK3CB_BAF_V_Osprey_DPMT5", // Osprey Mk2 DPM Tmp (E) [BAF] + "UK3CB_BAF_V_Osprey_DPMT6", // Osprey Mk2 DPM Tmp (F) [BAF] + "UK3CB_BAF_V_Osprey_DPMT7", // Osprey Mk2 DPM Tmp (G) [BAF] + "UK3CB_BAF_V_Osprey_DPMT8", // Osprey Mk2 DPM Tmp (H) [BAF] + "UK3CB_BAF_V_Osprey_DPMT9", // Osprey Mk2 DPM Tmp (I) [BAF] + "UK3CB_BAF_V_Osprey_DPMW1", // Osprey Mk2 DPM Wdl (A) [BAF] + "UK3CB_BAF_V_Osprey_DPMW2", // Osprey Mk2 DPM Wdl (B) [BAF] + "UK3CB_BAF_V_Osprey_DPMW3", // Osprey Mk2 DPM Wdl (C) [BAF] + "UK3CB_BAF_V_Osprey_DPMW4", // Osprey Mk2 DPM Wdl (D) [BAF] + "UK3CB_BAF_V_Osprey_DPMW5", // Osprey Mk2 DPM Wdl (E) [BAF] + "UK3CB_BAF_V_Osprey_DPMW6", // Osprey Mk2 DPM Wdl (F) [BAF] + "UK3CB_BAF_V_Osprey_DPMW7", // Osprey Mk2 DPM Wdl (G) [BAF] + "UK3CB_BAF_V_Osprey_DPMW8", // Osprey Mk2 DPM Wdl (H) [BAF] + "UK3CB_BAF_V_Osprey_DPMW9", // Osprey Mk2 DPM Wdl (I) [BAF] + "UK3CB_BAF_V_Osprey_HiVis", // Osprey Mk2 Hi-Vis [BAF] + "UK3CB_BAF_V_Osprey_Lite", // Osprey Mk4-L MTP [BAF] + "UK3CB_BAF_V_Osprey", // Osprey Mk4 MTP [BAF] + "UK3CB_BAF_V_Osprey_Belt_A", // Osprey Mk4 MTP Belt [BAF] + "UK3CB_BAF_V_Osprey_Grenadier_A", // Osprey Mk4 MTP Grenadier (A) [BAF] + "UK3CB_BAF_V_Osprey_Grenadier_B", // Osprey Mk4 MTP Grenadier (B) [BAF] + "UK3CB_BAF_V_Osprey_Holster", // Osprey Mk4 MTP Holster [BAF] + "UK3CB_BAF_V_Osprey_Marksman_A", // Osprey Mk4 MTP Marksman [BAF] + "UK3CB_BAF_V_Osprey_Medic_A", // Osprey Mk4 MTP Medic (A) [BAF] + "UK3CB_BAF_V_Osprey_Medic_B", // Osprey Mk4 MTP Medic (B) [BAF] + "UK3CB_BAF_V_Osprey_Medic_C", // Osprey Mk4 MTP Medic (C) [BAF] + "UK3CB_BAF_V_Osprey_Medic_D", // Osprey Mk4 MTP Medic (D) [BAF] + "UK3CB_BAF_V_Osprey_MG_A", // Osprey Mk4 MTP MG (A) [BAF] + "UK3CB_BAF_V_Osprey_MG_B", // Osprey Mk4 MTP MG (B) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_A", // Osprey Mk4 MTP Rifleman (A) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_B", // Osprey Mk4 MTP Rifleman (B) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_C", // Osprey Mk4 MTP Rifleman (C) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_D", // Osprey Mk4 MTP Rifleman (D) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_E", // Osprey Mk4 MTP Rifleman (E) [BAF] + "UK3CB_BAF_V_Osprey_Rifleman_F", // Osprey Mk4 MTP Rifleman (F) [BAF] + "UK3CB_BAF_V_Osprey_SL_A", // Osprey Mk4 MTP SL (A) [BAF] + "UK3CB_BAF_V_Osprey_SL_B", // Osprey Mk4 MTP SL (B) [BAF] + "UK3CB_BAF_V_Osprey_SL_C", // Osprey Mk4 MTP SL (C) [BAF] + "UK3CB_BAF_V_Osprey_SL_D", // Osprey Mk4 MTP SL (D) [BAF] + "UK3CB_BAF_V_Pilot_DDPM", // Pilot Vest DDPM [BAF] + "UK3CB_BAF_V_Pilot_DPMT", // Pilot Vest DPM Tmp [BAF] + "UK3CB_BAF_V_Pilot_DPMW", // Pilot Vest DPM Wdl [BAF] + "UK3CB_BAF_V_Pilot_A", // Pilot Vest MTP [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_Winter", // PLCE Webbing (Plate) Arctic [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_DDPM", // PLCE Webbing (Plate) DDPM [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_DPMT", // PLCE Webbing (Plate) DPM Tmp [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_DPMW", // PLCE Webbing (Plate) DPM Wdl [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_MTP", // PLCE Webbing (Plate) MTP [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Plate_OLI", // PLCE Webbing (Plate) Olive [BAF] + "UK3CB_BAF_V_PLCE_Webbing_Winter", // PLCE Webbing Arctic [BAF] + "UK3CB_BAF_V_PLCE_Webbing_DDPM", // PLCE Webbing DDPM [BAF] + "UK3CB_BAF_V_PLCE_Webbing_DPMT", // PLCE Webbing DPM Tmp [BAF] + "UK3CB_BAF_V_PLCE_Webbing_DPMW", // PLCE Webbing DPM Wdl [BAF] + "UK3CB_BAF_V_PLCE_Webbing_MTP", // PLCE Webbing MTP [BAF] + + // Items + "muzzle_snds_B", // Sound Suppressor (7.62 mm) + "muzzle_snds_L", // Sound Suppressor (9mm) + "RKSL_optic_EOT552_C", // EOTech 552.A65/1 (Coyote) + "RKSL_optic_EOT552", // EOTech 552.A65/1 + "RKSL_optic_EOT552X_C", // EOTech 552.XR308 (Coyote) + "RKSL_optic_EOT552X", // EOTech 552.XR308 + "RKSL_optic_LDS_C", // LDS (Coyote) + "RKSL_optic_LDS", // LDS + "RKSL_optic_PMII_312_des", // S+B 3-12x50 PM II (D) + "RKSL_optic_PMII_312_sunshade_des", // S+B 3-12x50 PM II (sunshade) (D) + "RKSL_optic_PMII_312_sunshade_wdl", // S+B 3-12x50 PM II (sunshade) (W) + "RKSL_optic_PMII_312_sunshade", // S+B 3-12x50 PM II (sunshade) + "RKSL_optic_PMII_312_wdl", // S+B 3-12x50 PM II (W) + "RKSL_optic_PMII_312", // S+B 3-12x50 PM II + "RKSL_optic_PMII_525_des", // S+B 5-25x56 PM II (D) + "RKSL_optic_PMII_525_wdl", // S+B 5-25x56 PM II (W) + "RKSL_optic_PMII_525", // S+B 5-25x56 PM II + "RKSL_optic_RMR_MS19_FDE", // RMR (MS19) (FDE) + "RKSL_optic_RMR_MS19", // RMR (MS19) + "RKSL_optic_RMR_RM33_FDE", // RMR (RM33) (FDE) + "RKSL_optic_RMR_RM33", // RMR (RM33) + "UK3CB_BAF_BFA_L110", // Blank Fire Adaptor (L110) + "UK3CB_BAF_BFA_L129", // Blank Fire Adaptor (L129) + "UK3CB_BAF_BFA_L7", // Blank Fire Adaptor (L7) + "UK3CB_BAF_BFA_L85", // Blank Fire Adaptor (L85) + "UK3CB_BAF_Flashlight_L105A1", // Flashlight (L105A1) + "UK3CB_BAF_Flashlight_L131A1", // Flashlight (L131A1) + "UK3CB_BAF_HMNVS", // Head-Mounted NV System [BAF] + "UK3CB_BAF_Javelin_CLU", // Javelin CLU + "UK3CB_BAF_Kite", // KITE + "UK3CB_BAF_L105A1_LLM_IR_G", // Steiner DBAL-PL (Green) + "UK3CB_BAF_L105A1_LLM_IR_R", // Steiner DBAL-PL (Red) + "UK3CB_BAF_Laser_L131A1", // Glock-17 Laser (IR) + "UK3CB_BAF_LLM_Flashlight_Black", // LLM Mk3 Flashlight (Black) + "UK3CB_BAF_LLM_Flashlight_Tan", // LLM Mk3 Flashlight (Tan) + "UK3CB_BAF_LLM_IR_Black", // LLM Mk3 IR (Black) + "UK3CB_BAF_LLM_IR_Tan", // LLM Mk3 IR (Tan) + "UK3CB_BAF_MaxiKite", // KITE (MAXIKITE) + "UK3CB_BAF_SFFH", // Surefire Flash Hider + "UK3CB_BAF_Silencer_L105A1", // Suppressor (L105A1) + "UK3CB_BAF_Silencer_L110", // Suppressor (L110) + "UK3CB_BAF_Silencer_L115A3", // Suppressor (L115/L129) + "UK3CB_BAF_Silencer_L85", // Suppressor (L85) + "UK3CB_BAF_Silencer_L91A1", // Suppressor (L91A1) + "UK3CB_BAF_Soflam_Laserdesignator", // AN/PEQ-1 SOFLAM + "UK3CB_BAF_SpecterLDS", // LDS (without Reflex) + "UK3CB_BAF_SUIT", // SUIT L2A2 + "UK3CB_BAF_SUSAT", // SUSAT L6A1 + "UK3CB_BAF_TA31F", // Trijicon ACOG TA31F + "UK3CB_BAF_TA648_308", // Trijicon ACOG TA648RMR-308 + "UK3CB_BAF_TA648", // Trijicon ACOG TA648RMR + "UK3CB_underbarrel_acc_afg_d", // A-grip (Desert) + "UK3CB_underbarrel_acc_afg_g", // A-grip (Green) + "UK3CB_underbarrel_acc_afg_t", // A-grip (Tan) + "UK3CB_underbarrel_acc_afg_w", // A-grip (Winter) + "UK3CB_underbarrel_acc_afg", // A-grip (Black) + "UK3CB_underbarrel_acc_bipod", // Harris Bipod + "UK3CB_underbarrel_acc_fgrip_bipod", // Folding-grip and Harris Bipod + "UK3CB_underbarrel_acc_fgrip", // Folding-grip + "UK3CB_underbarrel_acc_grippod_d", // Grip-pod (Desert) + "UK3CB_underbarrel_acc_grippod_g", // Grip-pod (Green) + "UK3CB_underbarrel_acc_grippod_t", // Grip-pod (Tan) + "UK3CB_underbarrel_acc_grippod_w", // Grip-pod (Winter) + "UK3CB_underbarrel_acc_grippod", // Grip-pod (Black) + + // Vanilla Standard Items + "acc_flashlight", // Flashlight + "acc_pointer_IR", // IR Laser Pointer + "B_UavTerminal", // UAV Terminal [NATO] + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "G_B_Diving", // Diving Goggles [NATO] + "H_PilotHelmetFighter_B", // Pilot Helmet [NATO] + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "Laserdesignator_03", // Laser Designator (Olive) + "Laserdesignator", // Laser Designator (Sand) + "Medikit", // Medikit + "MineDetector", // Mine Detector + "NVGoggles_INDEP", // NV Goggles (Green) + "NVGoggles_OPFOR", // NV Goggles (Black) + "NVGoggles_tna_F", // NV Goggles (Tropic) + "NVGoggles", // NV Goggles (Brown) + "NVGogglesB_blk_F", // ENVG-II (Black) + "NVGogglesB_grn_F", // ENVG-II (Green) + "NVGogglesB_gry_F", // ENVG-II (Grey) + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "V_RebreatherB", // Rebreather [NATO] + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "UK3CB_BAF_B_Bergen_Arctic_JTAC_A", // Bergen Arctic JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_Arctic_JTAC_H_A", // Bergen Arctic JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_Arctic_Rifleman_A", // Bergen Arctic Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_Arctic_Rifleman_B", // Bergen Arctic Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_Arctic_SL_A", // Bergen Arctic SL [BAF] + "UK3CB_BAF_B_Bergen_DDPM_JTAC_A", // Bergen DDPM JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_DDPM_JTAC_H_A", // Bergen DDPM JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_DDPM_Rifleman_A", // Bergen DDPM Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_DDPM_Rifleman_B", // Bergen DDPM Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_DDPM_SL_A", // Bergen DDPM SL [BAF] + "UK3CB_BAF_B_Bergen_DPMT_JTAC_A", // Bergen DPM Tmp JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_DPMT_JTAC_H_A", // Bergen DPM Tmp JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_DPMT_Rifleman_A", // Bergen DPM Tmp Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_DPMT_Rifleman_B", // Bergen DPM Tmp Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_DPMT_SL_A", // Bergen DPM Tmp SL [BAF] + "UK3CB_BAF_B_Bergen_DPMW_JTAC_A", // Bergen DPM Wdl JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_DPMW_JTAC_H_A", // Bergen DPM Wdl JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_DPMW_Rifleman_A", // Bergen DPM Wdl Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_DPMW_Rifleman_B", // Bergen DPM Wdl Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_DPMW_SL_A", // Bergen DPM Wdl SL [BAF] + "UK3CB_BAF_B_Bergen_MTP_Engineer_H_A", // Bergen MTP Engineer H [BAF] + "UK3CB_BAF_B_Bergen_MTP_Engineer_L_A", // Bergen MTP Engineer L [BAF] + "UK3CB_BAF_B_Bergen_MTP_JTAC_H_A", // Bergen MTP JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_MTP_JTAC_L_A", // Bergen MTP JTAC/FAC L [BAF] + "UK3CB_BAF_B_Bergen_MTP_Medic_H_A", // Bergen MTP Medic H (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Medic_H_B", // Bergen MTP Medic H (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Medic_L_A", // Bergen MTP Medic L (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Medic_L_B", // Bergen MTP Medic L (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_PointMan_H_A", // Bergen MTP Point Man H [BAF] + "UK3CB_BAF_B_Bergen_MTP_PointMan_L_A", // Bergen MTP Point Man L [BAF] + "UK3CB_BAF_B_Bergen_MTP_Radio_H_A", // Bergen MTP Radio H (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Radio_H_B", // Bergen MTP Radio H (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Radio_L_A", // Bergen MTP Radio L (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Radio_L_B", // Bergen MTP Radio L (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_H_A", // Bergen MTP Rifleman H (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_H_B", // Bergen MTP Rifleman H (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_H_C", // Bergen MTP Rifleman H (C) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_L_A", // Bergen MTP Rifleman L (A) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_L_B", // Bergen MTP Rifleman L (B) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_L_C", // Bergen MTP Rifleman L (C) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_L_D", // Bergen MTP Rifleman L (D) [BAF] + "UK3CB_BAF_B_Bergen_MTP_Rifleman_XL_A", // Bergen MTP Rifleman XL [BAF] + "UK3CB_BAF_B_Bergen_MTP_Sapper_H_A", // Bergen MTP Sapper H [BAF] + "UK3CB_BAF_B_Bergen_MTP_Sapper_L_A", // Bergen MTP Sapper L [BAF] + "UK3CB_BAF_B_Bergen_MTP_SL_H_A", // Bergen MTP SL H [BAF] + "UK3CB_BAF_B_Bergen_MTP_SL_L_A", // Bergen MTP SL L [BAF] + "UK3CB_BAF_B_Bergen_OLI_JTAC_A", // Bergen Olive JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_OLI_JTAC_H_A", // Bergen Olive JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_OLI_Rifleman_A", // Bergen Olive Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_OLI_Rifleman_B", // Bergen Olive Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_OLI_SL_A", // Bergen Olive SL [BAF] + "UK3CB_BAF_B_Bergen_TAN_JTAC_A", // Bergen Tan JTAC/FAC [BAF] + "UK3CB_BAF_B_Bergen_TAN_JTAC_H_A", // Bergen Tan JTAC/FAC H [BAF] + "UK3CB_BAF_B_Bergen_TAN_Rifleman_A", // Bergen Tan Rifleman A [BAF] + "UK3CB_BAF_B_Bergen_TAN_Rifleman_B", // Bergen Tan Rifleman B [BAF] + "UK3CB_BAF_B_Bergen_TAN_SL_A", // Bergen Tan SL [BAF] + "UK3CB_BAF_B_Carryall_Arctic", // Carryall Arctic [BAF] + "UK3CB_BAF_B_Carryall_DDPM", // Carryall DDPM [BAF] + "UK3CB_BAF_B_Carryall_DPMT", // Carryall DPM Tmp [BAF] + "UK3CB_BAF_B_Carryall_DPMW", // Carryall DPM Wdl [BAF] + "UK3CB_BAF_B_Carryall_MTP", // Carryall MTP [BAF] + "UK3CB_BAF_B_Carryall_OLI", // Carryall Olive [BAF] + "UK3CB_BAF_B_Carryall_TAN", // Carryall Tan [BAF] + "UK3CB_BAF_B_Kitbag_Arctic", // Kitbag Arcic [BAF] + "UK3CB_BAF_B_Kitbag_DDPM", // Kitbag DDPM [BAF] + "UK3CB_BAF_B_Kitbag_DPMT", // Kitbag DPM Tmp [BAF] + "UK3CB_BAF_B_Kitbag_DPMW", // Kitbag DPM Wdl [BAF] + "UK3CB_BAF_B_Kitbag_MTP", // Kitbag MTP [BAF] + "UK3CB_BAF_B_Kitbag_OLI", // Kitbag Olive [BAF] + "UK3CB_BAF_B_Kitbag_TAN", // Kitbag Tan [BAF] + + // Vanilla Standard Backpacks + "B_Parachute", // Steerable Parachute + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anarc164", // AN/ARC-164 + "tf_anarc210", // AN/ARC-210 + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_anprc155", // AN/PRC 155 + "tf_bussole", // Assault Pack Bussole + "tf_mr3000_multicam", // MR3000 Multicam + "tf_mr3000", // MR3000 + "tf_mr6000l", // MR6000L + "tf_rt1523g_big", // RT-1523G (ASIP) Big + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage", // RT-1523G (ASIP) Sage + "tf_rt1523g" // RT-1523G (ASIP) +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/bwmod.sqf b/kp_liberation.brf_sumava/arsenal_presets/bwmod.sqf new file mode 100644 index 0000000..45a9c2c --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/bwmod.sqf @@ -0,0 +1,531 @@ +/* + BWMod Arsenal Preset + Last Update: 2020-05-08 + + Needed: + - BWMod - https://steamcommunity.com/sharedfiles/filedetails/?id=1200127537 + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "BWA3_Bunkerfaust", // Bunkerfaust + "BWA3_CarlGustav", // Leuchtbüchse 84 mm + "BWA3_Fliegerfaust", // Fliegerfaust 2 Stinger + "BWA3_G27_AG40_tan", // G27 AG40-2 (Tan) + "BWA3_G27_AG40", // G27 AG40-2 + "BWA3_G27_tan", // G27 (Tan) + "BWA3_G27", // G27 + "BWA3_G28_Patrol", // G28 E2 (Patrol) + "BWA3_G28", // G28 E2 (Standard) + "BWA3_G29", // G29 + "BWA3_G36A1_AG40_green", // G36A1 AG40-2 (Green) + "BWA3_G36A1_AG40_tan", // G36A1 AG40-2 (Tan) + "BWA3_G36A1_AG40", // G36A1 AG40-2 + "BWA3_G36A1_green", // G36A1 (Green) + "BWA3_G36A1_tan", // G36A1 (Tan) + "BWA3_G36A1", // G36A1 + "BWA3_G36A2_AG40_green", // G36A2 AG40-2 (Green) + "BWA3_G36A2_AG40_tan", // G36A2 AG40-2 (Tan) + "BWA3_G36A2_AG40", // G36A2 AG40-2 + "BWA3_G36A2_green", // G36A2 (Green) + "BWA3_G36A2_tan", // G36A2 (Tan) + "BWA3_G36A2", // G36A2 + "BWA3_G36A3_AG40_green", // G36A3 AG40-2 (Green) + "BWA3_G36A3_AG40_tan", // G36A3 AG40-2 (Tan) + "BWA3_G36A3_AG40", // G36A3 AG40-2 + "BWA3_G36A3_green", // G36A3 (Green) + "BWA3_G36A3_tan", // G36A3 (Tan) + "BWA3_G36A3", // G36A3 + "BWA3_G36KA0_green", // G36KA0 (Green) + "BWA3_G36KA0_tan", // G36KA0 (Tan) + "BWA3_G36KA0", // G36KA0 + "BWA3_G36KA1_green", // G36KA1 (Green) + "BWA3_G36KA1_tan", // G36KA1 (Tan) + "BWA3_G36KA1", // G36KA1 + "BWA3_G36KA2_green", // G36KA2 (Green) + "BWA3_G36KA2_tan", // G36KA2 (Tan) + "BWA3_G36KA2", // G36KA2 + "BWA3_G36KA3_green", // G36KA3 (Green) + "BWA3_G36KA3_tan", // G36KA3 (Tan) + "BWA3_G36KA3", // G36KA3 + "BWA3_G36KA4_green", // G36KA4 (Green) + "BWA3_G36KA4_tan", // G36KA4 (Tan) + "BWA3_G36KA4", // G36KA4 + "BWA3_G38_AG40_tan", // G38 AG40-2 (Tan) + "BWA3_G38_AG40", // G38 AG40-2 + "BWA3_G38_tan", // G38 (Tan) + "BWA3_G38", // G38 + "BWA3_G38C_tan", // G38C (Tan) + "BWA3_G38C", // G38C + "BWA3_G38K_AG40_tan", // G38K AG40-2 (Tan) + "BWA3_G38K_AG40", // G38K AG40-2 + "BWA3_G38K_tan", // G38K (Tan) + "BWA3_G38K", // G38K + "BWA3_G82", // G82 + "BWA3_MG3", // MG3 + "BWA3_MG4", // MG4 + "BWA3_MG5_tan", // MG5 (Tan) + "BWA3_MG5", // MG5 + "BWA3_MP7", // MP7 + "BWA3_P2A1", // P2A1 + "BWA3_P8", // P8 + "BWA3_PzF3", // Panzerfaust 3 + "BWA3_RGW90" // RGW 90 +]; + +GRLIB_arsenal_magazines = [ + "BWA3_10Rnd_127x99_G82_AP_Tracer", // G82 12.7x99mm 10Rnd Mag (AP Tracer) + "BWA3_10Rnd_127x99_G82_AP", // G82 12.7x99mm 10Rnd Mag (AP) + "BWA3_10Rnd_127x99_G82_Raufoss_Tracer_Dim", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss IR-DIM) + "BWA3_10Rnd_127x99_G82_Raufoss_Tracer", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss Tracer) + "BWA3_10Rnd_127x99_G82_Raufoss", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss) + "BWA3_10Rnd_127x99_G82_SD", // G82 12.7x99mm 10Rnd Mag (SD) + "BWA3_10Rnd_127x99_G82_Tracer_Dim", // G82 12.7x99mm 10Rnd Mag (IR-DIM) + "BWA3_10Rnd_127x99_G82_Tracer", // G82 12.7x99mm 10Rnd Mag (Tracer) + "BWA3_10Rnd_127x99_G82", // G82 12.7x99mm 10Rnd Mag + "BWA3_10Rnd_762x51_G28_AP", // G28 7.62x51mm 10Rnd Mag (AP) + "BWA3_10Rnd_762x51_G28_LR", // G28 7.62x51mm M118LR 10Rnd Mag (LR) + "BWA3_10Rnd_762x51_G28_SD", // G28 7.62x51mm 10Rnd Mag (SD) + "BWA3_10Rnd_762x51_G28_Tracer_Dim", // G28 7.62x51mm 10Rnd Mag (IR-DIM) + "BWA3_10Rnd_762x51_G28_Tracer", // G28 7.62x51mm 10Rnd Mag (Tracer) + "BWA3_10Rnd_762x51_G28", // G28 7.62x51mm 10Rnd Mag + "BWA3_10Rnd_86x70_G29_Tracer", // G29 8.6x70mm 10Rnd Mag (Tracer) + "BWA3_10Rnd_86x70_G29", // G29 8.6x70mm 10Rnd Mag + "BWA3_120Rnd_762x51_soft", // Belt Bag 7.62x51mm 12Rnd + "BWA3_120Rnd_762x51_Tracer_soft", // Belt Bag 7.62x51mm 12Rnd (Tracer) + "BWA3_120Rnd_762x51_Tracer", // Belt Case 7.62x51mm 12Rnd (Tracer) + "BWA3_120Rnd_762x51", // Belt Case 7.62x51mm 12Rnd + "BWA3_15Rnd_9x19_P8", // P8 9mm 15Rnd Mag + "BWA3_1Rnd_Flare_Illum", // P2A1 26.5mm DM516 Illumination + "BWA3_1Rnd_Flare_Multistar_Green", // P2A1 26.5mm DM21 Multi Star (green) + "BWA3_1Rnd_Flare_Multistar_Red", // P2A1 26.5mm DM23 Multi Star (red) + "BWA3_1Rnd_Flare_Multistar_White", // P2A1 26.5mm DM25 Multi Star (white) + "BWA3_1Rnd_Flare_Singlestar_Green", // P2A1 26.5mm DM51 Single Star (green) + "BWA3_1Rnd_Flare_Singlestar_Red", // P2A1 26.5mm DM53 Single Star (red) + "BWA3_1Rnd_Flare_Singlestar_White", // P2A1 26.5mm DM55 Single Star (white) + "BWA3_200Rnd_556x45_Tracer", // MG4 5.56x45mm 200Rnd Belt Case (Tracer) + "BWA3_200Rnd_556x45", // MG4 5.56x45mm 200Rnd Belt Case + "BWA3_20Rnd_762x51_G28_AP", // G27 7.62x51mm 20Rnd Mag (AP) + "BWA3_20Rnd_762x51_G28_SD", // G27 7.62x51mm 20Rnd Mag (SD) + "BWA3_20Rnd_762x51_G28_Tracer_Dim", // G27 7.62x51mm 20Rnd Mag (IR-DIM) + "BWA3_20Rnd_762x51_G28_Tracer", // G27 7.62x51mm 20Rnd Mag (Tracer) + "BWA3_20Rnd_762x51_G28", // G27 7.62x51mm 20Rnd Mag + "BWA3_30Rnd_556x45_G36_AP", // G36 5.56x45mm DM31 30Rnd Mag (AP) + "BWA3_30Rnd_556x45_G36_SD", // G36 5.56x45mm 30Rnd Mag (SD) + "BWA3_30Rnd_556x45_G36_Tracer_Dim", // G36 5.56x45mm 30Rnd Mag (IR-DIM) + "BWA3_30Rnd_556x45_G36_Tracer", // G36 5.56x45mm DM21 30Rnd Mag (Tracer) + "BWA3_30Rnd_556x45_G36", // G36 5.56x45mm DM11 30Rnd Mag + "BWA3_40Rnd_46x30_MP7_SD", // MP7 4.6x30mm 40Rnd Mag (SD) + "BWA3_40Rnd_46x30_MP7", // MP7 4.6x30mm 40Rnd Mag + "BWA3_CarlGustav_HE", // 84mm HE Rocket + "BWA3_CarlGustav_HEAT", // 84mm HEAT-T Rocket + "BWA3_CarlGustav_HEDP", // 84mm HEDP Rocket + "BWA3_CarlGustav_Illum", // 84mm Illum Rocket + "BWA3_CarlGustav_Smoke", // 84mm Smoke Rocket + "BWA3_DM31AT_Mag", // DM31AT Mine + "BWA3_Fliegerfaust_Mag", // Fliegerfaust 2 Missile + "BWA3_PzF3_DM32", // Bunkerfaust Rocket + "BWA3_PzF3_Tandem", // Panzerfaust 3 IT Rocket + "BWA3_RGW90_HH", // RGW 90 HH Rocket + + // Standard Vanilla Magazines, Grenades & Explosives + "1Rnd_HE_Grenade_shell", // 40 mm HE Grenade Round + "1Rnd_Smoke_Grenade_shell", // Smoke Round (White) + "1Rnd_SmokeBlue_Grenade_shell", // Smoke Round (Blue) + "1Rnd_SmokeGreen_Grenade_shell", // Smoke Round (Green) + "1Rnd_SmokeOrange_Grenade_shell", // Smoke Round (Orange) + "1Rnd_SmokePurple_Grenade_shell", // Smoke Round (Purple) + "1Rnd_SmokeRed_Grenade_shell", // Smoke Round (Red) + "1Rnd_SmokeYellow_Grenade_shell", // Smoke Round (Yellow) + "APERSBoundingMine_Range_Mag", // APERS Bounding Mine + "APERSMine_Range_Mag", // APERS Mine + "APERSMineDispenser_Mag", // APERS Mine Dispenser + "APERSTripMine_Wire_Mag", // APERS Tripwire Mine + "ATMine_Range_Mag", // AT Mine + "B_IR_Grenade", // IR Grenade [NATO] + "Chemlight_blue", // Chemlight (Blue) + "Chemlight_green", // Chemlight (Green) + "Chemlight_red", // Chemlight (Red) + "Chemlight_yellow", // Chemlight (Yellow) + "ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge + "DemoCharge_Remote_Mag", // Explosive Charge + "Drone_Range_Mag_dummy", // AT Mine + "Drone_Range_Mag", // AT Mine + "IEDLandBig_Remote_Mag", // Large IED (Dug-in) + "IEDLandSmall_Remote_Mag", // Small IED (Dug-in) + "IEDUrbanBig_Remote_Mag", // Large IED (Urban) + "IEDUrbanSmall_Remote_Mag", // Small IED (Urban) + "Laserbatteries", // Designator Batteries + "SatchelCharge_Remote_Mag", // Explosive Satchel + "SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine + "TrainingMine_Mag", // Training Mine + "UGL_FlareCIR_F", // Flare Round (IR) + "UGL_FlareGreen_F", // Flare Round (Green) + "UGL_FlareRed_F", // Flare Round (Red) + "UGL_FlareWhite_F", // Flare Round (White) + "UGL_FlareYellow_F" // Flare Round (Yellow) + ]; + +GRLIB_arsenal_items = [ + // Uniforms + "BWA3_Uniform_Crew_Fleck", // Boilersuit (Flecktart) + "BWA3_Uniform_Crew_Multi", // Boilersuit (Multitarn) + "BWA3_Uniform_Crew_Tropen", // Boilersuit (Tropentarn) + "BWA3_Uniform_Fleck", // IdZ Uniform (Flecktarn) + "BWA3_Uniform_Ghillie_Fleck", // IdZ Ghillie suit (Flecktarn) + "BWA3_Uniform_Ghillie_Multi", // IdZ Ghillie suit (Multitarn) + "BWA3_Uniform_Ghillie_Tropen", // IdZ Ghillie suit (Tropentarn) + "BWA3_Uniform_Helipilot", // Boilersuit (Heli Pilot) + "BWA3_Uniform_Multi", // IdZ Uniform (Multitarn) + "BWA3_Uniform_sleeves_Fleck", // IdZ Uniform (Flecktarn, Sleeves) + "BWA3_Uniform_sleeves_Multi", // IdZ Uniform (Multitarn, Sleeves) + "BWA3_Uniform_sleeves_Tropen", // IdZ Uniform (Tropentarn, Sleeves) + "BWA3_Uniform_tee_Fleck", // IdZ Uniform (Flecktarn, Tee) + "BWA3_Uniform_tee_Multi", // IdZ Uniform (Multitarn, Tee) + "BWA3_Uniform_tee_Tropen", // IdZ Uniform (Tropentarn, Tee) + "BWA3_Uniform_Tropen", // IdZ Uniform (Tropentarn) + "BWA3_Uniform2_Fleck", // BW Uniform (Flecktarn) + "BWA3_Uniform2_Ghillie_Fleck", // BW Ghillie suit (Flecktarn) + "BWA3_Uniform2_Ghillie_Multi", // BW Ghillie suit (Multitarn) + "BWA3_Uniform2_Ghillie_Tropen", // BW Ghillie suit (Tropentarn) + "BWA3_Uniform2_Multi", // BW Uniform (Multitarn) + "BWA3_Uniform2_sleeves_Fleck", // BW Uniform (Flecktarn, Sleeves) + "BWA3_Uniform2_sleeves_Multi", // BW Uniform (Multitarn, Sleeves) + "BWA3_Uniform2_sleeves_Tropen", // BW Uniform (Tropentarn, Sleeves) + "BWA3_Uniform2_Tropen", // BW Uniform (Tropentarn) + + // Headgear + "BWA3_Beret_Falli", // Beret (Fallschirmjäger) + "BWA3_Beret_HFlieger", // Beret (Heeresflieger) + "BWA3_Beret_Jaeger", // Beret (Jäger) + "BWA3_Beret_Pz", // Beret (Panzertruppen) + "BWA3_Beret_PzAufkl", // Beret (Panzeraufklärer) + "BWA3_Beret_PzGren", // Beret (Panzergrenadiere) + "BWA3_Beret_Wach_blue", // Beret (Wachbattalion, Blue) + "BWA3_Beret_Wach_green", // Beret (Wachbattalion, Green) + "BWA3_Booniehat_Fleck", // Booniehat (Flecktarn) + "BWA3_Booniehat_Multi", // Booniehat (Multitarn) + "BWA3_Booniehat_Tropen", // Booniehat (Tropentarn) + "BWA3_CrewmanKSK_Fleck_Headset", // Crewman KSK Helmet (Flecktarn, Headset) + "BWA3_CrewmanKSK_Fleck", // Crewman KSK Helmet (Flecktarn) + "BWA3_CrewmanKSK_Headset", // Crewman KSK Helmet (Headset) + "BWA3_CrewmanKSK_Tropen_Headset", // Crewman KSK Helmet (Tropentarn, Headset) + "BWA3_CrewmanKSK_Tropen", // Crewman KSK Helmet (Tropentarn) + "BWA3_CrewmanKSK", // Crewman KSK Helmet + "BWA3_Knighthelm", // Knighthelm IHS + "BWA3_M92_Fleck", // M92 Helmet (Flecktarn) + "BWA3_M92_Multi", // M92 Helmet (Multitarn) + "BWA3_M92_Tropen", // M92 Helmet (Tropentarn) + "BWA3_OpsCore_Camera", // Ops-Core FAST Helmet (Camera) + "BWA3_OpsCore_Fleck_Camera", // Ops-Core FAST Helmet (Flecktarn, Camera) + "BWA3_OpsCore_Fleck_Patch", // Ops-Core FAST Helmet (Flecktarn, Patch) + "BWA3_OpsCore_Fleck", // Ops-Core FAST Helmet (Flecktarn) + "BWA3_OpsCore_Tropen_Camera", // Ops-Core FAST Helmet (Tropentarn, Camera) + "BWA3_OpsCore_Tropen_Patch", // Ops-Core FAST Helmet (Tropentarn, Patch) + "BWA3_OpsCore_Tropen", // Ops-Core FAST Helmet (Tropentarn) + "BWA3_OpsCore", // Ops-Core FAST Helmet + + // Facegear + "BWA3_G_Combat_black", // BW Combat Goggles (Black) + "BWA3_G_Combat_clear", // BW Combat Goggles (Clear) + "BWA3_G_Combat_orange", // BW Combat Goggles (Orange) + + // Vests + "BWA3_Vest_Fleck", // IdZ Vest (Flecktarn) + "BWA3_Vest_Grenadier_Fleck", // IdZ Vest (Flecktarn) - Grenadier + "BWA3_Vest_Grenadier_Multi", // IdZ Vest (Multitarn) - Grenadier + "BWA3_Vest_Grenadier_Tropen", // IdZ Vest (Tropentarn) - Grenadier + "BWA3_Vest_JPC_Leader_Fleck", // JPC Vest (Flecktarn) - Squadleader + "BWA3_Vest_JPC_Leader_Multi", // JPC Vest (Multitarn) - Squadleader + "BWA3_Vest_JPC_Leader_Tropen", // JPC Vest (Tropentarn) - Squadleader + "BWA3_Vest_JPC_Radioman_Fleck", // JPC Vest (Flecktarn) - Radioman + "BWA3_Vest_JPC_Radioman_Multi", // JPC Vest (Multitarn) - Radioman + "BWA3_Vest_JPC_Radioman_Tropen", // JPC Vest (Tropentarn) - Radioman + "BWA3_Vest_JPC_Rifleman_Fleck", // JPC Vest (Flecktarn) - Rifleman + "BWA3_Vest_JPC_Rifleman_Multi", // JPC Vest (Multitarn) - Rifleman + "BWA3_Vest_JPC_Rifleman_Tropen", // JPC Vest (Tropentarn) - Rifleman + "BWA3_Vest_Leader_Fleck", // IdZ Vest (Flecktarn) - Squadleader + "BWA3_Vest_Leader_Multi", // IdZ Vest (Multitarn) - Squadleader + "BWA3_Vest_Leader_Tropen", // IdZ Vest (Tropentarn) - Squadleader + "BWA3_Vest_MachineGunner_Fleck", // IdZ Vest (Flecktarn) - Machine Gunner + "BWA3_Vest_MachineGunner_Multi", // IdZ Vest (Multitarn) - Machine Gunner + "BWA3_Vest_MachineGunner_Tropen", // IdZ Vest (Tropentarn) - Machine Gunner + "BWA3_Vest_Marksman_Fleck", // IdZ Vest (Flecktarn) - Marksman + "BWA3_Vest_Marksman_Multi", // IdZ Vest (Multitarn) - Marksman + "BWA3_Vest_Marksman_Tropen", // IdZ Vest (Tropentarn) - Marksman + "BWA3_Vest_Medic_Fleck", // IdZ Vest (Flecktarn) - Medic + "BWA3_Vest_Medic_Multi", // IdZ Vest (Multitarn) - Medic + "BWA3_Vest_Medic_Tropen", // IdZ Vest (Tropentarn) - Medic + "BWA3_Vest_Multi", // IdZ Vest (Multitarn) + "BWA3_Vest_Rifleman_Fleck", // IdZ Vest (Flecktarn) - Rifleman + "BWA3_Vest_Rifleman_Multi", // IdZ Vest (Multitarn) - Rifleman + "BWA3_Vest_Rifleman_Tropen", // IdZ Vest (Tropentarn) - Rifleman + "BWA3_Vest_Tropen", // IdZ Vest (Tropentarn) + + // Items + "BWA3_acc_LLM01_irlaser_green", // LLM01 (Green) + "BWA3_acc_LLM01_irlaser_tan", // LLM01 (Tan) + "BWA3_acc_LLM01_irlaser_underbarrel", // LLM01 (Underbarrel) + "BWA3_acc_LLM01_irlaser", // LLM01 + "BWA3_acc_VarioRay_irlaser_black", // LLM Vario-Ray + "BWA3_acc_VarioRay_irlaser", // LLM Vario-Ray (Brown) + "BWA3_bipod_Atlas", // BT10-LW17 ADM Bipod + "BWA3_bipod_Harris_green", // 1A2 S-BRM Bipod (Green) + "BWA3_bipod_Harris_tan", // 1A2 S-BRM Bipod (Tan) + "BWA3_bipod_Harris", // 1A2 S-BRM Bipod + "BWA3_bipod_MG3", // MG3 Bipod + "BWA3_ItemNaviPad", // NaviPad + "BWA3_muzzle_snds_QDSS_green", // KAC QDSS NT4 (5.56mm, Green) + "BWA3_muzzle_snds_QDSS_tan", // KAC QDSS NT4 (5.56mm, Tan) + "BWA3_muzzle_snds_QDSS", // KAC QDSS NT4 (5.56mm) + "BWA3_muzzle_snds_Rotex_II", // Rotex II (4.6mm) + "BWA3_muzzle_snds_Rotex_IIA", // Rotex IIA (7.62mm) + "BWA3_muzzle_snds_Rotex_IIIC_green", // Rotex III Compact (5.56mm, Green) + "BWA3_muzzle_snds_Rotex_IIIC_tan", // Rotex III Compact (5.56mm, Tan) + "BWA3_muzzle_snds_Rotex_IIIC", // Rotex III Compact (5.56mm) + "BWA3_muzzle_snds_Rotex_Monoblock", // Rotex Monoblock (.338) + "BWA3_optic_CarlGustav", // Carl Gustav optics + "BWA3_optic_CompM2_green", // Aimpoint CompM2 (Green) + "BWA3_optic_CompM2_tan", // Aimpoint CompM2 (Tan) + "BWA3_optic_CompM2", // Aimpoint CompM2 + "BWA3_optic_EOTech_Mag_Off", // EOTech HHS2 w/ Magnifier + "BWA3_optic_EOTech_sand_Mag_Off", // EOTech HHS2 (Sand) w/ Magnifier + "BWA3_optic_EOTech_sand", // EOTech HHS2 (Sand) + "BWA3_optic_EOTech", // EOTech HHS2 + "BWA3_optic_EOTech552_green", // EOTech 552 (Green) + "BWA3_optic_EOTech552_tan", // EOTech 552 (Tan) + "BWA3_optic_EOTech552", // EOTech 552 + "BWA3_optic_Hensoldt", // 6-24x72 Hensoldt + "BWA3_optic_IRV600", // IRV 600 + "BWA3_optic_M5Xi_MSR_MicroT2", // 5-25x56 M5Xi Military (MSR, MicroT2) + "BWA3_optic_M5Xi_MSR", // 5-25x56 M5Xi Military (MSR) + "BWA3_optic_M5Xi_Tremor3_MicroT2", // 5-25x56 M5Xi Military (Tremor 3, MicroT2) + "BWA3_optic_M5Xi_Tremor3", // 5-25x56 M5Xi Military (Tremor 3) + "BWA3_optic_MicroT1", // Aimpoint MicroT1 + "BWA3_optic_MicroT2", // Aimpoint MicroT2 + "BWA3_optic_NSA80", // NSA 80 + "BWA3_optic_NSV600", // NSV 600 + "BWA3_optic_NSV80", // NSV 80 + "BWA3_optic_PMII_DMR_MicroT1_front", // 3-20x50 PM II DMR (MicroT1 front) + "BWA3_optic_PMII_DMR_MicroT1_rear", // 3-20x50 PM II DMR (MicroT1 rear) + "BWA3_optic_PMII_DMR", // 3-20x50 PM II DMR + "BWA3_optic_PMII_ShortdotCC", // 1.1-8x24 PM II ShortDot Dual CC + "BWA3_optic_RSAS_brown", // RSAS (Brown) + "BWA3_optic_RSAS_green", // RSAS (Green) + "BWA3_optic_RSAS_sand", // RSAS (Sand) + "BWA3_optic_RSAS_tan", // RSAS (Tan) + "BWA3_optic_RSAS", // RSAS + "BWA3_optic_ZO4x30_brown", // ZO 4x30 (Brown) + "BWA3_optic_ZO4x30_MicroT2_brown", // ZO 4x30 (MicroT2, Brown) + "BWA3_optic_ZO4x30_MicroT2", // ZO 4x30 (MicroT2) + "BWA3_optic_ZO4x30_RSAS_brown", // ZO 4x30 (RSAS, Brown) + "BWA3_optic_ZO4x30_RSAS", // ZO 4x30 (RSAS) + "BWA3_optic_ZO4x30", // ZO 4x30 + "BWA3_optic_ZO4x30i_MicroT2_sand", // ZO 4x30i (MicroT2, Sand) + "BWA3_optic_ZO4x30i_MicroT2", // ZO 4x30i (MicroT2) + "BWA3_optic_ZO4x30i_RSAS_sand", // ZO 4x30i (RSAS, Sand) + "BWA3_optic_ZO4x30i_RSAS", // ZO 4x30i (RSAS) + "BWA3_optic_ZO4x30i_sand", // ZO 4x30i (Sand) + "BWA3_optic_ZO4x30i", // ZO 4x30i + "BWA3_Vector", // Vector IV + + // Vanilla Standard Items + "B_UavTerminal", // UAV Terminal [NATO] + "Binocular", // Binoculars + "bipod_01_F_blk", // Bipod (Black) [NATO] + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "H_PilotHelmetFighter_B", // Pilot Helmet [NATO] + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "Laserdesignator_03", // Laser Designator (Olive) + "Laserdesignator", // Laser Designator (Sand) + "Medikit", // Medikit + "MineDetector", // Mine Detector + "muzzle_snds_B", // Sound Suppressor (7.62 mm) + "muzzle_snds_H_MG_blk_F", // Sound Suppressor MG + "muzzle_snds_L", // Sound Suppressor (9 mm) + "muzzle_snds_M", // Sound Suppressor (5.56 mm) + "NVGoggles_INDEP", // NV Goggles (Green) + "NVGoggles_OPFOR", // NV Goggles (Black) + "NVGoggles_tna_F", // NV Goggles (Tropic) + "NVGoggles", // NV Goggles (Brown) + "NVGogglesB_blk_F", // ENVG-II (Black) + "NVGogglesB_grn_F", // ENVG-II (Green) + "NVGogglesB_gry_F", // ENVG-II (Grey) + "Rangefinder", // Rangefinder + "sfp_dbal2", // Dbal 2 + "ToolKit", // Toolkit + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "V_RebreatherB", // Rebreather [NATO] + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + // TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "BWA3_AssaultPack_Fleck_Medic", // Assault Pack (Flecktarn, Medic) + "BWA3_AssaultPack_Fleck", // Assault Pack (Flecktarn) + "BWA3_AssaultPack_Multi_Medic", // Assault Pack (Multitarn, Medic) + "BWA3_AssaultPack_Multi", // Assault Pack (Multitarn) + "BWA3_AssaultPack_Tropen_Medic", // Assault Pack (Tropentarn, Medic) + "BWA3_AssaultPack_Tropen", // Assault Pack (Tropentarn) + "BWA3_Carryall_Fleck", // Carryall Backpack (Flecktarn) + "BWA3_Carryall_Multi", // Carryall Backpack (Multitarn) + "BWA3_Carryall_Tropen", // Carryall Backpack (Tropentarn) + "BWA3_FieldPack_Fleck", // Field Pack (Flecktarn) + "BWA3_FieldPack_Multi", // Field Pack (Multitarn) + "BWA3_FieldPack_Tropen", // Field Pack (Tropentarn) + "BWA3_Kitbag_Fleck_Medic", // Kitbag (Flecktarn, Medic) + "BWA3_Kitbag_Fleck", // Kitbag (Flecktarn) + "BWA3_Kitbag_Multi_Medic", // Kitbag (Multitarn, Medic) + "BWA3_Kitbag_Multi", // Kitbag (Multitarn) + "BWA3_Kitbag_Tropen_Medic", // Kitbag (Tropentarn, Medic) + "BWA3_Kitbag_Tropen", // Kitbag (Tropentarn) + "BWA3_PatrolPack_Fleck", // Patrol Pack (Flecktarn) + "BWA3_PatrolPack_Multi", // Patrol Pack (Multitarn) + "BWA3_PatrolPack_Tropen", // Patrol Pack (Tropentarn) + "BWA3_TacticalPack_Fleck_Medic", // Tactical Backpack (Flecktarn, Medic) + "BWA3_TacticalPack_Fleck", // Tactical Backpack (Flecktarn) + "BWA3_TacticalPack_Multi_Medic", // Tactical Backpack (Multitarn, Medic) + "BWA3_TacticalPack_Multi", // Tactical Backpack (Multitarn) + "BWA3_TacticalPack_Tropen_Medic", // Tactical Backpack (Tropentarn, Medic) + "BWA3_TacticalPack_Tropen", // Tactical Backpack (Tropentarn) + + // Standard Vanilla Backpacks + "B_Parachute", // Steerable Parachute + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anarc164", // AN/ARC-164 + "tf_anarc210", // AN/ARC-210 + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_anprc155", // AN/PRC 155 + "tf_bussole", // Assault Pack Bussole + "tf_mr3000_bwmod_tropen", // MR3000 BWMOD [Tropentarn] + "tf_mr3000_bwmod", // MR3000 BWMOD [Flecktarn] + "tf_mr3000_multicam", // MR3000 Multicam + "tf_mr3000", // MR3000 + "tf_mr6000l", // MR6000L + "tf_rt1523g_big_bwmod_tropen", // RT-1523G (ASIP) Big BWMOD [Tropentarn] + "tf_rt1523g_big_bwmod", // RT-1523G (ASIP) Big BWMOD [Flecktarn] + "tf_rt1523g_big", // RT-1523G (ASIP) Big + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_bwmod", // RT-1523G (ASIP) BWMOD + "tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage", // RT-1523G (ASIP) Sage + "tf_rt1523g" // RT-1523G (ASIP) +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/csat.sqf b/kp_liberation.brf_sumava/arsenal_presets/csat.sqf new file mode 100644 index 0000000..f271cbd --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/csat.sqf @@ -0,0 +1,413 @@ +/* + CSAT Arsenal Preset + Last Update: 2020-05-08 + + Needed: + - None + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "arifle_AK12_arid_F", // AK-12 7.62 mm (Arid) + "arifle_AK12_F", // AK-12 7.62 mm + "arifle_AK12_GL_arid_F", // AK-12 7.62 mm (Arid) + "arifle_AK12_GL_F", // AK-12 GL 7.62 mm + "arifle_AK12_GL_lush_F", // AK-12 GL 7.62 mm (Lush) + "arifle_AK12_lush_F", // AK-12 7.62 (Lush) + "arifle_AK12U_arid_F", // AKU-12 7.62 mm (Arid) + "arifle_AK12U_F", // AKU-12 7.62 mm + "arifle_AK12U_lush_F", // AKU-12 7.62 mm (Lush) + "arifle_AKM_F", // AKM 7.62 mm + "arifle_AKS_F", // AKS-74U 5.45 mm + "arifle_ARX_blk_F", // Type 115 6.5 mm (Black) + "arifle_ARX_ghex_F", // Type 115 6.5 mm (Green Hex) + "arifle_ARX_hex_F", // Type 115 6.5 mm (Hex) + "arifle_CTAR_blk_F", // CAR-95 5.8 mm (Black) + "arifle_CTAR_ghex_F", // CAR-95 5.8 mm (Green Hex) + "arifle_CTAR_GL_blk_F", // CAR-95 GL 5.8 mm (Black) + "arifle_CTAR_GL_ghex_F", // CAR-95 GL 5.8 mm (Green Hex) + "arifle_CTAR_GL_hex_F", // CAR-95 GL 5.8 mm (Hex) + "arifle_CTAR_hex_F", // CAR-95 5.8 mm (Hex) + "arifle_CTARS_blk_F", // CAR-95-1 5.8 mm (Black) + "arifle_CTARS_ghex_F", // CAR-95-1 5.8 mm (Green Hex) + "arifle_CTARS_hex_F", // CAR-95-1 5.8 mm (Hex) + "arifle_Katiba_C_F", // Katiba Carbine 6.5 mm + "arifle_Katiba_F", // Katiba 6.5 mm + "arifle_Katiba_GL_F", // Katiba GL 6.5 mm + "arifle_MSBS65_black_F", // Promet 6.5 mm (Black) + "arifle_MSBS65_GL_black_F", // Promet GL 6.5 mm (Black) + "arifle_MSBS65_Mark_black_F", // Promet MR 6.5 (Black) + "arifle_MSBS65_UBS_black_F", // Promet SG 6.5 mm (Black) + "arifle_RPK12_arid_F", // RPK-12 7.62 mm (Arid) + "arifle_RPK12_F", // RPK-12 7.62 mm + "arifle_RPK12_lush_F", // PRK-12 7.62 mm (Lush) + "arifle_SDAR_F", // SDAR 5.56 mm + "hgun_ACPC2_F", // ACP-C2 .45 ACP + "hgun_PDW2000_F", // PDW2000 9 mm + "hgun_Pistol_01_F", // PM 9 mm + "hgun_Pistol_heavy_02_F", // Zubr .45 ACP + "hgun_Rook40_F", // Rook-40 9 mm + "launch_MRAWS_green_F", // MAAWS Mk4 Mod 1 (Green) + "launch_MRAWS_green_rail_F", // MAAWS Mk4 Mod 0 (Green) + "launch_MRAWS_olive_F", // MAAWS Mk4 Mod 1 (Olive) + "launch_MRAWS_olive_rail_F", // MAAWS Mk4 Mod 0 (Olive) + "launch_MRAWS_sand_F", // MAAWS Mk4 Mod 1 (Sand) + "launch_MRAWS_sand_rail_F", // MAAWS Mk4 Mod 0 (Sand) + "launch_O_Titan_F", // Titan MPRL (Hex) + "launch_O_Titan_ghex_F", // Titan MPRL (Green Hex) + "launch_O_Titan_short_F", // Titan MPRL Compact (Coyote) + "launch_O_Titan_short_ghex_F", // Titan MPRL Compact (Green Hex) + "launch_O_Vorona_brown_F", // 9M135 Vorona (Brown) + "launch_O_Vorona_green_F", // 9M135 Vorona (Green) + "launch_RPG32_F", // RPG-42 Alamut + "launch_RPG32_ghex_F", // RPG-42 Alamut (Green Hex) + "launch_RPG32_green_F", // RPG-42 (Green) + "launch_RPG7_F", // RPG-7 + "LMG_03_F", // LIM-85 5.56 mm + "LMG_Zafir_F", // Zafir 7.62 mm + "MMG_01_hex_F", // Navid 9.3 mm (Hex) + "MMG_01_tan_F", // Navid 9.3 mm (Tan) + "MMG_02_black_F", // SPMG .338 (Black) + "sgun_HunterShotgun_01_F", // Kozlice 12G + "sgun_HunterShotgun_01_sawedoff_F", // Kozlice 12G (Sawed-Off) + "SMG_02_F", // Sting 9 mm + "SMG_03_black", // ADR-97 5.7 mm (Black) + "SMG_03_hex", // ADR-97 5.7 mm (Hex) + "SMG_03_TR_black", // ADR-97 TR 5.7 mm (Black) + "SMG_03_TR_hex", // ARD-97 TR 5.7 mm (Hex) + "SMG_03C_black", // ADR-97C 5.7 mm (Black) + "SMG_03C_hex", // ADR-97C 5.7 mm (Hex) + "SMG_03C_TR_black", // ADR-97C TR 5.7 mm (Black) + "SMG_03C_TR_hex", // ADR-97C TR 5.7 mm (Hex) + "srifle_DMR_01_F", // Rahim 7.62 mm + "srifle_DMR_02_F", // MAR-10 .338 (Black) + "srifle_DMR_03_F", // Mk-I EMR 7.62 mm (Black) + "srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black) + "srifle_DMR_04_Tan_F", // ASP-1 Kir 12.7 mm (Tan) + "srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black) + "srifle_DMR_05_hex_F", // Cyrus 9.3 mm (Hex) + "srifle_DMR_05_tan_f", // Cyrus 9.3 mm (Tan) + "srifle_DMR_06_hunter_F", // Mk17 7.62 mm (Classic) + "srifle_DMR_07_blk_F", // CMR-76 6.5 mm (Black) + "srifle_DMR_07_ghex_F", // CMR-76 6.5 mm (Green Hex) + "srifle_DMR_07_hex_F", // CMR-76 6.5 mm (Hex) + "srifle_GM6_camo_F", // GM6 Lynx 12.7 mm (Camo) + "srifle_GM6_F", // GM6 Lynx 12.7 mm + "srifle_GM6_ghex_F" // GM6 Lynx 12.7 mm (Green Hex) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Laserdesignator_02_ghex_F", // Laser Designator (Green Hex) + "Laserdesignator_02", // Laser Designator (Hex) + "Medikit", // Medikit + "MineDetector", // Minte Detector + "NVGoggles_OPFOR", // NV Goggles (Black) + "O_NVGoggles_ghex_F", // Compact NVG (Green Hex) + "O_NVGoggles_hex_F", // Compact NVG (Hex) + "O_NVGoggles_urb_F", // Compact NVG (Urban) + "O_UavTerminal", // UAV Terminal [CSAT] + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + //Uniforms + "U_O_CombatUniform_ocamo", // Fatigues (Hex) [CSAT] + "U_O_CombatUniform_oucamo", // Fatigues (Urban) [CSAT] + "U_O_FullGhillie_ard", // Full Ghillie (Arid) [CSAT] + "U_O_FullGhillie_lsh", // Full Ghillie (Lush) [CSAT] + "U_O_FullGhillie_sard", // Full Ghillie (Semi-Arid) [CSAT] + "U_O_GhillieSuit", // Ghillie Suit [CSAT] + "U_O_officer_noInsignia_hex_F", // Light Fatigues (Hex) + "U_O_OfficerUniform_ocamo", // Officer Fatigues (Hex) + "U_O_PilotCoveralls", // Pilot Coveralls [CSAT] + "U_O_SpecopsUniform_ocamo", // Recon Fatigues (Hex) + "U_O_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [CSAT] + "U_O_T_Officer_F", // Officer Fatigues (Green Hex) [CSAT] + "U_O_T_Sniper_F", // Ghillie Suit (Green Hex) [CSAT] + "U_O_T_Soldier_F", // Fatigues (Green Hex) [CSAT] + "U_O_V_Soldier_Viper_F", // Special Purpose Suit (Green Hex) + "U_O_V_Soldier_Viper_hex_F", // Special Purpose Suit (Hex) + "U_O_Wetsuit", // Wetsuit [CSAT] + + // Headgear + "H_Bandanna_cbr", // Bandana (Coyote) + "H_Bandanna_gry", // Bandana (Black) + "H_Bandanna_khk", // Bandana (Khaki) + "H_Beret_CSAT_01_F", // Beret (Red) [CSAT] + "H_Cap_blk", // Cap (Black) + "H_Cap_brn_SPECOPS", // Cap [OPFOR] + "H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT] + "H_HelmetCrew_O_ghex_F", // Crew Helmet (Green Hex) [CSAT] + "H_HelmetCrew_O", // Crew Helmet [CSAT] + "H_HelmetLeaderO_ghex_F", // Defender Helmet (Green Hex) + "H_HelmetLeaderO_ocamo", // Defender Helmet (Hex) + "H_HelmetLeaderO_oucamo", // Defender Helmet (Urban) + "H_HelmetO_ghex_F", // Protector Helmet (Green Hex) + "H_HelmetO_ocamo", // Protector Helmet (Hex) + "H_HelmetO_oucamo", // Protector Helmet (Urban) + "H_HelmetO_ViperSP_ghex_F", // Special Purpose Helmet (Green Hex) + "H_HelmetO_ViperSP_hex_F", // Special Purpose Helmet (Hex) + "H_HelmetSpecO_blk", // Assassin Helmet (Black) + "H_HelmetSpecO_ghex_F", // Assassin Helmet (Green Hex) + "H_HelmetSpecO_ocamo", // Assassin Helmet (Hex) + "H_MilCap_ghex_F", // Military Cap (Green Hex) + "H_MilCap_ocamo", // Military Cap (Hex) + "H_PilotHelmetFighter_O", // Pilot Helmet [CSAT] + "H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT] + "H_Shemag_olive", // Shemag (Olive) + "H_ShemagOpen_tan", // Shemag (Tan) + "H_Tank_black_F", // Crew Helmet (Soft) [CSAT] + "H_WirelessEarpiece_F", // Wireless Earpiece + + // Facegear + "G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT] + "G_AirPurifyingRespirator_02_olive_F", // APR (Olive) [CSAT] + "G_AirPurifyingRespirator_02_sand_F", // APR (Sand) [CSAT] + "G_Aviator", // Aviator Glasses + "G_Bandanna_aviator", // Bandana (Aviator) + "G_Bandanna_blk", // Bandana (Black) + "G_Bandanna_tan", // Bandana (Tan) + "G_Diving", // Diving Goggles + "G_O_Diving", // Diving Goggles [CSAT] + "G_Shades_Green", // Shades (Green) + "G_Spectacles_Tinted", // Tinted Spectacles + "G_Spectacles", // Spectacle Glasses + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_WirelessEarpiece_F", // Wireless Earpiece + + // Vests + "V_BandollierB_blk", // Slash Bandolier (Black) + "V_BandollierB_cbr", // Slash Bandolier (Coyote) + "V_BandollierB_ghex_F", // Slash Bandolier (Green Hex) + "V_Chestrig_blk", // Chest Rig (Black) + "V_Chestrig_khk", // Chest Rig (Khaki) + "V_Chestrig_rgr", // Chest Rig (Green) + "V_HarnessO_brn", // LBV Harness + "V_HarnessO_ghex_F", // LBV Harness (Green Hex) + "V_HarnessO_gry", // LBV Harness (Grey) + "V_HarnessOGL_brn", // LBV Grenadier Harness + "V_HarnessOGL_ghex_F", // LBV Grenadier Harness (Green Hex) + "V_HarnessOGL_gry", // LBV Grenadier Harness (Grey) + "V_LegStrapBag_black_F", // Leg Strap Bag (Black) + "V_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote) + "V_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "V_RebreatherIR", // Rebreather [CSAT] + + // Items + "30Rnd_762x39_AK12_Mag_F", // Bipod (Tan) [CSAT] + "acc_flashlight_pistol", // Pistol Flashlight + "acc_flashlight", // Flashlight + "acc_pointer_IR", // IR Laser Pointer + "bipod_02_F_blk", // Bipod (Black) [CSAT] + "bipod_02_F_hex", // Bipod (Hex) [CSAT] + "bipod_02_F_tan", // Bipod (Tan) [CSAT] + "muzzle_snds_338_black", // Sound Suppressor (.338, Black) + "muzzle_snds_570", // Sound Suppressor (5.7 mm) + "muzzle_snds_58_blk_F", // Stealth Sound Suppressor (5.8 mm, Black) + "muzzle_snds_58_ghex_F", // Stealth Sound Suppressor (5.8 mm, Green Hex) + "muzzle_snds_58_hex_F", // Stealth Sound Suppressor (5.8 mm, Hex) + "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) + "muzzle_snds_65_TI_ghex_F", // Stealth Sound Suppressor (6.5 mm, Green Hex) + "muzzle_snds_65_TI_hex_F", // Stealth Sound Suppressor (6.5 mm, Hex) + "muzzle_snds_93mmg_tan", // Sound Suppressor (9.3 mm, Tan) + "muzzle_snds_93mmg", // Sound Suppressor (9.3 mm, Black) + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "muzzle_snds_B_arid_F", // Sound Suppressor (7.62 mm, Arid) + "muzzle_snds_B_lush_F", // Sound Suppressor (7.62 mm, Lush) + "muzzle_snds_B", // Sound Suppressor (7.62 mm) + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_L", // Sound Suppressor (9 mm) + "muzzle_snds_M", // Sound Suppressor (5.56 mm) + "optic_ACO_grn_smg", // ACO SMG (Green) + "optic_ACO_grn", //ACO (Green) + "optic_AMS", // AMS (Black) + "optic_Arco_AK_arid_F", // ARCO AK (Arid) + "optic_Arco_AK_blk_F", // ARCO AK (Black) + "optic_Arco_AK_lush_F", // ARCO AK (Lush) + "optic_Arco_arid_F", // ARCO (Arid) + "optic_Arco_blk_F", // ARCO (Black) + "optic_Arco_ghex_F", // ARCO (Green Hex) + "optic_Arco_lush_F", // ARCO (Lush) + "optic_Arco", // ARCO + "optic_DMS_ghex_F", // DMS (Green Hex) + "optic_DMS_weathered_F", // DMS (Old) + "optic_DMS_weathered_Kir_F", // DMS Kir (Old) + "optic_DMS", // DMS + "optic_ERCO_blk_F", // ERCO (Black) + "optic_Hamr", // RCO + "optic_Holosight_arid_F", // Mk17 Holosight (Arid) + "optic_Holosight_blk_F", // Mk17 Holosight (Black) + "optic_Holosight_lush_F", // Mk17 Holosight (Lush) + "optic_Holosight_smg_blk_F", // Mk17 Holosight SMG (Black) + "optic_Holosight_smg", // Mk17 Holosight SMG + "optic_Holosight", // Mk17 Holosight + "optic_KHS_blk", // Kahlia (Black) + "optic_KHS_hex", // Kahlia (Hex) + "optic_KHS_old", // Kahlia (Old) + "optic_KHS_tan", // Kahlia (Tan) + "optic_LRPS_ghex_F", // LRPS (Green Hex) + "optic_LRPS", // LRPS + "optic_MRCO", // MRCO + "optic_Nightstalker", // Nightstalker + "optic_NVS", // NVS + "optic_SOS", // MOS + "optic_tws_mg", // TWS MG + "optic_tws", // TWS + "optic_Yorris", // Yorris J2 + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_AssaultPack_blk", // Assault Pack (Black) + "B_AssaultPack_ocamo", // Assault Pack (Hex) + "B_AssaultPack_rgr", // Assault Pack (Green) + "B_Bergen_hex_F", // Bergen Backpack (Hex) + "B_Carryall_ghex_F", // Carryall Backpack (Green Hex) + "B_Carryall_ocamo", // Carryall Backpack (Hex) + "B_Carryall_oucamo", // Carryall Backpack (Urban) + "B_FieldPack_ghex_F", // Field Pack (Green Hex) + "B_FieldPack_ocamo", // Field Pack (Hex) + "B_FieldPack_oucamo", // Field Pack (Urban) + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote) + "B_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "B_Parachute", // Steerable Parachute + "B_TacticalPack_ocamo", // Tactical Backpack (Hex) + "B_TacticalPack_rgr", // Tactical Backpack (Green) + "B_ViperHarness_blk_F", // Viper Harness (Black) + "B_ViperHarness_ghex_F", // Viper Harness (Green Hex) + "B_ViperHarness_hex_F", // Viper Harness (Hex) + "B_ViperLightHarness_blk_F", // Viper Light Harness (Black) + "B_ViperLightHarness_ghex_F", // Viper Light Harness (Green Hex) + "B_ViperLightHarness_hex_F", // Viper Light Harness (Hex) + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/custom.sqf b/kp_liberation.brf_sumava/arsenal_presets/custom.sqf new file mode 100644 index 0000000..1f46b80 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/custom.sqf @@ -0,0 +1,943 @@ +// Custom Arsenal Preset +GRLIB_arsenal_weapons = [ + "rhs_weap_ak74n", + "rhs_weap_ak74n_gp25", + "rhs_weap_ak74n_2", + "rhs_weap_ak74n_2_gp25", + "gm_ak74n_wud", + "uk3cb_weap_ak74n_2_1p29", + "uk3cb_weap_ak74n_2_gp25_1p29", + "uk3cb_weap_ak74n_2_1p29_sup", + "arifle_AKM_F", + "arifle_AKM_FL_F", + "rhs_weap_akm", + "rhs_weap_akm_gp25", + "rhs_weap_akmn", + "rhs_weap_akmn_gp25", + "rhs_weap_akms", + "rhs_weap_akms_folded", + "rhs_weap_akms_gp25", + "rhs_weap_ak103_base", + "rhs_weap_45th_akm", + "rhs_weap_45th_akm_gp25", + "rhs_weap_45th_akms", + "gm_akm_wud", + "gm_akml_wud", + "gm_akmn_wud", + "gm_akms_wud", + "gm_akmsl_wud", + "gm_akmsn_wud", + "gm_akm_pallad_wud", + "uk3cb_weap_akm_sup", + "uk3cb_weap_akm_gp25_sup", + "uk3cb_weap_akmn_sup", + "uk3cb_weap_akmn_gp25_sup", + "uk3cb_weap_akms_sup", + "uk3cb_weap_akmn_gp25_1p29", + "uk3cb_weap_akms_gp25_sup", + "uk3cb_weap_akms_folded_sup", + "uk3cb_weap_akmn_1p29", + "uk3cb_weap_akmn_1p29_sup", + "gm_mpikm_brn", + "gm_mpikm72_brn", + "gm_mpikms72_brn", + "gm_mpikms72k_brn", + "gm_mpikms72ksd_brn", + "gm_mpikm72_blk", + "gm_mpikms72_blk", + "gm_mpikms72k_blk", + "gm_mpikms72ksd_blk", + "gm_mpikm72_prp", + "gm_mpikms72_prp", + "gm_mpikms72k_prp", + "gm_mpikms72ksd_prp", + "gm_mpikms72_brn_zfk4x25", + "gm_mpikms72_brn_zvn64", + "gm_mpiak74n_brn", + "gm_mpiaks74n_brn", + "gm_mpiaks74nk_brn", + "gm_mpiak74n_blk", + "gm_mpiaks74n_blk", + "gm_mpiaks74nk_blk", + "gm_mpiak74n_prp", + "gm_mpiaks74n_prp", + "gm_mpiaks74nk_prp", + "rhs_weap_ak74m", + "rhs_weap_ak74m_camo", + "rhs_weap_ak74m_folded", + "rhs_weap_ak74m_camo_folded", + "rhs_weap_ak74m_desert_folded", + "rhs_weap_ak74m_plummag_folded", + "rhs_weap_ak74m_gp25_folded", + "rhs_weap_ak74m_2mag", + "rhs_weap_ak74m_2mag_camo", + "rhs_weap_ak74m_desert", + "rhs_weap_ak74m_plummag", + "rhs_weap_ak74m_gp25", + "rhs_weap_ak74m_fullplum", + "rhs_weap_ak74m_fullplum_folded", + "rhs_weap_ak74m_fullplum_gp25", + "rhs_weap_ak74m_fullplum_gp25_folded", + "rhs_weap_ak74mr", + "rhs_weap_ak74mr_grip1", + "rhs_weap_ak74mr_afg", + "rhs_weap_ak74mr_folded", + "rhs_weap_ak74mr_folded_grip1", + "rhs_weap_ak74mr_folded_afg", + "rhs_weap_ak74mr_gp25", + "rhs_weap_ak74", + "rhs_weap_ak74_gp25", + "rhs_weap_ak74n", + "rhs_weap_ak74n_gp25", + "rhs_weap_ak74_2", + "rhs_weap_ak74n_2", + "rhs_weap_ak74n_2_gp25", + "rhs_weap_ak74_3", + "rhs_weap_ak74m_dtk", + "rhs_weap_ak74m_pkas", + "rhs_weap_ak74m_1p63", + "rhs_weap_ak74m_pso1m2", + "rhs_weap_ak74m_1p29", + "rhs_weap_ak74m_camo_dtk", + "rhs_weap_ak74m_folded_dtk", + "rhs_weap_ak74m_2mag_dtk", + "rhs_weap_ak74m_2mag_camo_dtk", + "rhs_weap_ak74m_camo_pkas", + "rhs_weap_ak74m_camo_1p63", + "rhs_weap_ak74m_camo_pso1m2", + "rhs_weap_ak74m_camo_1p29", + "rhs_weap_ak74m_desert_dtk", + "rhs_weap_ak74m_fullplum_dtk", + "rhs_weap_ak74m_fullplum_folded_dtk", + "rhs_weap_ak74m_fullplum_gp25_dtk", + "rhs_weap_ak74m_fullplum_gp25_folded_dtk", + "rhs_weap_ak74m_plummag_dtk", + "rhs_weap_ak74m_gp25_dtk", + "rhs_weap_ak74m_gp25_pkas", + "rhs_weap_ak74m_gp25_1p63", + "rhs_weap_ak74m_gp25_pso1m2", + "rhs_weap_ak74m_gp25_1p29", + "rhs_weap_ak74mr_rakursPM", + "rhs_weap_ak74mr_gp25_rakursPM", + "rhs_weap_ak74mr_rakursPM_sup", + "rhs_weap_ak74mr_1p87", + "rhs_weap_ak74mr_gp25_1p87", + "rhs_weap_ak74mr_1p87_sup", + "rhs_weap_45th_ak74m", + "rhs_weap_45th_ak74m_camo", + "rhs_weap_45th_ak74m_gp25", + "rhs_weap_45th_ak74_ekp1", + "rhs_weap_45th_ak74m_pkas", + "rhs_weap_45th_ak74m_sup", + "gm_ak74n_wud", + "gm_mpiak74n_brn", + "gm_mpiak74n_blk", + "gm_mpiak74n_prp", + "uk3cb_weap_ak74mr_ekp8", + "uk3cb_weap_ak74mr_ekp8_sup", + "uk3cb_weap_ak74mr_gp25_ekp8", + "uk3cb_weap_ak74mr_gp25_ekp8_sup", + "uk3cb_weap_ak74n_2_1p29", + "uk3cb_weap_ak74n_2_gp25_1p29", + "uk3cb_weap_ak74n_2_1p29_sup", + "rhs_weap_aks74", + "rhs_weap_aks74_folded", + "rhs_weap_aks74_2", + "rhs_weap_aks74_2_folded", + "rhs_weap_aks74_gp25", + "rhs_weap_aks74n", + "rhs_weap_aks74n_2", + "rhs_weap_aks74n_folded", + "rhs_weap_aks74n_2_folded", + "rhs_weap_aks74n_gp25", + "rhs_weap_aks74u", + "rhs_weap_aks74u_folded", + "rhs_weap_aks74un", + "rhs_weap_aks74un_folded", + "rhs_weap_aks74u_sup", + "rhs_weap_aks74un_sup", + "gm_mpiaks74n_brn", + "gm_mpiaks74nk_brn", + "gm_mpiaks74n_blk", + "gm_mpiaks74nk_blk", + "gm_mpiaks74n_prp", + "gm_mpiaks74nk_prp", + "uk3cb_weap_aks74un_ekp8", + "uk3cb_weap_aks74un_ekp8_sup", + "rhs_weap_asval", + "rhs_weap_asval_folded", + "rhs_weap_asval_grip", + "rhs_weap_asval_grip1", + "rhs_weap_asval_afg", + "rhs_weap_asval_grip_folded", + "rhs_weap_asval_folded_grip1", + "rhs_weap_asval_folded_afg", + "rhs_weap_asval_npz", + "rhs_weap_asval_grip_npz", + "rhs_weap_asval_npz_grip1", + "rhs_weap_asval_npz_afg", + "rhs_asval_pso1", + "rhs_weap_45th_asval", + "rhs_weap_vmf_asval", + "uk3cb_sks_01", + "uk3cb_sks_01_sling", + "uk3cb_sks_02", + "rhs_weap_svd", + "rhs_weap_svdp", + "rhs_weap_svdp_wd", + "rhs_weap_svds", + "rhs_weap_svd_pso1", + "rhs_weap_svdp_pso1", + "rhs_weap_svds_pso1", + "rhs_weap_45th_svds", + "gm_svd_wud", + "gm_svd_wud_pso1", + "UK3CB_SVD_OLD", + "uk3cb_weap_svd_old_pso1m2", + "uk3cb_weap_svd_old_pso1m2_sup", + "rhsgref_weap_svds", + "rhs_weap_vss", + "rhs_weap_vss_grip", + "rhs_weap_vss_grip1", + "rhs_weap_vss_afg", + "rhs_weap_45th_vss", + "rhs_weap_vmf_vss", + "rhs_weap_pkm", + "gm_hmgpkm_prp", + "gm_lmgk500_brn", + "gm_lmgk500_blk", + "gm_lmgk500_prp", + "gm_lmgk500s_brn", + "gm_lmgk500s_blk", + "gm_lmgk500s_prp", + "UK3CB_RPD", + "uk3cb_rpd_sup", + "gm_lmgrpk_brn", + "gm_lmgrpk_brn_zfk4x25", + "gm_lmgrpk_blk", + "gm_lmgrpk_prp", + "gm_lmgrpk74n_brn", + "gm_lmgrpk74n_blk", + "gm_lmgrpk74n_prp", + "arifle_RPK12_F", + "UK3CB_RPK", + "arifle_RPK12_arid_F", + "UK3CB_RPK_BLK", + "uk3cb_rpk_blk_sup", + "arifle_RPK12_lush_F", + "arifle_RPK12_lush_arco_snds_pointer_F", + "arifle_RPK12_lush_holo_snds_pointer_F", + "arifle_RPK12_lush_arco_pointer_F", + "gm_rpk_wud", + "UK3CB_RPK_74", + "UK3CB_RPK_74_BLK", + "UK3CB_RPK_74_PLUM", + "rhs_weap_rpk74m", + "rhs_weap_rpk74m_uuk", + "rhs_weap_rpk74m_sup", + "rhs_weap_rpk74m_folded", + "UK3CB_RPK_74N", + "UK3CB_RPK_74N_BLK", + "UK3CB_RPK_74N_PLUM", + "uk3cb_rpk_74n_plum_ekp802", + "gm_rpk74n_wud", + "UK3CB_RPKN", + "uk3cb_rpkn_ekp802", + "UK3CB_RPKN_BLK", + "uk3cb_rpkn_blk_ekp802_sup", + "uk3cb_rpkn_blk_ekp802", + "UK3CB_RPKN_PLUM", + "gm_rpkn_wud", + "uk3cb_ppsh41", + "gm_pm63_blk", + "gm_pm63_handgun_blk", + "gm_akm_pallad_wud", + "gm_pallad_d_brn", + "hgun_Pistol_01_F", + "rhs_weap_makarov_pm", + "gm_pm_blk", + "rhs_weap_makarov_pmm", + "gm_pim_blk", + "gm_pimb_blk", + "rhs_weap_tt33", + "gm_9k32m_oli", + "rhs_weap_igla", + "rhs_weap_rpg18", + "gm_rpg18_oli", + "gm_rpg18_spent_oli", + "rhs_weap_rpg18_used", + "rhs_weap_rpg26", + "rhs_weap_rpg26_used", + "RPG29_Lorad", + "launch_RPG32_F", + "launch_RPG32_ghex_F", + "launch_RPG32_green_F", + "launch_RPG32_camo_F", + "launch_RPG7_F", + "gm_rpg7_wud", + "gm_rpg7_wud_pgo7v", + "gm_rpg7_prp", + "gm_rpg7_prp_pgo7v", + "rhs_weap_rpg75", + "rhs_weap_rpg75_used", + "rhs_weap_rpg7", + "rhs_weap_rpg7_pgo", + "rhs_weap_rpg7_1pn93", + "gm_wz78_blk" +]; + +GRLIB_arsenal_magazines = [ + "rhs_30Rnd_545x39_AK", + "rhs_30Rnd_545x39_7N6_AK", + "rhs_30Rnd_545x39_7N6M_AK", + "rhs_30Rnd_545x39_7N6_green_AK", + "rhs_30Rnd_545x39_7N6M_green_AK", + "rhs_30Rnd_545x39_7N6M_plum_AK", + "rhs_30Rnd_545x39_AK_no_tracers", + "rhs_45Rnd_545X39_7N6_AK", + "rhs_45Rnd_545X39_AK", + "rhs_45Rnd_545X39_7N6M_AK", + "gm_30Rnd_545x39mm_B_7N6_ak74_blk", + "gm_30Rnd_545x39mm_B_7N6_ak74_org", + "gm_30Rnd_545x39mm_B_7N6_ak74_prp", + "gm_30rnd_545x39mm_ak74_base", + "gm_30rnd_545x39mm_ak74_prp", + "gm_30rnd_545x39mm_ak74_org", + "gm_30rnd_545x39mm_ak74_blk", + "gm_45Rnd_545x39mm_B_7N6_ak74_blk", + "gm_45Rnd_545x39mm_B_7N6_ak74_org", + "gm_45Rnd_545x39mm_B_7N6_ak74_prp", + "gm_45rnd_545x39mm_ak74_prp", + "gm_45rnd_545x39mm_ak74_org", + "gm_45rnd_545x39mm_ak74_blk", + "rhs_30Rnd_545x39_7N10_2mag_AK", + "rhs_30Rnd_545x39_7N10_2mag_camo_AK", + "rhs_30Rnd_545x39_7N10_2mag_desert_AK", + "rhs_30Rnd_545x39_7N10_2mag_plum_AK", + "rhs_30Rnd_545x39_7N10_camo_AK", + "rhs_30Rnd_545x39_7N10_desert_AK", + "rhs_30Rnd_545x39_7N10_plum_AK", + "rhs_30Rnd_545x39_7N10_AK", + "rhs_45Rnd_545X39_7N10_AK", + "rhs_60Rnd_545X39_7N10_AK", + "UK3CB_RPK74_60rnd_545x39_G", + "UK3CB_RPK74_60rnd_545x39_R", + "UK3CB_RPK74_60rnd_545x39_W", + "UK3CB_RPK74_60rnd_545x39_Y", + "UK3CB_RPK74_60rnd_545x39", + "UK3CB_RPK74_60rnd_545x39_GM", + "UK3CB_RPK74_60rnd_545x39_RM", + "UK3CB_RPK74_60rnd_545x39_WM", + "UK3CB_RPK74_60rnd_545x39_YM", + "rhs_30Rnd_545x39_7N6M_AK", + "rhs_30Rnd_545x39_7N6M_green_AK", + "rhs_30Rnd_545x39_7N6M_plum_AK", + "rhs_45Rnd_545X39_7N6M_AK", + "gm_30Rnd_762x39mm_AP_7N23_akm_blk", + "gm_30Rnd_762x39mm_AP_7N23_ak47_blk", + "gm_30Rnd_762x39mm_AP_7N23_akm_org", + "gm_30Rnd_762x39mm_B_57N231_akm_blk", + "gm_30Rnd_762x39mm_B_57N231_ak47_blk", + "gm_30Rnd_762x39mm_B_57N231_akm_org", + "gm_30Rnd_762x39mm_BSD_57N231U_akm_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_ak47_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_akm_org", + "gm_30Rnd_762x39mm_B_T_57N231P_akm_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_ak47_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_akm_org", + "30Rnd_762x39_Mag_Green_F", + "30Rnd_762x39_Mag_F", + "30Rnd_762x39_Mag_Tracer_Green_F", + "30Rnd_762x39_Mag_Tracer_F", + "gm_30rnd_762x39mm_ak47_blk", + "gm_30Rnd_762x39mm_B_M43_ak47_blk", + "gm_30rnd_762x39mm_mpikm_blk", + "gm_30rnd_762x39mm_akm_blk", + "gm_30rnd_762x39mm_akm_org", + "gm_30Rnd_762x39mm_B_T_M43_ak47_blk", + "gm_30Rnd_762x39mm_AP_7N23_mpikm_blk", + "gm_30Rnd_762x39mm_B_57N231_mpikm_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_mpikm_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_mpikm_blk", + "75rnd_762x39_AK12_Arid_Mag_F", + "75rnd_762x39_AK12_Lush_Mag_F", + "75rnd_762x39_AK12_Mag_F", + "75rnd_762x39_AK12_Arid_Mag_Tracer_F", + "75rnd_762x39_AK12_Lush_Mag_Tracer_F", + "75rnd_762x39_AK12_Mag_Tracer_F", + "gm_75Rnd_762x39mm_AP_7N23_ak47_blk", + "gm_75Rnd_762x39mm_B_57N231_ak47_blk", + "gm_75Rnd_762x39mm_BSD_57N231U_ak47_blk", + "gm_75Rnd_762x39mm_B_T_57N231P_ak47_blk", + "75Rnd_762x39_Mag_F", + "75Rnd_762x39_Mag_Tracer_F", + "gm_75rnd_762x39mm_ak47_blk", + "gm_75Rnd_762x39mm_B_M43_ak47_blk", + "gm_75rnd_762x39mm_mpikm_blk", + "gm_75Rnd_762x39mm_B_T_M43_ak47_blk", + "gm_75Rnd_762x39mm_AP_7N23_mpikm_blk", + "gm_75Rnd_762x39mm_B_57N231_mpikm_blk", + "gm_75Rnd_762x39mm_BSD_57N231U_mpikm_blk", + "gm_75Rnd_762x39mm_B_T_57N231P_mpikm_blk", + "uk3cb_10rnd_magazine_sks", + "uk3cb_10rnd_magazine_sks_G", + "uk3cb_10rnd_magazine_sks_R", + "uk3cb_10rnd_magazine_sks_W", + "uk3cb_10rnd_magazine_sks_Y", + "uk3cb_10rnd_magazine_sks_GT", + "uk3cb_10rnd_magazine_sks_RT", + "uk3cb_10rnd_magazine_sks_WT", + "uk3cb_10rnd_magazine_sks_YT", + "rhs_30Rnd_762x39mm_polymer", + "rhs_30Rnd_762x39mm_polymer_89", + "rhs_30Rnd_762x39mm_polymer_tracer", + "rhs_30Rnd_762x39mm_polymer_U", + "rhs_30Rnd_762x39mm_bakelite", + "rhs_30Rnd_762x39mm_bakelite_89", + "rhs_30Rnd_762x39mm_bakelite_tracer", + "rhs_30Rnd_762x39mm_bakelite_U", + "rhs_30Rnd_762x39mm", + "rhs_30Rnd_762x39mm_89", + "rhs_30Rnd_762x39mm_tracer", + "rhs_30Rnd_762x39mm_U", + "rhssaf_30Rnd_762x39mm_M67", + "rhssaf_30Rnd_762x39mm_M78_tracer", + "rhssaf_30Rnd_762x39_M82_api", + "rhs_30Rnd_762x39mm_Savz58", + "rhs_30Rnd_762x39mm_Savz58_tracer", + "UK3CB_RPK_40rnd_762x39_G", + "UK3CB_RPK_40rnd_762x39_R", + "UK3CB_RPK_40rnd_762x39_W", + "UK3CB_RPK_40rnd_762x39_Y", + "UK3CB_RPK_40rnd_762x39", + "UK3CB_RPK_40rnd_762x39_GM", + "UK3CB_RPK_40rnd_762x39_RM", + "UK3CB_RPK_40rnd_762x39_WM", + "UK3CB_RPK_40rnd_762x39_YM", + "UK3CB_RPK_40rnd_762x39_GT", + "UK3CB_RPK_40rnd_762x39_RT", + "UK3CB_RPK_40rnd_762x39_WT", + "UK3CB_RPK_40rnd_762x39_YT", + "gm_30Rnd_762x39mm_AP_7N23_akm_blk", + "gm_30Rnd_762x39mm_AP_7N23_ak47_blk", + "gm_30Rnd_762x39mm_AP_7N23_akm_org", + "gm_30Rnd_762x39mm_B_57N231_akm_blk", + "gm_30Rnd_762x39mm_B_57N231_ak47_blk", + "gm_30Rnd_762x39mm_B_57N231_akm_org", + "gm_30Rnd_762x39mm_BSD_57N231U_akm_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_ak47_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_akm_org", + "gm_30Rnd_762x39mm_B_T_57N231P_akm_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_ak47_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_akm_org", + "30Rnd_762x39_Mag_Green_F", + "30Rnd_762x39_Mag_F", + "30Rnd_762x39_Mag_Tracer_Green_F", + "30Rnd_762x39_Mag_Tracer_F", + "gm_30rnd_762x39mm_ak47_blk", + "gm_30Rnd_762x39mm_B_M43_ak47_blk", + "gm_30rnd_762x39mm_mpikm_blk", + "gm_30rnd_762x39mm_akm_blk", + "gm_30rnd_762x39mm_akm_org", + "gm_30Rnd_762x39mm_B_T_M43_ak47_blk", + "gm_30Rnd_762x39mm_AP_7N23_mpikm_blk", + "gm_30Rnd_762x39mm_B_57N231_mpikm_blk", + "gm_30Rnd_762x39mm_BSD_57N231U_mpikm_blk", + "gm_30Rnd_762x39mm_B_T_57N231P_mpikm_blk", + "gm_75Rnd_762x39mm_AP_7N23_ak47_blk", + "gm_75Rnd_762x39mm_B_57N231_ak47_blk", + "gm_75Rnd_762x39mm_BSD_57N231U_ak47_blk", + "gm_75Rnd_762x39mm_B_T_57N231P_ak47_blk", + "75Rnd_762x39_Mag_F", + "75Rnd_762x39_Mag_Tracer_F", + "gm_75rnd_762x39mm_ak47_blk", + "gm_75Rnd_762x39mm_B_M43_ak47_blk", + "gm_75rnd_762x39mm_mpikm_blk", + "gm_75Rnd_762x39mm_B_T_M43_ak47_blk", + "gm_75Rnd_762x39mm_AP_7N23_mpikm_blk", + "gm_75Rnd_762x39mm_B_57N231_mpikm_blk", + "gm_75Rnd_762x39mm_BSD_57N231U_mpikm_blk", + "gm_75Rnd_762x39mm_B_T_57N231P_mpikm_blk", + "rhs_75Rnd_762x39mm", + "UK3CB_RPK_75rnd_762x39_G", + "UK3CB_RPK_75Rnd_Drum", + "UK3CB_RPK_75rnd_762x39_R", + "UK3CB_RPK_75rnd_762x39_W", + "UK3CB_RPK_75rnd_762x39_Y", + "UK3CB_RPK_75rnd_762x39", + "rhs_75Rnd_762x39mm_89", + "UK3CB_RPK_75rnd_762x39_GM", + "UK3CB_RPK_75rnd_762x39_RM", + "UK3CB_RPK_75rnd_762x39_WM", + "UK3CB_RPK_75rnd_762x39_YM", + "rhs_75Rnd_762x39mm_tracer", + "UK3CB_RPK_75rnd_762x39_GT", + "UK3CB_RPK_75Rnd_Drum_T", + "UK3CB_RPK_75rnd_762x39_RT", + "UK3CB_RPK_75rnd_762x39_WT", + "UK3CB_RPK_75rnd_762x39_YT", + "UK3CB_RPD_100rnd_762x39_G", + "UK3CB_RPD_100rnd_762x39_R", + "UK3CB_RPD_100rnd_762x39_W", + "UK3CB_RPD_100rnd_762x39_Y", + "UK3CB_RPD_100rnd_762x39", + "UK3CB_RPD_100rnd_762x39_GM", + "UK3CB_RPD_100rnd_762x39_RM", + "UK3CB_RPD_100rnd_762x39_WM", + "UK3CB_RPD_100rnd_762x39_YM", + "UK3CB_RPD_100rnd_762x39_GT", + "UK3CB_RPD_100rnd_762x39_RT", + "UK3CB_RPD_100rnd_762x39_WT", + "UK3CB_RPD_100rnd_762x39_YT", + "rhs_100Rnd_762x54mmR", + "rhs_100Rnd_762x54mmR_7BZ3", + "rhs_100Rnd_762x54mmR_7N13", + "rhs_100Rnd_762x54mmR_green", + "rhs_10Rnd_762x54mmR_7N1", + "UK3CB_SVD_10rnd_762x54_G", + "UK3CB_SVD_10rnd_762x54_R", + "UK3CB_SVD_10rnd_762x54_W", + "UK3CB_SVD_10rnd_762x54_Y", + "UK3CB_SVD_10rnd_762x54", + "rhs_10Rnd_762x54mmR_7N14", + "UK3CB_SVD_10rnd_762x54_GT", + "UK3CB_SVD_10rnd_762x54_RT", + "UK3CB_SVD_10rnd_762x54_WT", + "UK3CB_SVD_10rnd_762x54_YT", + "gm_10Rnd_762x54mmR_AP_7N1_svd_blk", + "gm_10Rnd_762x54mmR_API_7bz3_svd_blk", + "gm_10Rnd_762x54mmR_B_T_7t2_svd_blk", + "rhs_10rnd_9x39mm_SP5", + "rhs_10rnd_9x39mm_SP6", + "rhs_20rnd_9x39mm_SP5", + "rhs_20rnd_9x39mm_SP6", + "uk3cb_PPSH_35rnd_magazine", + "uk3cb_PPSH_35rnd_magazine_G", + "uk3cb_PPSH_35rnd_magazine_R", + "uk3cb_PPSH_35rnd_magazine_W", + "uk3cb_PPSH_35rnd_magazine_Y", + "uk3cb_PPSH_35rnd_magazine_GM", + "uk3cb_PPSH_35rnd_magazine_RM", + "uk3cb_PPSH_35rnd_magazine_WM", + "uk3cb_PPSH_35rnd_magazine_YM", + "uk3cb_PPSH_35rnd_magazine_GT", + "uk3cb_PPSH_35rnd_magazine_RT", + "uk3cb_PPSH_35rnd_magazine_WT", + "uk3cb_PPSH_35rnd_magazine_YT", + "uk3cb_PPSH_71rnd_magazine", + "uk3cb_PPSH_71rnd_magazine_G", + "uk3cb_PPSH_71rnd_magazine_R", + "uk3cb_PPSH_71rnd_magazine_W", + "uk3cb_PPSH_71rnd_magazine_Y", + "uk3cb_PPSH_71rnd_magazine_GM", + "uk3cb_PPSH_71rnd_magazine_RM", + "uk3cb_PPSH_71rnd_magazine_WM", + "uk3cb_PPSH_71rnd_magazine_YM", + "uk3cb_PPSH_71rnd_magazine_GT", + "uk3cb_PPSH_71rnd_magazine_RT", + "uk3cb_PPSH_71rnd_magazine_WT", + "uk3cb_PPSH_71rnd_magazine_YT", + "gm_15Rnd_9x18mm_B_pst_pm63_blk", + "gm_25Rnd_9x18mm_B_pst_pm63_blk", + "UGL_FlareGreen_F", + "UGL_FlareCIR_F", + "UGL_FlareRed_F", + "UGL_FlareWhite_F", + "UGL_FlareYellow_F", + "1Rnd_SmokeBlue_Grenade_shell", + "1Rnd_SmokeGreen_Grenade_shell", + "1Rnd_SmokeOrange_Grenade_shell", + "1Rnd_SmokePurple_Grenade_shell", + "1Rnd_SmokeRed_Grenade_shell", + "1Rnd_Smoke_Grenade_shell", + "1Rnd_SmokeYellow_Grenade_shell", + "1Rnd_HE_Grenade_shell", + "rhs_GDM40", + "rhs_GRD40_Green", + "rhs_GRD40_Red", + "rhs_GRD40_White", + "rhs_VG40MD", + "rhs_VG40MD_Green", + "rhs_VG40MD_Red", + "rhs_VG40MD_White", + "rhs_VG40OP_green", + "rhs_VG40OP_red", + "rhs_VG40OP_white", + "gm_1Rnd_265mm_flare_single_grn_gc", + "gm_1Rnd_265mm_flare_multi_red_gc", + "gm_1Rnd_265mm_flare_single_red_gc", + "gm_1Rnd_265mm_flare_single_wht_gc", + "gm_1Rnd_265mm_flare_single_yel_DM10", + "gm_1Rnd_265mm_flare_single_grn_DM11", + "gm_1Rnd_265mm_flare_single_red_DM13", + "gm_1Rnd_265mm_flare_single_wht_DM15", + "gm_1Rnd_265mm_flare_para_yel_DM16", + "gm_1Rnd_265mm_flare_multi_yel_DM20", + "gm_1Rnd_265mm_flare_multi_grn_DM21", + "gm_1Rnd_265mm_flare_multi_red_DM23", + "gm_1Rnd_265mm_flare_multi_wht_DM25", + "gm_1Rnd_265mm_flare_multi_nbc_DM47", + "gm_1Rnd_265mm_smoke_single_blk_gc", + "gm_1Rnd_265mm_smoke_single_blu_gc", + "gm_1Rnd_265mm_smoke_single_yel_gc", + "gm_1Rnd_265mm_smoke_single_yel_DM19", + "gm_1Rnd_265mm_smoke_single_org_DM22", + "gm_1Rnd_265mm_smoke_single_vlt_DM24", + "rhs_mag_9x18_12_57N181S", + "rhs_mag_9x18_8_57N181S", + "gm_15Rnd_9x18mm_B_pst_pm63_blk", + "gm_25Rnd_9x18mm_B_pst_pm63_blk", + "gm_8Rnd_9x18mm_B_pst_pm_blk", + "rhs_mag_762x25_8" +]; + +GRLIB_arsenal_items = [ +// Uniforms + "gm_gc_army_uniform_soldier_80_blk", + "gm_gc_army_uniform_soldier_80_str", + "gm_gc_army_uniform_soldier_gloves_80_str", + "gm_pl_army_uniform_soldier_80_moro", + "gm_pl_army_uniform_soldier_80_frog", + "gm_pl_army_uniform_soldier_autumn_80_moro", + "gm_pl_army_uniform_soldier_rolled_80_moro", + "gm_pl_army_uniform_soldier_rolled_80_frog", + "gm_gc_civ_uniform_pilot_80_blk", + "JAM_ENVA_U_NVA_Uniform_Field_blu_02", + "JAM_ENVA_U_NVA_Uniform_Field_blu_01", + "JAM_ENVA_U_NVA_Uniform_Field_oli", + "JAM_ENVA_U_NVA_Uniform_Field_str_alt", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_02", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_01", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_oli", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_str_alt", + "rhs_uniform_gorka_1_a", + "rhs_uniform_gork_1_b", + "rhs_uniform_klmk_oversuit", + "rhs_uniform_afghanka", + "rhs_uniform_afghanka_grey", + "rhs_uniform_afghanka_klmk", + "rhs_uniform_afghanka_moldovan_ttsko_blue", + "rhs_uniform_afghanka_moldovan_ttsko_cold", + "rhs_uniform_afghanka_moldovan_ttsko_desat", + "rhs_uniform_afghanka_moldovan_ttsko_hot", + "rhs_uniform_afghanka_spetsodezhda", + "rhs_uniform_afghanka_ttsko", + "rhs_uniform_afghanka_ttsko_2", + "rhs_uniform_afghanka_vsr_1", + "rhs_uniform_afghanka_vsr_2", + "rhs_uniform_afghanka_vsr_3", + "rhs_uniform_afghanka_para", + "rhs_uniform_afghanka_para_ttsko", + "rhs_uniform_afghanka_para_ttsko_2", + "rhs_uniform_afghanka_para_vsr", + "rhs_uniform_afghanka_para_vsr_2", + + +// Vests + "gm_gc_vest_combatvest3_str", + "gm_gc_army_vest_80_at_str", + "gm_gc_army_vest_80_border_str", + "gm_gc_army_vest_80_leader_str", + "gm_gc_army_vest_80_lmg_str", + "gm_gc_army_vest_80_rifleman_str", + "gm_pl_army_vest_80_rig_gry", + "gm_pl_army_vest_80_at_gry", + "gm_pl_army_vest_80_crew_gry", + "gm_pl_army_vest_80_leader_gry", + "gm_pl_army_vest_80_mg_gry", + "gm_pl_army_vest_80_marksman_gry", + "gm_pl_army_vest_80_rifleman_gry", + "gm_pl_army_vest_80_rifleman_smg_gry", + "JAM_ENVA_V_NVA_Vest_armor_str", + "JAM_ENVA_V_NVA_Vest_60_at_blu_01", + "JAM_ENVA_V_NVA_Vest_60_leader_blu_01", + "JAM_ENVA_V_NVA_Vest_60_lmg_blu_01", + "JAM_ENVA_V_NVA_Vest_60_rifleman_blu_01", + "rhs_6b2", + "rhs_6b2_AK", + "rhs_6b2_chicom", + "rhs_6b2_holster", + "rhs_6b2_lifchik", + "rhs_6b2_RPK", + "rhs_6b2_SVD", + "rhs_6b3", + "rhs_6b3_holster", + "rhs_6b3_off", + "rhs_6b3_R148", + "rhs_6b3_AK", + "rhs_6b3_AK_2", + "rhs_6b3_AK_3", + "rhs_6b3_RPK", + "rhs_6b3_VOG", + "rhs_6b3_VOG_2", + "rhs_6b5_khaki", + "rhs_6b5_rifleman_khaki", + "rhs_6b5_medic_khaki", + "rhs_6b5_officer_khaki", + "rhs_6b5_sniper_khaki", + "rhs_6b5_spetsodezhda", + "rhs_6b5_rifleman_spetsodezhda", + "rhs_6b5_medic_spetsodezhda", + "rhs_6b5_officer_spetsodezhda", + "rhs_6b5_sniper_spetsodezhda", + "rhs_6b5", + "rhs_6b5_rifleman", + "rhs_6b5_medic", + "rhs_6b5_officer", + "rhs_6b5_sniper", + "rhs_6b5_ttsko", + "rhs_6b5_rifleman_ttsko", + "rhs_6b5_medic_ttsko", + "rhs_6b5_officer_ttsko", + "rhs_6b5_sniper_ttsko", + "rhs_6b5_vsr", + "rhs_6b5_rifleman_vsr", + "rhs_6b5_medic_vsr", + "rhs_6b5_officer_vsr", + "rhs_6b5_sniper_vsr", + + + // Headgear + "gm_pl_army_headgear_cap_80_moro", + "gm_pl_army_headgear_cap_80_frog", + "gm_gc_headgear_fjh_model4_oli", + "gm_gc_headgear_fjh_model4_wht", + "gm_ge_headgear_psh77_oli", + "gm_ge_bgs_headgear_psh77_cover_smp", + "gm_ge_headgear_psh77_up_oli", + "gm_ge_bgs_headgear_psh77_up_smp", + "gm_ge_bgs_headgear_psh77_cover_str", + "gm_ge_headgear_psh77_down_oli", + "gm_ge_bgs_headgear_psh77_cover_down_smp", + "gm_ge_bgs_headgear_psh77_cover_down_str", + "gm_ge_bgs_headgear_psh77_cover_str", + "gm_pl_army_headgear_wz63_oli", + "gm_pl_army_headgear_wz63_net_oli", + "gm_pl_army_headgear_wz67_oli", + "gm_pl_army_headgear_wz67_net_oli", + "gm_gc_bgs_headgear_hat_80_gry", + "gm_gc_bgs_headgear_hat_80_grn", + "gm_gc_army_headgear_m56", + "gm_gc_army_headgear_m56_net", + "gm_gc_army_headgear_m56_cover_str", + "gm_gc_headgear_zsh3_wht", + "JAM_ENVA_H_NVA_M54_oli", + "JAM_ENVA_H_NVA_M56_76_oli", + "JAM_ENVA_H_NVA_M56_76_cover_blu_02", + "JAM_ENVA_H_NVA_M56_76_cover_net_blu_02", + "JAM_ENVA_H_NVA_M56_76_cover_blu_01", + "JAM_ENVA_H_NVA_M56_76_cover_net_blu_01", + "JAM_ENVA_H_NVA_M56_76_net_oli", + "JAM_ENVA_H_NVA_M56_76_cover_oli", + "JAM_ENVA_H_NVA_M56_76_cover_str", + "JAM_ENVA_H_NVA_M56_76_cover_str_alt", + "JAM_ENVA_H_NVA_M56_76_cover_net_str_alt", + "JAM_ENVA_H_NVA_M56_76_cover_net_str", + "JAM_ENVA_H_NVA_M605_oli", + "JAM_ENVA_H_NVA_M605_grn", + "JAM_ENVA_H_NVA_KDA_Cap_oli", + "rhs_altyn_novisor", + "rhs_altyn_novisor_bala", + "rhs_altyn_visordown", + "rhs_altyn", + "rhs_altyn_bala", + "rhs_beanie_green", + "rhs_fieldcap_m88", + "rhs_fielcap_m88_grey", + "rhs_fieldcap_m88_klmk", + "rhs_fieldcap_m88_ttsko_alt", + "rhs_fielcap_m88_ttsko_vdv", + "rhs_fielcap_m88_ttsko", + "rhs_fielcap_m88_vsr_2", + "rhs_fielcap_m88_vsr", + "rhs_fielcap_early", + "rhs_pilotka", + "rhs_ssh60", + "rhs_ssh68_2", + "rhs_tsh4", + "UK3CB_H_SSH60_Helmet_Covered_KLMK", + "rhsgref_ssh68_vsr", + + + // Facewear + "gm_gc_army_facewear_schm41m", + + // Attachments + "gm_pgo7v_blk", + "rhs_acc_1p29", + "rhs_acc_pso1m2", + "gm_pka_dovetail_blk", + "gm_pka_dovetail_gry", + "rhs_acc_1pn34", + "rhs_acc_2dpZenit", + "gm_flashlightp2_wht_ak74handguard_blu", + "gm_flashlightp2_wht_akhandguard_blu", + "gm_flashlightp2_wht_akkhandguard_blu", + "gm_bayonet_6x3_wud", + "gm_bayonet_6x3_blk", + "uk3cb_muzzle_sks_bayonet", + + // Items + "gm_gc_compass_f73", + "gm_repairkit_01", + "gm_gc_army_gauzeBandage", + "gm_gc_army_medkit", + "gm_watch_kosei_80", + "gm_df7x40_grn", // Binocular + "ItemMap", + "ItemWatch", + "ItemRadio", + "kat_crossPanel", + "gm_boltcutter", + "kat_Bubble_Wrap", + "kat_gasmaskFilter", + "gm_gc_army_medbox", + "gm_gc_firstaidkit_vehicle", + "kat_IV_16", + "kat_AFAK", + "kat_amiodarone", + "kat_Carbonate", + "kat_atropine", + "kat_basicDiagnostic", + "kat_bloodIV_O", + "kat_bloodIV_O_N", + "kat_bloodIV_A", + "kat_bloodIV_A_N", + "kat_bloodIV_AB", + "kat_bloodIV_AB_N", + "kat_bloodIV_B", + "kat_bloodIV_B_N", + "kat_bloodIV_O_250", + "kat_bloodIV_O_N_250", + "kat_bloodIV_A_250", + "kat_bloodIV_A_N_250", + "kat_bloodIV_AB_250", + "kat_bloodIV_AB_N_250", + "kat_bloodIV_B_250", + "kat_bloodIV_B_N_250", + "kat_bloodIV_O_500", + "kat_bloodIV_O_N_500", + "kat_bloodIV_A_500", + "kat_bloodIV_A_N_500", + "kat_bloodIV_AB_500", + "kat_bloodIV_AB_N_500", + "kat_bloodIV_B_500", + "kat_bloodIV_B_N_500", + "kat_BPCuff", + "kat_plate", + "kat_BVM", + "kat_Caffeine", + "kat_chestSeal", + "kat_clamp", + "kat_Painkiller", + "kat_vacuum", + "kat_EACA", + "kat_etomidate", + "kat_IO_FAST", + "kat_fentanyl", + "KAT_Empty_bloodIV_250", + "KAT_Empty_bloodIV_500", + "kat_fluidWarmer", + "kat_flumezanil", + "kat_guedel", + "kat_IFAK", + "kat_epinephrineIV", + "kat_ketamine", + "kat_larynx", + "kat_lidocaine", + "kat_lorazepam", + "kat_suction", + "kat_MFAK", + "kat_nalbuphine", + "kat_naloxone", + "kat_nasal", + "kat_ncdKit", + "kat_nitroglycerin", + "kat_norepinephrine", + "kat_Penthrox", + "kat_personal_oxygen", + "kat_Pervitin", + "kat_phenylephrine", + "kat_phenyleprhineAuto", + "kat_pocketBVM", + "kat_oxygenTank_150", + "kat_oxygenTank_300", + "kat_reboa", + "kat_retractor", + "kat_scalpel", + "kat_stethoscope", + + // ACE Items + "ACE_adenosine", // Adenosine autoinjector + "ACE_artilleryTable", // Artillery Rangetable + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_MapTools", // Map Tools + "ACE_morphine", // Morphine autoinjector + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_wirecutter" // Wirecutter + +]; + +GRLIB_arsenal_backpacks = [ + "gm_gc_army_backpack_80_at_str", + "gm_gc_army_backpack_80_lmg_str", + "gm_gc_army_backpack_80_mgk_str", + "gm_gc_army_backpack_80_engineer_str", + "gm_gc_army_backpack_80_demolition_str", + "gm_gc_army_backpack_80_assaultpack_mgk_str", + "gm_gc_army_backpack_80_assaultpack_lmg_str", + "gm_fagot_launcher_weaponBag", + "gm_pl_army_backpack_80_oli", + "gm_gc_backpack_r105m_brn", + "gm_backpack_rs9_parachute", + "rhs_medic_bag", + "rhs_r148", + "rhs_rd54", + "rhs_rd54_vest", + "rhs_rd54_flora2", + "rhs_rd54_flora1", + "rhs_rpg_2", + "rhs_rpg_empty", + "rhs_rpg_6b2", + "rhs_rpg_6b3", + "rhs_sidor", + "UK3CB_CW_SOV_O_LATE_B_Sidor_RIF", + "UK3CB_CW_SOV_O_EARLY_B_Sidor_RIF", + "UK3CB_CHD_B_B_Sidor_MD", + "UK3CB_KDF_B_B_Sidor_MD_OLI", + "UK3CB_KDF_B_B_Sidor_MD_VSR", + "UK3CB_CHD_B_B_Sidor_RIF_FLORA", + "UK3CB_LSM_B_B_Sidor_PART_RIF", + "UK3CB_KDF_B_B_Sidor_RIF_VSR" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/arsenal_presets/gm_east.sqf b/kp_liberation.brf_sumava/arsenal_presets/gm_east.sqf new file mode 100644 index 0000000..e5430a9 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/gm_east.sqf @@ -0,0 +1,445 @@ +/* + Global Mobilization East Germany Arsenal Preset + + Mods needed: + - Global Mobilization + + Mods optional: + - None +*/ + +GRLIB_arsenal_weapons = [ + // MPi AKs + "gm_mpiak74n_brn", + 'gm_mpiak74n_blk"', + "gm_mpiak74n_prp", + "gm_mpiaks74nk_brn", + "gm_mpiaks74nk_blk", + "gm_mpiaks74nk_prp", + "gm_mpiaks74n_brn", + "gm_mpiaks74n_blk", + "gm_mpiaks74n_prp", + "gm_mpikm_brn", + "gm_mpikm72_brn", + "gm_mpikm72_blk", + "gm_mpikm72_prp", + "gm_mpikms72_brn", + "gm_mpikms72_blk", + "gm_mpikms72_prp", + "gm_mpikms72k_brn", + "gm_mpikms72k_blk", + "gm_mpikms72k_prp", + "gm_mpikms72ksd_brn", + "gm_mpikms72ksd_blk", + "gm_mpikms72ksd_prp", + + // Soviet AKs + "rhs_weap_ak74", + "rhs_weap_ak74_gp25", + "rhs_weap_ak74_2", + "rhs_weap_ak74n", + "rhs_weap_ak74n_gp25", + "rhs_weap_ak74n_2", + "rhs_weap_akm", + "rhs_weap_akm_gp25", + "rhs_weap_akmn", + "rhs_weap_akmn_gp25", + "rhs_weap_akms", + "rhs_weap_akms_gp25", + "rhs_weap_aks74", + "rhs_weap_aks74_gp25", + "rhs_weap_aks74_2", + "rhs_weap_aks74n", + "rhs_weap_aks74n_gp25", + "rhs_weap_aks74n_2", + "rhs_weap_aks74u", + "rhs_weap_aks74un", + "gm_akm_pallas_wud", + + // Subsonic Rifles + "rhs_weap_asval", + "rhs_weap_vss", + + // Marksman Rifles + "gm_svd_wud", + "UK3CB_SVD_OLD", + + + + // RPK-74 + "gm_lmgrpk74n_brn", + "gm_lmgrpk74n_blk", + "gm_lmgrpk74n_prp", + + + // RPK + "gm_lmgrpk_brn", + "gm_lmgrpk_prp", + "gm_lmgrpk_blk", + "gm_rpk_wud", + "gm_rpk74n_wud", + "gm_rpkn_wud", + + // LP1 26.5mm + "gm_lp1_blk", + + // PKM + "gm_hmgpkm_prp", + "rhs_weap_pkm", + + // RPG-7 + "gm_rpg7_prp", + "gm_rpg7_wud", + + // RPG-18 + "gm_rpg18_oli", + "rhs_weap_rpg18", + + // RPG-29 + "RPG29_Lorad", + + // PALLAD + "gm_pallad_d_brn" + + +]; + +GRLIB_arsenal_magazines = [ + + // LP1 26.5mm + "gm_1Rnd_265mm_flare_single_grn_gc", + "gm_1Rnd_265mm_flare_single_red_gc", + "gm_1Rnd_265mm_flare_multi_red_gc", + + "gm_1Rnd_265mm_smoke_single_yel_gc", + "gm_1Rnd_265mm_smoke_single_blu_gc", + "gm_1Rnd_265mm_smoke_single_blk_gc", + + // RPG-7 + "gm_1Rnd_40mm_heat_pg7v_rpg7", + "gm_1Rnd_40mm_heat_pg7vl_rpg7", + + // RPG-29 + "RPG29_AT", + "RPG29_HE_F", + + + // AK-74 + RPK-74 (GDR) + "gm_30Rnd_545x39mm_B_7N6_ak74_org", + "gm_30Rnd_545x39mm_B_7N6_ak74_prp", + "gm_30Rnd_545x39mm_B_T_7T3_ak74_prp", + "gm_30Rnd_545x39mm_B_T_7T3_ak74_org", + + "gm_45Rnd_545x39mm_B_7N6_ak74_prp", + "gm_45Rnd_545x39mm_B_7N6_ak74_org", + "gm_45Rnd_545x39mm_B_T_7T3_ak74_prp", + "gm_45Rnd_545x39mm_B_T_7T3_ak74_org", + + "gm_lmgk500_blk", + "gm_lmgk500_brn", + "gm_lmgk500_prp", + + // AK-74 + RPK-74 (USSR) + "rhs_30Rnd_545x39_AK_green", + "rhs_30Rnd_545x39_7N6_AK", + "rhs_30Rnd_545x39_7N6_green_AK", + "rhs_30Rnd_545x39_AK_plum_green", + "rhs_30Rnd_545x39_7N6M_plum_AK", + + // RPK (GM) + "gm_30Rnd_762x39mm_B_M43_ak47_blk", + "gm_30Rnd_762x39mm_B_T_M43_ak47_blk", + + "gm_75Rnd_762x39mm_B_M43_ak47_blk", + "gm_75Rnd_762x39mm_B_T_M43_ak47_blk", + + // RPK (RHS) + "rhs_45Rnd_545x39_7N6_AK", + "rhs_60Rnd_545x39_AK_Green", + + // PKM + "gm_100Rnd_762x54mm_B_T_T46_pk_grn", + "gm_100Rnd_762x54mm_API_B32_pk_grn", + + // Grenades + "gm_handgrenade_frag_rgd5", + "rhs_mag_f1", + "rhs_mag_rgn", + "rhs_mag_rgo", + "rhsgref_mag_rkg3em", + "rhs_grenade_sthgr43_mag", + "rhs_mag_rdg2_white", + "rhs_mag_rdg2_black", + "gm_smokeshell_blk_gc", + "gm_smokeshell_blu_gc", + "gm_smokeshell_grn_gc", + "gm_smokeshell_org_gc", + "gm_smokeshell_red_gc", + "gm_smokeshell_wht_gc", + + // Explosives + "gm_explosive_plnp_charge", + "gm_mine_at_tm46", + +]; + +GRLIB_arsenal_items = [ + + // Uniforms + "gm_gc_army_uniform_soldier_80_blk", + "gm_gc_army_uniform_soldier_80_str", + "gm_gc_army_uniform_soldier_gloves_80_str", + "gm_pl_army_uniform_soldier_80_moro", + "gm_pl_army_uniform_soldier_80_frog", + "gm_pl_army_uniform_soldier_autumn_80_moro", + "gm_pl_army_uniform_soldier_rolled_80_moro", + "gm_pl_army_uniform_soldier_rolled_80_frog", + "gm_gc_civ_uniform_pilot_80_blk", + "JAM_ENVA_U_NVA_Uniform_Field_blu_02", + "JAM_ENVA_U_NVA_Uniform_Field_blu_01", + "JAM_ENVA_U_NVA_Uniform_Field_oli", + "JAM_ENVA_U_NVA_Uniform_Field_str_alt", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_02", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_01", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_oli", + "JAM_ENVA_U_NVA_Uniform_Field_Gloves_str_alt", + "rhs_uniform_gorka_1_a", + "rhs_uniform_gork_1_b", + "rhs_uniform_klmk_oversuit", + "rhs_uniform_afghanka", + "rhs_uniform_afghanka_grey", + "rhs_uniform_afghanka_klmk", + "rhs_uniform_afghanka_spetsodezhda", + "rhs_uniform_afghanka_ttsko", + "rhs_uniform_afghanka_ttsko_2", + "rhs_uniform_afghanka_vsr_1", + "rhs_uniform_afghanka_vsr_2", + "rhs_uniform_afghanka_vsr_3", + "rhs_uniform_afghanka_para", + "rhs_uniform_afghanka_para_ttsko", + "rhs_uniform_afghanka_para_ttsko_2", + "rhs_uniform_afghanka_para_vsr", + "rhs_uniform_afghanka_para_vsr_2", + + + // Vests + "gm_gc_vest_combatvest3_str", + "gm_gc_army_vest_80_at_str", + "gm_gc_army_vest_80_border_str", + "gm_gc_army_vest_80_leader_str", + "gm_gc_army_vest_80_lmg_str", + "gm_gc_army_vest_80_rifleman_str", + "gm_pl_army_vest_80_rig_gry", + "gm_pl_army_vest_80_at_gry", + "gm_pl_army_vest_80_crew_gry", + "gm_pl_army_vest_80_leader_gry", + "gm_pl_army_vest_80_mg_gry", + "gm_pl_army_vest_80_marksman_gry", + "gm_pl_army_vest_80_rifleman_gry", + "gm_pl_army_vest_80_rifleman_smg_gry", + "JAM_ENVA_V_NVA_Vest_armor_str", + "JAM_ENVA_V_NVA_Vest_60_at_blu_01", + "JAM_ENVA_V_NVA_Vest_60_leader_blu_01", + "JAM_ENVA_V_NVA_Vest_60_lmg_blu_01", + "JAM_ENVA_V_NVA_Vest_60_rifleman_blu_01", + "rhs_6b2", + "rhs_6b2_AK", + "rhs_6b2_chicom", + "rhs_6b2_holster", + "rhs_6b2_lifchik", + "rhs_6b2_RPK", + "rhs_6b2_SVD", + "rhs_6b3", + "rhs_6b3_holster", + "rhs_6b3_off", + "rhs_6b3_R148", + "rhs_6b3_AK", + "rhs_6b3_AK_2", + "rhs_6b3_AK_3", + "rhs_6b3_RPK", + "rhs_6b3_VOG", + "rhs_6b3_VOG_2", + "rhs_6b5_khaki", + "rhs_6b5_rifleman_khaki", + "rhs_6b5_medic_khaki", + "rhs_6b5_officer_khaki", + "rhs_6b5_sniper_khaki", + "rhs_6b5_spetsodezhda", + "rhs_6b5_rifleman_spetsodezhda", + "rhs_6b5_medic_spetsodezhda", + "rhs_6b5_officer_spetsodezhda", + "rhs_6b5_sniper_spetsodezhda", + "rhs_6b5", + "rhs_6b5_rifleman", + "rhs_6b5_medic", + "rhs_6b5_officer", + "rhs_6b5_sniper", + "rhs_6b5_ttsko", + "rhs_6b5_rifleman_ttsko", + "rhs_6b5_medic_ttsko", + "rhs_6b5_officer_ttsko", + "rhs_6b5_sniper_ttsko", + "rhs_6b5_vsr", + "rhs_6b5_rifleman_vsr", + "rhs_6b5_medic_vsr", + "rhs_6b5_officer_vsr", + "rhs_6b5_sniper_vsr", + + + // Headgear + "gm_pl_army_headgear_cap_80_moro", + "gm_pl_army_headgear_cap_80_frog", + "gm_gc_headgear_fjh_model4_oli", + "gm_gc_headgear_fjh_model4_wht", + "gm_ge_headgear_psh77_oli", + "gm_ge_bgs_headgear_psh77_cover_smp", + "gm_ge_headgear_psh77_up_oli", + "gm_ge_bgs_headgear_psh77_up_smp", + "gm_ge_bgs_headgear_psh77_cover_str", + "gm_ge_headgear_psh77_down_oli", + "gm_ge_bgs_headgear_psh77_cover_down_smp", + "gm_ge_bgs_headgear_psh77_cover_down_str", + "gm_ge_bgs_headgear_psh77_cover_str", + "gm_pl_army_headgear_wz63_oli", + "gm_pl_army_headgear_wz63_net_oli", + "gm_pl_army_headgear_wz67_oli", + "gm_pl_army_headgear_wz67_net_oli", + "gm_gc_bgs_headgear_hat_80_gry", + "gm_gc_bgs_headgear_hat_80_grn", + "gm_gc_army_headgear_m56", + "gm_gc_army_headgear_m56_net", + "gm_gc_army_headgear_m56_cover_str", + "gm_gc_headgear_zsh3_wht", + "JAM_ENVA_H_NVA_M54_oli", + "JAM_ENVA_H_NVA_M56_76_oli", + "JAM_ENVA_H_NVA_M56_76_cover_blu_02", + "JAM_ENVA_H_NVA_M56_76_cover_net_blu_02", + "JAM_ENVA_H_NVA_M56_76_cover_blu_01", + "JAM_ENVA_H_NVA_M56_76_cover_net_blu_01", + "JAM_ENVA_H_NVA_M56_76_net_oli", + "JAM_ENVA_H_NVA_M56_76_cover_oli", + "JAM_ENVA_H_NVA_M56_76_cover_str", + "JAM_ENVA_H_NVA_M56_76_cover_str_alt", + "JAM_ENVA_H_NVA_M56_76_cover_net_str_alt", + "JAM_ENVA_H_NVA_M56_76_cover_net_str", + "JAM_ENVA_H_NVA_M605_oli", + "JAM_ENVA_H_NVA_M605_grn", + "JAM_ENVA_H_NVA_KDA_Cap_oli", + "rhs_altyn_novisor", + "rhs_altyn_novisor_bala", + "rhs_altyn_visordown", + "rhs_altyn", + "rhs_altyn_bala", + "rhs_beanie_green", + "rhs_fieldcap_m88", + "rhs_fielcap_m88_grey", + "rhs_fieldcap_m88_klmk", + "rhs_fieldcap_m88_ttsko_alt", + "rhs_fielcap_m88_ttsko_vdv", + "rhs_fielcap_m88_ttsko", + "rhs_fielcap_m88_vsr_2", + "rhs_fielcap_m88_vsr", + "rhs_fielcap_early", + "rhs_pilotka", + "rhs_ssh60", + "rhs_ssh68_2", + "rhs_tsh4", + + + // Facewear + "gm_gc_army_facewear_schm41m", + + // Attachments + "gm_pgo7v_blk", + "rhs_acc_1p29", + "rhs_acc_pso1m2", + + // Items + "gm_gc_compass_f73", + "gm_repairkit_01", + "gm_gc_army_gauzeBandage", + "gm_gc_army_medkit", + "gm_watch_kosei_80", + "gm_df7x40_grn", // Binocular + "ItemMap", + "ItemWatch", + "ItemRadio", + + // ACE Items + "ACE_adenosine", // Adenosine autoinjector + "ACE_artilleryTable", // Artillery Rangetable + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_MapTools", // Map Tools + "ACE_morphine", // Morphine autoinjector + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_wirecutter" // Wirecutter + + // ACRE Items + + // TFAR Items + +]; + +GRLIB_arsenal_backpacks = [ + "gm_gc_army_backpack_80_at_str", + "gm_gc_army_backpack_80_lmg_str", + "gm_gc_army_backpack_80_mgk_str", + "gm_gc_army_backpack_80_engineer_str", + "gm_gc_army_backpack_80_demolition_str", + "gm_gc_army_backpack_80_assaultpack_mgk_str", + "gm_gc_army_backpack_80_assaultpack_lmg_str", + "gm_fagot_launcher_weaponBag", + "gm_pl_army_backpack_80_oli", + "gm_gc_backpack_r105m_brn", + "gm_backpack_rs9_parachute", + "rhs_medic_bag", + "rhs_r148", + "rhs_rd54", + "rhs_rd54_vest", + "rhs_rd54_flora2", + "rhs_rd54_flora1", + "rhs_rpg_2", + "rhs_rpg_empty", + "rhs_rpg_6b2", + "rhs_rpg_6b3", + "rhs_sidor", + "UK3CB_CW_SOV_O_LATE_B_Sidor_RIF", + "UK3CB_CW_SOV_O_EARLY_B_Sidor_RIF", + "UK3CB_CHD_B_B_Sidor_MD", + "UK3CB_KDF_B_B_Sidor_MD_OLI", + "UK3CB_KDF_B_B_Sidor_MD_VSR", + "UK3CB_CHD_B_B_Sidor_RIF_FLORA", + "UK3CB_LSM_B_B_Sidor_PART_RIF", + "UK3CB_KDF_B_B_Sidor_RIF_VSR" +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/gm_west.sqf b/kp_liberation.brf_sumava/arsenal_presets/gm_west.sqf new file mode 100644 index 0000000..b659990 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/gm_west.sqf @@ -0,0 +1,246 @@ +/* + Global Mobilization West Germany Arsenal Preset + + Author: Dahlgren - https://github.com/Dahlgren + + Mods needed: + - Global Mobilization + + Mods optional: + - None +*/ + +GRLIB_arsenal_weapons = [ + // G3A3 + G3A4 + "gm_g3a3_oli", + "gm_g3a4_oli", + + // MG3 7.62x51 mm + "gm_mg3_blk", + + // MP2A1 9x19 mm + "gm_mp2a1_blk", + + // P1 9x19 mm + "gm_p1_blk", + + // P2A1 26.5 mm + "gm_p2a1_blk", + + // PzF44-2 + "gm_pzf44_2_oli", + + // PzF84 + "gm_pzf84_oli" +]; + +GRLIB_arsenal_magazines = [ + // G3A3 + G3A4 + "gm_20rnd_762x51mm_b_t_dm21_g3_blk", + "gm_20rnd_762x51mm_b_t_dm21a1_g3_blk", + "gm_20rnd_762x51mm_b_t_dm21a2_g3_blk", + "gm_20rnd_762x51mm_b_dm111_g3_blk", + "gm_20rnd_762x51mm_b_dm41_g3_blk", + "gm_20rnd_762x51mm_ap_dm151_g3_blk", + "gm_20rnd_762x51mm_b_t_dm21_g3_des", + "gm_20rnd_762x51mm_b_t_dm21a1_g3_des", + "gm_20rnd_762x51mm_b_t_dm21a2_g3_des", + "gm_20rnd_762x51mm_b_dm111_g3_des", + "gm_20rnd_762x51mm_b_dm41_g3_des", + "gm_20rnd_762x51mm_ap_dm151_g3_des", + + "gm_1rnd_67mm_heat_dm22a1_g3", + + // MG3 7.62x51 mm + "gm_120rnd_762x51mm_b_t_dm21_mg3_grn", + "gm_120rnd_762x51mm_b_t_dm21a1_mg3_grn", + "gm_120rnd_762x51mm_b_t_dm21a2_mg3_grn", + + // MP2A1 9x19 mm + "gm_32rnd_9x19mm_b_dm51_mp2_blk", + + // P1 9x19 mm + "gm_8rnd_9x19mm_b_dm11_p1_blk", + + // P2A1 26.5 mm + "gm_1Rnd_265mm_flare_single_wht_gc", + "gm_1Rnd_265mm_flare_single_grn_gc", + "gm_1Rnd_265mm_flare_single_red_gc", + "gm_1Rnd_265mm_flare_multi_red_gc", + "gm_1Rnd_265mm_smoke_single_yel_gc", + "gm_1Rnd_265mm_smoke_single_blu_gc", + "gm_1Rnd_265mm_smoke_single_blk_gc", + "gm_1Rnd_265mm_flare_para_yel_DM16", + "gm_1Rnd_265mm_flare_single_wht_DM15", + "gm_1Rnd_265mm_flare_single_red_DM13", + "gm_1Rnd_265mm_flare_single_grn_DM11", + "gm_1Rnd_265mm_flare_single_yel_DM10", + "gm_1Rnd_265mm_flare_multi_wht_DM25", + "gm_1Rnd_265mm_flare_multi_red_DM23", + "gm_1Rnd_265mm_flare_multi_grn_DM21", + "gm_1Rnd_265mm_flare_multi_yel_DM20", + "gm_1Rnd_265mm_smoke_single_yel_DM19", + "gm_1Rnd_265mm_smoke_single_org_DM22", + "gm_1Rnd_265mm_smoke_single_vlt_DM24", + "gm_1Rnd_265mm_flare_multi_nbc_DM47", + + // PzF44-2 + "gm_1rnd_44x537mm_heat_dm32_pzf44_2", + + // PzF84 + "gm_1rnd_84x245mm_heat_t_dm12_carlgustaf", + "gm_1rnd_84x245mm_heat_t_dm12a1_carlgustaf", + "gm_1rnd_84x245mm_heat_t_dm22_carlgustaf", + "gm_1rnd_84x245mm_heat_t_dm32_carlgustaf", + "gm_1rnd_84x245mm_illum_dm16_carlgustaf", + + // Grenades + "gm_handgrenade_frag_dm51", + "gm_handgrenade_frag_dm51a1", + "gm_handgrenade_conc_dm51", + "gm_handgrenade_conc_dm51a1", + "gm_smokeshell_grn_dm21", + "gm_smokeshell_red_dm23", + "gm_smokeshell_yel_dm26", + "gm_smokeshell_org_dm32", + "gm_smokeshell_wht_dm25", + + // Explosives + "gm_explosive_petn_charge", + "gm_mine_at_dm21" +]; + +GRLIB_arsenal_items = [ + // Uniforms + "gm_ge_army_uniform_crew_80_oli", + "gm_ge_army_uniform_soldier_80_oli", + "gm_ge_army_uniform_soldier_80_ols", + "gm_ge_army_uniform_soldier_parka_80_oli", + "gm_ge_army_uniform_soldier_parka_80_ols", + "gm_ge_bgs_uniform_soldier_80_smp", + + // Vests + "gm_ge_army_vest_80_bag", + "gm_ge_army_vest_80_belt", + "gm_ge_army_vest_80_crew", + "gm_ge_army_vest_80_demolition", + "gm_ge_army_vest_80_leader", + "gm_ge_army_vest_80_machinegunner", + "gm_ge_army_vest_80_medic", + "gm_ge_army_vest_80_officer", + "gm_ge_army_vest_80_rifleman", + "gm_ge_bgs_vest_80_rifleman", + + // Headgear + "gm_ge_bgs_headgear_m35_53_blk", + "gm_ge_bgs_headgear_m35_53_net_blk", + "gm_ge_headgear_beret_bdx", + "gm_ge_headgear_beret_red", + "gm_ge_headgear_beret_grn", + "gm_ge_headgear_beret_mrb", + "gm_ge_headgear_beret_un", + "gm_ge_headgear_crewhat_80_blk", + "gm_ge_headgear_hat_80_gry", + "gm_ge_headgear_hat_80_m62_oli", + "gm_ge_headgear_hat_80_oli", + "gm_ge_headgear_headset_crew_oli", + "gm_ge_headgear_m62", + "gm_ge_headgear_m62_cover_blu", + "gm_ge_headgear_m62_net", + + // Facewear + "gm_ge_facewear_m65", + + // Attachments + "gm_feroz24_blk", + "gm_feroz2x17_pzf44_2_blk", + "gm_feroz2x17_pzf84_blk", + + // Items + "gm_ge_army_burnBandage", + "gm_ge_army_conat2", + "gm_ge_army_gauzeBandage", + "gm_ge_army_gauzeCompress", + "gm_ge_army_medkit_80", + "gm_repairkit_01", + "gm_ferod16_oli", // Binocular + "gm_watch_kosei_80", + "ItemMap", + "ItemWatch", + "ItemRadio", + + // ACE Items + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Clacker", // M57 Firing Device + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_morphine", // Morphine autoinjector + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_wirecutter", // Wirecutter + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + // TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "gm_ge_army_backpack_80_oli", + "gm_ge_backpack_satchel_80_blk", + "gm_ge_backpack_satchel_80_san" +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/rhsusaf.sqf b/kp_liberation.brf_sumava/arsenal_presets/rhsusaf.sqf new file mode 100644 index 0000000..10bb360 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/rhsusaf.sqf @@ -0,0 +1,996 @@ +/* + RHS United States Armed Forces Arsenal Preset + Last Update: 2020-05-08 + + Needed: + - RHSUSAF - https://steamcommunity.com/sharedfiles/filedetails/?id=843577117 + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "rhs_weap_fgm148", // FGM-148 Javelin + "rhs_weap_fim92", // FIM-92F + "rhs_weap_hk416d10_LMT_d", // HK416 D10 (SOPMOD Stock/Desert) + "rhs_weap_hk416d10_LMT_wd", // HK416 D10 (SOPMOD Stock/Woodland) + "rhs_weap_hk416d10_LMT", // HK416 D10 (SOPMOD Stock) + "rhs_weap_hk416d10_m320", // HK416 D10 (M320) + "rhs_weap_hk416d10", // HK416 D10 + "rhs_weap_hk416d145_d_2", // HK416 D14.5 (Desert Net) + "rhs_weap_hk416d145_d", // HK416 D14.5 (Desert Grass) + "rhs_weap_hk416d145_m320", // HK416 D14.5 (M320) + "rhs_weap_hk416d145_wd_2", // HK416 D14.5 (Woodland Net) + "rhs_weap_hk416d145_wd", // HK416 D14.5 (Woodland Grass) + "rhs_weap_hk416d145", // HK416 D14.5 + "rhs_weap_M107_d", // M107 (Desert) + "rhs_weap_M107_w", // M107 (Woodland) + "rhs_weap_M107", // M107 + "rhs_weap_M136_hedp", // M136 (HEDP) + "rhs_weap_M136_hp", // M136 (HP) + "rhs_weap_M136", // M136 (HEAT) + "rhs_weap_m14ebrri", // M14 EBR-RI + "rhs_weap_m16a4_carryhandle_M203", // M16A4 (Carryhandle/M203) + "rhs_weap_m16a4_carryhandle", // M16A4 (Carryhandle) + "rhs_weap_m16a4_imod_M203", // M16A4 (IMOD Stock/M203) + "rhs_weap_m16a4_imod", // M16A4 (IMOD Stock) + "rhs_weap_m16a4", // M16A4 + "rhs_weap_m240B", // M240B + "rhs_weap_m240G", // M240G + "rhs_weap_m249_light_L", // M249 PIP (Long/Ltwt.) + "rhs_weap_m249_light_S", // M249 PIP (Short/Ltwt.) + "rhs_weap_m249_pip_L_para", // M249 PIP (Long/Para) + "rhs_weap_m249_pip_L", // M249 PIP (Long/Savit) + "rhs_weap_m249_pip_ris", // M249 PIP (RIS) + "rhs_weap_m249_pip_S_para", // M249 PIP (Short/Para) + "rhs_weap_m249_pip_S", // M249 PIP (Short/Savit) + "rhs_weap_m249_pip", // M249 PIP + "rhs_weap_m249", // M249 + "rhs_weap_m24sws_d", // M24 SWS (Desert) + "rhs_weap_m24sws_wd", // M24 SWS (Woodland) + "rhs_weap_m24sws", // M24 SWS + "rhs_weap_m27iar_grip", // M27 IAR (KAC Grip) + "rhs_weap_m27iar", // M27 IAR + "rhs_weap_m32", // M32 MGL + "rhs_weap_M320", // M320 GLM + "rhs_weap_m4_carryhandle_m203", // M4 (Carryhandle/M203) + "rhs_weap_m4_carryhandle_m203S", // M4 (Carryhandle/M203S) + "rhs_weap_m4_carryhandle_mstock", // M4 (Carryhandle/Magpull Stock) + "rhs_weap_m4_carryhandle", // M4 (Carryhandle) + "rhs_weap_m4_m203", // M4 (M203) + "rhs_weap_m4_m203S", // M4 (M203S) + "rhs_weap_m4_m320", // M4 (M320) + "rhs_weap_m4_mstock", // M4 (Magpull Stock) + "rhs_weap_m4", // M4 + "rhs_weap_m40a5_d", // M40A5 (Desert) + "rhs_weap_m40a5_wd", // M40A5 (Woodland) + "rhs_weap_m40a5", // M40A5 + "rhs_weap_m4a1_blockII_bk", // M4A1 Block II (Black Rail) + "rhs_weap_m4a1_blockII_d", // M4A1 Block II (Desert) + "rhs_weap_m4a1_blockII_KAC_bk", // M4A1 Block II (Black Rail/SOPMOD Stock) + "rhs_weap_m4a1_blockII_KAC_d", // M4A1 Block II (Desert/SOPMOD Stock) + "rhs_weap_m4a1_blockII_KAC_wd", // M4A1 Block II (Woodland/SOPMOD Stock) + "rhs_weap_m4a1_blockII_KAC", // M4A1 Block II (SOPMOD Stock) + "rhs_weap_m4a1_blockII_M203_bk", // M4A1 Block II (Black Rail/M203) + "rhs_weap_m4a1_blockII_M203_d", // M4A1 Block II (Desert/M203) + "rhs_weap_m4a1_blockII_M203_wd", // M4A1 Block II (Woodland/M203) + "rhs_weap_m4a1_blockII_M203", // M4A1 Block II (M203) + "rhs_weap_m4a1_blockII_wd", // M4A1 Block II (Woodland) + "rhs_weap_m4a1_blockII", // M4A1 Block II + "rhs_weap_m4a1_carryhandle_m203", // M4A1 (M203) + "rhs_weap_m4a1_carryhandle_m203S", // M4A1 (M203S) + "rhs_weap_m4a1_carryhandle_mstock", // M4A1 (Magpull Stock) + "rhs_weap_m4a1_carryhandle", // M4A1 + "rhs_weap_m4a1_d_mstock", // M4A1 PIP (Desert/Magpull Stock) + "rhs_weap_m4a1_d", // M4A1 PIP (Desert) + "rhs_weap_m4a1_m203", // M4A1 PIP (M203) + "rhs_weap_m4a1_m203s_d", // M4A1 PIP (Desert/M203S) + "rhs_weap_m4a1_m203s_wd", // M4A1 PIP (Woodland/M203S) + "rhs_weap_m4a1_m203s", // M4A1 PIP (M203S) + "rhs_weap_m4a1_m320", // M4A1 PIP (M320) + "rhs_weap_m4a1_mstock", // M4A1 PIP (Magpull Stock) + "rhs_weap_m4a1_wd_mstock", // M4A1 PIP (Woodland/Magpull Stock) + "rhs_weap_m4a1_wd", // M4A1 PIP (Woodland) + "rhs_weap_m4a1", // M4A1 PIP + "rhs_weap_M590_5RD", // M590A1 (Short) + "rhs_weap_M590_8RD", // M590A1 (Long) + "rhs_weap_m72a7", // M72A7 + "rhs_weap_maaws", // M3 MAAWS + "rhs_weap_mk17_CQC", // Mk 17 Mod 0 (CQC) + "rhs_weap_mk17_LB", // Mk 17 Mod 0 (LB) + "rhs_weap_mk17_STD", // Mk 17 Mod 0 (STD) + "rhs_weap_mk18_bk", // Mk 18 Mod 1 (Black Rail) + "rhs_weap_mk18_d", // Mk 18 Mod 1 (Desert) + "rhs_weap_mk18_KAC_bk", // Mk 18 Mod 1 (Black Rail/SOPMOD Stock) + "rhs_weap_mk18_KAC_d", // Mk 18 Mod 1 (Desert/SOPMOD Stock) + "rhs_weap_mk18_KAC_wd", // Mk 18 Mod 1 (Woodland/SOPMOD Stock) + "rhs_weap_mk18_KAC", // Mk 18 Mod 1 (SOPMOD Stock) + "rhs_weap_mk18_m320", // Mk 18 Mod 1 (M320) + "rhs_weap_mk18_wd", // Mk 18 Mod 1 (Woodland) + "rhs_weap_mk18", // Mk 18 Mod 1 + "rhs_weap_SCARH_USA_CQC", // SCAR-H (USA/CQC) + "rhs_weap_SCARH_USA_LB", // SCAR-H (USA/LB) + "rhs_weap_SCARH_USA_STD", // SCAR-H (USA/STD) + "rhs_weap_smaw_green", // MK153 Mod 0 SMAW (Green) + "rhs_weap_smaw", // MK153 Mod 0 SMAW (Black) + "rhs_weap_sr25_d", // Mk 11 Mod 0 (Desert) + "rhs_weap_sr25_ec_d", // Mk 11 Mod 0 (EC/Desert) + "rhs_weap_sr25_ec_wd", // Mk 11 Mod 0 (EC/Woodland) + "rhs_weap_sr25_ec", // Mk 11 Mod 0 (EC) + "rhs_weap_sr25_wd", // Mk 11 Mod 0 (Woodland) + "rhs_weap_sr25", // Mk 11 Mod 0 + "rhs_weap_XM2010_d", // M2010 ESR (Desert) + "rhs_weap_XM2010_sa", // M2010 ESR (Semi-arid) + "rhs_weap_XM2010_wd", // M2010 ESR (Camo) + "rhs_weap_XM2010", // M2010 ESR + "rhsusf_weap_glock17g4", // Glock 17 + "rhsusf_weap_m1911a1", // M1911A1 + "rhsusf_weap_m9", // M9 Beretta + "rhsusf_weap_MP7A2_aor1", // MP7A2 (AOR1) + "rhsusf_weap_MP7A2_desert", // MP7A2 (Desert) + "rhsusf_weap_MP7A2_winter", // MP7A2 (Winter) + "rhsusf_weap_MP7A2" // MP7A2 +]; + +GRLIB_arsenal_magazines = [ + "rhs_fgm148_magazine_AT", // Javelin AT + "rhs_fgm172a_magazine_AT", // FGM172A SRAW + "rhs_fgm172b_magazine_MPV", // FGM172B SRAW-MPV + "rhs_fim92_mag", // FIM-92F + "rhs_LaserFCSMag", // Designator Batteries + "rhs_LaserMag_ai", // Designator Batteries + "rhs_LaserMag", // Designator Batteries + "rhs_mag_100Rnd_556x45_M855_cmag_mixed", // 100rnd C-Mag M855 (Mixed) + "rhs_mag_100Rnd_556x45_M855_cmag", // 100rnd C-Mag M855 + "rhs_mag_100Rnd_556x45_M855A1_cmag_mixed", // 100rnd C-Mag M855A1 (Mixed) + "rhs_mag_100Rnd_556x45_M855A1_cmag", // 100rnd C-Mag M855A1 + "rhs_mag_100Rnd_556x45_Mk262_cmag", // 100rnd C-Mag Mk262 Mod 1 + "rhs_mag_100Rnd_556x45_Mk318_cmag", // 100rnd C-Mag Mk262 Mod 0 + "rhs_mag_20Rnd_556x45_M193_2MAG_Stanag", // 20rnd STANAG (2x) M193 + "rhs_mag_20Rnd_556x45_M193_Stanag", // 20rnd STANAG M193 + "rhs_mag_20Rnd_556x45_M196_2MAG_Stanag_Tracer_Red", // 20rnd STANAG (2x) M196 (Tracer) + "rhs_mag_20Rnd_556x45_M196_Stanag_Tracer_Red", // 20rnd STANAG M196 (Tracer) + "rhs_mag_20Rnd_556x45_M200_Stanag", // 20rnd STANAG M200 (Blank) + "rhs_mag_20Rnd_556x45_M855_Stanag", // 20rnd STANAG M855 + "rhs_mag_20Rnd_556x45_M855A1_Stanag", // 20rnd STANAG M855A1 + "rhs_mag_20Rnd_556x45_Mk262_Stanag", // 20rnd STANAG Mk262 Mod 1 + "rhs_mag_20Rnd_SCAR_762x51_m118_special", // 20rnd SCAR M118 Ball + "rhs_mag_20Rnd_SCAR_762x51_m61_ap", // 20rnd SCAR M61 AP + "rhs_mag_20Rnd_SCAR_762x51_m62_tracer", // 20rnd SCAR M62 (Tracer) + "rhs_mag_20Rnd_SCAR_762x51_m80_ball", // 20rnd SCAR M80 + "rhs_mag_20Rnd_SCAR_762x51_m80a1_epr", // 20rnd SCAR M80A1 EPR + "rhs_mag_20Rnd_SCAR_762x51_mk316_special", // 20rnd SCAR Mk316 Mod 0 + "rhs_mag_30Rnd_556x45_M193_Stanag", // 30rnd STANAG M193 + "rhs_mag_30Rnd_556x45_M196_Stanag_Tracer_Red", // 30rnd STANAG M196 (Tracer) + "rhs_mag_30Rnd_556x45_M200_Stanag", // 30rnd STANAG M200 (Blank) + "rhs_mag_30Rnd_556x45_M855_PMAG_Tan_Tracer_Red", // 30rnd PMAG M856 (Tracer) + "rhs_mag_30Rnd_556x45_M855_PMAG_Tan", // 30rnd PMAG M855 + "rhs_mag_30Rnd_556x45_M855_PMAG_Tracer_Red", // 30rnd PMAG M856 (Tracer) + "rhs_mag_30Rnd_556x45_M855_PMAG", // 30rnd PMAG M855 + "rhs_mag_30Rnd_556x45_M855_Stanag_Pull_Tracer_Red", // 30rnd STANAG (Puller) M856 (Tracer) + "rhs_mag_30Rnd_556x45_M855_Stanag_Pull", // 30rnd STANAG (Puller) M855 + "rhs_mag_30Rnd_556x45_M855_Stanag_Ranger_Tracer_Red", // 30rnd STANAG (Ranger) M856 (Tracer) + "rhs_mag_30Rnd_556x45_M855_Stanag_Ranger", // 30rnd STANAG (Ranger) M855 + "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Red", // 30rnd STANAG M856 (Tracer) + "rhs_mag_30Rnd_556x45_M855_Stanag", // 30rnd STANAG M855 + "rhs_mag_30Rnd_556x45_M855A1_EPM_Pull_Tracer_Red", // 30rnd EPM (Puller) M855A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_EPM_Pull", // 30rnd EPM (Puller) M855A1 + "rhs_mag_30Rnd_556x45_M855A1_EPM_Ranger_Tracer_Red", // 30rnd EPM (Ranger) M855A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_EPM_Ranger", // 30rnd EPM (Ranger) M855A1 + "rhs_mag_30Rnd_556x45_M855A1_EPM_Tracer_Red", // 30rnd EPM M855A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_EPM", // 30rnd EPM M855A1 + "rhs_mag_30Rnd_556x45_M855A1_PMAG_Tan_Tracer_Red", // 30rnd PMAG M856A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_PMAG_Tan", // 30rnd PMAG M855A1 + "rhs_mag_30Rnd_556x45_M855A1_PMAG_Tracer_Red", // 30rnd PMAG M856A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_PMAG", // 30rnd PMAG M855A1 + "rhs_mag_30Rnd_556x45_M855A1_Stanag_Pull_Tracer_Red", // 30rnd STANAG (Puller) M856A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_Stanag_Pull", // 30rnd STANAG (Puller) M855A1 + "rhs_mag_30Rnd_556x45_M855A1_Stanag_Ranger_Tracer_Red", // 30rnd STANAG (Ranger) M856A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_Stanag_Ranger", // 30rnd STANAG (Ranger) M855A1 + "rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Red", // 30rnd STANAG M856A1 (Tracer) + "rhs_mag_30Rnd_556x45_M855A1_Stanag", // 30rnd STANAG M855A1 + "rhs_mag_30Rnd_556x45_Mk262_PMAG_Tan", // 30rnd PMAG Mk262 Mod 1 + "rhs_mag_30Rnd_556x45_Mk262_PMAG", // 30rnd PMAG Mk262 Mod 1 + "rhs_mag_30Rnd_556x45_Mk262_Stanag_Pull", // 30rnd STANAG (Puller) Mk262 Mod 1 + "rhs_mag_30Rnd_556x45_Mk262_Stanag_Ranger", // 30rnd STANAG (Ranger) Mk262 Mod 1 + "rhs_mag_30Rnd_556x45_Mk262_Stanag", // 30rnd STANAG Mk262 Mod 1 + "rhs_mag_30Rnd_556x45_Mk318_PMAG_Tan", // 30rnd PMAG Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_PMAG", // 30rnd PMAG Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_SCAR_Pull", // 30rnd SCAR (Puller) Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_SCAR_Ranger", // 30rnd SCAR (Ranger) Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_SCAR", // 30rnd SCAR Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_Stanag_Pull", // 30rnd STANAG (Puller) Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_Stanag_Ranger", // 30rnd STANAG (Ranger) Mk318 Mod 0 + "rhs_mag_30Rnd_556x45_Mk318_Stanag", // 30rnd STANAG Mk318 Mod 0 + "rhs_mag_an_m14_th3", // AN-M14 TH3 Invendenary Grenade + "rhs_mag_an_m8hc", // AN-M8HC White Smooke + "rhs_mag_m18_green", // M18 Green Smoke Grenade + "rhs_mag_m18_purple", // M18 Purple Smoke Grenade + "rhs_mag_m18_red", // M18 Red Smoke Grenade + "rhs_mag_m18_yellow", // M18 Yellow Smoke Grenade + "rhs_mag_M397_HET", // M397 HET Grenade Round + "rhs_mag_m4009", // GL Stun Grenade Round + "rhs_mag_M433_HEDP", // M433 HEDP Grenade Round + "rhs_mag_M441_HE", // M441 HE Grenade Round + "rhs_mag_m576", // M576 Buckshot Round + "rhs_mag_M585_white", // M585 White Flare Round + "rhs_mag_m661_green", // M661 Green Flare Round + "rhs_mag_m662_red", // M662 Red Flare Round + "rhs_mag_m67", // M67 Fragmentation Grenade + "rhs_mag_m69", // M69 Practice Grenade + "rhs_mag_m713_Red", // M713 Red Smoke Round + "rhs_mag_m714_White", // M714 White Smoke Round + "rhs_mag_m715_Green", // M715 Green Smoke Round + "rhs_mag_m716_yellow", // M716 Yellow Smoke Round + "rhs_mag_M781_Practice", // M781 Practice Round + "rhs_mag_m7a3_cs", // M7A3 CS Gas Grenade + "rhs_mag_maaws_HE", // FFV441 HE + "rhs_mag_maaws_HEAT", // FFV751 HEAT + "rhs_mag_maaws_HEDP", // FFV502 HEDP + "rhs_mag_mk3a2", // MK3A2 Concussion Grenade + "rhs_mag_mk84", // M84 Stun Grenade + "rhs_mag_six12_slug", // Six-12 Slug + "rhs_mag_smaw_HEAA", // Mk.6 HEAA + "rhs_mag_smaw_HEDP", // Mk.3 HEDP + "rhs_mag_smaw_SR", // Mk.217 Spotting + "rhs_mine_M19_mag", // M19 + "rhsusf_100Rnd_556x45_M200_soft_pouch_coyote", // 100rnd M249 Softpack M855 + "rhsusf_100Rnd_556x45_M200_soft_pouch_ucp", // 100rnd M249 Softpack M200 + "rhsusf_100Rnd_556x45_M200_soft_pouch", // 100rnd M249 Softpack M200 + "rhsusf_100Rnd_556x45_M855_mixed_soft_pouch_coyote", // 100rnd M249 Softpack M855 (Mixed) + "rhsusf_100Rnd_556x45_M855_mixed_soft_pouch_ucp", // 100rnd M249 Softpack M855 (Mixed) + "rhsusf_100Rnd_556x45_M855_mixed_soft_pouch", // 100rnd M249 Softpack M855 (Mixed) + "rhsusf_100Rnd_556x45_M855_soft_pouch_coyote", // 100rnd M249 Softpack M855 + "rhsusf_100Rnd_556x45_M855_soft_pouch_ucp", // 100rnd M249 Softpack M855 + "rhsusf_100Rnd_556x45_M855_soft_pouch", // 100rnd M249 Softpack M855 + "rhsusf_100Rnd_556x45_mixed_soft_pouch_coyote", // 100rnd M249 Softpack M855A1 (Mixed) + "rhsusf_100Rnd_556x45_mixed_soft_pouch_ucp", // 100rnd M249 Softpack M855A1 (Mixed) + "rhsusf_100Rnd_556x45_mixed_soft_pouch", // 100rnd M249 Softpack M855A1 (Mixed) + "rhsusf_100Rnd_556x45_soft_pouch_coyote", // 100rnd M249 Softpack M855A1 + "rhsusf_100Rnd_556x45_soft_pouch_ucp", // 100rnd M249 Softpack M855A1 + "rhsusf_100Rnd_556x45_soft_pouch", // 100rnd M249 Softpack M855A1 + "rhsusf_100Rnd_762x51_m61_ap", // 100rnd M240 Box M61 AP + "rhsusf_100Rnd_762x51_m62_tracer", // 100rnd M240 Box M62 (Tracer) + "rhsusf_100Rnd_762x51_m80a1epr", // 100rnd M240 Box M80A1 EPR + "rhsusf_100Rnd_762x51_m82_blank", // 100rnd M240 Box M82 (Blank) + "rhsusf_100Rnd_762x51", // 100rnd M240 Box M80 + "rhsusf_10Rnd_762x51_m118_special_Mag", // 10rnd AICS M118 + "rhsusf_10Rnd_762x51_m62_Mag", // 10rnd AICS M62 (Tracer) + "rhsusf_10Rnd_762x51_m993_Mag", // 10rnd AICS M993 AP + "rhsusf_200Rnd_556x45_box", // 200rnd M249 Box M855A1 + "rhsusf_200rnd_556x45_M855_box", // 200rnd M249 Box M855 + "rhsusf_200rnd_556x45_M855_mixed_box", // 200rnd M249 Box M855 (Mixed) + "rhsusf_200Rnd_556x45_M855_mixed_soft_pouch_coyote", // 200rnd M249 Softpack M855 (Mixed) + "rhsusf_200Rnd_556x45_M855_mixed_soft_pouch_ucp", // 200rnd M249 Softpack M855 (Mixed) + "rhsusf_200Rnd_556x45_M855_mixed_soft_pouch", // 200rnd M249 Softpack M855 (Mixed) + "rhsusf_200Rnd_556x45_M855_soft_pouch_coyote", // 200rnd M249 Softpack M855 + "rhsusf_200Rnd_556x45_M855_soft_pouch_ucp", // 200rnd M249 Softpack M855 + "rhsusf_200Rnd_556x45_M855_soft_pouch", // 200rnd M249 Softpack M855 + "rhsusf_200rnd_556x45_mixed_box", // 200rnd M249 Box M855A1 (Mixed) + "rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote", // 200rnd M249 Softpack M855A1 (Mixed) + "rhsusf_200Rnd_556x45_mixed_soft_pouch_ucp", // 200rnd M249 Softpack M855A1 (Mixed) + "rhsusf_200Rnd_556x45_mixed_soft_pouch", // 200rnd M249 Softpack M855A1 (Mixed) + "rhsusf_200Rnd_556x45_soft_pouch_coyote", // 200rnd M249 Softpack M855A1 + "rhsusf_200Rnd_556x45_soft_pouch_ucp", // 200rnd M249 Softpack M855A1 + "rhsusf_200Rnd_556x45_soft_pouch", // 200rnd M249 Softpack M855A1 + "rhsusf_20Rnd_762x51_m118_special_Mag", // 20rnd M14 M118 + "rhsusf_20Rnd_762x51_m62_Mag", // 20rnd M14 M62 (Tracer) + "rhsusf_20Rnd_762x51_m993_Mag", // 20rnd M14 M993AP + "rhsusf_20Rnd_762x51_SR25_m118_special_Mag", // 20rnd SR-25 M118 + "rhsusf_20Rnd_762x51_SR25_m62_Mag", // 20rnd SR-25 M62 (Tracer) + "rhsusf_20Rnd_762x51_SR25_m993_Mag", // 20rnd SR-25 M993 AP + "rhsusf_20Rnd_762x51_SR25_mk316_special_Mag", // 20rnd SR-25 Mk316 Mod 0 + "rhsusf_50Rnd_762x51_m61_ap", // 50rnd M240 Softpack M61 AP + "rhsusf_50Rnd_762x51_m62_tracer", // 50rnd M240 Softpack M62 (Tracer) + "rhsusf_50Rnd_762x51_m80a1epr", // 50rnd M240 Softpack M80A1 EPR + "rhsusf_50Rnd_762x51_m82_blank", // 50rnd M240 Belt M82 (Blank) + "rhsusf_50Rnd_762x51", // 50rnd M240 Softpack M80 + "rhsusf_5Rnd_00Buck", // 5Rnd .00 Buckshot + "rhsusf_5Rnd_300winmag_xm2010", // 5Rnd .300WM Mk248 MOD 1 + "rhsusf_5Rnd_762x51_AICS_m118_special_Mag", // 5Rnd AICS M118 + "rhsusf_5Rnd_762x51_AICS_m62_Mag", // 5Rnd AICS M62 (Tracer) + "rhsusf_5Rnd_762x51_AICS_m993_Mag", // 5Rnd AICS M993 AP + "rhsusf_5Rnd_762x51_m118_special_Mag", // 5Rnd M118 + "rhsusf_5Rnd_762x51_m62_Mag", // 5Rnd M62 (Tracer) + "rhsusf_5Rnd_762x51_m993_Mag", // 5Rnd M993 AP + "rhsusf_5Rnd_FRAG", // 5Rnd 12g FRAG + "rhsusf_5Rnd_HE", // 5Rnd 12g HE-EP + "rhsusf_5Rnd_Slug", // 5Rnd 12g Slug + "rhsusf_8Rnd_00Buck", // 8Rnd .00 Buckshot + "rhsusf_8Rnd_FRAG", // 8Rnd 12g FRAG + "rhsusf_8Rnd_HE", // 8Rnd 12g HE-EP + "rhsusf_8Rnd_Slug", // 8Rnd 12g Slug + "rhsusf_m112_mag", // M112 + "rhsusf_m112x4_mag", // M112 (x4) + "rhsusf_mag_10Rnd_STD_50BMG_M33", // 10rnd M107 M33 + "rhsusf_mag_10Rnd_STD_50BMG_mk211", // 10rnd M107 Mk211 + "rhsusf_mag_15Rnd_9x19_FMJ", // 15rnd M9 M882 FMJ + "rhsusf_mag_15Rnd_9x19_JHP", // 15rnd M9 Mk243 JHP + "rhsusf_mag_17Rnd_9x19_FMJ", // 17rnd Glock M882 FMJ + "rhsusf_mag_17Rnd_9x19_JHP", // 17rnd Glock Mk243 JHP + "rhsusf_mag_40Rnd_46x30_AP", // 40rnd MP7 SX AP + "rhsusf_mag_40Rnd_46x30_FMJ", // 40rnd MP7 SX FMJ + "rhsusf_mag_40Rnd_46x30_JHP", // 40rnd MP7 SX JHP + "rhsusf_mag_6Rnd_M397_HET", // 6rnd M397 HET Grenades + "rhsusf_mag_6Rnd_m4009", // 6rnd. GL Stun Grenade Round + "rhsusf_mag_6Rnd_M433_HEDP", // 6rnd M433 HEDP Grenades + "rhsusf_mag_6Rnd_M441_HE", // 6rnd M441 HE Grenade Rounds + "rhsusf_mag_6Rnd_M576_Buckshot", // 6rnd. M576 Buckshot Round + "rhsusf_mag_6Rnd_M585_white", // 6rnd. M585 White Flare Round + "rhsusf_mag_6Rnd_m661_green", // 6rnd. M661 Green Flare Round + "rhsusf_mag_6Rnd_m662_red", // 6rnd. M662 Red Flare Round + "rhsusf_mag_6Rnd_M713_red", // 6rnd. M713 Red Smoke Round + "rhsusf_mag_6Rnd_M714_white", // 6rnd. M714 White Smoke Round + "rhsusf_mag_6Rnd_M715_green", // 6rnd. M715 Green Smoke Round + "rhsusf_mag_6Rnd_M716_yellow", // 6rnd. M716 Yellow Smoke Round + "rhsusf_mag_6Rnd_M781_Practice", // 6rnd. M751 Practice Round + "rhsusf_mag_7x45acp_MHP", // 7rnd M1911 HP + "rhsusf_mine_m14_mag", // M14 + "rhsusf_mine_m49a1_10m_mag", // M49A1 (10m) + "rhsusf_mine_m49a1_3m_mag", // M49A1 (3m) + "rhsusf_mine_m49a1_6m_mag", // M49A1 (6m) + + // Vanilla Standard Grenades & Explosives + "APERSBoundingMine_Range_Mag", // APERS Bounding Mine + "APERSMine_Range_Mag", // APERS Mine + "APERSMineDispenser_Mag", // APERS Mine Dispenser + "APERSTripMine_Wire_Mag", // APERS Tripwire Mine + "ATMine_Range_Mag", // AT Mine + "B_IR_Grenade", // IR Grenade [NATO] + "Chemlight_blue", // Chemlight (Blue) + "Chemlight_green", // Chemlight (Green) + "Chemlight_red", // Chemlight (Red) + "Chemlight_yellow", // Chemlight (Yellow) + "ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge + "DemoCharge_Remote_Mag", // Explosive Charge + "Drone_Range_Mag_dummy", // AT Mine + "Drone_Range_Mag", // AT Mine + "IEDLandBig_Remote_Mag", // Large IED (Dug-in) + "IEDLandSmall_Remote_Mag", // Small IED (Dug-in) + "IEDUrbanBig_Remote_Mag", // Large IED (Urban) + "IEDUrbanSmall_Remote_Mag", // Small IED (Urban) + "SatchelCharge_Remote_Mag", // Explosive Satchel + "SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine + "TrainingMine_Mag" // Training Mine +]; + +GRLIB_arsenal_items = [ + // Uniforms + "rhs_uniform_abu", // Airman Battle Uniform + "rhs_uniform_acu_ocp", // Army Combat Uniform (OCP) + "rhs_uniform_acu_oefcp", // Army Combat Uniform (OEF-CP) + "rhs_uniform_acu_ucp", // Army Combat Uniform (UCP) + "rhs_uniform_acu_ucpd", // Army Combat Uniform (UCP-D) + "rhs_uniform_bdu_erdl", // Battle Dress Uniform (ERDL) + "rhs_uniform_cu_ocp_101st", // Combat Uniform OCP (101st Airborne Div.) + "rhs_uniform_cu_ocp_10th", // Combat Uniform OCP (10th Mountain Div.) + "rhs_uniform_cu_ocp_1stcav", // Combat Uniform OCP (1st Cavalry Div.) + "rhs_uniform_cu_ocp_82nd", // Combat Uniform OCP (82nd Airborne Div.) + "rhs_uniform_cu_ocp", // Combat Uniform OCP + "rhs_uniform_cu_ucp_101st", // Combat Uniform UCP (101st Airborne Div.) + "rhs_uniform_cu_ucp_10th", // Combat Uniform UCP (10th Mountain Div.) + "rhs_uniform_cu_ucp_1stcav", // Combat Uniform UCP (1st Cavalry Div.) + "rhs_uniform_cu_ucp_82nd", // Combat Uniform UCP (82nd Airborne Div.) + "rhs_uniform_cu_ucp", // Combat Uniform UCP + "rhs_uniform_FROG01_d", // FROG MARPAT-D + "rhs_uniform_FROG01_wd", // FROG MARPAT-WD + "rhs_uniform_g3_aor2", // G3 Uniform (AOR2) + "rhs_uniform_g3_blk", // G3 Uniform (Black) + "rhs_uniform_g3_m81", // G3 Uniform (M81) + "rhs_uniform_g3_mc", // G3 Uniform (Multicam) + "rhs_uniform_g3_rgr", // G3 Uniform (Ranger Green) + "rhs_uniform_g3_tan", // G3 Uniform (Tan) + + // Headgear + "rhs_8point_marpatd", // Utility Cap MARPAT-D + "rhs_8point_marpatwd", // Utility Cap MARPAT-WD + "rhs_Booniehat_m81", // Booniehat M81 + "rhs_Booniehat_ocp", // Booniehat OEF-CP + "rhs_Booniehat_ucp", // Booniehat UCP + "rhs_booniehat2_marpatd", // Booniehat MARPAT-D + "rhs_booniehat2_marpatwd", // Booniehat MARPAT-WD + "RHS_jetpilot_usaf", // Jet Pilot Helmet + "rhs_xmas_antlers", // Christmas Antlers + "rhsusf_ach_bare_des_ess", // ACH (Desert/ESS) + "rhsusf_ach_bare_des_headset_ess", // ACH (Desert/Headset/ESS) + "rhsusf_ach_bare_des_headset", // ACH (Desert/Headset) + "rhsusf_ach_bare_des", // ACH (Desert) + "rhsusf_ach_bare_ess", // ACH (ESS) + "rhsusf_ach_bare_headset_ess", // ACH (Headset/ESS) + "rhsusf_ach_bare_headset", // ACH (Headset) + "rhsusf_ach_bare_semi_ess", // ACH (Semi-Arid/ESS) + "rhsusf_ach_bare_semi_headset_ess", // ACH (Semi-Arid/Headset/ESS) + "rhsusf_ach_bare_semi_headset", // ACH (Semi-Arid/Headset) + "rhsusf_ach_bare_semi", // ACH (Semi-Arid) + "rhsusf_ach_bare_tan_ess", // ACH (Tan/ESS) + "rhsusf_ach_bare_tan_headset_ess", // ACH (Tan/Headset/ESS) + "rhsusf_ach_bare_tan_headset", // ACH (Tan/Headset) + "rhsusf_ach_bare_tan", // ACH (Tan) + "rhsusf_ach_bare_wood_ess", // ACH (Woodland/ESS) + "rhsusf_ach_bare_wood_headset_ess", // ACH (Woodland/Headset/ESS) + "rhsusf_ach_bare_wood_headset", // ACH (Woodland/Headset) + "rhsusf_ach_bare_wood", // ACH (Woodland) + "rhsusf_ach_bare", // ACH + "rhsusf_ach_helmet_camo_ocp", // ACH OEF-CP (Netting) + "rhsusf_ach_helmet_DCU_early_rhino", // ACH DCU (Early/Rhino) + "rhsusf_ach_helmet_DCU_early", // ACH DCU (Early) + "rhsusf_ach_helmet_DCU", // ACH DCU + "rhsusf_ach_helmet_ESS_ocp_alt", // ACH OEF-CP (ESS/Alt) + "rhsusf_ach_helmet_ESS_ocp", // ACH OEF-CP (ESS) + "rhsusf_ach_helmet_ESS_ucp_alt", // ACH UCP (ESS/Alt) + "rhsusf_ach_helmet_ESS_ucp", // ACH UCP (ESS) + "rhsusf_ach_helmet_headset_ess_ocp_alt", // ACH OEF-CP (Headset/ESS/Alt) + "rhsusf_ach_helmet_headset_ess_ocp", // ACH OEF-CP (Headset/ESS) + "rhsusf_ach_helmet_headset_ess_ucp_alt", // ACH UCP (Headset/ESS/Alt) + "rhsusf_ach_helmet_headset_ess_ucp", // ACH UCP (Headset/ESS) + "rhsusf_ach_helmet_headset_ocp_alt", // ACH OEF-CP (Headset/Alt) + "rhsusf_ach_helmet_headset_ocp", // ACH OEF-CP (Headset) + "rhsusf_ach_helmet_headset_ucp_alt", // ACH UCP (Headset/Alt) + "rhsusf_ach_helmet_headset_ucp", // ACH UCP (Headset) + "rhsusf_ach_helmet_M81", // ACH M81 + "rhsusf_ach_helmet_ocp_alt", // ACH OEF-CP (Alt) + "rhsusf_ach_helmet_ocp_norotos", // ACH OEF-CP (Norotos) + "rhsusf_ach_helmet_ocp", // ACH OEF-CP + "rhsusf_ach_helmet_ucp_alt", // ACH UCP (Alt) + "rhsusf_ach_helmet_ucp_norotos", // ACH UCP (Norotos) + "rhsusf_ach_helmet_ucp", // ACH UCP + "rhsusf_bowman_cap", // Bowman Elite II (Cap) + "rhsusf_Bowman", // Bowman Elite II + "rhsusf_cvc_alt_helmet", // ACVC-H, MK-1697 (Tan/Alt.) + "rhsusf_cvc_ess", // ACVC-H, MK-1697 (Tan/ESS) + "rhsusf_cvc_green_alt_helmet", // ACVC-H, MK-1697 (Alt.) + "rhsusf_cvc_green_ess", // ACVC-H, MK-1697 (ESS) + "rhsusf_cvc_green_helmet", // ACVC-H, MK-1697 + "rhsusf_cvc_helmet", // ACVC-H, MK-1697 (Tan) + "rhsusf_hgu56p_black", // HGU-56/P (Black) + "rhsusf_hgu56p_green", // HGU-56/P (Green) + "rhsusf_hgu56p_mask_black_skull", // HGU-56/P (Black/Mask/Skull) + "rhsusf_hgu56p_mask_black", // HGU-56/P (Black/Mask) + "rhsusf_hgu56p_mask_green_mo", // HGU-56/P (Green/Mask/Mo) + "rhsusf_hgu56p_mask_green", // HGU-56/P (Green/Mask) + "rhsusf_hgu56p_mask_mo", // HGU-56/P (Olive/Mask/Mo) + "rhsusf_hgu56p_mask_pink", // HGU-56/P (Pink/Mask) + "rhsusf_hgu56p_mask_saf", // HGU-56/P (SAF/Mask) + "rhsusf_hgu56p_mask_skull", // HGU-56/P (Olive/Mask/Skull) + "rhsusf_hgu56p_mask_smiley", // HGU-56/P (Smiley/Mask) + "rhsusf_hgu56p_mask_tan", // HGU-56/P (Tan/Mask) + "rhsusf_hgu56p_mask", // HGU-56/P (Olive/Mask) + "rhsusf_hgu56p_pink", // HGU-56/P (Pink) + "rhsusf_hgu56p_saf", // HGU-56/P (SAF) + "rhsusf_hgu56p_tan", // HGU-56/P (Tan) + "rhsusf_hgu56p_usa", // HGU-56/P (USA) + "rhsusf_hgu56p_visor_black", // HGU-56/P (Black/Visor) + "rhsusf_hgu56p_visor_green", // HGU-56/P (Green/Visor) + "rhsusf_hgu56p_visor_mask_black_skull", // HGU-56/P (Black/Visor/Mask/Skull) + "rhsusf_hgu56p_visor_mask_black", // HGU-56/P (Black/Visor/Mask) + "rhsusf_hgu56p_visor_mask_Empire_black", // HGU-56/P (Black/Visor/Mask/Empire) + "rhsusf_hgu56p_visor_mask_green_mo", // HGU-56/P (Green/Visor/Mask/Mo) + "rhsusf_hgu56p_visor_mask_green", // HGU-56/P (Green/Visor/Mask) + "rhsusf_hgu56p_visor_mask_mo", // HGU-56/P (Olive/Visor/Mask/Mo) + "rhsusf_hgu56p_visor_mask_pink", // HGU-56/P (Pink/Visor/Mask) + "rhsusf_hgu56p_visor_mask_saf", // HGU-56/P (SAF/Visor/Mask) + "rhsusf_hgu56p_visor_mask_skull", // HGU-56/P (Olive/Visor/Mask/Skull) + "rhsusf_hgu56p_visor_mask_smiley", // HGU-56/P (Smiley/Visor/Mask) + "rhsusf_hgu56p_visor_mask_tan", // HGU-56/P (Tan/Visor/Mask) + "rhsusf_hgu56p_visor_mask", // HGU-56/P (Olive/Visor/Mask) + "rhsusf_hgu56p_visor_pink", // HGU-56/P (Pink/Visor) + "rhsusf_hgu56p_visor_saf", // HGU-56/P (SAF/Visor) + "rhsusf_hgu56p_visor_tan", // HGU-56/P (Tan/Visor) + "rhsusf_hgu56p_visor_usa", // HGU-56/P (USA/Visor) + "rhsusf_hgu56p_visor_white", // HGU-56/P (White/Visor) + "rhsusf_hgu56p_visor", // HGU-56/P (Olive/Visor) + "rhsusf_hgu56p_white", // HGU-56/P (White) + "rhsusf_hgu56p", // HGU-56/P (Olive) + "rhsusf_ihadss", // IHADSS + "rhsusf_lwh_helmet_M1942", // LWH M1942 + "rhsusf_lwh_helmet_marpatd_ess", // LWH MARPAT-D (ESS) + "rhsusf_lwh_helmet_marpatd_headset", // LWH MARPAT-D (Headset/ESS) + "rhsusf_lwh_helmet_marpatd", // LWH MARPAT-D + "rhsusf_lwh_helmet_marpatwd_blk_ess", // LWH MARPAT-WD (Black ESS) + "rhsusf_lwh_helmet_marpatwd_ess", // LWH MARPAT-WD (Tan ESS) + "rhsusf_lwh_helmet_marpatwd_headset_blk", // LWH MARPAT-WD (Headset/Black ESS) + "rhsusf_lwh_helmet_marpatwd_headset_blk2", // LWH MARPAT-WD (Headset) + "rhsusf_lwh_helmet_marpatwd_headset", // LWH MARPAT-WD (Headset/Tan ESS) + "rhsusf_lwh_helmet_marpatwd", // LWH MARPAT-WD + "rhsusf_mich_bare_alt_semi", // MICH 2000 (Semi-Arid/Alt) + "rhsusf_mich_bare_alt_tan", // MICH 2000 (Tan/Alt) + "rhsusf_mich_bare_alt", // MICH 2000 (Alt) + "rhsusf_mich_bare_headset", // MICH 2000 (Headset) + "rhsusf_mich_bare_norotos_alt_headset", // MICH 2000 (Norotos/Alt/Headset) + "rhsusf_mich_bare_norotos_alt_semi_headset", // MICH 2000 (Semi-Arid/Norotos/Alt/Headset) + "rhsusf_mich_bare_norotos_alt_semi", // MICH 2000 (Semi-Arid/Norotos/Alt) + "rhsusf_mich_bare_norotos_alt_tan_headset", // MICH 2000 (Tan/Norotos/Alt/Headset) + "rhsusf_mich_bare_norotos_alt_tan", // MICH 2000 (Tan/Norotos/Alt) + "rhsusf_mich_bare_norotos_alt", // MICH 2000 (Norotos/Alt) + "rhsusf_mich_bare_norotos_arc_alt_headset", // MICH 2000 (Norotos/ARC/Alt/Headset) + "rhsusf_mich_bare_norotos_arc_alt_semi_headset", // MICH 2000 (Semi-Arid/Norotos/ARC/Alt/Headset) + "rhsusf_mich_bare_norotos_arc_alt_semi", // MICH 2000 (Semi-Arid/Norotos/ARC/Alt) + "rhsusf_mich_bare_norotos_arc_alt_tan_headset", // MICH 2000 (Tan/Norotos/ARC/Alt/Headset) + "rhsusf_mich_bare_norotos_arc_alt_tan", // MICH 2000 (Tan/Norotos/ARC/Alt) + "rhsusf_mich_bare_norotos_arc_alt", // MICH 2000 (Norotos/ARC/Alt) + "rhsusf_mich_bare_norotos_arc_headset", // MICH 2000 (Norotos/ARC/Headset) + "rhsusf_mich_bare_norotos_arc_semi_headset", // MICH 2000 (Semi-Arid/Norotos/ARC/Headset) + "rhsusf_mich_bare_norotos_arc_semi", // MICH 2000 (Semi-Arid/Norotos/ARC) + "rhsusf_mich_bare_norotos_arc_tan", // MICH 2000 (Tan/Norotos/ARC) + "rhsusf_mich_bare_norotos_arc", // MICH 2000 (Norotos/ARC) + "rhsusf_mich_bare_norotos_headset", // MICH 2000 (Norotos/Headset) + "rhsusf_mich_bare_norotos_semi_headset", // MICH 2000 (Semi-Arid/Norotos/Headset) + "rhsusf_mich_bare_norotos_semi", // MICH 2000 (Semi-Arid/Norotos) + "rhsusf_mich_bare_norotos_tan_headset", // MICH 2000 (Tan/Norotos/Headset) + "rhsusf_mich_bare_norotos_tan", // MICH 2000 (Tan/Norotos) + "rhsusf_mich_bare_norotos", // MICH 2000 (Norotos) + "rhsusf_mich_bare_semi_headset", // MICH 2000 (Semi-Arid/Headset) + "rhsusf_mich_bare_semi", // MICH 2000 (Semi-Arid) + "rhsusf_mich_bare_tan_headset", // MICH 2000 (Tan/Headset) + "rhsusf_mich_bare_tan", // MICH 2000 (Tan) + "rhsusf_mich_bare", // MICH 2000 + "rhsusf_mich_helmet_marpatd_alt_headset", // MICH 2000 MARPAD-D (Alt/Headset) + "rhsusf_mich_helmet_marpatd_alt", // MICH 2000 MARPAD-D (Alt) + "rhsusf_mich_helmet_marpatd_headset", // MICH 2000 MARPAD-D (Headset) + "rhsusf_mich_helmet_marpatd_norotos_arc_headset", // MICH 2000 MARPAD-D (Norotos/ARC/Headset) + "rhsusf_mich_helmet_marpatd_norotos_arc", // MICH 2000 MARPAD-D (Norotos/ARC) + "rhsusf_mich_helmet_marpatd_norotos_headset", // MICH 2000 MARPAD-D (Norotos/Headset) + "rhsusf_mich_helmet_marpatd_norotos", // MICH 2000 MARPAD-D (Norotos) + "rhsusf_mich_helmet_marpatd", // MICH 2000 MARPAD-D + "rhsusf_mich_helmet_marpatwd_alt_headset", // MICH 2000 MARPAD-WD (Alt/Headset) + "rhsusf_mich_helmet_marpatwd_alt", // MICH 2000 MARPAD-WD (Alt) + "rhsusf_mich_helmet_marpatwd_headset", // MICH 2000 MARPAD-WD (Headset) + "rhsusf_mich_helmet_marpatwd_norotos_arc_headset", // MICH 2000 MARPAD-WD (Norotos/ARC/Headset) + "rhsusf_mich_helmet_marpatwd_norotos_arc", // MICH 2000 MARPAD-WD (Norotos/ARC) + "rhsusf_mich_helmet_marpatwd_norotos_headset", // MICH 2000 MARPAD-WD (Norotos/Headset) + "rhsusf_mich_helmet_marpatwd_norotos", // MICH 2000 MARPAD-WD (Norotos) + "rhsusf_mich_helmet_marpatwd", // MICH 2000 MARPAD-WD + "rhsusf_opscore_aor1_pelt_nsw", // FAST Ballistic (AOR1/Headset/NSW) + "rhsusf_opscore_aor1_pelt", // FAST Ballistic (AOR1/Headset) + "rhsusf_opscore_aor1", // FAST Ballistic (AOR1) + "rhsusf_opscore_aor2_pelt_nsw", // FAST Ballistic (AOR2/Headset/NSW) + "rhsusf_opscore_aor2_pelt", // FAST Ballistic (AOR2/Headset) + "rhsusf_opscore_aor2", // FAST Ballistic (AOR2) + "rhsusf_opscore_bk_pelt", // FAST Ballistic (Black/Headset) + "rhsusf_opscore_bk", // FAST Ballistic (Black) + "rhsusf_opscore_coy_cover_pelt", // FAST Ballistic (Coyote Cover/Headset/NSW) + "rhsusf_opscore_coy_cover", // FAST Ballistic (Coyote Cover) + "rhsusf_opscore_fg_pelt_cam", // FAST Ballistic (Foliage Green/Headset/Cam) + "rhsusf_opscore_fg_pelt_nsw", // FAST Ballistic (Foliage Green/Headset/NSW) + "rhsusf_opscore_fg_pelt", // FAST Ballistic (Foliage Green/Headset) + "rhsusf_opscore_fg", // FAST Ballistic (Foliage Green) + "rhsusf_opscore_mar_fg_pelt", // FAST Maritime (Foliage Green/Headset) + "rhsusf_opscore_mar_fg", // FAST Maritime (Foliage Green) + "rhsusf_opscore_mar_ut_pelt", // FAST Maritime (Urban Tan/Headset) + "rhsusf_opscore_mar_ut", // FAST Maritime (Urban Tan) + "rhsusf_opscore_mc_cover_pelt_cam", // FAST Ballistic (Multicam Cover/Headset/NSW/Cam) + "rhsusf_opscore_mc_cover_pelt_nsw", // FAST Ballistic (Multicam Cover/Headset/NSW) + "rhsusf_opscore_mc_cover_pelt", // FAST Ballistic (Multicam Cover/Headset) + "rhsusf_opscore_mc_cover", // FAST Ballistic (Multicam Cover) + "rhsusf_opscore_mc_pelt_nsw", // FAST Ballistic (Multicam Paint/Headset/NSW) + "rhsusf_opscore_mc_pelt", // FAST Ballistic (Multicam Paint/Headset) + "rhsusf_opscore_mc", // FAST Ballistic (Multicam Paint) + "rhsusf_opscore_paint_pelt_nsw_cam", // FAST Ballistic (Paint/Headset/NSW/Cam) + "rhsusf_opscore_paint_pelt_nsw", // FAST Ballistic (Paint/Headset/NSW) + "rhsusf_opscore_paint_pelt", // FAST Ballistic (Paint/Headset) + "rhsusf_opscore_paint", // FAST Ballistic (Paint) + "rhsusf_opscore_rg_cover_pelt", // FAST Ballistic (Ranger Green Cover/Headset/NSW) + "rhsusf_opscore_rg_cover", // FAST Ballistic (Ranger Green Cover) + "rhsusf_opscore_ut_pelt_cam", // FAST Ballistic (Urban Tan/Headset/Cam) + "rhsusf_opscore_ut_pelt_nsw_cam", // FAST Ballistic (Urban Tan/Headset/NSW/Cam) + "rhsusf_opscore_ut_pelt_nsw", // FAST Ballistic (Urban Tan/Headset/NSW) + "rhsusf_opscore_ut_pelt", // FAST Ballistic (Urban Tan/Headset) + "rhsusf_opscore_ut", // FAST Ballistic (Urban Tan) + "rhsusf_patrolcap_ocp", // Patrol Cap OEF-CP + "rhsusf_patrolcap_ucp", // Patrol Cap UCP + "rhsusf_protech_helmet_ess", // Pro-Tech SF (ESS) + "rhsusf_protech_helmet_rhino_ess", // Pro-Tech SF (Rhino/ESS) + "rhsusf_protech_helmet_rhino", // Pro-Tech SF (Rhino) + "rhsusf_protech_helmet", // Pro-Tech SF + + // Facegear + "rhs_ess_black", // Ballistic Goggles (Black) + "rhs_googles_black", // Ballistic Glasses (Black) + "rhs_googles_clear", // Ballistic Glasses (Clear) + "rhs_googles_orange", // Ballistic Glasses (Clear) + "rhs_googles_yellow", // Ballistic Glasses (Clear) + "rhsusf_oakley_goggles_blk", // SI Ballistic 2.0 (Black) + "rhsusf_oakley_goggles_clr", // SI Ballistic 2.0 (Clear) + "rhsusf_oakley_goggles_ylw", // SI Ballistic 2.0 (Yellow) + "rhsusf_shemagh_gogg_grn", // Shemagh w/ Goggles (Green) + "rhsusf_shemagh_gogg_od", // Shemagh w/ Goggles (OD) + "rhsusf_shemagh_gogg_tan", // Shemagh w/ Goggles (Tan) + "rhsusf_shemagh_gogg_white", // Shemagh w/ Goggles (White) + "rhsusf_shemagh_grn", // Shemagh (Green) + "rhsusf_shemagh_od", // Shemagh (OD) + "rhsusf_shemagh_tan", // Shemagh (Tan) + "rhsusf_shemagh_white", // Shemagh (White) + "rhsusf_shemagh2_gogg_grn", // Shemagh w/ Goggles (Green/alt) + "rhsusf_shemagh2_gogg_od", // Shemagh w/ Goggles (OD/alt) + "rhsusf_shemagh2_gogg_tan", // Shemagh w/ Goggles (Tan/alt) + "rhsusf_shemagh2_gogg_white", // Shemagh w/ Goggles (White/alt) + "rhsusf_shemagh2_grn", // Shemagh (Green/alt) + "rhsusf_shemagh2_od", // Shemagh (OD/alt) + "rhsusf_shemagh2_tan", // Shemagh (Tan/alt) + "rhsusf_shemagh2_white", // Shemagh (White/alt) + + // Vests + "rhsusf_iotv_ocp_Grenadier", // IOTV (Grenadier/OEF-CP) + "rhsusf_iotv_ocp_Medic", // IOTV (Medic/OEF-CP) + "rhsusf_iotv_ocp_Repair", // IOTV (Repair/OEF-CP) + "rhsusf_iotv_ocp_Rifleman", // IOTV (Rifleman/OEF-CP) + "rhsusf_iotv_ocp_SAW", // IOTV (SAW/OCP) + "rhsusf_iotv_ocp_Squadleader", // IOTV (Squadleader/OCP) + "rhsusf_iotv_ocp_Teamleader", // IOTV (Teamleader/OCP) + "rhsusf_iotv_ocp", // IOTV (OEF-CP) + "rhsusf_iotv_ucp_Grenadier", // IOTV (Grenadier/UCP) + "rhsusf_iotv_ucp_Medic", // IOTV (Medic/UCP) + "rhsusf_iotv_ucp_Repair", // IOTV (Repair/UCP) + "rhsusf_iotv_ucp_Rifleman", // IOTV (Rifleman/UCP) + "rhsusf_iotv_ucp_SAW", // IOTV (SAW/UCP) + "rhsusf_iotv_ucp_Squadleader", // IOTV (Squadleader/UCP) + "rhsusf_iotv_ucp_Teamleader", // IOTV (Teamleader/UCP) + "rhsusf_iotv_ucp", // IOTV (UCP) + "rhsusf_mbav_grenadier", // MBAV (Grenadier) + "rhsusf_mbav_light", // MBAV (Light) + "rhsusf_mbav_medic", // MBAV (Medic) + "rhsusf_mbav_mg", // MBAV (Machinegunner) + "rhsusf_mbav_rifleman", // MBAV (Rifleman) + "rhsusf_mbav", // MBAV + "rhsusf_plateframe_grenadier", // Plateframe (Grenadier) + "rhsusf_plateframe_light", // Plateframe (Light) + "rhsusf_plateframe_machinegunner", // Plateframe (Machinegunner) + "rhsusf_plateframe_marksman", // Plateframe (Marksman) + "rhsusf_plateframe_medic", // Plateframe (Medic) + "rhsusf_plateframe_rifleman", // Plateframe (Rifleman) + "rhsusf_plateframe_sapi", // Plateframe + "rhsusf_plateframe_teamleader", // Plateframe (Teamleader) + "rhsusf_spc_corpsman", // SPC (Corpsman) + "rhsusf_spc_crewman", // SPC (Crewman) + "rhsusf_spc_iar", // SPC (IAR) + "rhsusf_spc_light", // SPC (Light) + "rhsusf_spc_marksman", // SPC (Marksman) + "rhsusf_spc_mg", // SPC (Machinegunner) + "rhsusf_spc_patchless_radio", // SPC (Patchless/Radio) + "rhsusf_spc_patchless", // SPC (Patchless) + "rhsusf_spc_rifleman", // SPC (Rifleman) + "rhsusf_spc_sniper", // SPC (Scout Sniper) + "rhsusf_spc_squadleader", // SPC (Squadleader) + "rhsusf_spc_teamleader", // SPC (Teamleader) + "rhsusf_spc", // SPC + "rhsusf_spcs_ocp_crewman", // SPCS (Crewman/OEF-CP) + "rhsusf_spcs_ocp_grenadier", // SPCS (Grenadier/OEF-CP) + "rhsusf_spcs_ocp_machinegunner", // SPCS (Machinegunner/OEF-CP) + "rhsusf_spcs_ocp_medic", // SPCS (Medic/OEF-CP) + "rhsusf_spcs_ocp_rifleman_alt", // SPCS (Rifleman Alt/OEF-CP) + "rhsusf_spcs_ocp_rifleman", // SPCS (Rifleman/OEF-CP) + "rhsusf_spcs_ocp_saw", // SPCS (SAW/OEF-CP) + "rhsusf_spcs_ocp_sniper", // SPCS (Sniper/OEF-CP) + "rhsusf_spcs_ocp_squadleader", // SPCS (Squad leader/OEF-CP) + "rhsusf_spcs_ocp_teamleader_alt", // SPCS (Team Leader Alt/OEF-CP) + "rhsusf_spcs_ocp_teamleader", // SPCS (Team Leader/OEF-CP) + "rhsusf_spcs_ocp", // SPCS (OEF-CP) + "rhsusf_spcs_ucp_crewman", // SPCS (Crewman/UCP) + "rhsusf_spcs_ucp_grenadier", // SPCS (Grenadier/UCP) + "rhsusf_spcs_ucp_machinegunner", // SPCS (Machinegunner/UCP) + "rhsusf_spcs_ucp_medic", // SPCS (Medic/UCP) + "rhsusf_spcs_ucp_rifleman_alt", // SPCS (Rifleman Alt/UCP) + "rhsusf_spcs_ucp_rifleman", // SPCS (Rifleman/UCP) + "rhsusf_spcs_ucp_saw", // SPCS (SAW/UCP) + "rhsusf_spcs_ucp_sniper", // SPCS (Sniper/UCP) + "rhsusf_spcs_ucp_squadleader", // SPCS (Squad Leader/UCP) + "rhsusf_spcs_ucp_teamleader_alt", // SPCS (Team Leader Alt/UCP) + "rhsusf_spcs_ucp_teamleader", // SPCS (Team Leader/UCP) + "rhsusf_spcs_ucp", // SPCS (UCP) + + // Items + "rhs_acc_at4_handler", // AT-4 Peep hole handler + "rhs_optic_maaws", // M3 MAAWS sight + "rhs_weap_optic_smaw", // SMAW sight + "rhsusf_acc_aac_762sd_silencer", // AAC 762-SD + "rhsusf_acc_aac_762sdn6_silencer", // AAC 762-SDN-6 + "rhsusf_acc_aac_scarh_silencer", // AAC SCAR-H SD + "rhsusf_acc_ACOG_anpvs27", // M150 RCO + AN/PVS-27 + "rhsusf_acc_ACOG_d", // TA31RCO (Desert) + "rhsusf_acc_ACOG_MDO", // SU-260/P (MOD) + "rhsusf_acc_ACOG_RMR", // TA31RCO-RMR + "rhsusf_acc_ACOG_USMC", // AN/PVQ-31A RCO + "rhsusf_acc_ACOG_wd", // TA31RCO (Woodland) + "rhsusf_acc_ACOG", // M150 RCO + "rhsusf_acc_ACOG2_USMC", // AN/PVQ-31A (ARD) + "rhsusf_acc_ACOG2", // M150 RCO (ARD) + "rhsusf_acc_ACOG3_USMC", // AN/PVQ-31A (ARD/Lens Cover) + "rhsusf_acc_ACOG3", // M150 RCO (ARD/Lens Cover) + "rhsusf_acc_anpas13gv1", // AN/PAS-13G(V)1 + "rhsusf_acc_anpeq15_bk_light", // AN/PEQ-15/M952V Black (Light) + "rhsusf_acc_anpeq15_bk_top", // AN/PEQ-15 Black (Top) + "rhsusf_acc_anpeq15_bk", // AN/PEQ-15/M952V Black (Laser) + "rhsusf_acc_anpeq15_light", // AN/PEQ-15/M952V (Light) + "rhsusf_acc_anpeq15_top", // AN/PEQ-15 (Top) + "rhsusf_acc_anpeq15_wmx_light", // AN/PEQ-15 + WMX (light) + "rhsusf_acc_anpeq15_wmx", // AN/PEQ-15 + WMX (laser) + "rhsusf_acc_anpeq15", // AN/PEQ-15/M952V (Laser) + "rhsusf_acc_anpeq15A", // AN/PEQ-15A + "rhsusf_acc_anpeq15side_bk", // AN/PEQ-15 Black + "rhsusf_acc_anpeq15side", // AN/PEQ-15 + "rhsusf_acc_anpeq16a_light_top", // AN/PEQ-16A (Top/Light) + "rhsusf_acc_anpeq16a_light", // AN/PEQ-16A (Light) + "rhsusf_acc_anpeq16a_top", // AN/PEQ-16A (Top/Laser) + "rhsusf_acc_anpeq16a", // AN/PEQ-16A (Laser) + "rhsusf_acc_anpvs27", // AN/PVS-27 + "rhsusf_acc_ARDEC_M240", // ARDEC 4-Prong + "rhsusf_acc_compm4", // M68 CCO + "rhsusf_acc_ELCAN_ard", // M145 MGO (ARD) + "rhsusf_acc_ELCAN", // M145 MGO + "rhsusf_acc_eotech_552_d", // M552 CCO (Desert) + "rhsusf_acc_eotech_552_wd", // M552 CCO (Woodland) + "rhsusf_acc_eotech_552", // M552 CCO + "rhsusf_acc_eotech_xps3", // XPS3 + "rhsusf_acc_EOTECH", // EXPS3 + "rhsusf_acc_g33_T1", // G33 + SU-278/PVS + "rhsusf_acc_g33_xps3_tan", // G33 + XPS3 (Tan) + "rhsusf_acc_g33_xps3", // G33 + XPS3 + "rhsusf_acc_grip1", // Grip Pod + "rhsusf_acc_grip2_tan", // AFG Grip (Tan) + "rhsusf_acc_grip2_wd", // AFG Grip (Woodland) + "rhsusf_acc_grip2", // AFG Grip + "rhsusf_acc_grip3_tan", // TD Vertical Grip (Tan) + "rhsusf_acc_grip3", // TD Vertical Grip + "rhsusf_acc_grip4_bipod", // SAW Grip & Bipod + "rhsusf_acc_grip4", // SAW Grip + "rhsusf_acc_harris_bipod", // Harris Bipod + "rhsusf_acc_harris_swivel", // Harris Bipod + "rhsusf_acc_kac_grip_saw_bipod", // KAC Grip & SAW Bipod + "rhsusf_acc_kac_grip", // KAC Vertical Grip + "rhsusf_acc_LEUPOLDMK4_2_d", // Mk. 4 M5 (Desert) + "rhsusf_acc_LEUPOLDMK4_2_mrds", // Mk. 4 M5 (MRDS) + "rhsusf_acc_LEUPOLDMK4_2", // Mk. 4 ER/T 6.5-20x M5 + "rhsusf_acc_LEUPOLDMK4_d", // Mk. 4 M3 (Desert) + "rhsusf_acc_LEUPOLDMK4_wd", // Mk. 4 M3 (Woodland) + "rhsusf_acc_LEUPOLDMK4", // Mk. 4 ER/T 3.5-10x M3 + "rhsusf_acc_M2010S_d", // TiTan (Desert) + "rhsusf_acc_M2010S_sa", // TiTan (Semi-Arid) + "rhsusf_acc_M2010S_wd", // TiTan (Woodland) + "rhsusf_acc_M2010S", // TiTan + "rhsusf_acc_m24_muzzlehider_black", // M24 150X. Flash Hider + "rhsusf_acc_m24_muzzlehider_d", // M24 150X. Flash Hider (Desert) + "rhsusf_acc_m24_muzzlehider_wd", // M24 150X. Flash Hider (Woodland) + "rhsusf_acc_m24_silencer_black", // M24 Suppressor + "rhsusf_acc_m24_silencer_d", // M24 Suppressor (Desert) + "rhsusf_acc_m24_silencer_wd", // M24 Suppressor (Woodland) + "rhsusf_acc_M2A1", // M2A1 GL Sight + "rhsusf_acc_M8541_low_d", // M8541 (low mount/Desert) + "rhsusf_acc_M8541_low_wd", // M8541 (low mount/Woodland) + "rhsusf_acc_M8541_low", // M8541 (low mount) + "rhsusf_acc_M8541_mrds", // M8541 (MRDS) + "rhsusf_acc_M8541", // M8541 + "rhsusf_acc_M952V", // M952V + "rhsusf_acc_mrds_c", // MRDS Coyote + "rhsusf_acc_mrds_fwd_c", // MRDS Coyote (Forward) + "rhsusf_acc_mrds_fwd", // MRDS (Forward) + "rhsusf_acc_mrds", // MRDS + "rhsusf_acc_nt4_black", // NT4 QDSS (Black) + "rhsusf_acc_nt4_tan", // NT4 QDSS (Tan) + "rhsusf_acc_omega9k", // SILENCERCO OMEGA 9K + "rhsusf_acc_premier_anpvs27", // M8541A + AN/PVS-27 + "rhsusf_acc_premier_low", // M8541A (low mount) + "rhsusf_acc_premier_mrds", // M8541A SSDS (MRDS) + "rhsusf_acc_premier", // M8541A SSDS + "rhsusf_acc_RM05_fwd", // RM05 RMR LT726 (Forward) + "rhsusf_acc_RM05", // RM05 RMR LT726 + "rhsusf_acc_rotex_mp7_aor1", // Rotex-II (AOR1) + "rhsusf_acc_rotex_mp7_desert", // Rotex-II (Desert) + "rhsusf_acc_rotex_mp7_winter", // Rotex-II (Winter) + "rhsusf_acc_rotex_mp7", // Rotex-II (Black) + "rhsusf_acc_rotex5_grey", // Rotex-5 (Grey) + "rhsusf_acc_rotex5_tan", // Rotex-5 (Tan) + "rhsusf_acc_rvg_blk", // RVG Grip (Black) + "rhsusf_acc_rvg_de", // RVG Grip (Dark Earth) + "rhsusf_acc_RX01_NoFilter_tan", // RX01 Tan (w/o Filter) + "rhsusf_acc_RX01_NoFilter", // RX01 (w/o Filter) + "rhsusf_acc_RX01_tan", // RX01 Reflex Tan + "rhsusf_acc_RX01", // RX01 Reflex + "rhsusf_acc_saw_bipod", // SAW Bipod + "rhsusf_acc_saw_lw_bipod", // SAW Improved Bipod + "rhsusf_acc_SF3P556", // SF3P-556-1/2-28 + "rhsusf_acc_SFMB556", // SFMB-556-1/2-28 + "rhsusf_acc_SR25S_d", // SR-25 Rifle Suppressor (Desert) + "rhsusf_acc_SR25S_wd", // SR-25 Rifle Suppressor (Woodland) + "rhsusf_acc_SR25S", // SR-25 Rifle Suppressor + "rhsusf_acc_su230_c", // SU-230/PVS Coyote + "rhsusf_acc_su230_mrds_c", // SU-230/PVS MRDS Coyote + "rhsusf_acc_su230_mrds", // SU-230/PVS MRDS + "rhsusf_acc_su230", // SU-230/PVS + "rhsusf_acc_su230a_c", // SU-230A/PVS Coyote + "rhsusf_acc_su230a_mrds_c", // SU-230A/PVS MRDS Coyote + "rhsusf_acc_su230a_mrds", // SU-230A/PVS MRDS + "rhsusf_acc_su230a", // SU-230A/PVS + "rhsusf_acc_T1_high", // SU-278/PVS LT660 + "rhsusf_acc_T1_low_fwd", // SU-278/PVS LT661 (Forward) + "rhsusf_acc_T1_low", // SU-278/PVS LT661 + "rhsusf_acc_tacsac_blk", // Tac-Sac Grip (Black) + "rhsusf_acc_tacsac_blue", // Tac-Sac Grip (Blue) + "rhsusf_acc_tacsac_tan", // Tac-Sac Grip (Tan) + "rhsusf_acc_tdstubby_blk", // TD Stubby Grip (Black) + "rhsusf_acc_tdstubby_tan", // TD Stubby Grip (Tan) + "rhsusf_acc_wmx_bk", // WMX Flashlight (Black) + "rhsusf_acc_wmx", // WMX Flashlight + "rhsusf_ANPVS_14", // AN/PVS-14 + "rhsusf_ANPVS_15", // AN/PVS-15 + "rhsusf_bino_leopold_mk4", // M151 Spotting Scope + "rhsusf_bino_lerca_1200_black", // Lecra 1200 Rangefinder (Black) + "rhsusf_bino_lerca_1200_tan", // Lecra 1200 Rangefinder (Tan) + "rhsusf_bino_lrf_Vector21", // Vecrot 21-B + "rhsusf_bino_m24_ARD", // M24 Binoculars (ARD) + "rhsusf_bino_m24", // M24 Binoculars + "rhsusf_Rhino", // Rhino mount + + // Vanilla Standard Items + "acc_flashlight_pistol", // Pistol Flashlight + "B_UavTerminal", // UAV Terminal [NATO] + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "G_B_Diving", // Diving Goggles [NATO] + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "ToolKit", // Toolkit + "U_B_FullGhillie_ard", // Full Ghillie (Arid) [NATO] + "U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO] + "U_B_FullGhillie_sard", // Full Ghillie (Semi-Arid) [NATO] + "U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO] + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "V_RebreatherB", // Rebreather [NATO] + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + // TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_rhsusf_B_BACKPACK", // Eagle A-III OCP (Raven) + "rhsusf_assault_eagleaiii_coy", // Eagle A-III Coyote + "rhsusf_assault_eagleaiii_ocp", // Eagle A-III OEF-CP + "rhsusf_assault_eagleaiii_ucp", // Eagle A-III UCP + "rhsusf_eject_Parachute_backpack", // Static Parachute Bag + "rhsusf_falconii_coy", // Falcon-II Coyote + "rhsusf_falconii_mc", // Falcon-II MC + "rhsusf_falconii", // Falcon-II RGR + + // Standard Vanilla Backpacks + "B_Carryall_cbr", // Carryall Backpack (Coyote) + "B_Carryall_khk", // Carryall Backpack (Khaki) + "B_Carryall_oli", // Carryall Backpack (Olive) + "B_FieldPack_cbr", // Field Pack (Coyote) + "B_FieldPack_khk", // Field Pack (Khaki) + "B_FieldPack_oli", // Field Pack (Olive) + "B_Kitbag_cbr", // Kitbag (Coyote) + "B_Kitbag_rgr", // Kitbag (Green) + "B_Kitbag_tan", // Kitbag (Tan) + "B_Parachute", // Steerable Parachute + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anarc164", // AN/ARC-164 + "tf_anarc210", // AN/ARC-210 + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_anprc155", // AN/PRC 155 + "tf_bussole", // Assault Pack Bussole + "tf_mr3000_multicam", // MR3000 Multicam + "tf_mr3000_rhs", // MR3000 RHS + "tf_mr3000", // MR3000 + "tf_mr6000l", // MR6000L + "tf_rt1523g_big_rhs", // RT-1523G (ASIP) Big RHS + "tf_rt1523g_big", // RT-1523G (ASIP) Big + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_rhs", // RT-1523G (ASIP) RHS + "tf_rt1523g_sage", // RT-1523G (ASIP) Sage + "tf_rt1523g" // RT-1523G (ASIP) +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/sfp.sqf b/kp_liberation.brf_sumava/arsenal_presets/sfp.sqf new file mode 100644 index 0000000..970ebcd --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/sfp.sqf @@ -0,0 +1,502 @@ +/* + Swedish Forces Pack Arsenal Preset + Last Update: 2020-05-03 + + Needed: + - SFP: Swedish Forces Pack - https://steamcommunity.com/sharedfiles/filedetails/?id=826911897 + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "sfp_20Rnd_762x51_ak4", // Ak 4C + "sfp_ag90_base", // Ag 90B + "sfp_ak4_m203", // Ak 4 M203 + "sfp_ak4", // Ak 4 + "sfp_ak4b_m203", // Ak 4B M203 + "sfp_ak4b", // Ak 4B + "sfp_ak4d", // Ak 4D + "sfp_ak5_m203", // Ak 5 M203 + "sfp_ak5_snow", // Ak 5 (Snow) + "sfp_ak5", // Ak 5 + "sfp_ak5b", // Ak 5B + "sfp_ak5c_alt", // Ak 5C (Alt) + "sfp_ak5c_blk", // Ak 5C (Alt/Black) + "sfp_ak5c_m203_blk", // Ak 5C M203 (Black) + "sfp_ak5c_m203", // Ak 5C M203 + "sfp_ak5c", // Ak 5C + "sfp_ak5d", // Ak 5D + "sfp_ak5dmk2", // Ak 5D Mk2 + "sfp_cbj_ms", // CBJ MS + "sfp_cga5p", // CGA 5P + "sfp_flashlight", // Flashlight 3 + "sfp_g36c", // G36C + "sfp_grg48", // GRG m/48 + "sfp_grg86", // GRG m/86 + "sfp_imgint_1010", // Image Intensifier 1010 + "sfp_kpistm45", // K-pist m/45 + "sfp_kpistm45b", // K-pist m/45B + "sfp_ksp58", // Ksp 59B + "sfp_ksp58B2", // Ksp 59B2 + "sfp_ksp90b", // Ksp 90B + "sfp_ksp90c", // Ksp 90C + "sfp_mp5_rail", // MP5 Rail + "sfp_mp5", // MP5 + "sfp_p226", // P226 9 mm + "sfp_p88", // Pistol 88 9 mm + "sfp_psg90_base", // Psg 90 + "sfp_psg90_camo", // Psg 90 (Camo) + "sfp_pskott68_loaded", // Pansarskott m/68 (Miniman) + "sfp_pskott86_loaded", // Pansarskott m/86 + "sfp_rb57_loaded", // Robot 57 + "sfp_rbs69", // RBS 69 (Redeye) + "sfp_remington870", // Remington 870 + "sfp_reminton870_chrome", // Remington 870 (Chrome) + "sfp_reminton870_wood_blue", // Remington 870 (Wood/Chrome) + "sfp_reminton870_wood_chrome", // Remington 870 (Wood/Blue) + "sfp_signpist50" // Signalpistol 80 (Flare) +]; + +GRLIB_arsenal_magazines = [ + "sfp_100Rnd_762x51_ksp58", // 7.62mm 100Rnd + "sfp_10Rnd_127x99_ag90", // 12.7mm 10Rnd Ag90 Mag + "sfp_12Gauge_8rd_Pellets", // 12 Gauge 8 Rnd Buckshopt + "sfp_12Gauge_8rd_Slug", // 12 Gauge 8 Rnd Slug + "sfp_15Rnd_9x19_Mag", // 9mm 15Rnd P226 Mag + "sfp_17Rnd_9x19_Mag", // 9mm 17Rnd Pistol88 Mag + "sfp_1rnd_lyspatron7_mag", // 1Rnd Flare Mag + "sfp_200Rnd_556x45_ksp90_irtracer", // 5.56mm 200Rnd Box IR-Tracers + "sfp_200Rnd_556x45_ksp90", // 5.56mm 200Rnd Box + "sfp_20Rnd_762x51_ak4_ap", // 7.62mm 20nd AP + "sfp_20Rnd_762x51_ak4_ap", // 7.62mm 20Rnd AP + "sfp_20Rnd_762x51_ak4_irtracer", // 7.62mm 20nd IR-Tracer + "sfp_20Rnd_762x51_ak4_irtracer", // 7.62mm 20Rnd IR-Tracer + "sfp_20Rnd_762x51_ak4_tracer", // 7.62mm 20nd Tracer + "sfp_20Rnd_762x51_ak4_tracer", // 7.62mm 20Rnd Tracer + "sfp_20Rnd_762x51_ak4", // 7.62mm 20nd Ball + "sfp_20Rnd_762x51_ak4", // 7.62mm 20Rnd Ball + "sfp_249Rnd_762x51_ksp58", // 7.62mm 249Rnd + "sfp_30Rnd_556x45_Stanag_g36", // 5.56mm 30Rnd Ball (G36) + "sfp_30Rnd_556x45_Stanag_irtracer_plastic", // 5.56mm 30Rnd IR-Tracer (Plastic) + "sfp_30Rnd_556x45_Stanag_irtracer", // 5.56mm 30Rnd IR-Tracer + "sfp_30Rnd_556x45_Stanag_plastic", // 5.56mm 30Rnd Ball (Playtic) + "sfp_30Rnd_556x45_Stanag_tracer_plastic", // 5.56mm 30Rnd Tracer (Plastic) + "sfp_30Rnd_556x45_Stanag_tracer", // 5.56mm 30Rnd Tracer + "sfp_30Rnd_556x45_Stanag", // 5.56mm 30Rnd Ball + "sfp_30Rnd_650x25mag_subsonic", // 6.5mm 30Rnd CBJ subsonic AP + "sfp_30Rnd_650x25mag", // 6.5mm 30Rnd CBJ Mag + "sfp_30Rnd_9mm_mp5_JHP", // 9mm 30Rnd MP5 Mag JHP + "sfp_30Rnd_9mm_mp5", // 9mm 30Rnd MP5 Mag FMJ + "sfp_36Rnd_9mm_kpistm45", // 9mm 36Rnd K-pist m/45 Mag + "sfp_50Rnd_762x51_ksp58_ap", // 7.62mm 49Rnd AP + "sfp_50Rnd_762x51_ksp58_irTracer", // 7.62mm 49Rnd IR-Tracer + "sfp_50Rnd_762x51_ksp58", // 7.62mm 49Rnd + "sfp_71Rnd_9mm_kpistm45", // 9mm 71Rnd K-pist m/45 Mag + "sfp_9Rnd_762x51_psg90_prick", // 7.62mm 9Rnd SLAP + "sfp_9Rnd_762x51_psg90_tracer", // 7.62mm 9Rnd Tracer + "sfp_9Rnd_762x51_psg90", // 7.62mm 9Rnd Ball + "sfp_FlashBang", // Flashbang + "sfp_frdnmina13_mag", // Mine (Fordonsmina 13) + "sfp_grg_he_mag", // Sgr m/86 (HE) + "sfp_grg_heat_62_mag", // Sgr m/62 (HEAT 62) + "sfp_grg_heat_66_mag", // Sgr m/66 (HEAT 66) + "sfp_grg_heat_mag", // Sgr m/75 (HEAT 75) + "sfp_grg_illum_mag", // Lysgr m/82 (Illumination) + "sfp_grg_smoke_mag", // Rokgr m/81 (Smoke) + "sfp_handgrenade_shgr07", // Shgr 07 + "sfp_handgrenade_shgr2000", // Shgr 2000 + "sfp_handgrenade_shgr56", // Shgr 56 + "sfp_pskott68_mag", // Pskott 68 round + "sfp_pskott86_mag", // Pskott 81 round + "sfp_rb57_mag", // Rb 57 Missile + "sfp_rbs69_mag", // RBS 69 + "sfp_riflegrenade_smoke_ak4", // Rifle Grenade (Smoke) + "sfp_sprdeg46_mag", // Spredeg 46 (Small Charge) + "sfp_strvm5_mag", // Mine (Stridyvagnsmina 5) + "sfp_strvm6_mag", // Mine (Stridyvagnsmina 6) + + // Standard Vanilla Magazines, Grenades & Explosives + "1Rnd_HE_Grenade_shell", // 40 mm HE Grenade Round + "1Rnd_Smoke_Grenade_shell", // Smoke Round (White) + "1Rnd_SmokeBlue_Grenade_shell", // Smoke Round (Blue) + "1Rnd_SmokeGreen_Grenade_shell", // Smoke Round (Green) + "1Rnd_SmokeOrange_Grenade_shell", // Smoke Round (Orange) + "1Rnd_SmokePurple_Grenade_shell", // Smoke Round (Purple) + "1Rnd_SmokeRed_Grenade_shell", // Smoke Round (Red) + "1Rnd_SmokeYellow_Grenade_shell", // Smoke Round (Yellow) + "APERSBoundingMine_Range_Mag", // APERS Bounding Mine + "APERSMine_Range_Mag", // APERS Mine + "APERSMineDispenser_Mag", // APERS Mine Dispenser + "APERSTripMine_Wire_Mag", // APERS Tripwire Mine + "ATMine_Range_Mag", // AT Mine + "B_IR_Grenade", // IR Grenade [NATO] + "Chemlight_blue", // Chemlight (Blue) + "Chemlight_green", // Chemlight (Green) + "Chemlight_red", // Chemlight (Red) + "Chemlight_yellow", // Chemlight (Yellow) + "ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge + "DemoCharge_Remote_Mag", // Explosive Charge + "Drone_Range_Mag_dummy", // AT Mine + "Drone_Range_Mag", // AT Mine + "HandGrenade", // RGO Grenade + "IEDLandBig_Remote_Mag", // Large IED (Dug-in) + "IEDLandSmall_Remote_Mag", // Small IED (Dug-in) + "IEDUrbanBig_Remote_Mag", // Large IED (Urban) + "IEDUrbanSmall_Remote_Mag", // Small IED (Urban) + "Laserbatteries", // Designator Batteries + "MiniGrenade", // RGN Grenade + "SatchelCharge_Remote_Mag", // Explosive Satchel + "SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine + "SmokeShell", // Smoke Grenade (White) + "SmokeShellBlue", // Smoke Grenade (Blue) + "SmokeShellGreen", // Smoke Grenade (Green) + "SmokeShellOrange", // Smoke Grenade (Orange) + "SmokeShellPurple", // Smoke Grenade (Purple) + "SmokeShellRed", // Smoke Grenade (Red) + "SmokeShellYellow", // Smoke Grenade (Yellow) + "TrainingMine_Mag", // Training Mine + "UGL_FlareCIR_F", // Flare Round (IR) + "UGL_FlareGreen_F", // Flare Round (Green) + "UGL_FlareRed_F", // Flare Round (Red) + "UGL_FlareWhite_F", // Flare Round (White) + "UGL_FlareYellow_F" // Flare Round (Yellow) + ]; + +GRLIB_arsenal_items = [ + // Uniforms + "sfp_drysuit", // Dry Suit + "sfp_ghillie_desert_uniform", // Ghillie suit (Desert) + "sfp_ghillie_uniform", // Ghillie suit + "sfp_m58w_uniform_alt1", // m58 Field uniform (Alternative) + "sfp_m58w_uniform", // m58 Fielduniform + "sfp_m59w_uniform_alt1", // m59 Fielduniform (Alternative) + "sfp_m59w_uniform", // m59 Fielduniform + "sfp_m69p_uniform_hood", // m69P Crew Uniform (Hood) + "sfp_m69p_uniform", // m69P Crew Uniform + "sfp_m87_flying_suit", // Flying Suit + "sfp_m90_rain", // m90 Fielduniform (Rain Cover) + "sfp_m90d_uniform_folded", // m90 TR BE Shirt (Short sleeve) + "sfp_m90d_uniform_fs18", // m90 TR BE Combatshirt 18 + "sfp_m90d_uniform_long_m08", // m90 TR BE Shirt (Long sleeve) + "sfp_m90d_uniform_tshirt", // m90 TR BE Shirt T-shirt + "sfp_m90d_uniform_tucked_m08", // m90 TR BE Shirt (Tucked - Long sleeve) + "sfp_m90d_uniform", // m90 TR BE Fielduniform + "sfp_m90p_m90fj_uniform", // m90P Fielduniform (Alternative) + "sfp_m90p_uniform", // m90P Fielduniform + "sfp_m90s_uniform_sw", // M90S Uniform (Alt 1) + "sfp_m90s_uniform_ws", // M90S Uniform (Alt 2) + "sfp_m90s_uniform", // M90S Uniform + "sfp_m90w_uniform_boots_m08", // m90W Fielduniform (M08 Boots) + "sfp_m90w_uniform_dirty", // m90W Fielduniform (Dirty) + "sfp_m90w_uniform_folded", // m90 TR GR Shirt (Short sleeve) + "sfp_m90w_uniform_fs18", // m90 TR GR Combatshirt 18 + "sfp_m90w_uniform_ksk90_modern", // m90W Fielduniform (Body armor 90 Velcro) + "sfp_m90w_uniform_ksk90", // m90W Fielduniform (Body armor 90) + "sfp_m90w_uniform_long_m08", // m90 TR GR Shirt (Long sleeve) + "sfp_m90w_uniform_m08", // m90W Fielduniform (M08 Jacket) + "sfp_m90w_uniform_modern", // m90W Fielduniform (Velcro) + "sfp_m90w_uniform_tshirt", // m90 TR GR T-shirt + "sfp_m90w_uniform_tucked_m08", // m90 TR GR Shirt (Tucked - Long sleeve) + "sfp_m90w_uniform", // m90W Fielduniform + "sfp_m93_naval", // M93 Naval Uniform + "sfp_sog_multicam_tan", // SOG Multicam (TAN) + "sfp_sog_multicam", // SOG Multicam + + // Headgear + "sfp_adyk_beret", // Beret (Assault diver) + "sfp_amf_beret", // Beret (Amphibious) + "sfp_armor_beret", // Beret (Armor) + "sfp_army_beret", // Beret (Army) + "sfp_bashatt90", // Bashatt 90 + "sfp_batmossa_m48", // Batmossa m48 + "sfp_fjs_beret", // Beret (Para Ranger) + "sfp_flighthelmet116", // Flight Helmet 116 + "sfp_headset", // Headset + "sfp_homeguard_beret", // Beret (Homeguard) + "sfp_i22_beret", // Beret (Mountain Ranger I22) + "sfp_k3_beret", // Beret (Airborne K3) + "sfp_k4_beret", // Beret (Norrland Ranger K4) + "sfp_ka2_beret", // Beret (Coastal Artillery KA2) + "sfp_ka3_beret", // Beret (Coastal Artillery KA3) + "sfp_kj_beret", // Beret (Coastal Ranger) + "sfp_lg_beret", // Beret (Livgardet Infantry) + "sfp_lgmp_beret", // Beret (Livgardet Cavalry (MP)) + "sfp_m37w_helmet_cap1", // M37 Helmet (Net-Cap Down alt2) + "sfp_m37w_helmet_dok_camo", // M37 Helmet (Camo) + "sfp_m37w_helmet_dok", // M37 Helmet (Net-Cap up) + "sfp_m37w_helmet_dok2", // M37 Helmet (Net-Cap Down) + "sfp_m37w_helmet_dok3", // M37 Helmet (Net-Cap Down alt3) + "sfp_m37w_helmet_dok4", // M37 Helmet (Net-Cap Down alt4) + "sfp_m37w_helmet_mp", // M37 Helmet (MP) + "sfp_m37w_helmet_un", // M37 Helmet (UN) + "sfp_m37w_helmet", // M37 Helmet + "sfp_m59w_cap_alt", // Fieldcap m/59 (Alt) + "sfp_m59w_cap", // Fieldcap m/59 + "sfp_m90beige_helmet_clean_headset_nvg_velcro", // M90 Operator (Tan Headset) Helmet + "sfp_m90beige_helmet_clean_nvg_velcro", // M90 Operator (Tan) Helmet + "sfp_m90beige_helmet_clean_peltor_nvg_velcro", // M90 Operator (Tan Comtacs) Helmet + "sfp_m90d_cap_isaf", // M90K Cap (ISAF) + "sfp_m90d_cap_peltor", // M90K Cap (Peltor) + "sfp_m90d_cap", // M90K Cap + "sfp_m90d_helmet_headset_nvg", // M90D Helmet (Headset NVG) + "sfp_m90d_helmet_headset", // M90D Helmet (Headset) + "sfp_m90d_helmet_nvg", // M90D Helmet (NVG) + "sfp_m90d_helmet_peltor_nvg", // M90D Helmet (Peltor NVG) + "sfp_m90d_helmet_peltor", // M90D Helmet (Peltor) + "sfp_m90d_helmet", // M90D Helmet + "sfp_m90green_helmet_clean_headset_nvg_velcro", // M90 Operator (Green Headset) Helmet + "sfp_m90green_helmet_clean_nvg", // M90 Operator (Green) Helmet + "sfp_m90green_helmet_clean_peltor_nvg_velcro", // M90 Operator (Green Peltor NGV Headset) Helmet + "sfp_m90green_helmet_clean", // M90 Clean Helmet + "sfp_m90s_helmet_headset_nvg", // M90S Helmet (Headset NVG) + "sfp_m90s_helmet_headset", // M90S Helmet (Headset) + "sfp_m90s_helmet_nvg", // M90S Helmet (NVG) + "sfp_m90s_helmet_peltor_nvg", // M90S Helmet (Peltor NVG) + "sfp_m90s_helmet_peltor", // M90S Helmet (Peltor) + "sfp_m90s_helmet", // M90S Helmet + "sfp_m90un_helmet_clean_tele", // M90 Clean Helmet (UN Crew) + "sfp_m90un_helmet_clean", // M90 Clean Helmet (UN) + "sfp_m90un_helmet_headset_nvg", // M90 UN Helmet (Headset NVG) + "sfp_m90un_helmet_headset", // M90 UN Helmet (Headset) + "sfp_m90un_helmet_nvg", // M90 UN Helmet (NVG) + "sfp_m90un_helmet_peltor_nvg", // M90 UN Helmet (Peltor NVG) + "sfp_m90un_helmet_peltor", // M90 UN Helmet (Peltor) + "sfp_m90un_helmet", // M90 UN Helmet + "sfp_m90w_booniehat", // M90W Boonie Hat + "sfp_m90w_cap_alt", // Fieldcap m/90 (Alt) + "sfp_m90w_cap", // Fieldcap m/90 + "sfp_m90w_helmet_headset_nvg", // M90W Helmet (Headset NVG) + "sfp_m90w_helmet_headset", // M90W Helmet (Headset) + "sfp_m90w_helmet_nvg", // M90W Helmet (NVG) + "sfp_m90w_helmet_peltor_nvg", // M90W Helmet (Peltor NVG) + "sfp_m90w_helmet_peltor", // M90W Helmet (Peltor) + "sfp_m90w_helmet", // M90W Helmet + "sfp_ollesbrorsa_gray_alt", // Wool cap Gray alt (Olles Brorsa) + "sfp_ollesbrorsa_gray", // Wool cap Gray (Olles Brorsa) + "sfp_ollesbrorsa_green_alt", // Wool cap Green alt (Olles Brorsa) + "sfp_ollesbrorsa_green", // Wool cap Green (Olles Brorsa) + "sfp_peltor", // Peltor + "sfp_sf_beret", // Beret (SF) + "sfp_telehelmet_2", // Telehelmet 2 + "sfp_un_beret", // Beret (UN) + "sfp_un_booniehat", // UN Boonie Hat + "sfp_wool_beanie_green", // Wool beanie (Modern) + + // Facegear + "sfp_armband_blue", // Armband (Observer) + "sfp_armband_guard", // Armband (Guard) + "sfp_armband_instructor", // Armband (Instructor) + "sfp_armband_medic_white", // Armband (Medic White) + "sfp_armband_medic", // Armband (Medic) + "sfp_armband_mp_black", // Armband (MP Black) + "sfp_armband_mp_green", // Armband (MP Green) + "sfp_armband_mp", // Armband (MP) + "sfp_armband_white", // Armband (Opposing Force) + "sfp_dive_goggles_cyclop", // Diving cyclop + "sfp_skyddsmask90", // Gas mask + + // Vests + "sfp_kroppskydd94_crew", // Kroppsskydd 94 (Crew) + "sfp_kroppskydd94_rifle1", // Kroppsskydd 94 (Rifle1) + "sfp_kroppskydd94_sv2k_rifle1_diaper", // Kroppsskydd 94 Sv2k (Rifle1 Groin) + "sfp_kroppskydd94_sv2k_rifle1", // Kroppsskydd 94 Sv2k (Rifle1) + "sfp_kroppsskydd12_crew", // Kroppsskydd 12 (Crew) + "sfp_kroppsskydd12_gl", // Kroppsskydd 12 (GL) + "sfp_kroppsskydd12_holster", // Kroppsskydd 12 (Holster) + "sfp_kroppsskydd12_medic", // Kroppsskydd 12 (Medic) + "sfp_kroppsskydd12_mg", // Kroppsskydd 12 (MG) + "sfp_kroppsskydd12_tl", // Kroppsskydd 12 (Teamleader) + "sfp_kroppsskydd12", // Kroppsskydd 12 + "sfp_kroppsskydd94_un", // Kroppsskydd 94 (UN) + "sfp_kroppsskydd94", // Kroppsskydd 94 + "sfp_rebreather_old", // Rebreather (Classic) + "sfp_stridsbalte_304k_ar", // Combat belt 304k (AR) + "sfp_stridsbalte_304k_extrabag", // Combat belt 304k (Alt) + "sfp_stridsbalte_304k_gl", // Combat belt 304k (GR) + "sfp_stridsbalte_304k_medic", // Combat belt 304k (Medic) + "sfp_stridsbalte_304k", // Combat belt 304k + "sfp_stridssele_extrabag", // Stridssele (Alt) + "sfp_stridssele_medic", // Stridssele (Medic) + "sfp_stridssele", // Stridssele + "sfp_stridsvast08", // Stridsvast 08 + "sfp_stridsvast2000_ar", // Stridsvast 2000 (AR) + "sfp_stridsvast2000_gl", // Stridsvast 2000 (GL) + "sfp_stridsvast2000_light", // Stridsvast 2000 (Light) + "sfp_stridsvast2000_mg", // Stridsvast 2000 (MG) + "sfp_stridsvast2000", // Stridsvast 2000 + "sfp_suicidebelt", // Martyrs vest + + // Items + "sfp_muzzle_snds_cbj", // Sound suppressor (6.5 CBJ) + "sfp_optic_3x_aimpoint", // Aimpoint CS + 3x + "sfp_optic_aimpoint_t1", // Aimpoint T1 + "sfp_optic_aimpoint", // Aimpoint CS + "sfp_optic_hensoldt_4x", // Hensoldt 4x + "sfp_optic_kikarsikte09_4x", // Kikarsikte 09 + "sfp_optic_kikarsikte90b_10x", // Kikarsikte 90B (10x) + "sfp_optic_susat_4x", // SUSAT 4x + "sfp_tlr2", // TLR-2 + + // Vanilla Standard Items + "acc_flashlight_pistol", // Pistol Flashlight + "acc_flashlight", // Flashlight + "acc_pointer_IR", // IR Laser Pointer + "B_UavTerminal", // UAV Terminal [NATO] + "Binocular", // Binoculars + "bipod_01_F_blk", // Bipod (Black) [NATO] + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "Laserdesignator_03", // Laser Designator (Olive) + "Laserdesignator", // Laser Designator (Sand) + "Medikit", // Medikit + "MineDetector", // Mine Detector + "muzzle_snds_B", // Sound Suppressor (7.62 mm) + "muzzle_snds_H_MG_blk_F", // Sound Suppressor MG + "muzzle_snds_L", // Sound Suppressor (9 mm) + "muzzle_snds_M", // Sound Suppressor (5.56 mm) + "NVGoggles_INDEP", // NV Goggles (Green) + "NVGoggles_OPFOR", // NV Goggles (Black) + "NVGoggles_tna_F", // NV Goggles (Tropic) + "NVGoggles", // NV Goggles (Brown) + "NVGogglesB_blk_F", // ENVG-II (Black) + "NVGogglesB_grn_F", // ENVG-II (Green) + "NVGogglesB_gry_F", // ENVG-II (Grey) + "Rangefinder", // Rangefinder + "sfp_dbal2", // Dbal 2 + "ToolKit", // Toolkit + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + // TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "sfp_backpack_grg_loader", // GRG Loader (Backpack) + "sfp_backpack_lk35", // LK 35 + "sfp_backpack_sjvv9", // Medic Bag + "sfp_backpack_stridssack08", // Combatbag 08 + "sfp_backpack_stridssack2000", // Combat Bag 2000 + "sfp_stridssele_backpack_grg", // Stridssele - Backpack (GRG) + "sfp_stridssele_backpack", // Stridssele - Backpack + + // Standard Vanilla Backpacks + "B_Parachute", // Steerable Parachute + + // Backpack Radios (that work with TFAR) + "sfp_lk35_ra145", // Ra 145 LK 35 + "sfp_ra180", // Ra 180 + "sfp_stridssack2000_ra_ksk12", // Ra 180 Rucksack 2k Krsk12 + "sfp_stridssack2000_ra_ksk90", // Ra 180 Rucksack 2k Krsk90 + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack" // Telescopic Ladder +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/unsung.sqf b/kp_liberation.brf_sumava/arsenal_presets/unsung.sqf new file mode 100644 index 0000000..ffb6892 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/unsung.sqf @@ -0,0 +1,1879 @@ +/* + The Unsung Vietnam War Mod US Arsenal Preset + Last Update: 2020-05-06 + + Needed: + - Unsung - https://steamcommunity.com/sharedfiles/filedetails/?id=943001311 + + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + "uns_357m", // Colt Lawman Mk.III (.357) + "uns_38spec", // S/W Model 10 (.38 Spec) + "uns_ak47_49", // AK-47/49 + "uns_ak47_52", // AK-47/52 + "uns_ak47mag", // AK-47 + "uns_akm_drum", // AKM (Drum) + "uns_akm", // AKM + "uns_akms_drum", // AKMS (Drum) + "uns_akms", // AKMS + "uns_akmsf_drum", // AKMS (folded/Drum) + "uns_akmsf", // AKMS (folded) + "uns_aks47", // AKS-47 + "uns_aks47f", // AKS-47 (folded) + "uns_APS", // Stechkin APS + "uns_B40", // B40 RPG (HE) + "uns_baikal_sawnoff", // Shotgun (Baikal/sawn-off) + "uns_baikal", // Shotgun (Baikal) + "uns_bar", // M-1918 BAR (Bipod) + "uns_bhp", // Browning Hi-Power + "uns_coltcmdr", // Colt Commander + "uns_DP28_base", // DP-28 LMG + "uns_ex41", // China Lake 40mm GL + "uns_f1_smg", // F1 SMG + "uns_ithaca37_grip", // Shotgun (Ithaca 37/grip) + "uns_ithaca37", // Shotgun (Ithaca 37) + "uns_k50m", // K-50M + "uns_k50mdrum", // K-50M (Drum) + "uns_kar98k", // Mauser Kar-98k + "uns_l1a1_blk", // L1A1 SLR (Lithgow Black) + "uns_l1a1_enfield", // L1A1 SLR (Enfield) + "uns_l1a1", // L1A1 SLR (Lithgow) + "uns_l1a1gl", // L2A1 SLR (SAS/XM148) + "uns_l2a1_shorty", // L2A1 SLR (SAS) + "uns_l2a1", // L2A1 SLR + "uns_m127a1_flare", // M127-A1 Signal Flare + "uns_m14", // M-14 Rifle + "uns_m16_camo", // M16 (camo) + "uns_M16_dm", // M16 (Dual Mag) + "uns_m16_m203", // M16 (M203) + "uns_m16_xm148_camo", // M16 (XM148/camo) + "uns_m16_xm148", // M16 (XM148) + "uns_m16", // M16 + "uns_m16A1_camo", // M16A1 (camo) + "uns_M16A1_HBAR", // M16A1 (HBAR LMG) + "uns_m16a1_m203", // M16A1 (M203) + "uns_m16a1_xm148", // M16A1 (XM148) + "uns_M16A1", // M16A1 + "uns_m1897", // Shotgun (M97) + "uns_m1897riot", // Shotgun (M97 Riot) + "uns_m1903", // M1903-A1 Springfield + "uns_m1911", // Colt M1911 + "uns_m1919a6", // M-1919-A6 MG + "uns_m1carbine_gl", // M1 Carbine (Rifle Grenade) + "uns_m1carbine_pouch_gl", // M1 Carbine (Pouch/Rifle Grenade) + "uns_m1carbine_pouch", // M1 Carbine (Pouch) + "uns_m1carbine", // M-1 Carbine + "uns_m1garand_gl", // M1 Garand (Rifle Grenade) + "uns_m1garand", // M1 Garand + "uns_m20_bazooka", // M20 90mm Super Bazooka + "uns_m2carbine_gl", // M2 Carbine (Rifle Grenade) + "uns_m2carbine_shorty_p", // M-2 Carbine (sawn-off/sidearm) + "uns_m2carbine_shorty", // M-2 Carbine (sawn-off) + "uns_m2carbine", // M-2 Carbine + "uns_m3a1", // M3A1 Grease-gun + "uns_m3carbine", // M3 Carbine (NV Sniper) + "uns_M40_base", // Remington M40 + "uns_m45", // M/45 Swedish K + "uns_m45f", // M/45 Swedish K (folded) + "uns_m50", // Madsen M50 + "uns_m50f", // Madsen M50 (folded) + "uns_m60", // M-60 MG + "uns_m60grip", // M-60 (Grip) + "uns_m60shorty", // M-60 (Shorty) + "uns_m60support", // M-60 (MG Support) + "uns_M63a_AR_base", // Stone M63a (AR) + "uns_M63a_drum", // Stone M63a (Commando) + "uns_M63a_LMG", // Stone M63a (LMG) + "uns_m63asupport", // Stone M63a (LMG Support) + "uns_m72", // M-72 LAW + "uns_m72used", // M-72 LAW (Used) + "uns_m79", // M-79 40mm GL + "uns_m79p", // M-79 40mm GL (sawn-off) + "uns_m870_mk1", // Shotgun (M870 Mk1) + "uns_m870", // Shotgun (M870 Express) + "uns_mac10", // MAC-10 + "uns_makarov", // Makarow PM + "uns_mas36_gl", // MAS-36 (GL) + "uns_mas36", // MAS-36 + "uns_mas36short_gl", // MAS-36 (CR39 Carbine GL) + "uns_mas36short", // MAS-36 (CR39 Carbine) + "uns_mas4956_gl", // MAS-49/56 (GL) + "uns_mas4956", // MAS-49/56 + "uns_mat49", // MAT-49 + "uns_mat49p", // MAT-49 (sidearm) + "uns_mg42_bakelite", // Mauser MG42 (Bakelite) + "uns_MG42", // Mauser MG-42 + "uns_MG42support", // MG42 (MG Support) + "uns_mkvFlarePistol", // MKV Flare Pistol + "uns_model12", // Shotgun (M12) + "uns_model70_iron", // Winch. Model 70 + "uns_mosin", // Mosin Nagant + "uns_mp40", // MP-40 + "uns_MX991_g", // MX991 Flashlight (green) + "uns_MX991_m1911_base", // M1911 / flashlight + "uns_MX991_m1911SD_base", // M1911 / red flashlight + "uns_MX991_r", // MX991 Flashlight (red) + "uns_MX991_w_base", // MX991 Flashlight (white) + "uns_nagant_m1895", // Nagant M1895 + "uns_owen", // Owen Carbine + "uns_p64", // P-64 CZAK + "uns_PK", // PK LMG + "uns_PKsupport", // PK (MG Support) + "uns_pm63", // PM-63 RAK + "uns_pm63f", // PM-63 RAK (folded) + "uns_pm63p", // PM-63 RAK (sidearm) + "uns_ppk", // Walther PPK + "uns_PPS43", // PPS-43 + "uns_PPS43f", // PPS-43 (folded) + "uns_PPS52", // PPS wz. 52 + "uns_ppsh41", // PPSh-41 + "uns_rpd", // RPD LMG + "uns_rpdsog", // RPD LMG (sawn-off) + "uns_RPDsupport", // RPD (LMG Support) + "uns_rpg2", // RPG-2 (HEAT) + "uns_rpg7", // RPG-7 (HEAT) + "uns_RPK_40", // RPK LMG + "uns_RPK_drum", // RPK LMG (Drum) + "uns_Ruger", // Ruger/MAC MkI SD + "uns_sa58p_camo", // Sa-58P Assault Rifle (camo) + "uns_sa58p", // Sa-58P Assault Rifle + "uns_sa58v", // Sa-58V Assault Rifle + "uns_sa58vf", // Sa-58V Assault Rifle (folded) + "uns_sa61_p", // Sa.vz 61 Skorpion (sidearm) + "uns_sa61", // Sa. vz 61 Skorpion + "uns_sa61f", // Sa. vz 61 Skorpion (folded) + "uns_sa7", // SA-7 Strela + "uns_sa7b", // SA-7b Strela-2M + "uns_sks", // SKS-45 Rifle + "uns_smle_sniper", // Lee Enfield Mk.III (Sniper) + "uns_smle", // Lee Enfield Mk.III + "uns_sten", // Sten Mk. II + "uns_Sterling_f", // Sterling L2A3 Mk4 (folded) + "uns_Sterling", // Sterling L2A3 Mk4 + "uns_SterlingSD_f", // Sterling L2A3 Mk4 (SD/folded) + "uns_SterlingSD", // Sterling L2A3 Mk4 (SD) + "uns_STG_44", // StG-44 + "uns_svd_base", // SVD Dragunov + "uns_SVD_CAMO_base", // SVD Dragunov (Camo) + "uns_svt", // SVT-40 + "uns_sw_m10", // S/W Model 10 (.38) + "uns_t233", // H/R T223 + "uns_thompson", // M1A1 Thompson + "uns_tt30", // Tokarev TT-30 + "uns_Tt33", // Tokarev TT-33 + "uns_type100", // Nambu Type 100 + "uns_type50", // Type 50 SMG + "uns_type56", // Type 56 + "uns_type99_gl", // Arisaka Type 99 (Rifle Grenade) + "uns_type99", // Arisaka Type 99 + "uns_ukvz59", // UK vz. 59 LMG + "uns_uzi", // UZI + "uns_uzif", // UZI (folded) + "uns_xm177e1_dm", // XM-177E1 (Dual Mag) + "uns_xm177e1_m203", // XM-177E1 (M203) + "uns_xm177e1_xm148", // XM-177E2 (XM148) + "uns_xm177e1", // XM-177E1 + "uns_xm177e2_grip", // XM-177E2 (FG) + "uns_xm177e2_m203", // XM-177E2 (M203) + "uns_xm177e2_short", // XM-177E2 (Shorty) + "uns_xm177e2_stock", // XM-177E2 (Stock) + "uns_xm177e2_xm148", // XM-177E2 (XM148) + "uns_xm177e2" // XM-177E2 +]; + +GRLIB_arsenal_magazines = [ + "Mine", // Mine Type 59 (Anti Tank) + "MineE", // Mine TM57 (Anti Vehicle) + "PipeBomb", // Explosive Charge + "uns_1000Rnd_127x99_M2_single", // M2 1000Rnd. Box + "uns_1000Rnd_127x99_M2HE", // M2 1000Rnd. API + "uns_100Rnd_762x54_PK", // 100Rnd. PK box + "uns_100Rnd_762x54_ukvz59", // 100Rnd. vz.59 box + "uns_100Rnd_m1919", // 100Rnd. M1919 0.30 + "uns_12gaugemag_2", // 2Rnd. 12 Gauge Buck + "uns_12gaugemag_4", // 4Rnd. 12 Gauge Buck + "uns_12gaugemag_4f", // 4Rnd. 12 Gauge Flechette + "uns_12gaugemag_6", // 6Rnd. 12 Gauge Buck + "uns_12gaugemag_6f", // 6Rnd. 12 Gauge Flechette + "uns_12Rnd_Grenade_Camel", // 3Rnd 3GL Smoke Round (White) + "uns_13Rnd_hp", // 13Rnd. Browning HP mag + "Uns_1Rnd_22mm_AT", // M9 22mm HEAT + "Uns_1Rnd_22mm_FRAG", // M17 22mm FRAG + "Uns_1Rnd_22mm_HEAT", // M31 22mm HEAT + "uns_1Rnd_22mm_lume", // 22mm LUME + "Uns_1Rnd_22mm_M1a2_FRAG", // M1A2 22mm FRAG + "Uns_1Rnd_22mm_smoke", // M22 22mm SMOKE + "Uns_1Rnd_22mm_WP", // M19 22mm WP + "Uns_1Rnd_30mm_FRAG", // Type 2 30mm FRAG + "uns_1Rnd_AB_M397", // 40mm Airburst M-397 + "uns_1Rnd_BS_M576", // 40mm Buckshopt M-576 + "Uns_1Rnd_HE_M381", // 40mm HE M-381 + "Uns_1Rnd_HE_M406", // 40mm HE M-406 + "uns_1Rnd_HEDP_M433", // 40mm HEDP M-433 + "uns_1Rnd_M127_mag", // M127A1 flare + "uns_1Rnd_Smoke_40mm", // 40mm Smoke W M-680 + "uns_1Rnd_Smoke_MKV", // 40mm Smoke W MKV M-680 + "uns_1Rnd_SmokeBlue_40mm", // 40mm Smoke B M-718 + "uns_1Rnd_SmokeGreen_40mm", // 40mm Smoke G M-715 + "uns_1Rnd_SmokeGreen_MKV", // 40mm Smoke G MKC M-715 + "uns_1Rnd_SmokeOrange_40mm", // 40mm Smoke O M-713 + "uns_1Rnd_SmokePurple_40mm", // 40mm Smoke P M-717 + "uns_1Rnd_SmokeRed_40mm", // 40mm Smoke R M-682 + "uns_1Rnd_SmokeRed_MKV", // 40mm Smoke R MKV M-682 + "uns_1Rnd_SmokeYellow_40mm", // 40mm Smoke Y M-716 + "uns_1Rnd_SmokeYellow_MKV", // 40mm Smoke Y MKV M-716 + "uns_20Rnd_556x45_Stanag_NT", // 20Rnd. 5.56 STANAG (NT) + "uns_20Rnd_556x45_Stanag_T", // 20Rnd. 5.56 STANAG (Tracer) + "uns_20Rnd_556x45_Stanag", // 20Rnd. 5.56 STANAG Mag + "uns_20Rnd_APS", // 20Rnd. APS mag + "uns_20Rnd_sa61_pa", // 20Rnd. Sa61 mag (sidearm) + "uns_20Rnd_sa61", // 20Rnd. Sa61 mag + "uns_250Rnd_792x57_Mg42", // 250Rnd. MG42 box + "uns_250Rnd_m1919", // 250Rnd. M-1919 .30 + "uns_25Rnd_pm_pa", // 25Rnd. PM-63 mag (sidearm) + "uns_25Rnd_pm", // 25Rnd. PM-63 mag + "uns_30Rnd_556x45_Stanag_NT", // 30Rnd. 5.56 STANAG (NT) + "uns_30Rnd_556x45_Stanag_T", // 30Rnd. 5.56 STANAG (Tracer) + "uns_30Rnd_556x45_Stanag_xm177_NT", // 30Rnd. 5.56 STANAG mag (No Tracer) + "uns_30Rnd_556x45_Stanag_xm177_T", // 30Rnd. 5.56 STANAG mag (Tracer) + "uns_30Rnd_556x45_Stanag_xm177", // 30Rnd. 5.56 STANAG mag (XM177) + "uns_30Rnd_556x45_Stanag", // 30Rnd. 5.56 STANAG Mag + "uns_30Rnd_kurtz_stg", // 30Rnd. StG44 mag + "uns_32Rnd_uzi_pa", // 32Rnd. UZI mag (sidearm) + "uns_32Rnd_uzi", // 32Rnd. UZI mag + "uns_357mag", // 6Rnd. .657 Magnum Reload + "uns_38specmag", // 6Rnd. .657 Special Reload + "uns_40mm_green", // 40mm Flare G M-661 + "uns_40mm_mkv_Green", // 40mm Flare G MKV + "uns_40mm_mkv_Red", // 40mm Flare R MKV + "uns_40mm_mkv_White", // 40mm Flare W MKV + "uns_40mm_mkv_Yellow", // 40mm Flare O MKV + "uns_40mm_red", // 40mm Flare R M-662 + "uns_40mm_white", // 40mm Flare W M-583 + "uns_40mm_yellow", // 40mm Flare O M-695 + "uns_40Rnd_556x45_Stanag_NT", // 40Rnd. 5.56 STANAG (NT) + "uns_40Rnd_556x45_Stanag_T", // 40Rnd. 5.56 STANAG (Tracer) + "uns_40Rnd_556x45_Stanag", // 40Rnd. 5.56 STANAG mag + "uns_40Rnd_556x45_t223_T", // 40Rnd. 5.56 T223 (Tracer) + "uns_40Rnd_556x45_t223", // 40Rnd. 5.56 T223 Mag + "uns_47Rnd_DP28", // 47Rnd. DP-28 Pan + "uns_500Rnd_127x99_M2", // M2 500Rnd. Box + "uns_500Rnd_127x99_M2AP", // M2 500Rnd. APT + "uns_500Rnd_127x99_M2HE", // M2 500Rnd. API + "uns_500Rnd_m1919_twin", // Twin Browning 0.30 + "uns_50Rnd_792x57_Mg42", // 50Rnd. MG-42 belt + "uns_6Rnd_czak", // 6Rnd. P-64 mag + "uns_75Rnd_akdr", // 75Rnd. AK/RPK drum + "uns_ak47mag_NT", // 30Rnd. AK Mag + "uns_ak47mag_T", // 30Rnd. AK Mag (Tracer) + "uns_ak47mag", // 30Rnd. AK Mag (Mix) + "uns_B40grenade", // Rocket B40 HE + "uns_BA1568", // Battery (BA-1568/U Mercury) + "uns_barmag_NT", // 20Rnd. BAR Mag + "uns_barmag_T", // 20Rnd. BAR Mag (Tracer) + "uns_barmag", // 20Rnd. BAR Mag (Mix) + "uns_coltcmdrmag", // 9Rnd. Colt Commander Mag + "UNS_EAM2Braft", // EAM-2B Life Raft + "uns_ex41mag", // 40mm 4Rnd. HE China Lake + "uns_f1_smg_mag", // 34Rnd. F1 Mag + "uns_f1gren", // Grenade F-1 (Frag) + "uns_ItemM57clacker", // M-57 Clacker + "uns_ithaca37mag", // 4Rnd. 12 Gauge Buck + "uns_k50mag_NT", // 35Rnd. PPS/K50 Mag + "uns_k50mag_T", // 35Rnd. PPS/K50 Mag (Tracer) + "uns_k50mag", // 35Rnd. PPS/K50 Mag (Mix) + "uns_kabar", // Knife (Ka-Bar) + "uns_kar98kmag_T", // 5Rnd. Kar-98k Clip (Tracer) + "uns_kar98kmag", // 5Rnd. Kar-98k Clip + "uns_knife", // Knife (FS Combat) + "uns_l1a1mag_NT", // 20Rnd. L1A1 SLR Mag + "uns_l1a1mag_T", // 20Rnd. L1A1 SLR Mag (Tracer) + "uns_l1a1mag", // 20Rnd. L1A1 SLR Mag (Mix) + "uns_M118_mag_remote", // Explosive (M118 C4 Breaching) + "uns_m14gren", // Grenade M-14 TH3 (Thermate) + "uns_m14mag_NT", // 20Rnd. M-14/M-21 Mag + "uns_m14mag_T", // 20Rnd. M-14/M-21 Mag (Tracer) + "uns_m14mag", // 20Rnd. M-14/M-21 Mag (Mix) + "uns_m1897mag", // 6Rnd. 12 Gauge Buck + "uns_m18Blue", // Grenade Smoke (Blue) + "uns_m18Green", // Grenade Smoke (Green) + "uns_m18Orange", // Grenade Smoke (Orange) + "uns_m18Purple", // Grenade Smoke (Purple) + "uns_m18red", // Grenade Smoke (Red) + "uns_m18white", // Grenade Smoke (White) + "uns_m18Yellow", // Grenade Smoke (Yellow) + "uns_m1911mag", // 7Rnd. Colt M1911 Mag + "uns_m1919mag", // 250Rnd. M-1919 .30cal Belt + "uns_m1carbinemag_NT", // 15Rnd. M-1 Carbine Mag + "uns_m1carbinemag_T", // 15Rnd. M-1 Carbine Mag (Tracer) + "uns_m1carbinemag", // 15Rnd. M-1 Carbine Mag (Mix) + "uns_m1garandmag_T", // 8Rnd. M1 Garand Clip (Tracer) + "uns_m1garandmag", // 8Rnd. M1 Garand Clip + "uns_M28A2_mag", // Rocket M28A2 HEAT + "uns_m2carbinemag_NT", // 30Rnd. M-2 Carbine Mag + "uns_m2carbinemag_T", // 30Rnd. M-2 Carbine Mag (Tracer) + "uns_m2carbinemag", // 30Rnd. M-2 Carbine Mag (Mix) + "uns_M30_smoke_mag", // Rocket M30 WP + "uns_m308gren", // Grenade M-308-1 (Napalm) + "uns_m34gren", // Grenade M-34 (WP) + "uns_m3a1mag_T", // 30Rnd. M3A1 Mag (Tracer) + "uns_m3a1mag", // 30Rnd. M3A1 Mag + "uns_M40_APERSmag", // APERS (M581) + "uns_M40_HEATmag", // HEAT (M344) + "uns_M40_HEmag", // HEP-T (M346) + "uns_M40_WPmag", // WP + "uns_m40mag_T", // 5Rnd. M40 Reload (Tracer) + "uns_m40mag", // 5Rnd. M40 Reload + "uns_m45mag_NT", // 36Rnd. M/45 Mag + "uns_m45mag_T", // 36Rnd. M/45 Mag (Tracer) + "uns_m45mag", // 36Rnd. M/45 Mag (Mix) + "uns_m50mag", // 32Rnd. M50 Mag (Mix) + "uns_m60mag_1500", // M60 + "uns_m60mag_200", // 200Rnd. M-60 Belt + "uns_m60mag_500", // 500Rnd. M60 box + "uns_m60mag", // 100Rnd. M-60 Belt + "uns_m61gren", // Grenade M-61 (Frag) + "uns_m63abox", // 100Rnd. M63a Box + "uns_m63amag", // 150Rnd. M63a Drum + "uns_m67gren", // Grenade M-67 (Frag) + "uns_m72rocket", // Rocket M-72 HEAT + "uns_m7gren", // Grenade M-7A3 (CS Riot) + "uns_m870mag", // 8Rnd. 12 Gauge Buck + "uns_mac10mag", // 32Rnd. MAC-10 Mag + "uns_makarovmag", // 8Rnd. Makarov Mag + "uns_mas36mag_T", // 5Rnd. MAS-36 Clip (Tracer) + "uns_mas36mag", // 5Rnd. MAS-36 Clip + "uns_mas4956mag_T", // 10Rnd. MAS-49/56 Mag (Tracer) + "uns_mas4956mag", // 10Rnd. MAS-49/56 Mag + "uns_mat49_20_mag", // 20Rnd. MAT-49 Mag (Mix) + "uns_mat49mag_NT", // 32Rnd. MAT-49 Mag + "uns_mat49mag_T", // 32Rnd. MAT-49 Mag (Tracer) + "uns_mat49mag", // 32Rnd. MAT-49 Mag (Mix) + "uns_mine_ammo_mag", // Booby Trap (Ammobox) + "uns_mine_AP_mag", // Mine MD-82 (AP) + "uns_mine_AT_mag", // Mine Type 59 (Anti Tank) + "uns_mine_AV_mag", // Mine TM57 (Anti Vehicle) + "uns_mine_beer_mag", // Booby Trap (Beer) + "uns_mine_cigs_mag", // Booby Trap (Cigarettes) + "uns_mine_fkit_mag", // Booby Trap (First Aid Kit) + "uns_mine_fuel_mag", // Booby Trap (Fuelcan) + "uns_mine_guitar_mag", // Booby Trap (Guitar) + "uns_mine_IN_mag", // Mine XM-54 (Incendiary) + "uns_mine_m14_mag", // Mine M14 (AP) + "uns_mine_radio_mag", // Booby Trap (Radio) + "uns_mine_TM_mag", // Explosive (Satchel M183 Timed) + "uns_mk2gren", // Grenade Mk2 (frag) + "uns_mk3a2gren", // Grenade Mk3A2 (TNT) + "uns_mk40gren", // Grenade Mk40 (TNT) + "uns_mk4mag_T", // 34Rnd. Sterling Mk4 Mag (Tracer) + "uns_mk4mag", // 34Rnd. Sterling Mk4 Mag + "uns_model12mag", // 6Rnd. 12 Gauge Buck + "uns_model70mag_T", // 5Rnd. Model 70 Reload (Tracer) + "uns_model70mag", // 5Rnd. Model 70 Reload + "uns_molotov_mag", // Grenade (Molotov Cocktail) + "uns_mosinmag_T", // 5Rnd. Mosin Nagant Clip (Tracer) + "uns_mosinmag", // 5Rnd. Mosin Nagant Clip + "uns_mp40mag", // 32Rnd. MP40 Mag (Mix) + "uns_nagant_m1895mag", // 7Rnd. Nagant M1895 Reload + "uns_OG9_HEmag", // HE + "uns_owenmag_T", // 33Rnd. Owen Mag (Tracer) + "uns_owenmag", // 33Rnd. Owen Mag (Mix) + "uns_PG9_ATmag", // HEAT + "uns_ppkmag", // 7Rnd. .32 PPK mag + "uns_ppshmag_NT", // 71Rnd. PPS/K50 Drum + "uns_ppshmag_T", // 71Rnd. PPS/K50 Drum (Tracer) + "uns_ppshmag", // 71Rnd. PPS/K50 Drum (Mix) + "uns_QuadM60mag_6000", // 500Rnd. M60 box + "uns_rdg2", // Grenade RDG-2 (White) + "uns_rdg3", // Grenade RDG-3 (Orange) + "uns_rg42gren", // Grenade RG-42 (Frag) + "uns_rgd33gren", // Grenade RGD-33 (Frag) + "uns_rgd5gren", // Grenade RGD-5 (Frag) + "uns_rkg3gren", // Grenade RKG-3 (Anti Tank) + "uns_rpdmag", // 100Rnd. RPD Drum + "uns_rpdsogmag", // 125Rnd. RPD SOG Drum + "uns_rpg2grenade", // Rocket PG-2 HEAT + "uns_rpg7grenade", // Rocket PG-7 HEAT + "uns_rpkmag", // 40Rnd. RPK Mag + "uns_Rugermag", // 10Rnd. .22 Ruger mag + "uns_sa58mag_NT", // 30Rnd. sa58 Mag + "uns_sa58mag_T", // 30Rnd. sa58 Mag (Tracer) + "uns_sa58mag", // 30Rnd. sa58 Mag (Mix) + "uns_sa7bmag", // Rocket SA-7b Strela-2M + "uns_sa7mag", // Rocket SA-7 Strela + "UNS_sharkchaser", // Shark Chaser + "uns_sksmag_NT", // 10Rnd. SKS Clip + "uns_sksmag_T", // 10Rnd. SKS Clip (Tracer) + "uns_sksmag", // 10Rnd. SKS Clip (Mix) + "uns_smlemag_T", // 10Rnd. SMLE Mag (Tracer) + "uns_smlemag", // 10Rnd. SMLE Mag + "uns_spear_mag", // 1Rnd. Speargun mag + "uns_springfieldmag_T", // 5Rnd. Springfield Reload (Tracer) + "uns_springfieldmag", // 5Rnd. Springfield Reload + "uns_stenmag_T", // 32Rnd. Sten Mag (Tracer) + "uns_stenmag", // 32Rnd. Sten Mag (Mix) + "uns_svdmag_T", // 10Rnd. SVD Mag (Tracer) + "uns_svdmag", // 10Rnd. SVD Mag + "uns_svtmag_T", // 10Rnd. SVT-40 Mag (Tracer) + "uns_svtmag", // 10Rnd. SVT-40 Mag + "uns_t67gren", // Grenade Type 67 (Frag) + "uns_thompsonmag_20_NT", // 20Rnd. Thompson Mag (No tracer) + "uns_thompsonmag_20_T", // 20Rnd. Thompson Mag (Tracer) + "uns_thompsonmag_20", // 20Rnd. Thompson Mag (Mix) + "uns_thompsonmag_30_NT", // 30Rnd. Thompson Mag (No tracer) + "uns_thompsonmag_30_T", // 30Rnd. Thompson Mag (Tracer) + "uns_thompsonmag_30", // 30Rnd. Thompson Mag (Mix) + "uns_tokarevmag", // 8Rnd. TT-30 Mag + "uns_TOWx1", // XM-26 TOW + "uns_TOWx10", // XM-26 TOW + "uns_TOWx11", // XM-26 TOW + "uns_TOWx12", // XM-26 TOW + "uns_TOWx2", // XM-26 TOW + "uns_TOWx3", // XM-26 TOW + "uns_TOWx4", // XM-26 TOW + "uns_TOWx5", // XM-26 TOW + "uns_TOWx6", // XM-26 TOW + "uns_TOWx7", // XM-26 TOW + "uns_TOWx8", // XM-26 TOW + "uns_TOWx9", // XM-26 TOW + "uns_traps_arty_mag", // Trap (HE shell) + "uns_traps_claymore_mag", // Trap (M18 Claymore) + "uns_traps_claymore_remote_mag", // Trap (M18 Claymore/Remote) + "uns_traps_flare_mag", // Trap (M49 Trip Flare) + "uns_traps_m7_mag", // Trap (M7 CS Tripwire) + "uns_traps_mine_mag", // Mine M16 (AP) + "uns_traps_nade_mag", // Trap (Mk2 tripwire) + "uns_traps_nade_mag2", // Trap (F1 tripwire Can) + "uns_traps_nade_mag3", // Trap (M67 tripwire) + "uns_traps_nade_mag4", // Trap (RDG-5 Tripwire) + "uns_traps_nade_mag5", // Trap (RDG-33 Tripwire) + "uns_traps_nade_mag6", // Trap (Type-67 Tripwire) + "uns_traps_nade_mag7", // Trap (M34 Tripwire) + "uns_traps_punj1_mag", // Trap (punji small) + "uns_traps_punj2_mag", // Trap (punji big) + "uns_traps_punj4_mag", // Trap (punji whip 1) + "uns_traps_punj5_mag", // Trap (punji whip 2) + "uns_Twinm60mag_1300", // Twin M60 + "uns_type100_NT", // 30Rnd. Type 100 Mag + "uns_type100_T", // 30Rnd. Type 100 Mag (Tracer) + "uns_type100mag", // 30Rnd. Type 100 Mag (Mix) + "uns_Type36_HEATmag", // HEAT + "uns_Type36_HEmag", // HE + "uns_Type36_WPmag", // WP + "uns_type99mag_T", // 5Rnd. Arisaka Clip (Tracer) + "uns_type99mag", // 5Rnd. Arisaka Clip + "uns_v40gren", // Grenade V-40 (Mini-Frag) + + // Vanilla Standard Grenades & Explosives + "B_IR_Grenade", // IR Grenade [NATO] + "Chemlight_blue", // Chemlight (Blue) + "Chemlight_green", // Chemlight (Green) + "Chemlight_red", // Chemlight (Red) + "Chemlight_yellow", // Chemlight (Yellow) + "Laserbatteries", // Designator Batteries + "TrainingMine_Mag" // Training Mine +]; + +GRLIB_arsenal_items = [ + // Uniforms + "UNS_ARMY_BDU_101stAB1stlt", // ARMY BDU_101stAB 1stLT + "UNS_ARMY_BDU_101stAB1stsgt", // ARMY BDU_101stAB 1stSGT + "UNS_ARMY_BDU_101stAB2ndlt", // ARMY BDU_101stAB 2ndLT + "UNS_ARMY_BDU_101stAB651stlt", // ARMY BDU_101stAB65 1stLT + "UNS_ARMY_BDU_101stAB651stsgt", // ARMY BDU_101stAB65 1stSGT + "UNS_ARMY_BDU_101stAB652ndlt", // ARMY BDU_101stAB65 2ndLT + "UNS_ARMY_BDU_101stAB65col", // ARMY BDU_101stAB65 Col + "UNS_ARMY_BDU_101stAB65cpl", // ARMY BDU_101stAB65 CPL + "UNS_ARMY_BDU_101stAB65cpt", // ARMY BDU_101stAB65 CPT + "UNS_ARMY_BDU_101stAB65ltcol", // ARMY BDU_101stAB65 LTCol + "UNS_ARMY_BDU_101stAB65maj", // ARMY BDU_101stAB65 Maj + "UNS_ARMY_BDU_101stAB65msg", // ARMY BDU_101stAB65 MSG + "UNS_ARMY_BDU_101stAB65pfc", // ARMY BDU_101stAB65 PFC + "UNS_ARMY_BDU_101stAB65pv1", // ARMY BDU_101stAB65 PV1 + "UNS_ARMY_BDU_101stAB65pv2", // ARMY BDU_101stAB65 PV2 + "UNS_ARMY_BDU_101stAB65sfc", // ARMY BDU_101stAB65 SFC + "UNS_ARMY_BDU_101stAB65sgm", // ARMY BDU_101stAB65 SGM + "UNS_ARMY_BDU_101stAB65sgt", // ARMY BDU_101stAB65 SGT + "UNS_ARMY_BDU_101stAB65spc", // ARMY BDU_101stAB65 SPC + "UNS_ARMY_BDU_101stAB65spc5", // ARMY BDU_101stAB65 SPC5 + "UNS_ARMY_BDU_101stAB65ssg", // ARMY BDU_101stAB65 SSG + "UNS_ARMY_BDU_101stAB661stlt", // ARMY BDU_101stAB66 1stLT + "UNS_ARMY_BDU_101stAB661stsgt", // ARMY BDU_101stAB66 1stSGT + "UNS_ARMY_BDU_101stAB662ndlt", // ARMY BDU_101stAB66 2ndLT + "UNS_ARMY_BDU_101stAB66col", // ARMY BDU_101stAB66 Col + "UNS_ARMY_BDU_101stAB66cpl", // ARMY BDU_101stAB66 CPL + "UNS_ARMY_BDU_101stAB66cpt", // ARMY BDU_101stAB66 CPT + "UNS_ARMY_BDU_101stAB66ltcol", // ARMY BDU_101stAB66 LTCol + "UNS_ARMY_BDU_101stAB66maj", // ARMY BDU_101stAB66 Maj + "UNS_ARMY_BDU_101stAB66msg", // ARMY BDU_101stAB66 MSG + "UNS_ARMY_BDU_101stAB66OG1071stlt", // ARMY BDU_101stAB66OG107 1stLT + "UNS_ARMY_BDU_101stAB66OG1071stsgt", // ARMY BDU_101stAB66OG107 1stSGT + "UNS_ARMY_BDU_101stAB66OG1072ndlt", // ARMY BDU_101stAB66OG107 2ndLT + "UNS_ARMY_BDU_101stAB66OG107col", // ARMY BDU_101stAB66OG107 Col + "UNS_ARMY_BDU_101stAB66OG107cpl", // ARMY BDU_101stAB66OG107 CPL + "UNS_ARMY_BDU_101stAB66OG107cpt", // ARMY BDU_101stAB66OG107 CPT + "UNS_ARMY_BDU_101stAB66OG107ltcol", // ARMY BDU_101stAB66OG107 LTCol + "UNS_ARMY_BDU_101stAB66OG107maj", // ARMY BDU_101stAB66OG107 Maj + "UNS_ARMY_BDU_101stAB66OG107msg", // ARMY BDU_101stAB66OG107 MSG + "UNS_ARMY_BDU_101stAB66OG107pfc", // ARMY BDU_101stAB66OG107 PFC + "UNS_ARMY_BDU_101stAB66OG107pv1", // ARMY BDU_101stAB66OG107 PV1 + "UNS_ARMY_BDU_101stAB66OG107pv2", // ARMY BDU_101stAB66OG107 PV2 + "UNS_ARMY_BDU_101stAB66OG107sfc", // ARMY BDU_101stAB66OG107 SFC + "UNS_ARMY_BDU_101stAB66OG107sgm", // ARMY BDU_101stAB66OG107 SGM + "UNS_ARMY_BDU_101stAB66OG107sgt", // ARMY BDU_101stAB66OG107 SGT + "UNS_ARMY_BDU_101stAB66OG107spc", // ARMY BDU_101stAB66OG107 SPC + "UNS_ARMY_BDU_101stAB66OG107spc5", // ARMY BDU_101stAB66OG107 SPC5 + "UNS_ARMY_BDU_101stAB66OG107ssg", // ARMY BDU_101stAB66OG107 SSG + "UNS_ARMY_BDU_101stAB66pfc", // ARMY BDU_101stAB66 PFC + "UNS_ARMY_BDU_101stAB66pv1", // ARMY BDU_101stAB66 PV1 + "UNS_ARMY_BDU_101stAB66pv2", // ARMY BDU_101stAB66 PV2 + "UNS_ARMY_BDU_101stAB66sfc", // ARMY BDU_101stAB66 SFC + "UNS_ARMY_BDU_101stAB66sgm", // ARMY BDU_101stAB66 SGM + "UNS_ARMY_BDU_101stAB66sgt", // ARMY BDU_101stAB66 SGT + "UNS_ARMY_BDU_101stAB66spc", // ARMY BDU_101stAB66 SPC + "UNS_ARMY_BDU_101stAB66spc5", // ARMY BDU_101stAB66 SPC5 + "UNS_ARMY_BDU_101stAB66ssg", // ARMY BDU_101stAB66 SSG + "UNS_ARMY_BDU_101stABcol", // ARMY BDU_101stAB Col + "UNS_ARMY_BDU_101stABcpl", // ARMY BDU_101stAB CPL + "UNS_ARMY_BDU_101stABcpt", // ARMY BDU_101stAB CPT + "UNS_ARMY_BDU_101stABFlak1stlt", // ARMY BDU_101stABFlak 1stLT + "UNS_ARMY_BDU_101stABFlak1stsgt", // ARMY BDU_101stABFlak 1stSGT + "UNS_ARMY_BDU_101stABFlak2ndlt", // ARMY BDU_101stABFlak 2ndLT + "UNS_ARMY_BDU_101stABFlakcol", // ARMY BDU_101stABFlak Col + "UNS_ARMY_BDU_101stABFlakcpl", // ARMY BDU_101stABFlak CPL + "UNS_ARMY_BDU_101stABFlakcpt", // ARMY BDU_101stABFlak CPT + "UNS_ARMY_BDU_101stABFlakltcol", // ARMY BDU_101stABFlak LTCol + "UNS_ARMY_BDU_101stABFlakmaj", // ARMY BDU_101stABFlak Maj + "UNS_ARMY_BDU_101stABFlakmsg", // ARMY BDU_101stABFlak MSG + "UNS_ARMY_BDU_101stABFlakpfc", // ARMY BDU_101stABFlak PFC + "UNS_ARMY_BDU_101stABFlakpv1", // ARMY BDU_101stABFlak PV1 + "UNS_ARMY_BDU_101stABFlakpv2", // ARMY BDU_101stABFlak PV2 + "UNS_ARMY_BDU_101stABFlaksfc", // ARMY BDU_101stABFlak SFC + "UNS_ARMY_BDU_101stABFlaksgm", // ARMY BDU_101stABFlak SGM + "UNS_ARMY_BDU_101stABFlaksgt", // ARMY BDU_101stABFlak SGT + "UNS_ARMY_BDU_101stABFlakspc", // ARMY BDU_101stABFlak SPC + "UNS_ARMY_BDU_101stABFlakspc5", // ARMY BDU_101stABFlak SPC5 + "UNS_ARMY_BDU_101stABFlakssg", // ARMY BDU_101stABFlak SSG + "UNS_ARMY_BDU_101stABltcol", // ARMY BDU_101stAB LTCol + "UNS_ARMY_BDU_101stABmaj", // ARMY BDU_101stAB Maj + "UNS_ARMY_BDU_101stABmsg", // ARMY BDU_101stAB MSG + "UNS_ARMY_BDU_101stABpfc", // ARMY BDU_101stAB PFC + "UNS_ARMY_BDU_101stABpv1", // ARMY BDU_101stAB PV1 + "UNS_ARMY_BDU_101stABpv2", // ARMY BDU_101stAB PV2 + "UNS_ARMY_BDU_101stABsfc", // ARMY BDU_101stAB SFC + "UNS_ARMY_BDU_101stABsgm", // ARMY BDU_101stAB SGM + "UNS_ARMY_BDU_101stABsgt", // ARMY BDU_101stAB SGT + "UNS_ARMY_BDU_101stABspc", // ARMY BDU_101stAB SPC + "UNS_ARMY_BDU_101stABspc5", // ARMY BDU_101stAB SPC5 + "UNS_ARMY_BDU_101stABssg", // ARMY BDU_101stAB SSG + "UNS_ARMY_BDU_11thacrSubd1stlt", // ARMY BDU_11thacrSubd 1stLT + "UNS_ARMY_BDU_11thacrSubd1stsgt", // ARMY BDU_11thacrSubd 1stSGT + "UNS_ARMY_BDU_11thacrSubd2ndlt", // ARMY BDU_11thacrSubd 2ndLT + "UNS_ARMY_BDU_11thacrSubdcol", // ARMY BDU_11thacrSubd Col + "UNS_ARMY_BDU_11thacrSubdcpl", // ARMY BDU_11thacrSubd CPL + "UNS_ARMY_BDU_11thacrSubdcpt", // ARMY BDU_11thacrSubd CPT + "UNS_ARMY_BDU_11thacrSubdFlak1stlt", // ARMY BDU_11thacrSubdFlak 1stLT + "UNS_ARMY_BDU_11thacrSubdFlak1stsgt", // ARMY BDU_11thacrSubdFlak 1stSGT + "UNS_ARMY_BDU_11thacrSubdFlak2ndlt", // ARMY BDU_11thacrSubdFlak 2ndLT + "UNS_ARMY_BDU_11thacrSubdFlakcol", // ARMY BDU_11thacrSubdFlak Col + "UNS_ARMY_BDU_11thacrSubdFlakcpl", // ARMY BDU_11thacrSubdFlak CPL + "UNS_ARMY_BDU_11thacrSubdFlakcpt", // ARMY BDU_11thacrSubdFlak CPT + "UNS_ARMY_BDU_11thacrSubdFlakltcol", // ARMY BDU_11thacrSubdFlak LTCol + "UNS_ARMY_BDU_11thacrSubdFlakmaj", // ARMY BDU_11thacrSubdFlak Maj + "UNS_ARMY_BDU_11thacrSubdFlakmsg", // ARMY BDU_11thacrSubdFlak MSG + "UNS_ARMY_BDU_11thacrSubdFlakpfc", // ARMY BDU_11thacrSubdFlak PFC + "UNS_ARMY_BDU_11thacrSubdFlakpv1", // ARMY BDU_11thacrSubdFlak PV1 + "UNS_ARMY_BDU_11thacrSubdFlakpv2", // ARMY BDU_11thacrSubdFlak PV2 + "UNS_ARMY_BDU_11thacrSubdFlaksfc", // ARMY BDU_11thacrSubdFlak SFC + "UNS_ARMY_BDU_11thacrSubdFlaksgm", // ARMY BDU_11thacrSubdFlak SGM + "UNS_ARMY_BDU_11thacrSubdFlaksgt", // ARMY BDU_11thacrSubdFlak SGT + "UNS_ARMY_BDU_11thacrSubdFlakspc", // ARMY BDU_11thacrSubdFlak SPC + "UNS_ARMY_BDU_11thacrSubdFlakspc5", // ARMY BDU_11thacrSubdFlak SPC5 + "UNS_ARMY_BDU_11thacrSubdFlakssg", // ARMY BDU_11thacrSubdFlak SSG + "UNS_ARMY_BDU_11thacrSubdltcol", // ARMY BDU_11thacrSubd LTCol + "UNS_ARMY_BDU_11thacrSubdmaj", // ARMY BDU_11thacrSubd Maj + "UNS_ARMY_BDU_11thacrSubdmsg", // ARMY BDU_11thacrSubd MSG + "UNS_ARMY_BDU_11thacrSubdpfc", // ARMY BDU_11thacrSubd PFC + "UNS_ARMY_BDU_11thacrSubdpv1", // ARMY BDU_11thacrSubd PV1 + "UNS_ARMY_BDU_11thacrSubdpv2", // ARMY BDU_11thacrSubd PV2 + "UNS_ARMY_BDU_11thacrSubdsfc", // ARMY BDU_11thacrSubd SFC + "UNS_ARMY_BDU_11thacrSubdsgm", // ARMY BDU_11thacrSubd SGM + "UNS_ARMY_BDU_11thacrSubdsgt", // ARMY BDU_11thacrSubd SGT + "UNS_ARMY_BDU_11thacrSubdspc", // ARMY BDU_11thacrSubd SPC + "UNS_ARMY_BDU_11thacrSubdspc5", // ARMY BDU_11thacrSubd SPC5 + "UNS_ARMY_BDU_11thacrSubdssg", // ARMY BDU_11thacrSubd SSG + "UNS_ARMY_BDU_173rdAB1stlt", // ARMY BDU_173rdAB 1stLT + "UNS_ARMY_BDU_173rdAB1stsgt", // ARMY BDU_173rdAB 1stSGT + "UNS_ARMY_BDU_173rdAB2ndlt", // ARMY BDU_173rdAB 2ndLT + "UNS_ARMY_BDU_173rdAB651stlt", // ARMY BDU_173rdAB65 1stLT + "UNS_ARMY_BDU_173rdAB651stsgt", // ARMY BDU_173rdAB65 1stSGT + "UNS_ARMY_BDU_173rdAB652ndlt", // ARMY BDU_173rdAB65 2ndLT + "UNS_ARMY_BDU_173rdAB65col", // ARMY BDU_173rdAB65 Col + "UNS_ARMY_BDU_173rdAB65cpl", // ARMY BDU_173rdAB65 CPL + "UNS_ARMY_BDU_173rdAB65cpt", // ARMY BDU_173rdAB65 CPT + "UNS_ARMY_BDU_173rdAB65ltcol", // ARMY BDU_173rdAB65 LTCol + "UNS_ARMY_BDU_173rdAB65maj", // ARMY BDU_173rdAB65 Maj + "UNS_ARMY_BDU_173rdAB65msg", // ARMY BDU_173rdAB65 MSG + "UNS_ARMY_BDU_173rdAB65pfc", // ARMY BDU_173rdAB65 PFC + "UNS_ARMY_BDU_173rdAB65pv1", // ARMY BDU_173rdAB65 PV1 + "UNS_ARMY_BDU_173rdAB65pv2", // ARMY BDU_173rdAB65 PV2 + "UNS_ARMY_BDU_173rdAB65sfc", // ARMY BDU_173rdAB65 SFC + "UNS_ARMY_BDU_173rdAB65sgm", // ARMY BDU_173rdAB65 SGM + "UNS_ARMY_BDU_173rdAB65sgt", // ARMY BDU_173rdAB65 SGT + "UNS_ARMY_BDU_173rdAB65spc", // ARMY BDU_173rdAB65 SPC + "UNS_ARMY_BDU_173rdAB65spc5", // ARMY BDU_173rdAB65 SPC5 + "UNS_ARMY_BDU_173rdAB65ssg", // ARMY BDU_173rdAB65 SSG + "UNS_ARMY_BDU_173rdABcol", // ARMY BDU_173rdAB Col + "UNS_ARMY_BDU_173rdABcpl", // ARMY BDU_173rdAB CPL + "UNS_ARMY_BDU_173rdABcpt", // ARMY BDU_173rdAB CPT + "UNS_ARMY_BDU_173rdABltcol", // ARMY BDU_173rdAB LTCol + "UNS_ARMY_BDU_173rdABmaj", // ARMY BDU_173rdAB Maj + "UNS_ARMY_BDU_173rdABmsg", // ARMY BDU_173rdAB MSG + "UNS_ARMY_BDU_173rdABpfc", // ARMY BDU_173rdAB PFC + "UNS_ARMY_BDU_173rdABpv1", // ARMY BDU_173rdAB PV1 + "UNS_ARMY_BDU_173rdABpv2", // ARMY BDU_173rdAB PV2 + "UNS_ARMY_BDU_173rdABsfc", // ARMY BDU_173rdAB SFC + "UNS_ARMY_BDU_173rdABsgm", // ARMY BDU_173rdAB SGM + "UNS_ARMY_BDU_173rdABsgt", // ARMY BDU_173rdAB SGT + "UNS_ARMY_BDU_173rdABspc", // ARMY BDU_173rdAB SPC + "UNS_ARMY_BDU_173rdABspc5", // ARMY BDU_173rdAB SPC5 + "UNS_ARMY_BDU_173rdABssg", // ARMY BDU_173rdAB SSG + "UNS_ARMY_BDU_173rdABSubd1stlt", // ARMY BDU_173rdABSubd 1stLT + "UNS_ARMY_BDU_173rdABSubd1stsgt", // ARMY BDU_173rdABSubd 1stSGT + "UNS_ARMY_BDU_173rdABSubd2ndlt", // ARMY BDU_173rdABSubd 2ndLT + "UNS_ARMY_BDU_173rdABSubdcol", // ARMY BDU_173rdABSubd Col + "UNS_ARMY_BDU_173rdABSubdcpl", // ARMY BDU_173rdABSubd CPL + "UNS_ARMY_BDU_173rdABSubdcpt", // ARMY BDU_173rdABSubd CPT + "UNS_ARMY_BDU_173rdABSubdltcol", // ARMY BDU_173rdABSubd LTCol + "UNS_ARMY_BDU_173rdABSubdmaj", // ARMY BDU_173rdABSubd Maj + "UNS_ARMY_BDU_173rdABSubdmsg", // ARMY BDU_173rdABSubd MSG + "UNS_ARMY_BDU_173rdABSubdpfc", // ARMY BDU_173rdABSubd PFC + "UNS_ARMY_BDU_173rdABSubdpv1", // ARMY BDU_173rdABSubd PV1 + "UNS_ARMY_BDU_173rdABSubdpv2", // ARMY BDU_173rdABSubd PV1 + "UNS_ARMY_BDU_173rdABSubdsfc", // ARMY BDU_173rdABSubd SFC + "UNS_ARMY_BDU_173rdABSubdsgm", // ARMY BDU_173rdABSubd SGM + "UNS_ARMY_BDU_173rdABSubdsgt", // ARMY BDU_173rdABSubd SGT + "UNS_ARMY_BDU_173rdABSubdspc", // ARMY BDU_173rdABSubd SPC + "UNS_ARMY_BDU_173rdABSubdspc5", // ARMY BDU_173rdABSubd SPC5 + "UNS_ARMY_BDU_173rdABSubdssg", // ARMY BDU_173rdABSubd SSG + "UNS_ARMY_BDU_196thLIBSubd1stlt", // ARMY BDU_196thLIBSubd 1stLT + "UNS_ARMY_BDU_196thLIBSubd1stsgt", // ARMY BDU_196thLIBSubd 1stSGT + "UNS_ARMY_BDU_196thLIBSubd21stlt", // ARMY BDU_196thLIBSubd2 1stLT + "UNS_ARMY_BDU_196thLIBSubd21stsgt", // ARMY BDU_196thLIBSubd2 1stSGT + "UNS_ARMY_BDU_196thLIBSubd22ndlt", // ARMY BDU_196thLIBSubd2 2ndLT + "UNS_ARMY_BDU_196thLIBSubd2col", // ARMY BDU_196thLIBSubd2 Col + "UNS_ARMY_BDU_196thLIBSubd2cpl", // ARMY BDU_196thLIBSubd2 CPL + "UNS_ARMY_BDU_196thLIBSubd2cpt", // ARMY BDU_196thLIBSubd2 CPT + "UNS_ARMY_BDU_196thLIBSubd2ltcol", // ARMY BDU_196thLIBSubd2 LTCol + "UNS_ARMY_BDU_196thLIBSubd2maj", // ARMY BDU_196thLIBSubd2 Maj + "UNS_ARMY_BDU_196thLIBSubd2msg", // ARMY BDU_196thLIBSubd2 MSG + "UNS_ARMY_BDU_196thLIBSubd2ndlt", // ARMY BDU_196thLIBSubd 2ndLT + "UNS_ARMY_BDU_196thLIBSubd2pfc", // ARMY BDU_196thLIBSubd2 PFC + "UNS_ARMY_BDU_196thLIBSubd2pv1", // ARMY BDU_196thLIBSubd2 PV1 + "UNS_ARMY_BDU_196thLIBSubd2pv2", // ARMY BDU_196thLIBSubd2 PV2 + "UNS_ARMY_BDU_196thLIBSubd2sfc", // ARMY BDU_196thLIBSubd2 SFC + "UNS_ARMY_BDU_196thLIBSubd2sgm", // ARMY BDU_196thLIBSubd2 SGM + "UNS_ARMY_BDU_196thLIBSubd2sgt", // ARMY BDU_196thLIBSubd2 SGT + "UNS_ARMY_BDU_196thLIBSubd2spc", // ARMY BDU_196thLIBSubd2 SPC + "UNS_ARMY_BDU_196thLIBSubd2spc5", // ARMY BDU_196thLIBSubd2 SPC5 + "UNS_ARMY_BDU_196thLIBSubd2ssg", // ARMY BDU_196thLIBSubd2 SSG + "UNS_ARMY_BDU_196thLIBSubdcol", // ARMY BDU_196thLIBSubd Col + "UNS_ARMY_BDU_196thLIBSubdcpl", // ARMY BDU_196thLIBSubd CPL + "UNS_ARMY_BDU_196thLIBSubdcpt", // ARMY BDU_196thLIBSubd CPT + "UNS_ARMY_BDU_196thLIBSubdltcol", // ARMY BDU_196thLIBSubd LTCol + "UNS_ARMY_BDU_196thLIBSubdmaj", // ARMY BDU_196thLIBSubd Maj + "UNS_ARMY_BDU_196thLIBSubdmsg", // ARMY BDU_196thLIBSubd MSG + "UNS_ARMY_BDU_196thLIBSubdpfc", // ARMY BDU_196thLIBSubd PFC + "UNS_ARMY_BDU_196thLIBSubdpv1", // ARMY BDU_196thLIBSubd PV1 + "UNS_ARMY_BDU_196thLIBSubdpv2", // ARMY BDU_196thLIBSubd PV2 + "UNS_ARMY_BDU_196thLIBSubdsfc", // ARMY BDU_196thLIBSubd SFC + "UNS_ARMY_BDU_196thLIBSubdsgm", // ARMY BDU_196thLIBSubd SGM + "UNS_ARMY_BDU_196thLIBSubdsgt", // ARMY BDU_196thLIBSubd SGT + "UNS_ARMY_BDU_196thLIBSubdspc", // ARMY BDU_196thLIBSubd SPC + "UNS_ARMY_BDU_196thLIBSubdspc5", // ARMY BDU_196thLIBSubd SPC5 + "UNS_ARMY_BDU_196thLIBSubdssg", // ARMY BDU_196thLIBSubd SSG + "UNS_ARMY_BDU_199thLIBSubd1stlt", // ARMY BDU_199thLIBSubd 1stLT + "UNS_ARMY_BDU_199thLIBSubd1stsgt", // ARMY BDU_199thLIBSubd 1stSGT + "UNS_ARMY_BDU_199thLIBSubd21stlt", // ARMY BDU_199thLIBSubd2 1stLT + "UNS_ARMY_BDU_199thLIBSubd21stsgt", // ARMY BDU_199thLIBSubd2 1stSGT + "UNS_ARMY_BDU_199thLIBSubd22ndlt", // ARMY BDU_199thLIBSubd2 2ndLT + "UNS_ARMY_BDU_199thLIBSubd2col", // ARMY BDU_199thLIBSubd2 Col + "UNS_ARMY_BDU_199thLIBSubd2cpl", // ARMY BDU_199thLIBSubd2 CPL + "UNS_ARMY_BDU_199thLIBSubd2cpt", // ARMY BDU_199thLIBSubd2 CPT + "UNS_ARMY_BDU_199thLIBSubd2ltcol", // ARMY BDU_199thLIBSubd2 LTCol + "UNS_ARMY_BDU_199thLIBSubd2maj", // ARMY BDU_199thLIBSubd2 Maj + "UNS_ARMY_BDU_199thLIBSubd2msg", // ARMY BDU_199thLIBSubd2 MSG + "UNS_ARMY_BDU_199thLIBSubd2ndlt", // ARMY BDU_199thLIBSubd 2ndLT + "UNS_ARMY_BDU_199thLIBSubd2pfc", // ARMY BDU_199thLIBSubd2 PFC + "UNS_ARMY_BDU_199thLIBSubd2pv1", // ARMY BDU_199thLIBSubd2 PV1 + "UNS_ARMY_BDU_199thLIBSubd2pv2", // ARMY BDU_199thLIBSubd2 PV2 + "UNS_ARMY_BDU_199thLIBSubd2sfc", // ARMY BDU_199thLIBSubd2 SFC + "UNS_ARMY_BDU_199thLIBSubd2sgm", // ARMY BDU_199thLIBSubd2 SGM + "UNS_ARMY_BDU_199thLIBSubd2sgt", // ARMY BDU_199thLIBSubd2 SGT + "UNS_ARMY_BDU_199thLIBSubd2spc", // ARMY BDU_199thLIBSubd2 SPC + "UNS_ARMY_BDU_199thLIBSubd2spc5", // ARMY BDU_199thLIBSubd2 SPC5 + "UNS_ARMY_BDU_199thLIBSubd2ssg", // ARMY BDU_199thLIBSubd2 SSG + "UNS_ARMY_BDU_199thLIBSubdcol", // ARMY BDU_199thLIBSubd Col + "UNS_ARMY_BDU_199thLIBSubdcpl", // ARMY BDU_199thLIBSubd CPL + "UNS_ARMY_BDU_199thLIBSubdcpt", // ARMY BDU_199thLIBSubd CPT + "UNS_ARMY_BDU_199thLIBSubdltcol", // ARMY BDU_199thLIBSubd LTCol + "UNS_ARMY_BDU_199thLIBSubdmaj", // ARMY BDU_199thLIBSubd Maj + "UNS_ARMY_BDU_199thLIBSubdmsg", // ARMY BDU_199thLIBSubd MSG + "UNS_ARMY_BDU_199thLIBSubdpfc", // ARMY BDU_199thLIBSubd PFC + "UNS_ARMY_BDU_199thLIBSubdpv1", // ARMY BDU_199thLIBSubd PV1 + "UNS_ARMY_BDU_199thLIBSubdpv2", // ARMY BDU_199thLIBSubd PV2 + "UNS_ARMY_BDU_199thLIBSubdsfc", // ARMY BDU_199thLIBSubd SFC + "UNS_ARMY_BDU_199thLIBSubdsgm", // ARMY BDU_199thLIBSubd SGM + "UNS_ARMY_BDU_199thLIBSubdsgt", // ARMY BDU_199thLIBSubd SGT + "UNS_ARMY_BDU_199thLIBSubdspc", // ARMY BDU_199thLIBSubd SPC + "UNS_ARMY_BDU_199thLIBSubdspc5", // ARMY BDU_199thLIBSubd SPC5 + "UNS_ARMY_BDU_199thLIBSubdssg", // ARMY BDU_199thLIBSubd SSG + "UNS_ARMY_BDU_1stBrig5thID1stlt", // ARMY BDU_1stBrig5thID 1stLT + "UNS_ARMY_BDU_1stBrig5thID1stsgt", // ARMY BDU_1stBrig5thID 1stSGT + "UNS_ARMY_BDU_1stBrig5thID2ndlt", // ARMY BDU_1stBrig5thID 2ndLT + "UNS_ARMY_BDU_1stBrig5thIDcol", // ARMY BDU_1stBrig5thID Col + "UNS_ARMY_BDU_1stBrig5thIDcpl", // ARMY BDU_1stBrig5thID CPL + "UNS_ARMY_BDU_1stBrig5thIDcpt", // ARMY BDU_1stBrig5thID CPT + "UNS_ARMY_BDU_1stBrig5thIDFlak1stlt", // ARMY BDU_1stBrig5thIDFlak 1stLT + "UNS_ARMY_BDU_1stBrig5thIDFlak1stsgt", // ARMY BDU_1stBrig5thIDFlak 1stSGT + "UNS_ARMY_BDU_1stBrig5thIDFlak2ndlt", // ARMY BDU_1stBrig5thIDFlak 2ndLT + "UNS_ARMY_BDU_1stBrig5thIDFlakcol", // ARMY BDU_1stBrig5thIDFlak Col + "UNS_ARMY_BDU_1stBrig5thIDFlakcpl", // ARMY BDU_1stBrig5thIDFlak CPL + "UNS_ARMY_BDU_1stBrig5thIDFlakcpt", // ARMY BDU_1stBrig5thIDFlak CPT + "UNS_ARMY_BDU_1stBrig5thIDFlakltcol", // ARMY BDU_1stBrig5thIDFlak LTCol + "UNS_ARMY_BDU_1stBrig5thIDFlakmaj", // ARMY BDU_1stBrig5thIDFlak Maj + "UNS_ARMY_BDU_1stBrig5thIDFlakmsg", // ARMY BDU_1stBrig5thIDFlak MSG + "UNS_ARMY_BDU_1stBrig5thIDFlakpfc", // ARMY BDU_1stBrig5thIDFlak PFC + "UNS_ARMY_BDU_1stBrig5thIDFlakpv1", // ARMY BDU_1stBrig5thIDFlak PV1 + "UNS_ARMY_BDU_1stBrig5thIDFlakpv2", // ARMY BDU_1stBrig5thIDFlak PV2 + "UNS_ARMY_BDU_1stBrig5thIDFlaksfc", // ARMY BDU_1stBrig5thIDFlak SFC + "UNS_ARMY_BDU_1stBrig5thIDFlaksgm", // ARMY BDU_1stBrig5thIDFlak SGM + "UNS_ARMY_BDU_1stBrig5thIDFlaksgt", // ARMY BDU_1stBrig5thIDFlak SGT + "UNS_ARMY_BDU_1stBrig5thIDFlakspc", // ARMY BDU_1stBrig5thIDFlak SPC + "UNS_ARMY_BDU_1stBrig5thIDFlakspc5", // ARMY BDU_1stBrig5thIDFlak SPC5 + "UNS_ARMY_BDU_1stBrig5thIDFlakssg", // ARMY BDU_1stBrig5thIDFlak SSG + "UNS_ARMY_BDU_1stBrig5thIDltcol", // ARMY BDU_1stBrig5thID LTCol + "UNS_ARMY_BDU_1stBrig5thIDmaj", // ARMY BDU_1stBrig5thID Maj + "UNS_ARMY_BDU_1stBrig5thIDmsg", // ARMY BDU_1stBrig5thID MSG + "UNS_ARMY_BDU_1stBrig5thIDpfc", // ARMY BDU_1stBrig5thID PFC + "UNS_ARMY_BDU_1stBrig5thIDpv1", // ARMY BDU_1stBrig5thID PV1 + "UNS_ARMY_BDU_1stBrig5thIDpv2", // ARMY BDU_1stBrig5thID PV2 + "UNS_ARMY_BDU_1stBrig5thIDsfc", // ARMY BDU_1stBrig5thID SFC + "UNS_ARMY_BDU_1stBrig5thIDsgm", // ARMY BDU_1stBrig5thID SGM + "UNS_ARMY_BDU_1stBrig5thIDsgt", // ARMY BDU_1stBrig5thID SGT + "UNS_ARMY_BDU_1stBrig5thIDspc", // ARMY BDU_1stBrig5thID SPC + "UNS_ARMY_BDU_1stBrig5thIDspc5", // ARMY BDU_1stBrig5thID SPC5 + "UNS_ARMY_BDU_1stBrig5thIDssg", // ARMY BDU_1stBrig5thID SSG + "UNS_ARMY_BDU_1stBrig5thIDSubd1stlt", // ARMY BDU_1stBrig5thIDSubd 1stLT + "UNS_ARMY_BDU_1stBrig5thIDSubd1stsgt", // ARMY BDU_1stBrig5thIDSubd 1stSGT + "UNS_ARMY_BDU_1stBrig5thIDSubd2ndlt", // ARMY BDU_1stBrig5thIDSubd 2ndLT + "UNS_ARMY_BDU_1stBrig5thIDSubdcol", // ARMY BDU_1stBrig5thIDSubd Col + "UNS_ARMY_BDU_1stBrig5thIDSubdcpl", // ARMY BDU_1stBrig5thIDSubd CPL + "UNS_ARMY_BDU_1stBrig5thIDSubdcpt", // ARMY BDU_1stBrig5thIDSubd CPT + "UNS_ARMY_BDU_1stBrig5thIDSubdltcol", // ARMY BDU_1stBrig5thIDSubd LTCol + "UNS_ARMY_BDU_1stBrig5thIDSubdmaj", // ARMY BDU_1stBrig5thIDSubd Maj + "UNS_ARMY_BDU_1stBrig5thIDSubdmsg", // ARMY BDU_1stBrig5thIDSubd MSG + "UNS_ARMY_BDU_1stBrig5thIDSubdpfc", // ARMY BDU_1stBrig5thIDSubd PFC + "UNS_ARMY_BDU_1stBrig5thIDSubdpv1", // ARMY BDU_1stBrig5thIDSubd PV1 + "UNS_ARMY_BDU_1stBrig5thIDSubdpv2", // ARMY BDU_1stBrig5thIDSubd PV2 + "UNS_ARMY_BDU_1stBrig5thIDSubdsfc", // ARMY BDU_1stBrig5thIDSubd SFC + "UNS_ARMY_BDU_1stBrig5thIDSubdsgm", // ARMY BDU_1stBrig5thIDSubd SGM + "UNS_ARMY_BDU_1stBrig5thIDSubdsgt", // ARMY BDU_1stBrig5thIDSubd SGT + "UNS_ARMY_BDU_1stBrig5thIDSubdspc", // ARMY BDU_1stBrig5thIDSubd SPC + "UNS_ARMY_BDU_1stBrig5thIDSubdspc5", // ARMY BDU_1stBrig5thIDSubd SPC5 + "UNS_ARMY_BDU_1stBrig5thIDSubdssg", // ARMY BDU_1stBrig5thIDSubd SSG + "UNS_ARMY_BDU_1stCav1stlt", // ARMY BDU_1stCav 1stLT + "UNS_ARMY_BDU_1stCav1stsgt", // ARMY BDU_1stCav 1stSGT + "UNS_ARMY_BDU_1stCav2ndlt", // ARMY BDU_1stCav 2ndLT + "UNS_ARMY_BDU_1stCav651stlt", // ARMY BDU_1stCav65 1stLT + "UNS_ARMY_BDU_1stCav651stsgt", // ARMY BDU_1stCav65 1stSGT + "UNS_ARMY_BDU_1stCav652ndlt", // ARMY BDU_1stCav65 2ndLT + "UNS_ARMY_BDU_1stCav65col", // ARMY BDU_1stCav65 Col + "UNS_ARMY_BDU_1stCav65cpl", // ARMY BDU_1stCav65 CPL + "UNS_ARMY_BDU_1stCav65cpt", // ARMY BDU_1stCav65 CPT + "UNS_ARMY_BDU_1stCav65ltcol", // ARMY BDU_1stCav65 LTCol + "UNS_ARMY_BDU_1stCav65maj", // ARMY BDU_1stCav65 Maj + "UNS_ARMY_BDU_1stCav65msg", // ARMY BDU_1stCav65 MSG + "UNS_ARMY_BDU_1stCav65pfc", // ARMY BDU_1stCav65 PFC + "UNS_ARMY_BDU_1stCav65pv1", // ARMY BDU_1stCav65 PV1 + "UNS_ARMY_BDU_1stCav65pv2", // ARMY BDU_1stCav65 PV2 + "UNS_ARMY_BDU_1stCav65sfc", // ARMY BDU_1stCav65 SFC + "UNS_ARMY_BDU_1stCav65sgm", // ARMY BDU_1stCav65 SGM + "UNS_ARMY_BDU_1stCav65sgt", // ARMY BDU_1stCav65 SGT + "UNS_ARMY_BDU_1stCav65spc", // ARMY BDU_1stCav65 SPC + "UNS_ARMY_BDU_1stCav65spc5", // ARMY BDU_1stCav65 SPC5 + "UNS_ARMY_BDU_1stCav65ssg", // ARMY BDU_1stCav65 SSG + "UNS_ARMY_BDU_1stCavcol", // ARMY BDU_1stCav Col + "UNS_ARMY_BDU_1stCavcpl", // ARMY BDU_1stCav CPL + "UNS_ARMY_BDU_1stCavcpt", // ARMY BDU_1stCav CPT + "UNS_ARMY_BDU_1stCavFlak1stlt", // ARMY BDU_1stCavFlak 1stLT + "UNS_ARMY_BDU_1stCavFlak1stsgt", // ARMY BDU_1stCavFlak 1stSGT + "UNS_ARMY_BDU_1stCavFlak2ndlt", // ARMY BDU_1stCavFlak 2ndLT + "UNS_ARMY_BDU_1stCavFlakcol", // ARMY BDU_1stCavFlak Col + "UNS_ARMY_BDU_1stCavFlakcpl", // ARMY BDU_1stCavFlak CPL + "UNS_ARMY_BDU_1stCavFlakcpt", // ARMY BDU_1stCavFlak CPT + "UNS_ARMY_BDU_1stCavFlakltcol", // ARMY BDU_1stCavFlak LTCol + "UNS_ARMY_BDU_1stCavFlakmaj", // ARMY BDU_1stCavFlak Maj + "UNS_ARMY_BDU_1stCavFlakmsg", // ARMY BDU_1stCavFlak MSG + "UNS_ARMY_BDU_1stCavFlakpfc", // ARMY BDU_1stCavFlak PFC + "UNS_ARMY_BDU_1stCavFlakpv1", // ARMY BDU_1stCavFlak PV1 + "UNS_ARMY_BDU_1stCavFlakpv2", // ARMY BDU_1stCavFlak PV2 + "UNS_ARMY_BDU_1stCavFlaksfc", // ARMY BDU_1stCavFlak SFC + "UNS_ARMY_BDU_1stCavFlaksgm", // ARMY BDU_1stCavFlak SGM + "UNS_ARMY_BDU_1stCavFlaksgt", // ARMY BDU_1stCavFlak SGT + "UNS_ARMY_BDU_1stCavFlakspc", // ARMY BDU_1stCavFlak SPC + "UNS_ARMY_BDU_1stCavFlakspc5", // ARMY BDU_1stCavFlak SPC5 + "UNS_ARMY_BDU_1stCavFlakssg", // ARMY BDU_1stCavFlak SSG + "UNS_ARMY_BDU_1stCavltcol", // ARMY BDU_1stCav LTCol + "UNS_ARMY_BDU_1stCavmaj", // ARMY BDU_1stCav Maj + "UNS_ARMY_BDU_1stCavmsg", // ARMY BDU_1stCav MSG + "UNS_ARMY_BDU_1stCavpfc", // ARMY BDU_1stCav PFC + "UNS_ARMY_BDU_1stCavpv1", // ARMY BDU_1stCav PV1 + "UNS_ARMY_BDU_1stCavpv2", // ARMY BDU_1stCav PV2 + "UNS_ARMY_BDU_1stCavsfc", // ARMY BDU_1stCav SFC + "UNS_ARMY_BDU_1stCavsgm", // ARMY BDU_1stCav SGM + "UNS_ARMY_BDU_1stCavsgt", // ARMY BDU_1stCav SGT + "UNS_ARMY_BDU_1stCavspc", // ARMY BDU_1stCav SPC + "UNS_ARMY_BDU_1stCavspc5", // ARMY BDU_1stCav SPC5 + "UNS_ARMY_BDU_1stCavssg", // ARMY BDU_1stCav SSG + "UNS_ARMY_BDU_1stCavSubd1stlt", // ARMY BDU_1stCavSubd 1stLT + "UNS_ARMY_BDU_1stCavSubd1stsgt", // ARMY BDU_1stCavSubd 1stSGT + "UNS_ARMY_BDU_1stCavSubd2ndlt", // ARMY BDU_1stCavSubd 2ndLT + "UNS_ARMY_BDU_1stCavSubdcol", // ARMY BDU_1stCavSubd Col + "UNS_ARMY_BDU_1stCavSubdcpl", // ARMY BDU_1stCavSubd CPL + "UNS_ARMY_BDU_1stCavSubdcpt", // ARMY BDU_1stCavSubd CPT + "UNS_ARMY_BDU_1stCavSubdFlak1stlt", // ARMY BDU_1stCavSubdFlak 1stLT + "UNS_ARMY_BDU_1stCavSubdFlak1stsgt", // ARMY BDU_1stCavSubdFlak 1stSGT + "UNS_ARMY_BDU_1stCavSubdFlak2ndlt", // ARMY BDU_1stCavSubdFlak 2ndLT + "UNS_ARMY_BDU_1stCavSubdFlakcol", // ARMY BDU_1stCavSubdFlak Col + "UNS_ARMY_BDU_1stCavSubdFlakcpl", // ARMY BDU_1stCavSubdFlak CPL + "UNS_ARMY_BDU_1stCavSubdFlakcpt", // ARMY BDU_1stCavSubdFlak CPT + "UNS_ARMY_BDU_1stCavSubdFlakltcol", // ARMY BDU_1stCavSubdFlak LTCol + "UNS_ARMY_BDU_1stCavSubdFlakmaj", // ARMY BDU_1stCavSubdFlak Maj + "UNS_ARMY_BDU_1stCavSubdFlakmsg", // ARMY BDU_1stCavSubdFlak MSG + "UNS_ARMY_BDU_1stCavSubdFlakpfc", // ARMY BDU_1stCavSubdFlak PFC + "UNS_ARMY_BDU_1stCavSubdFlakpv1", // ARMY BDU_1stCavSubdFlak PV1 + "UNS_ARMY_BDU_1stCavSubdFlakpv2", // ARMY BDU_1stCavSubdFlak PV2 + "UNS_ARMY_BDU_1stCavSubdFlaksfc", // ARMY BDU_1stCavSubdFlak SFC + "UNS_ARMY_BDU_1stCavSubdFlaksgm", // ARMY BDU_1stCavSubdFlak SGM + "UNS_ARMY_BDU_1stCavSubdFlaksgt", // ARMY BDU_1stCavSubdFlak SGT + "UNS_ARMY_BDU_1stCavSubdFlakspc", // ARMY BDU_1stCavSubdFlak SPC + "UNS_ARMY_BDU_1stCavSubdFlakspc5", // ARMY BDU_1stCavSubdFlak SPC5 + "UNS_ARMY_BDU_1stCavSubdFlakssg", // ARMY BDU_1stCavSubdFlak SSG + "UNS_ARMY_BDU_1stCavSubdltcol", // ARMY BDU_1stCavSubd LTCol + "UNS_ARMY_BDU_1stCavSubdmaj", // ARMY BDU_1stCavSubd Maj + "UNS_ARMY_BDU_1stCavSubdmsg", // ARMY BDU_1stCavSubd MSG + "UNS_ARMY_BDU_1stCavSubdpfc", // ARMY BDU_1stCavSubd PFC + "UNS_ARMY_BDU_1stCavSubdpv1", // ARMY BDU_1stCavSubd PV1 + "UNS_ARMY_BDU_1stCavSubdpv2", // ARMY BDU_1stCavSubd PV2 + "UNS_ARMY_BDU_1stCavSubdsfc", // ARMY BDU_1stCavSubd SFC + "UNS_ARMY_BDU_1stCavSubdsgm", // ARMY BDU_1stCavSubd SGM + "UNS_ARMY_BDU_1stCavSubdsgt", // ARMY BDU_1stCavSubd SGT + "UNS_ARMY_BDU_1stCavSubdspc", // ARMY BDU_1stCavSubd SPC + "UNS_ARMY_BDU_1stCavSubdspc5", // ARMY BDU_1stCavSubd SPC5 + "UNS_ARMY_BDU_1stCavSubdssg", // ARMY BDU_1stCavSubd SSG + "UNS_ARMY_BDU_1stID1stlt", // ARMY BDU_1stID 1stLT + "UNS_ARMY_BDU_1stID1stsgt", // ARMY BDU_1stID 1stSGT + "UNS_ARMY_BDU_1stID2ndlt", // ARMY BDU_1stID 2ndLT + "UNS_ARMY_BDU_1stID651stlt", // ARMY BDU_1stID65 1stLT + "UNS_ARMY_BDU_1stID651stsgt", // ARMY BDU_1stID65 1stSGT + "UNS_ARMY_BDU_1stID652ndlt", // ARMY BDU_1stID65 2ndLT + "UNS_ARMY_BDU_1stID65col", // ARMY BDU_1stID65 Col + "UNS_ARMY_BDU_1stID65cpl", // ARMY BDU_1stID65 CPL + "UNS_ARMY_BDU_1stID65cpt", // ARMY BDU_1stID65 CPT + "UNS_ARMY_BDU_1stID65ltcol", // ARMY BDU_1stID65 LTCol + "UNS_ARMY_BDU_1stID65maj", // ARMY BDU_1stID65 Maj + "UNS_ARMY_BDU_1stID65msg", // ARMY BDU_1stID65 MSG + "UNS_ARMY_BDU_1stID65OG1071stlt", // ARMY BDU_1stID65OG107 1stLT + "UNS_ARMY_BDU_1stID65OG1071stsgt", // ARMY BDU_1stID65OG107 1stSGT + "UNS_ARMY_BDU_1stID65OG1072ndlt", // ARMY BDU_1stID65OG107 2ndLT + "UNS_ARMY_BDU_1stID65OG107col", // ARMY BDU_1stID65OG107 Col + "UNS_ARMY_BDU_1stID65OG107cpl", // ARMY BDU_1stID65OG107 CPL + "UNS_ARMY_BDU_1stID65OG107cpt", // ARMY BDU_1stID65OG107 CPT + "UNS_ARMY_BDU_1stID65OG107ltcol", // ARMY BDU_1stID65OG107 LTCol + "UNS_ARMY_BDU_1stID65OG107maj", // ARMY BDU_1stID65OG107 Maj + "UNS_ARMY_BDU_1stID65OG107msg", // ARMY BDU_1stID65OG107 MSG + "UNS_ARMY_BDU_1stID65OG107pfc", // ARMY BDU_1stID65OG107 PFC + "UNS_ARMY_BDU_1stID65OG107pv1", // ARMY BDU_1stID65OG107 PV1 + "UNS_ARMY_BDU_1stID65OG107pv2", // ARMY BDU_1stID65OG107 PV2 + "UNS_ARMY_BDU_1stID65OG107sfc", // ARMY BDU_1stID65OG107 SFC + "UNS_ARMY_BDU_1stID65OG107sgm", // ARMY BDU_1stID65OG107 SGM + "UNS_ARMY_BDU_1stID65OG107sgt", // ARMY BDU_1stID65OG107 SGT + "UNS_ARMY_BDU_1stID65OG107spc", // ARMY BDU_1stID65OG107 SPC + "UNS_ARMY_BDU_1stID65OG107spc5", // ARMY BDU_1stID65OG107 SPC5 + "UNS_ARMY_BDU_1stID65OG107ssg", // ARMY BDU_1stID65OG107 SSG + "UNS_ARMY_BDU_1stID65pfc", // ARMY BDU_1stID65 PFC + "UNS_ARMY_BDU_1stID65pv1", // ARMY BDU_1stID65 PV1 + "UNS_ARMY_BDU_1stID65pv2", // ARMY BDU_1stID65 PV2 + "UNS_ARMY_BDU_1stID65sfc", // ARMY BDU_1stID65 SFC + "UNS_ARMY_BDU_1stID65sgm", // ARMY BDU_1stID65 SGM + "UNS_ARMY_BDU_1stID65sgt", // ARMY BDU_1stID65 SGT + "UNS_ARMY_BDU_1stID65spc", // ARMY BDU_1stID65 SPC + "UNS_ARMY_BDU_1stID65spc5", // ARMY BDU_1stID65 SPC5 + "UNS_ARMY_BDU_1stID65ssg", // ARMY BDU_1stID65 SSG + "UNS_ARMY_BDU_1stIDcol", // ARMY BDU_1stID Col + "UNS_ARMY_BDU_1stIDcpl", // ARMY BDU_1stID CPL + "UNS_ARMY_BDU_1stIDcpt", // ARMY BDU_1stID CPT + "UNS_ARMY_BDU_1stIDFlak1stlt", // ARMY BDU_1stIDFlak 1stLT + "UNS_ARMY_BDU_1stIDFlak1stsgt", // ARMY BDU_1stIDFlak 1stSGT + "UNS_ARMY_BDU_1stIDFlak2ndlt", // ARMY BDU_1stIDFlak 2ndLT + "UNS_ARMY_BDU_1stIDFlakcol", // ARMY BDU_1stIDFlak Col + "UNS_ARMY_BDU_1stIDFlakcpl", // ARMY BDU_1stIDFlak CPL + "UNS_ARMY_BDU_1stIDFlakcpt", // ARMY BDU_1stIDFlak CPT + "UNS_ARMY_BDU_1stIDFlakltcol", // ARMY BDU_1stIDFlak LTCol + "UNS_ARMY_BDU_1stIDFlakmaj", // ARMY BDU_1stIDFlak Maj + "UNS_ARMY_BDU_1stIDFlakmsg", // ARMY BDU_1stIDFlak MSG + "UNS_ARMY_BDU_1stIDFlakpfc", // ARMY BDU_1stIDFlak PFC + "UNS_ARMY_BDU_1stIDFlakpv1", // ARMY BDU_1stIDFlak PV1 + "UNS_ARMY_BDU_1stIDFlakpv2", // ARMY BDU_1stIDFlak PV2 + "UNS_ARMY_BDU_1stIDFlaksfc", // ARMY BDU_1stIDFlak SFC + "UNS_ARMY_BDU_1stIDFlaksgm", // ARMY BDU_1stIDFlak SGM + "UNS_ARMY_BDU_1stIDFlaksgt", // ARMY BDU_1stIDFlak SGT + "UNS_ARMY_BDU_1stIDFlakspc", // ARMY BDU_1stIDFlak SPC + "UNS_ARMY_BDU_1stIDFlakspc5", // ARMY BDU_1stIDFlak SPC5 + "UNS_ARMY_BDU_1stIDFlakssg", // ARMY BDU_1stIDFlak SSG + "UNS_ARMY_BDU_1stIDltcol", // ARMY BDU_1stID LTCol + "UNS_ARMY_BDU_1stIDmaj", // ARMY BDU_1stID Maj + "UNS_ARMY_BDU_1stIDmsg", // ARMY BDU_1stID MSG + "UNS_ARMY_BDU_1stIDpfc", // ARMY BDU_1stID PFC + "UNS_ARMY_BDU_1stIDpv1", // ARMY BDU_1stID PV1 + "UNS_ARMY_BDU_1stIDpv2", // ARMY BDU_1stID PV2 + "UNS_ARMY_BDU_1stIDsfc", // ARMY BDU_1stID SFC + "UNS_ARMY_BDU_1stIDsgm", // ARMY BDU_1stID SGM + "UNS_ARMY_BDU_1stIDsgt", // ARMY BDU_1stID SGT + "UNS_ARMY_BDU_1stIDspc", // ARMY BDU_1stID SPC + "UNS_ARMY_BDU_1stIDspc5", // ARMY BDU_1stID SPC5 + "UNS_ARMY_BDU_1stIDssg", // ARMY BDU_1stID SSG + "UNS_ARMY_BDU_23rdIDSubd1stlt", // ARMY BDU_1stIDSubd 1stLT + "UNS_ARMY_BDU_23rdIDSubd1stsgt", // ARMY BDU_1stIDSubd 1stSGT + "UNS_ARMY_BDU_23rdIDSubd2ndlt", // ARMY BDU_1stIDSubd 2ndLT + "UNS_ARMY_BDU_23rdIDSubdcol", // ARMY BDU_1stIDSubd Col + "UNS_ARMY_BDU_23rdIDSubdcpl", // ARMY BDU_1stIDSubd CPL + "UNS_ARMY_BDU_23rdIDSubdcpt", // ARMY BDU_1stIDSubd CPT + "UNS_ARMY_BDU_23rdIDSubdFlak1stlt", // ARMY BDU_1stIDSubdFlak 1stLT + "UNS_ARMY_BDU_23rdIDSubdFlak1stsgt", // ARMY BDU_1stIDSubdFlak 1stSGT + "UNS_ARMY_BDU_23rdIDSubdFlak2ndlt", // ARMY BDU_1stIDSubdFlak 2ndLT + "UNS_ARMY_BDU_23rdIDSubdFlakcol", // ARMY BDU_1stIDSubdFlak Col + "UNS_ARMY_BDU_23rdIDSubdFlakcpl", // ARMY BDU_1stIDSubdFlak CPL + "UNS_ARMY_BDU_23rdIDSubdFlakcpt", // ARMY BDU_1stIDSubdFlak CPT + "UNS_ARMY_BDU_23rdIDSubdFlakltcol", // ARMY BDU_1stIDSubdFlak LTCol + "UNS_ARMY_BDU_23rdIDSubdFlakmaj", // ARMY BDU_1stIDSubdFlak Maj + "UNS_ARMY_BDU_23rdIDSubdFlakmsg", // ARMY BDU_1stIDSubdFlak MSG + "UNS_ARMY_BDU_23rdIDSubdFlakpfc", // ARMY BDU_1stIDSubdFlak PFC + "UNS_ARMY_BDU_23rdIDSubdFlakpv1", // ARMY BDU_1stIDSubdFlak PV1 + "UNS_ARMY_BDU_23rdIDSubdFlakpv2", // ARMY BDU_1stIDSubdFlak PV2 + "UNS_ARMY_BDU_23rdIDSubdFlaksfc", // ARMY BDU_1stIDSubdFlak SFC + "UNS_ARMY_BDU_23rdIDSubdFlaksgm", // ARMY BDU_1stIDSubdFlak SGM + "UNS_ARMY_BDU_23rdIDSubdFlaksgt", // ARMY BDU_1stIDSubdFlak SGT + "UNS_ARMY_BDU_23rdIDSubdFlakspc", // ARMY BDU_1stIDSubdFlak SPC + "UNS_ARMY_BDU_23rdIDSubdFlakspc5", // ARMY BDU_1stIDSubdFlak SPC5 + "UNS_ARMY_BDU_23rdIDSubdFlakssg", // ARMY BDU_1stIDSubdFlak SSG + "UNS_ARMY_BDU_23rdIDSubdltcol", // ARMY BDU_1stIDSubd LTCol + "UNS_ARMY_BDU_23rdIDSubdmaj", // ARMY BDU_1stIDSubd Maj + "UNS_ARMY_BDU_23rdIDSubdmsg", // ARMY BDU_1stIDSubd MSG + "UNS_ARMY_BDU_23rdIDSubdpfc", // ARMY BDU_1stIDSubd PFC + "UNS_ARMY_BDU_23rdIDSubdpv1", // ARMY BDU_1stIDSubd PV1 + "UNS_ARMY_BDU_23rdIDSubdpv2", // ARMY BDU_1stIDSubd PV2 + "UNS_ARMY_BDU_23rdIDSubdsfc", // ARMY BDU_1stIDSubd SFC + "UNS_ARMY_BDU_23rdIDSubdsgm", // ARMY BDU_1stIDSubd SGM + "UNS_ARMY_BDU_23rdIDSubdsgt", // ARMY BDU_1stIDSubd SGT + "UNS_ARMY_BDU_23rdIDSubdspc", // ARMY BDU_1stIDSubd SPC + "UNS_ARMY_BDU_23rdIDSubdspc5", // ARMY BDU_1stIDSubd SPC5 + "UNS_ARMY_BDU_23rdIDSubdssg", // ARMY BDU_1stIDSubd SSG + "UNS_ARMY_BDU_25thID1stlt", // ARMY BDU_25thID 1stLT + "UNS_ARMY_BDU_25thID1stsgt", // ARMY BDU_25thID 1stSGT + "UNS_ARMY_BDU_25thID2ndlt", // ARMY BDU_25thID 2ndLT + "UNS_ARMY_BDU_25thID661stlt", // ARMY BDU_25thID66 1stLT + "UNS_ARMY_BDU_25thID661stsgt", // ARMY BDU_25thID66 1stSGT + "UNS_ARMY_BDU_25thID662ndlt", // ARMY BDU_25thID66 2ndLT + "UNS_ARMY_BDU_25thID66col", // ARMY BDU_25thID66 Col + "UNS_ARMY_BDU_25thID66cpl", // ARMY BDU_25thID66 CPL + "UNS_ARMY_BDU_25thID66cpt", // ARMY BDU_25thID66 CPT + "UNS_ARMY_BDU_25thID66ltcol", // ARMY BDU_25thID66 LTCol + "UNS_ARMY_BDU_25thID66maj", // ARMY BDU_25thID66 Maj + "UNS_ARMY_BDU_25thID66msg", // ARMY BDU_25thID66 MSG + "UNS_ARMY_BDU_25thID66OG1071stlt", // ARMY BDU_25thID66OG107 1stLT + "UNS_ARMY_BDU_25thID66OG1071stsgt", // ARMY BDU_25thID66OG107 1stSGT + "UNS_ARMY_BDU_25thID66OG1072ndlt", // ARMY BDU_25thID66OG107 2ndLT + "UNS_ARMY_BDU_25thID66OG107col", // ARMY BDU_25thID66OG107 Col + "UNS_ARMY_BDU_25thID66OG107cpl", // ARMY BDU_25thID66OG107 CPL + "UNS_ARMY_BDU_25thID66OG107cpt", // ARMY BDU_25thID66OG107 CPT + "UNS_ARMY_BDU_25thID66OG107ltcol", // ARMY BDU_25thID66OG107 LTCol + "UNS_ARMY_BDU_25thID66OG107maj", // ARMY BDU_25thID66OG107 Maj + "UNS_ARMY_BDU_25thID66OG107msg", // ARMY BDU_25thID66OG107 MSG + "UNS_ARMY_BDU_25thID66OG107pfc", // ARMY BDU_25thID66OG107 PFC + "UNS_ARMY_BDU_25thID66OG107pv1", // ARMY BDU_25thID66OG107 PV1 + "UNS_ARMY_BDU_25thID66OG107pv2", // ARMY BDU_25thID66OG107 PV2 + "UNS_ARMY_BDU_25thID66OG107sfc", // ARMY BDU_25thID66OG107 SFC + "UNS_ARMY_BDU_25thID66OG107sgm", // ARMY BDU_25thID66OG107 SGM + "UNS_ARMY_BDU_25thID66OG107sgt", // ARMY BDU_25thID66OG107 SGT + "UNS_ARMY_BDU_25thID66OG107spc", // ARMY BDU_25thID66OG107 SPC + "UNS_ARMY_BDU_25thID66OG107spc5", // ARMY BDU_25thID66OG107 SPC5 + "UNS_ARMY_BDU_25thID66OG107ssg", // ARMY BDU_25thID66OG107 SSG + "UNS_ARMY_BDU_25thID66pfc", // ARMY BDU_25thID66 PFC + "UNS_ARMY_BDU_25thID66pv1", // ARMY BDU_25thID66 PV1 + "UNS_ARMY_BDU_25thID66pv2", // ARMY BDU_25thID66 PV2 + "UNS_ARMY_BDU_25thID66sfc", // ARMY BDU_25thID66 SFC + "UNS_ARMY_BDU_25thID66sgm", // ARMY BDU_25thID66 SGM + "UNS_ARMY_BDU_25thID66sgt", // ARMY BDU_25thID66 SGT + "UNS_ARMY_BDU_25thID66spc", // ARMY BDU_25thID66 SPC + "UNS_ARMY_BDU_25thID66spc5", // ARMY BDU_25thID66 SPC5 + "UNS_ARMY_BDU_25thID66ssg", // ARMY BDU_25thID66 SSG + "UNS_ARMY_BDU_25thIDcol", // ARMY BDU_25thID Col + "UNS_ARMY_BDU_25thIDcpl", // ARMY BDU_25thID CPL + "UNS_ARMY_BDU_25thIDcpt", // ARMY BDU_25thID CPT + "UNS_ARMY_BDU_25thIDFlak1stlt", // ARMY BDU_25thIDFlak 1stLT + "UNS_ARMY_BDU_25thIDFlak1stsgt", // ARMY BDU_25thIDFlak 1stSGT + "UNS_ARMY_BDU_25thIDFlak2ndlt", // ARMY BDU_25thIDFlak 2ndLT + "UNS_ARMY_BDU_25thIDFlakcol", // ARMY BDU_25thIDFlak Col + "UNS_ARMY_BDU_25thIDFlakcpl", // ARMY BDU_25thIDFlak CPL + "UNS_ARMY_BDU_25thIDFlakcpt", // ARMY BDU_25thIDFlak CPT + "UNS_ARMY_BDU_25thIDFlakltcol", // ARMY BDU_25thIDFlak LTCol + "UNS_ARMY_BDU_25thIDFlakmaj", // ARMY BDU_25thIDFlak Maj + "UNS_ARMY_BDU_25thIDFlakmsg", // ARMY BDU_25thIDFlak MSG + "UNS_ARMY_BDU_25thIDFlakpfc", // ARMY BDU_25thIDFlak PFC + "UNS_ARMY_BDU_25thIDFlakpv1", // ARMY BDU_25thIDFlak PV1 + "UNS_ARMY_BDU_25thIDFlakpv2", // ARMY BDU_25thIDFlak PV2 + "UNS_ARMY_BDU_25thIDFlaksfc", // ARMY BDU_25thIDFlak SFC + "UNS_ARMY_BDU_25thIDFlaksgm", // ARMY BDU_25thIDFlak SGM + "UNS_ARMY_BDU_25thIDFlaksgt", // ARMY BDU_25thIDFlak SGT + "UNS_ARMY_BDU_25thIDFlakspc", // ARMY BDU_25thIDFlak SPC + "UNS_ARMY_BDU_25thIDFlakspc5", // ARMY BDU_25thIDFlak SPC5 + "UNS_ARMY_BDU_25thIDFlakssg", // ARMY BDU_25thIDFlak SSG + "UNS_ARMY_BDU_25thIDltcol", // ARMY BDU_25thID LTCol + "UNS_ARMY_BDU_25thIDmaj", // ARMY BDU_25thID Maj + "UNS_ARMY_BDU_25thIDmsg", // ARMY BDU_25thID MSG + "UNS_ARMY_BDU_25thIDpfc", // ARMY BDU_25thID PFC + "UNS_ARMY_BDU_25thIDpv1", // ARMY BDU_25thID PV1 + "UNS_ARMY_BDU_25thIDpv2", // ARMY BDU_25thID PV2 + "UNS_ARMY_BDU_25thIDsfc", // ARMY BDU_25thID SFC + "UNS_ARMY_BDU_25thIDsgm", // ARMY BDU_25thID SGM + "UNS_ARMY_BDU_25thIDsgt", // ARMY BDU_25thID SGT + "UNS_ARMY_BDU_25thIDspc", // ARMY BDU_25thID SPC + "UNS_ARMY_BDU_25thIDspc5", // ARMY BDU_25thID SPC5 + "UNS_ARMY_BDU_25thIDssg", // ARMY BDU_25thID SSG + "UNS_ARMY_BDU_25thIDSubd1stlt", // ARMY BDU_25thIDSubd 1stLT + "UNS_ARMY_BDU_25thIDSubd1stsgt", // ARMY BDU_25thIDSubd 1stSGT + "UNS_ARMY_BDU_25thIDSubd2ndlt", // ARMY BDU_25thIDSubd 2ndLT + "UNS_ARMY_BDU_25thIDSubdcol", // ARMY BDU_25thIDSubd Col + "UNS_ARMY_BDU_25thIDSubdcpl", // ARMY BDU_25thIDSubd CPL + "UNS_ARMY_BDU_25thIDSubdcpt", // ARMY BDU_25thIDSubd CPT + "UNS_ARMY_BDU_25thIDSubdFlak1stlt", // ARMY BDU_25thIDSubdFlak 1stLT + "UNS_ARMY_BDU_25thIDSubdFlak1stsgt", // ARMY BDU_25thIDSubdFlak 1stSGT + "UNS_ARMY_BDU_25thIDSubdFlak2ndlt", // ARMY BDU_25thIDSubdFlak 2ndLT + "UNS_ARMY_BDU_25thIDSubdFlakcol", // ARMY BDU_25thIDSubdFlak Col + "UNS_ARMY_BDU_25thIDSubdFlakcpl", // ARMY BDU_25thIDSubdFlak CPL + "UNS_ARMY_BDU_25thIDSubdFlakcpt", // ARMY BDU_25thIDSubdFlak CPT + "UNS_ARMY_BDU_25thIDSubdFlakltcol", // ARMY BDU_25thIDSubdFlak LTCol + "UNS_ARMY_BDU_25thIDSubdFlakmaj", // ARMY BDU_25thIDSubdFlak Maj + "UNS_ARMY_BDU_25thIDSubdFlakmsg", // ARMY BDU_25thIDSubdFlak MSG + "UNS_ARMY_BDU_25thIDSubdFlakpfc", // ARMY BDU_25thIDSubdFlak PFC + "UNS_ARMY_BDU_25thIDSubdFlakpv1", // ARMY BDU_25thIDSubdFlak PV1 + "UNS_ARMY_BDU_25thIDSubdFlakpv2", // ARMY BDU_25thIDSubdFlak PV2 + "UNS_ARMY_BDU_25thIDSubdFlaksfc", // ARMY BDU_25thIDSubdFlak SFC + "UNS_ARMY_BDU_25thIDSubdFlaksgm", // ARMY BDU_25thIDSubdFlak SGM + "UNS_ARMY_BDU_25thIDSubdFlaksgt", // ARMY BDU_25thIDSubdFlak SGT + "UNS_ARMY_BDU_25thIDSubdFlakspc", // ARMY BDU_25thIDSubdFlak SPC + "UNS_ARMY_BDU_25thIDSubdFlakspc5", // ARMY BDU_25thIDSubdFlak SPC5 + "UNS_ARMY_BDU_25thIDSubdFlakssg", // ARMY BDU_25thIDSubdFlak SSG + "UNS_ARMY_BDU_25thIDSubdltcol", // ARMY BDU_25thIDSubd LTCol + "UNS_ARMY_BDU_25thIDSubdmaj", // ARMY BDU_25thIDSubd Maj + "UNS_ARMY_BDU_25thIDSubdmsg", // ARMY BDU_25thIDSubd MSG + "UNS_ARMY_BDU_25thIDSubdpfc", // ARMY BDU_25thIDSubd PFC + "UNS_ARMY_BDU_25thIDSubdpv1", // ARMY BDU_25thIDSubd PV1 + "UNS_ARMY_BDU_25thIDSubdpv2", // ARMY BDU_25thIDSubd PV2 + "UNS_ARMY_BDU_25thIDSubdsfc", // ARMY BDU_25thIDSubd SFC + "UNS_ARMY_BDU_25thIDSubdsgm", // ARMY BDU_25thIDSubd SGM + "UNS_ARMY_BDU_25thIDSubdsgt", // ARMY BDU_25thIDSubd SGT + "UNS_ARMY_BDU_25thIDSubdspc", // ARMY BDU_25thIDSubd SPC + "UNS_ARMY_BDU_25thIDSubdspc5", // ARMY BDU_25thIDSubd SPC5 + "UNS_ARMY_BDU_25thIDSubdssg", // ARMY BDU_25thIDSubd SSG + "UNS_ARMY_BDU_4thID66OG1071stlt", // ARMY BDU_4tID66OG107 1stLT + "UNS_ARMY_BDU_4thID66OG1071stsgt", // ARMY BDU_4tID66OG107 1stSGT + "UNS_ARMY_BDU_4thID66OG1072ndlt", // ARMY BDU_4tID66OG107 2ndLT + "UNS_ARMY_BDU_4thID66OG107col", // ARMY BDU_4tID66OG107 Col + "UNS_ARMY_BDU_4thID66OG107cpl", // ARMY BDU_4tID66OG107 CPL + "UNS_ARMY_BDU_4thID66OG107cpt", // ARMY BDU_4tID66OG107 CPT + "UNS_ARMY_BDU_4thID66OG107ltcol", // ARMY BDU_4tID66OG107 LTCol + "UNS_ARMY_BDU_4thID66OG107maj", // ARMY BDU_4tID66OG107 Maj + "UNS_ARMY_BDU_4thID66OG107msg", // ARMY BDU_4tID66OG107 MSG + "UNS_ARMY_BDU_4thID66OG107pfc", // ARMY BDU_4tID66OG107 PFC + "UNS_ARMY_BDU_4thID66OG107pv1", // ARMY BDU_4tID66OG107 PV1 + "UNS_ARMY_BDU_4thID66OG107pv2", // ARMY BDU_4tID66OG107 PV2 + "UNS_ARMY_BDU_4thID66OG107sfc", // ARMY BDU_4tID66OG107 SFC + "UNS_ARMY_BDU_4thID66OG107sgm", // ARMY BDU_4tID66OG107 SGM + "UNS_ARMY_BDU_4thID66OG107sgt", // ARMY BDU_4tID66OG107 SGT + "UNS_ARMY_BDU_4thID66OG107spc", // ARMY BDU_4tID66OG107 SPC + "UNS_ARMY_BDU_4thID66OG107spc5", // ARMY BDU_4tID66OG107 SPC5 + "UNS_ARMY_BDU_4thID66OG107ssg", // ARMY BDU_4tID66OG107 SSG + "UNS_ARMY_BDU_4thIDSubd1stlt", // ARMY BDU_4tIDSubd 1stLT + "UNS_ARMY_BDU_4thIDSubd1stsgt", // ARMY BDU_4tIDSubd 1stSGT + "UNS_ARMY_BDU_4thIDSubd2ndlt", // ARMY BDU_4tIDSubd 2ndLT + "UNS_ARMY_BDU_4thIDSubdcol", // ARMY BDU_4tIDSubd Col + "UNS_ARMY_BDU_4thIDSubdcpl", // ARMY BDU_4tIDSubd CPL + "UNS_ARMY_BDU_4thIDSubdcpt", // ARMY BDU_4tIDSubd CPT + "UNS_ARMY_BDU_4thIDSubdFlak1stlt", // ARMY BDU_4tIDSubdFlak 1stLT + "UNS_ARMY_BDU_4thIDSubdFlak1stsgt", // ARMY BDU_4tIDSubdFlak 1stSGT + "UNS_ARMY_BDU_4thIDSubdFlak2ndlt", // ARMY BDU_4tIDSubdFlak 2ndLT + "UNS_ARMY_BDU_4thIDSubdFlakcol", // ARMY BDU_4tIDSubdFlak Col + "UNS_ARMY_BDU_4thIDSubdFlakcpl", // ARMY BDU_4tIDSubdFlak CPL + "UNS_ARMY_BDU_4thIDSubdFlakcpt", // ARMY BDU_4tIDSubdFlak CPT + "UNS_ARMY_BDU_4thIDSubdFlakltcol", // ARMY BDU_4tIDSubdFlak LTCol + "UNS_ARMY_BDU_4thIDSubdFlakmaj", // ARMY BDU_4tIDSubdFlak Maj + "UNS_ARMY_BDU_4thIDSubdFlakmsg", // ARMY BDU_4tIDSubdFlak MSG + "UNS_ARMY_BDU_4thIDSubdFlakpfc", // ARMY BDU_4tIDSubdFlak PFC + "UNS_ARMY_BDU_4thIDSubdFlakpv1", // ARMY BDU_4tIDSubdFlak PV1 + "UNS_ARMY_BDU_4thIDSubdFlakpv2", // ARMY BDU_4tIDSubdFlak PV2 + "UNS_ARMY_BDU_4thIDSubdFlaksfc", // ARMY BDU_4tIDSubdFlak SFC + "UNS_ARMY_BDU_4thIDSubdFlaksgm", // ARMY BDU_4tIDSubdFlak SGM + "UNS_ARMY_BDU_4thIDSubdFlaksgt", // ARMY BDU_4tIDSubdFlak SGT + "UNS_ARMY_BDU_4thIDSubdFlakspc", // ARMY BDU_4tIDSubdFlak SPC + "UNS_ARMY_BDU_4thIDSubdFlakspc5", // ARMY BDU_4tIDSubdFlak SPC5 + "UNS_ARMY_BDU_4thIDSubdFlakssg", // ARMY BDU_4tIDSubdFlak SSG + "UNS_ARMY_BDU_4thIDSubdltcol", // ARMY BDU_4tIDSubd LTCol + "UNS_ARMY_BDU_4thIDSubdmaj", // ARMY BDU_4tIDSubd Maj + "UNS_ARMY_BDU_4thIDSubdmsg", // ARMY BDU_4tIDSubd MSG + "UNS_ARMY_BDU_4thIDSubdpfc", // ARMY BDU_4tIDSubd PFC + "UNS_ARMY_BDU_4thIDSubdpv1", // ARMY BDU_4tIDSubd PV1 + "UNS_ARMY_BDU_4thIDSubdpv2", // ARMY BDU_4tIDSubd PV2 + "UNS_ARMY_BDU_4thIDSubdsfc", // ARMY BDU_4tIDSubd SFC + "UNS_ARMY_BDU_4thIDSubdsgm", // ARMY BDU_4tIDSubd SGM + "UNS_ARMY_BDU_4thIDSubdsgt", // ARMY BDU_4tIDSubd SGT + "UNS_ARMY_BDU_4thIDSubdspc", // ARMY BDU_4tIDSubd SPC + "UNS_ARMY_BDU_4thIDSubdspc5", // ARMY BDU_4tIDSubd SPC5 + "UNS_ARMY_BDU_4thIDSubdssg", // ARMY BDU_4tIDSubd SSG + "UNS_ARMY_BDU_65", // ARMY BDU 65' + "UNS_ARMY_BDU_68", // ARMY BDU 68' + "UNS_ARMY_BDU_716thMPBn_Flak1stlt", // ARMY BDU_716thMPBn_Flak 1stLT + "UNS_ARMY_BDU_716thMPBn_Flak1stsgt", // ARMY BDU_716thMPBn_Flak 1stSGT + "UNS_ARMY_BDU_716thMPBn_Flak2ndlt", // ARMY BDU_716thMPBn_Flak 2ndLT + "UNS_ARMY_BDU_716thMPBn_Flakcol", // ARMY BDU_716thMPBn_Flak Col + "UNS_ARMY_BDU_716thMPBn_Flakcpl", // ARMY BDU_716thMPBn_Flak CPL + "UNS_ARMY_BDU_716thMPBn_Flakcpt", // ARMY BDU_716thMPBn_Flak CPT + "UNS_ARMY_BDU_716thMPBn_Flakltcol", // ARMY BDU_716thMPBn_Flak LTCol + "UNS_ARMY_BDU_716thMPBn_Flakmaj", // ARMY BDU_716thMPBn_Flak Maj + "UNS_ARMY_BDU_716thMPBn_Flakmsg", // ARMY BDU_716thMPBn_Flak MSG + "UNS_ARMY_BDU_716thMPBn_Flakpfc", // ARMY BDU_716thMPBn_Flak PFC + "UNS_ARMY_BDU_716thMPBn_Flakpv1", // ARMY BDU_716thMPBn_Flak PV1 + "UNS_ARMY_BDU_716thMPBn_Flakpv2", // ARMY BDU_716thMPBn_Flak PV2 + "UNS_ARMY_BDU_716thMPBn_Flaksfc", // ARMY BDU_716thMPBn_Flak SFC + "UNS_ARMY_BDU_716thMPBn_Flaksgm", // ARMY BDU_716thMPBn_Flak SGM + "UNS_ARMY_BDU_716thMPBn_Flaksgt", // ARMY BDU_716thMPBn_Flak SGT + "UNS_ARMY_BDU_716thMPBn_Flakspc", // ARMY BDU_716thMPBn_Flak SPC + "UNS_ARMY_BDU_716thMPBn_Flakspc5", // ARMY BDU_716thMPBn_Flak SPC5 + "UNS_ARMY_BDU_716thMPBn_Flakssg", // ARMY BDU_716thMPBn_Flak SSG + "UNS_ARMY_BDU_716thMPBn1stlt", // ARMY BDU_716thMPBn 1stLT + "UNS_ARMY_BDU_716thMPBn1stsgt", // ARMY BDU_716thMPBn 1stSGT + "UNS_ARMY_BDU_716thMPBn2ndlt", // ARMY BDU_716thMPBn 2ndLT + "UNS_ARMY_BDU_716thMPBncol", // ARMY BDU_716thMPBn Col + "UNS_ARMY_BDU_716thMPBncpl", // ARMY BDU_716thMPBn CPL + "UNS_ARMY_BDU_716thMPBncpt", // ARMY BDU_716thMPBn CPT + "UNS_ARMY_BDU_716thMPBnltcol", // ARMY BDU_716thMPBn LTCol + "UNS_ARMY_BDU_716thMPBnmaj", // ARMY BDU_716thMPBn Maj + "UNS_ARMY_BDU_716thMPBnmsg", // ARMY BDU_716thMPBn MSG + "UNS_ARMY_BDU_716thMPBnpfc", // ARMY BDU_716thMPBn PFC + "UNS_ARMY_BDU_716thMPBnpv1", // ARMY BDU_716thMPBn PV1 + "UNS_ARMY_BDU_716thMPBnpv2", // ARMY BDU_716thMPBn PV2 + "UNS_ARMY_BDU_716thMPBnsfc", // ARMY BDU_716thMPBn SFC + "UNS_ARMY_BDU_716thMPBnsgm", // ARMY BDU_716thMPBn SGM + "UNS_ARMY_BDU_716thMPBnsgt", // ARMY BDU_716thMPBn SGT + "UNS_ARMY_BDU_716thMPBnspc", // ARMY BDU_716thMPBn SPC + "UNS_ARMY_BDU_716thMPBnspc5", // ARMY BDU_716thMPBn SPC5 + "UNS_ARMY_BDU_716thMPBnssg", // ARMY BDU_716thMPBn SSG + "UNS_ARMY_BDU_82ndAB1stlt", // ARMY BDU_82ndAB 1stLT + "UNS_ARMY_BDU_82ndAB1stsgt", // ARMY BDU_82ndAB 1stSGT + "UNS_ARMY_BDU_82ndAB2ndlt", // ARMY BDU_82ndAB 2ndLT + "UNS_ARMY_BDU_82ndABcol", // ARMY BDU_82ndAB Col + "UNS_ARMY_BDU_82ndABcpl", // ARMY BDU_82ndAB CPL + "UNS_ARMY_BDU_82ndABcpt", // ARMY BDU_82ndAB CPT + "UNS_ARMY_BDU_82ndABltcol", // ARMY BDU_82ndAB LTCol + "UNS_ARMY_BDU_82ndABmaj", // ARMY BDU_82ndAB Maj + "UNS_ARMY_BDU_82ndABmsg", // ARMY BDU_82ndAB MSG + "UNS_ARMY_BDU_82ndABpfc", // ARMY BDU_82ndAB PFC + "UNS_ARMY_BDU_82ndABpv1", // ARMY BDU_82ndAB PV1 + "UNS_ARMY_BDU_82ndABpv2", // ARMY BDU_82ndAB PV2 + "UNS_ARMY_BDU_82ndABsfc", // ARMY BDU_82ndAB SFC + "UNS_ARMY_BDU_82ndABsgm", // ARMY BDU_82ndAB SGM + "UNS_ARMY_BDU_82ndABsgt", // ARMY BDU_82ndAB SGT + "UNS_ARMY_BDU_82ndABspc", // ARMY BDU_82ndAB SPC + "UNS_ARMY_BDU_82ndABspc5", // ARMY BDU_82ndAB SPC5 + "UNS_ARMY_BDU_82ndABssg", // ARMY BDU_82ndAB SSG + "UNS_ARMY_BDU_9thIDSubd1stlt", // ARMY BDU_9thIDSubd 1stLT + "UNS_ARMY_BDU_9thIDSubd1stsgt", // ARMY BDU_9thIDSubd 1stSGT + "UNS_ARMY_BDU_9thIDSubd2ndlt", // ARMY BDU_9thIDSubd 2ndLT + "UNS_ARMY_BDU_9thIDSubdcol", // ARMY BDU_9thIDSubd Col + "UNS_ARMY_BDU_9thIDSubdcpl", // ARMY BDU_9thIDSubd CPL + "UNS_ARMY_BDU_9thIDSubdcpt", // ARMY BDU_9thIDSubd CPT + "UNS_ARMY_BDU_9thIDSubdFlak1stlt", // ARMY BDU_9thIDSubdFlak 1stLT + "UNS_ARMY_BDU_9thIDSubdFlak1stsgt", // ARMY BDU_9thIDSubdFlak 1stSGT + "UNS_ARMY_BDU_9thIDSubdFlak2ndlt", // ARMY BDU_9thIDSubdFlak 2ndLT + "UNS_ARMY_BDU_9thIDSubdFlakcol", // ARMY BDU_9thIDSubdFlak Col + "UNS_ARMY_BDU_9thIDSubdFlakcpl", // ARMY BDU_9thIDSubdFlak CPL + "UNS_ARMY_BDU_9thIDSubdFlakcpt", // ARMY BDU_9thIDSubdFlak CPT + "UNS_ARMY_BDU_9thIDSubdFlakltcol", // ARMY BDU_9thIDSubdFlak LTCol + "UNS_ARMY_BDU_9thIDSubdFlakmaj", // ARMY BDU_9thIDSubdFlak Maj + "UNS_ARMY_BDU_9thIDSubdFlakmsg", // ARMY BDU_9thIDSubdFlak MSG + "UNS_ARMY_BDU_9thIDSubdFlakpfc", // ARMY BDU_9thIDSubdFlak PFC + "UNS_ARMY_BDU_9thIDSubdFlakpv1", // ARMY BDU_9thIDSubdFlak PV1 + "UNS_ARMY_BDU_9thIDSubdFlakpv2", // ARMY BDU_9thIDSubdFlak PV2 + "UNS_ARMY_BDU_9thIDSubdFlaksfc", // ARMY BDU_9thIDSubdFlak SFC + "UNS_ARMY_BDU_9thIDSubdFlaksgm", // ARMY BDU_9thIDSubdFlak SGM + "UNS_ARMY_BDU_9thIDSubdFlaksgt", // ARMY BDU_9thIDSubdFlak SGT + "UNS_ARMY_BDU_9thIDSubdFlakspc", // ARMY BDU_9thIDSubdFlak SPC + "UNS_ARMY_BDU_9thIDSubdFlakspc5", // ARMY BDU_9thIDSubdFlak SPC5 + "UNS_ARMY_BDU_9thIDSubdFlakssg", // ARMY BDU_9thIDSubdFlak SSG + "UNS_ARMY_BDU_9thIDSubdltcol", // ARMY BDU_9thIDSubd LTCol + "UNS_ARMY_BDU_9thIDSubdmaj", // ARMY BDU_9thIDSubd Maj + "UNS_ARMY_BDU_9thIDSubdmsg", // ARMY BDU_9thIDSubd MSG + "UNS_ARMY_BDU_9thIDSubdpfc", // ARMY BDU_9thIDSubd PFC + "UNS_ARMY_BDU_9thIDSubdpv1", // ARMY BDU_9thIDSubd PV1 + "UNS_ARMY_BDU_9thIDSubdpv2", // ARMY BDU_9thIDSubd PV2 + "UNS_ARMY_BDU_9thIDSubdsfc", // ARMY BDU_9thIDSubd SFC + "UNS_ARMY_BDU_9thIDSubdsgm", // ARMY BDU_9thIDSubd SGM + "UNS_ARMY_BDU_9thIDSubdsgt", // ARMY BDU_9thIDSubd SGT + "UNS_ARMY_BDU_9thIDSubdspc", // ARMY BDU_9thIDSubd SPC + "UNS_ARMY_BDU_9thIDSubdspc5", // ARMY BDU_9thIDSubd SPC5 + "UNS_ARMY_BDU_9thIDSubdssg", // ARMY BDU_9thIDSubd SSG + "UNS_ARMY_BDU_ERDLipatch", // ERDL Uniform + "UNS_ARMY_BDU_F", // ARMY BDU/Flak + "UNS_ARMY_BDU_SF_DuckHunter", // ARMY BDU_SF_DuckHunter + "UNS_ARMY_BDU_SF_DuckHunter2", // ARMY BDU_SF_DuckHunter2 + "UNS_ARMY_BDU_SF_EarlyWar1stlt", // ARMY BDU_SF_EarlyWar 1stLT + "UNS_ARMY_BDU_SF_EarlyWar1stsgt", // ARMY BDU_SF_EarlyWar 1stSGT + "UNS_ARMY_BDU_SF_EarlyWar2ndlt", // ARMY BDU_SF_EarlyWar 2ndLT + "UNS_ARMY_BDU_SF_EarlyWarcol", // ARMY BDU_SF_EarlyWar Col + "UNS_ARMY_BDU_SF_EarlyWarcpl", // ARMY BDU_SF_EarlyWar CPL + "UNS_ARMY_BDU_SF_EarlyWarcpt", // ARMY BDU_SF_EarlyWar CPT + "UNS_ARMY_BDU_SF_EarlyWarltcol", // ARMY BDU_SF_EarlyWar LTCol + "UNS_ARMY_BDU_SF_EarlyWarmaj", // ARMY BDU_SF_EarlyWar Maj + "UNS_ARMY_BDU_SF_EarlyWarmsg", // ARMY BDU_SF_EarlyWar MSG + "UNS_ARMY_BDU_SF_EarlyWarpfc", // ARMY BDU_SF_EarlyWar PFC + "UNS_ARMY_BDU_SF_EarlyWarpv1", // ARMY BDU_SF_EarlyWar PV1 + "UNS_ARMY_BDU_SF_EarlyWarpv2", // ARMY BDU_SF_EarlyWar PV2 + "UNS_ARMY_BDU_SF_EarlyWarsfc", // ARMY BDU_SF_EarlyWar SFC + "UNS_ARMY_BDU_SF_EarlyWarsgm", // ARMY BDU_SF_EarlyWar SGM + "UNS_ARMY_BDU_SF_EarlyWarsgt", // ARMY BDU_SF_EarlyWar SGT + "UNS_ARMY_BDU_SF_EarlyWarspc", // ARMY BDU_SF_EarlyWar SPC + "UNS_ARMY_BDU_SF_EarlyWarspc5", // ARMY BDU_SF_EarlyWar SPC5 + "UNS_ARMY_BDU_SF_EarlyWarssg", // ARMY BDU_SF_EarlyWar SSG + "UNS_ARMY_BDU_SF_LateWar1stlt", // ARMY BDU_SF_LateWar 1stLT + "UNS_ARMY_BDU_SF_LateWar1stsgt", // ARMY BDU_SF_LateWar 1stSGT + "UNS_ARMY_BDU_SF_LateWar2ndlt", // ARMY BDU_SF_LateWar 2ndLT + "UNS_ARMY_BDU_SF_LateWarcol", // ARMY BDU_SF_LateWar Col + "UNS_ARMY_BDU_SF_LateWarcpl", // ARMY BDU_SF_LateWar CPL + "UNS_ARMY_BDU_SF_LateWarcpt", // ARMY BDU_SF_LateWar CPT + "UNS_ARMY_BDU_SF_LateWarltcol", // ARMY BDU_SF_LateWar LTCol + "UNS_ARMY_BDU_SF_LateWarmaj", // ARMY BDU_SF_LateWar Maj + "UNS_ARMY_BDU_SF_LateWarmsg", // ARMY BDU_SF_LateWar MSG + "UNS_ARMY_BDU_SF_LateWarpfc", // ARMY BDU_SF_LateWar PFC + "UNS_ARMY_BDU_SF_LateWarpv1", // ARMY BDU_SF_LateWar PV1 + "UNS_ARMY_BDU_SF_LateWarpv2", // ARMY BDU_SF_LateWar PV2 + "UNS_ARMY_BDU_SF_LateWarsfc", // ARMY BDU_SF_LateWar SFC + "UNS_ARMY_BDU_SF_LateWarsgm", // ARMY BDU_SF_LateWar SGM + "UNS_ARMY_BDU_SF_LateWarsgt", // ARMY BDU_SF_LateWar SGT + "UNS_ARMY_BDU_SF_LateWarspc", // ARMY BDU_SF_LateWar SPC + "UNS_ARMY_BDU_SF_LateWarspc5", // ARMY BDU_SF_LateWar SPC5 + "UNS_ARMY_BDU_SF_LateWarssg", // ARMY BDU_SF_LateWar SSG + "UNS_ARMY_BDU_USA_BDU_Early1stlt", // ARMY BDU_USA_BDU_Early 1stLT + "UNS_ARMY_BDU_USA_BDU_Early1stsgt", // ARMY BDU_USA_BDU_Early 1stSGT + "UNS_ARMY_BDU_USA_BDU_Early2ndlt", // ARMY BDU_USA_BDU_Early 2ndLT + "UNS_ARMY_BDU_USA_BDU_Earlycol", // ARMY BDU_USA_BDU_Early Col + "UNS_ARMY_BDU_USA_BDU_Earlycpl", // ARMY BDU_USA_BDU_Early CPL + "UNS_ARMY_BDU_USA_BDU_Earlycpt", // ARMY BDU_USA_BDU_Early CPT + "UNS_ARMY_BDU_USA_BDU_Earlyltcol", // ARMY BDU_USA_BDU_Early LTCol + "UNS_ARMY_BDU_USA_BDU_Earlymaj", // ARMY BDU_USA_BDU_Early Maj + "UNS_ARMY_BDU_USA_BDU_Earlymsg", // ARMY BDU_USA_BDU_Early MSG + "UNS_ARMY_BDU_USA_BDU_Earlypfc", // ARMY BDU_USA_BDU_Early PFC + "UNS_ARMY_BDU_USA_BDU_Earlypv1", // ARMY BDU_USA_BDU_Early PV1 + "UNS_ARMY_BDU_USA_BDU_Earlypv2", // ARMY BDU_USA_BDU_Early PV2 + "UNS_ARMY_BDU_USA_BDU_Earlysfc", // ARMY BDU_USA_BDU_Early SFC + "UNS_ARMY_BDU_USA_BDU_Earlysgm", // ARMY BDU_USA_BDU_Early SGM + "UNS_ARMY_BDU_USA_BDU_Earlysgt", // ARMY BDU_USA_BDU_Early SGT + "UNS_ARMY_BDU_USA_BDU_Earlyspc", // ARMY BDU_USA_BDU_Early SPC + "UNS_ARMY_BDU_USA_BDU_Earlyspc5", // ARMY BDU_USA_BDU_Early SPC5 + "UNS_ARMY_BDU_USA_BDU_Earlyssg", // ARMY BDU_USA_BDU_Early SSG + "UNS_ARMY_BDU_USA_BDU_Late1stlt", // ARMY BDU_USA_BDU_Late 1stLT + "UNS_ARMY_BDU_USA_BDU_Late1stsgt", // ARMY BDU_USA_BDU_Late 1stSGT + "UNS_ARMY_BDU_USA_BDU_Late2ndlt", // ARMY BDU_USA_BDU_Late 2ndLT + "UNS_ARMY_BDU_USA_BDU_Latecol", // ARMY BDU_USA_BDU_Late Col + "UNS_ARMY_BDU_USA_BDU_Latecpl", // ARMY BDU_USA_BDU_Late CPL + "UNS_ARMY_BDU_USA_BDU_Latecpt", // ARMY BDU_USA_BDU_Late CPT + "UNS_ARMY_BDU_USA_BDU_Lateltcol", // ARMY BDU_USA_BDU_Late LTCol + "UNS_ARMY_BDU_USA_BDU_Latemaj", // ARMY BDU_USA_BDU_Late Maj + "UNS_ARMY_BDU_USA_BDU_Latemsg", // ARMY BDU_USA_BDU_Late MSG + "UNS_ARMY_BDU_USA_BDU_Latepfc", // ARMY BDU_USA_BDU_Late PFC + "UNS_ARMY_BDU_USA_BDU_Latepv1", // ARMY BDU_USA_BDU_Late PV1 + "UNS_ARMY_BDU_USA_BDU_Latepv2", // ARMY BDU_USA_BDU_Late PV2 + "UNS_ARMY_BDU_USA_BDU_Latesfc", // ARMY BDU_USA_BDU_Late SFC + "UNS_ARMY_BDU_USA_BDU_Latesgm", // ARMY BDU_USA_BDU_Late SGM + "UNS_ARMY_BDU_USA_BDU_Latesgt", // ARMY BDU_USA_BDU_Late SGT + "UNS_ARMY_BDU_USA_BDU_Latespc", // ARMY BDU_USA_BDU_Late SPC + "UNS_ARMY_BDU_USA_BDU_Latespc5", // ARMY BDU_USA_BDU_Late SPC5 + "UNS_ARMY_BDU_USA_BDU_Latessg", // ARMY BDU_USA_BDU_Late SSG + "UNS_ARMY_BDU_USAFSP_EarlyWar1stlt", // ARMY BDU_USAFSP_EarlyWar 1stLT + "UNS_ARMY_BDU_USAFSP_EarlyWar1stsgt", // ARMY BDU_USAFSP_EarlyWar 1stSGT + "UNS_ARMY_BDU_USAFSP_EarlyWar1stsgt2", // ARMY BDU_USAFSP_EarlyWar 1stSGT2 + "UNS_ARMY_BDU_USAFSP_EarlyWar2ndlt", // ARMY BDU_USAFSP_EarlyWar 2ndLT + "UNS_ARMY_BDU_USAFSP_EarlyWara1c", // ARMY BDU_USAFSP_EarlyWar A1C + "UNS_ARMY_BDU_USAFSP_EarlyWaramn", // ARMY BDU_USAFSP_EarlyWar AMN + "UNS_ARMY_BDU_USAFSP_EarlyWarcmsg", // ARMY BDU_USAFSP_EarlyWar CSMG + "UNS_ARMY_BDU_USAFSP_EarlyWarcol", // ARMY BDU_USAFSP_EarlyWar Col + "UNS_ARMY_BDU_USAFSP_EarlyWarcpt", // ARMY BDU_USAFSP_EarlyWar CPT + "UNS_ARMY_BDU_USAFSP_EarlyWarltcol", // ARMY BDU_USAFSP_EarlyWar LTCol + "UNS_ARMY_BDU_USAFSP_EarlyWarmaj", // ARMY BDU_USAFSP_EarlyWar Maj + "UNS_ARMY_BDU_USAFSP_EarlyWarmsg", // ARMY BDU_USAFSP_EarlyWar MSG + "UNS_ARMY_BDU_USAFSP_EarlyWarsgt", // ARMY BDU_USAFSP_EarlyWar SGT + "UNS_ARMY_BDU_USAFSP_EarlyWarsmsg", // ARMY BDU_USAFSP_EarlyWar SMSG + "UNS_ARMY_BDU_USAFSP_EarlyWarsra", // ARMY BDU_USAFSP_EarlyWar SRA + "UNS_ARMY_BDU_USAFSP_EarlyWartsgt", // ARMY BDU_USAFSP_EarlyWar TSgt + "UNS_ARMY_BDU_USAFSP_Flak1stlt", // ARMY BDU_USAFSP_Flak 1stLT + "UNS_ARMY_BDU_USAFSP_Flak1stsgt", // ARMY BDU_USAFSP_Flak 1stSGT + "UNS_ARMY_BDU_USAFSP_Flak1stsgt2", // ARMY BDU_USAFSP_Flak 1stSGT2 + "UNS_ARMY_BDU_USAFSP_Flak21stlt", // ARMY BDU_USAFSP_Flak2 1stLT + "UNS_ARMY_BDU_USAFSP_Flak21stsgt", // ARMY BDU_USAFSP_Flak2 1stSGT + "UNS_ARMY_BDU_USAFSP_Flak21stsgt2", // ARMY BDU_USAFSP_Flak2 1stSGT2 + "UNS_ARMY_BDU_USAFSP_Flak22ndlt", // ARMY BDU_USAFSP_Flak2 2ndLT + "UNS_ARMY_BDU_USAFSP_Flak2a1c", // ARMY BDU_USAFSP_Flak2 A1C + "UNS_ARMY_BDU_USAFSP_Flak2amn", // ARMY BDU_USAFSP_Flak2 AMN + "UNS_ARMY_BDU_USAFSP_Flak2cmsg", // ARMY BDU_USAFSP_Flak2 CMSG + "UNS_ARMY_BDU_USAFSP_Flak2col", // ARMY BDU_USAFSP_Flak2 Col + "UNS_ARMY_BDU_USAFSP_Flak2cpt", // ARMY BDU_USAFSP_Flak2 CPT + "UNS_ARMY_BDU_USAFSP_Flak2ltcol", // ARMY BDU_USAFSP_Flak2 LTCol + "UNS_ARMY_BDU_USAFSP_Flak2maj", // ARMY BDU_USAFSP_Flak2 Maj + "UNS_ARMY_BDU_USAFSP_Flak2msg", // ARMY BDU_USAFSP_Flak2 MSG + "UNS_ARMY_BDU_USAFSP_Flak2ndlt", // ARMY BDU_USAFSP_Flak 2ndLT + "UNS_ARMY_BDU_USAFSP_Flak2sgt", // ARMY BDU_USAFSP_Flak2 SGT + "UNS_ARMY_BDU_USAFSP_Flak2smsg", // ARMY BDU_USAFSP_Flak2 SMSG + "UNS_ARMY_BDU_USAFSP_Flak2sra", // ARMY BDU_USAFSP_Flak2 SRA + "UNS_ARMY_BDU_USAFSP_Flak2tsgt", // ARMY BDU_USAFSP_Flak2 TSgt + "UNS_ARMY_BDU_USAFSP_Flaka1c", // ARMY BDU_USAFSP_Flak A1C + "UNS_ARMY_BDU_USAFSP_Flakamn", // ARMY BDU_USAFSP_Flak AMN + "UNS_ARMY_BDU_USAFSP_Flakcmsg", // ARMY BDU_USAFSP_Flak CMSG + "UNS_ARMY_BDU_USAFSP_Flakcol", // ARMY BDU_USAFSP_Flak Col + "UNS_ARMY_BDU_USAFSP_Flakcpt", // ARMY BDU_USAFSP_Flak CPT + "UNS_ARMY_BDU_USAFSP_Flakltcol", // ARMY BDU_USAFSP_Flak LTCol + "UNS_ARMY_BDU_USAFSP_Flakmaj", // ARMY BDU_USAFSP_Flak Maj + "UNS_ARMY_BDU_USAFSP_Flakmsg", // ARMY BDU_USAFSP_Flak MSG + "UNS_ARMY_BDU_USAFSP_Flaksgt", // ARMY BDU_USAFSP_Flak SGT + "UNS_ARMY_BDU_USAFSP_Flaksmsg", // ARMY BDU_USAFSP_Flak SMSG + "UNS_ARMY_BDU_USAFSP_Flaksra", // ARMY BDU_USAFSP_Flak SRA + "UNS_ARMY_BDU_USAFSP_Flaktsgt", // ARMY BDU_USAFSP_Flak TSgt + "UNS_ARMY_BDU_USAFSP_MidWar1stlt", // ARMY BDU_USAFSP_MidWAr 1stLT + "UNS_ARMY_BDU_USAFSP_MidWar1stsgt", // ARMY BDU_USAFSP_MidWAr 1stSGT + "UNS_ARMY_BDU_USAFSP_MidWar1stsgt2", // ARMY BDU_USAFSP_MidWAr 1stSGT2 + "UNS_ARMY_BDU_USAFSP_MidWar2ndlt", // ARMY BDU_USAFSP_MidWAr 2ndLT + "UNS_ARMY_BDU_USAFSP_MidWara1c", // ARMY BDU_USAFSP_MidWAr A1C + "UNS_ARMY_BDU_USAFSP_MidWaramn", // ARMY BDU_USAFSP_MidWAr AMN + "UNS_ARMY_BDU_USAFSP_MidWarcmsg", // ARMY BDU_USAFSP_MidWAr CMSG + "UNS_ARMY_BDU_USAFSP_MidWarcol", // ARMY BDU_USAFSP_MidWAr Col + "UNS_ARMY_BDU_USAFSP_MidWarcpt", // ARMY BDU_USAFSP_MidWAr CPT + "UNS_ARMY_BDU_USAFSP_MidWarltcol", // ARMY BDU_USAFSP_MidWAr LTCol + "UNS_ARMY_BDU_USAFSP_MidWarmaj", // ARMY BDU_USAFSP_MidWAr Maj + "UNS_ARMY_BDU_USAFSP_MidWarmsg", // ARMY BDU_USAFSP_MidWAr MSG + "UNS_ARMY_BDU_USAFSP_MidWarsgt", // ARMY BDU_USAFSP_MidWAr SGT + "UNS_ARMY_BDU_USAFSP_MidWarsmsg", // ARMY BDU_USAFSP_MidWAr SMSG + "UNS_ARMY_BDU_USAFSP_MidWarsra", // ARMY BDU_USAFSP_MidWAr SRA + "UNS_ARMY_BDU_USAFSP_MidWartsgt", // ARMY BDU_USAFSP_MidWAr TSgt + "UNS_ARMY_BDU_USMC65Flak7ipatch", // USMC Flak 65 SS + "UNS_ARMY_BDU_USMC65Flakipatch", // USMC Flak 65 + "UNS_ARMY_BDU_USMC66ipatch", // USMC BDU 66 + "UNS_ARMY_BDU_USMC67Dirtyipatch", // USMC BDU 67 Dirty + "UNS_ARMY_BDU_USMC67ipatch", // USMC BDU 67 + "UNS_ARMY_BDU", // ARMY BDU + "UNS_DUCK_BDU", // Duckhunter BDU + "UNS_JPilot_BDU", // Jet Pilot Flightsuit + "UNS_PBR_Flak_S", // NAVY BDU/Flak Jacket Short Sleeve + "UNS_PBR_Flak", // NAVY BDU/Flak Jacket PBR + "UNS_Pilot_BDU", // Helicopter Pilot Flightsuit + "UNS_SEAL_BDU_ED", // SEAL BDU (ERDL/Denim) + "UNS_SEAL_BDU_ET", // SEAL BDU (ERDL/Tiger) + "UNS_SEAL_BDU_TD", // SEAL BDU (Tiger/Denim) + "UNS_SEAL_BDU_TS", // SEAL BDU (Tigerstripe) + "UNS_SOG_BDU_BK", // SOG BDU (Black) + "UNS_SOG_BDU_BT", // SOG BDU (Black/Tiger) + "UNS_SOG_BDU_O", // SOG BDU (Olive) + "UNS_SOG_BDU_OP", // SOG BDU (Olive/Painted) + "UNS_SOG_BDU_TS", // SOG BDU (Tigerstripe) + "UNS_TIGER_BDU", // Tigerstripe ATD Gold BDU + "UNS_TIGER2_BDU", // Tigerstripe LLS Green BDU + "UNS_TIGER3_BDU", // Tigerstripe ATD Green BDU + "UNS_USMC_BDU_65_2", // USMC BDU 65 2' + "UNS_USMC_BDU_65", // USMC BDU 65' + "UNS_USMC_BDU_S", // USMC BDU Short Sleeve + "UNS_USMC_BDU_USMC651stlt", // USMC BDU_USMC65 1stLT + "UNS_USMC_BDU_USMC651stsgt", // USMC BDU_USMC65 1stSGT + "UNS_USMC_BDU_USMC652ndlt", // USMC BDU_USMC65 2ndLT + "UNS_USMC_BDU_USMC65col", // USMC BDU_USMC65 Col + "UNS_USMC_BDU_USMC65cpl", // USMC BDU_USMC65 CPL + "UNS_USMC_BDU_USMC65cpt", // USMC BDU_USMC65 CPT + "UNS_USMC_BDU_USMC65Flak2ipatch", // USMC Flak 68 Faded + "UNS_USMC_BDU_USMC65Flak3ipatch", // USMC Flak 68 Faded 2 + "UNS_USMC_BDU_USMC65Flak4ipatch", // USMC Flak Faded 68 SS + "UNS_USMC_BDU_USMC65Flak5ipatch", // USMC Flak Faded 68 SS 2 + "UNS_USMC_BDU_USMC65Flak6ipatch", // USMC Flak ERDL 69 SS + "UNS_USMC_BDU_USMC65gsgt", // USMC BDU_USMC65 GSGT + "UNS_USMC_BDU_USMC65lcpl", // USMC BDU_USMC65 LCPL + "UNS_USMC_BDU_USMC65ltcol", // USMC BDU_USMC65 LTCol + "UNS_USMC_BDU_USMC65maj", // USMC BDU_USMC65 Maj + "UNS_USMC_BDU_USMC65mgsgt", // USMC BDU_USMC65 MGSGT + "UNS_USMC_BDU_USMC65msg", // USMC BDU_USMC65 MSG + "UNS_USMC_BDU_USMC65pfc", // USMC BDU_USMC65 PFC + "UNS_USMC_BDU_USMC65pvt", // USMC BDU_USMC65 PVT + "UNS_USMC_BDU_USMC65sgm", // USMC BDU_USMC65 SGM + "UNS_USMC_BDU_USMC65sgt", // USMC BDU_USMC65 SGT + "UNS_USMC_BDU_USMC65ssg", // USMC BDU_USMC65 SSG + "UNS_USMC_BDU", // USMC BDU + "UNS_USMC_FLAK_65", // USMC Flak 65' 1 + "UNS_USMC_Flak_E", // USMC BDU/Flak ERDL + "UNS_USMC_Flak_ES", // USMC BDU/Flak ERDL Short Sleeve + "UNS_USMC_Flak_F", // USMC BDU/Flak Jacket 2 + "UNS_USMC_Flak_S", // USMC BDU/Flak Jacket Short Sleeve + "UNS_USMC_Flak", // USMC BDU/Flak Jacket 1 + "UNS_USMC_FLAK2_65", // USMC Flak 65' 2 + "UNS_USMC_LERDL", // USMC Lime ERDL BDU + + // Headgear + "UNS_Bandana_OD", // Olive Bandana 1 + "UNS_Bandana_OD2", // Olive Bandana 2 + "UNS_Bandana_OD3", // Olive Bandana 3 + "UNS_BERET_22nd", // 22nd Spec. Warfare Avn. Det. + "UNS_Beret_3", // Navy Seal Erdl Beret + "UNS_Beret_4", // Navy Seal Beret Tiger + "UNS_Beret_5", // 5th SF Beret + "UNS_Beret_51LT", // 5th SF Beret (1st Lt.) + "UNS_Beret_52LT", // 5th SF Beret (2nd Lt.) + "UNS_Beret_5COL", // 5th SF Beret (Col.) + "UNS_Beret_5CPT", // 5th SF Beret (Cpt.) + "UNS_Beret_5LTCOL", // 5th SF Beret (Lt Col.) + "UNS_Beret_B", // USAF SP Beret + "UNS_BERET_MAJ", // 5th SF Beret (Maj.) + "UNS_Beret_MRF", // NAVY MRF Beret + "UNS_Boonie_6", // Olive Boonie/Folded 2 + "UNS_Boonie_DK", // Duckhunter Boonie + "UNS_Boonie_DKF", // Duckhunter Boonie/Folded + "UNS_Boonie_ERDL", // Lime ERDL Boonie + "UNS_Boonie_ERDL2", // ERDL Boonie/Folded + "UNS_Boonie_ERDL3", // Lime ERDL Boonie/Folded + "UNS_Boonie_OD", // Olive Boonie + "UNS_Boonie_OD2", // Olive Boonie 2 + "UNS_Boonie_ODF", // Olive Boonie/Folded + "UNS_Boonie_ODP", // Olive Boonie Painted + "UNS_Boonie_TIG", // Tiger ATD Gold Boonie + "UNS_Boonie_TIG1", // Tiger ATD Green Boonie + "UNS_Boonie_TIG2", // Tiger LLS Green Boonie + "UNS_Boonie_TIGF", // Tiger ATD Gold Boonie/Folded 2 + "UNS_Boonie_TIGF2", // Tiger ATD Gold Boonie/Folded 1 + "UNS_Boonie_TIGF3", // Tiger LLS Green Boonie/Folded 1 + "UNS_Boonie_TIGF4", // Tiger LLS Green Boonie/Folded 2 + "UNS_Field_Cap", // Field Cap + "UNS_Headband_BK", // Headband Black + "UNS_Headband_ED", // Headband ERDL + "UNS_Headband_OD", // Headband OD 1 + "UNS_Headband_OD2", // Headband OD 2 + "UNS_HP_Helmet_11AC", // Heli Pilot Helmet (11th ACR) + "UNS_HP_Helmet_17AC", // Heli Pilot Helmet (17th ACR) + "UNS_HP_Helmet_1AC", // Heli Pilot Helmet (1 Cav Air Mobile) + "UNS_HP_Helmet_1MD", // Heli Pilot Helmet (1MD) + "UNS_HP_Helmet_DX", // Heli Pilot Helmet (Dixie) + "UNS_HP_Helmet_OG", // Heli Pilot Helmet (OG) + "UNS_HP_Helmet_R33", // Heli Pilot Helmet (R33) + "UNS_HP_Helmet_R8", // Heli Pilot Helmet (R8) + "UNS_HP_Helmet_REBEL", // Heli Pilot Helmet (USMC (Rebel Flag)) + "UNS_HP_Helmet_TIGER", // Heli Pilot Helmet (Tiger) + "UNS_HP_Helmet_USA", // Heli Pilot Helmet (U.S. Flag) + "UNS_HP_Helmet", // Heli Pilot Helmet + "UNS_JP_Helmet_352TFS", // Jet Pilot Helmet (USAF/352nd TFS) + "UNS_JP_Helmet_366TFW", // Jet Pilot Helmet (USAF/366th TFW) + "UNS_JP_Helmet_389TFS", // Jet Pilot Helmet (389th FS) + "UNS_JP_Helmet", // Jet Pilot Helmet + "UNS_JP_Helmet2", // Jet Pilot Helmet/Visor + "UNS_M1_1", // USMC M1 1 + "UNS_M1_10_vkm", // USMC M1 (VKM) + "UNS_M1_10", // USMC M1 10 + "UNS_M1_11", // USMC M1 11 + "UNS_M1_12", // USMC M1 Camo + "UNS_M1_13", // USMC M1 Camo 2 + "UNS_M1_14_dead", // USMC M1 (dead) + "UNS_M1_14", // USMC M1 12 + "UNS_M1_15", // USMC M1 13 + "UNS_M1_16", // USMC M1 14 + "UNS_M1_17", // USMC M1 15 + "UNS_M1_18", // USMC M1 16 + "UNS_M1_19", // USMC M1 17 + "UNS_M1_1A", // ARMY M1 1 + "UNS_M1_1B", // ARMY M1 9 + "UNS_M1_2", // USMC M1 2 + "UNS_M1_20", // USMC M1 18 + "UNS_M1_21", // USMC M1 19 + "UNS_M1_22", // USMC M1 20 + "UNS_M1_23", // USMC M1 21 + "UNS_M1_24", // USMC M1 22 + "UNS_M1_25", // ARMY M1 10 + "UNS_M1_2A", // ARMY M1 2 + "UNS_M1_3_cal", // USMC M1 (CAL) + "UNS_M1_3_loy", // USMC M1 (loyalty) + "UNS_M1_3", // USMC M1 3 + "UNS_M1_3A", // ARMY M1 3 + "UNS_M1_4", // USMC M1 4 + "UNS_M1_4A", // ARMY M1 4 + "UNS_M1_5", // USMC M1 5 + "UNS_M1_5A", // ARMY M1 5 + "UNS_M1_6_nyg", // USMC M1 (NY) + "UNS_M1_6_Outnow", // USMC M1 (OutNow) + "UNS_M1_6", // USMC M1 6 + "UNS_M1_6A", // ARMY M1 6 + "UNS_M1_7_baby", // USMC M1 (Baby) + "UNS_M1_7_lbj", // USMC M1 (LBJ) + "UNS_M1_7", // USMC M1 7 + "UNS_M1_7A", // ARMY M1 7 + "UNS_M1_8", // USMC M1 8 + "UNS_M1_8A", // ARMY M1 8 + "UNS_M1_9", // USMC M1 9 + "UNS_M1_9A", // ARMY M1 Camo + "UNS_M1_AFT", // USAF SP M1 1 + "UNS_M1_MP", // MP M1 + "UNS_M1_PBR", // NAVY M1 PBR Crew + "UNS_M1_SP", // USAF 377th SPS M1 + "UNS_TC_1", // Crew Helmet 1 + "UNS_TC_2", // Crew Helmet 2 + "UNS_USMC_Cover", // USMC Cover + + // Facegear + "UNS_Band_H", // Bandage/Head + "UNS_Band_L", // Bandage/Leg + "UNS_Bandana_A", // Bandana OD + "UNS_Bullets", // Bullet Necklace + "UNS_Ear", // Ear Necklace + "UNS_Finger", // Finger Necklace + "UNS_M17", // M17 Gasmask + "UNS_Peace", // Peace Necklace + "UNS_Scarf_1stCav", // Scarf 1stCav + "UNS_Scarf_BK", // Scarf Black + "UNS_Scarf_OD", // Scarf OD + "UNS_Towel_Long", // Towel Long + "UNS_Towel", // Towel + + // Vests + "UNS_FLAK", // Flak Jacket + "UNS_JP_Vest", // Bauer Merk 2 Life Preserver Vest + "UNS_JP_Vest2", // Bauer Merk 2 Life Preserver 2 + "UNS_M1956_A1", // ARMY Web Gear 1 + "UNS_M1956_A10", // ARMY Web Gear 10 + "UNS_M1956_A11", // ARMY Web Gear 11 + "UNS_M1956_A12", // ARMY Web Gear 12 + "UNS_M1956_A2", // ARMY Web Gear 2 + "UNS_M1956_A3", // ARMY Web Gear 3 + "UNS_M1956_A4", // ARMY Web Gear 4 + "UNS_M1956_A5", // ARMY Web Gear 5 + "UNS_M1956_A6", // ARMY Web Gear 6 + "UNS_M1956_A7", // ARMY Web Gear 7 + "UNS_M1956_A8", // ARMY Web Gear 8 + "UNS_M1956_A9", // ARMY Web Gear 9 + "UNS_M1956_LRRP1", // LRRP Web Gear1 1 + "UNS_M1956_M1", // USMC Web Gear 1 + "UNS_M1956_M10", // USMC Web Gear 10 + "UNS_M1956_M11", // USMC Web Gear 11 + "UNS_M1956_M12", // USMC Web Gear 12 + "UNS_M1956_M13", // USMC Web Gear 13 + "UNS_M1956_M14", // USMC Web Gear 14 + "UNS_M1956_M15", // USMC Web Gear 15 + "UNS_M1956_M16", // USMC Web Gear 16 + "UNS_M1956_M17", // USMC Web Gear 17 + "UNS_M1956_M18", // USMC Web Gear 18 + "UNS_M1956_M19", // USMC Web Gear 19 + "UNS_M1956_M2", // USMC Web Gear 2 + "UNS_M1956_M20", // USMC Web Gear 20 + "UNS_M1956_M21", // USMC Web Gear 21 + "UNS_M1956_M22", // USMC Web Gear 22 + "UNS_M1956_M23", // USMC Web Gear 23 + "UNS_M1956_M24", // USMC Web Gear 24 + "UNS_M1956_M25", // USMC Web Gear 25 + "UNS_M1956_M26", // USMC Web Gear 26 + "UNS_M1956_M27", // USMC Web Gear 27 + "UNS_M1956_M28", // USMC Web Gear 28 + "UNS_M1956_M29", // USMC Web Gear 29 + "UNS_M1956_M3", // USMC Web Gear 3 + "UNS_M1956_M30", // USMC Web Gear 30 + "UNS_M1956_M31", // USMC Web Gear 31 + "UNS_M1956_M32", // USMC Web Gear 32 + "UNS_M1956_M33", // USMC Web Gear 33 + "UNS_M1956_M34", // USMC Web Gear 34 + "UNS_M1956_M35", // USMC Web Gear 35 + "UNS_M1956_M36", // USMC Web Gear 36 + "UNS_M1956_M4", // USMC Web Gear 4 + "UNS_M1956_M5", // USMC Web Gear 5 + "UNS_M1956_M6", // USMC Web Gear 6 + "UNS_M1956_M7", // USMC Web Gear 7 + "UNS_M1956_M8", // USMC Web Gear 8 + "UNS_M1956_M9", // USMC Web Gear 9 + "UNS_M1956_N1", // Seal Web Gear 1 + "UNS_M1956_N2", // Seal Web Gear 2 + "UNS_M1956_N3", // Seal Web Gear 3 + "UNS_M1956_N4", // Seal Web Gear 4 + "UNS_M1956_P1", // Pilot Web Gear 1 + "UNS_M1956_S1", // SOG Web Gear 1 + "UNS_M1956_S2", // SOG Web Gear 2 + "UNS_M1956_S3", // SOG Web Gear 3 + "UNS_M1956_S4", // SOG Web Gear 4 + "UNS_M1956_T1", // Tanker Web Gear 1 + + // Items + "b_kar_m1884", // Bayonet M1884/98 [KAR98] + "b_smle_1937", // Bayonet 17in Spike [SMLE] + "muzzle_snds_L", // Sound Suppressor (9 mm) + "uns_AC47_RC", // AC-47 Remote Control + "uns_ANPVS2", // An/PVS-2 Starlite Scope + "uns_b_6H3", // Bayonet 6H3 [AK] + "uns_b_m1", // Bayonet M1 [M1903/ M1 Garand] + "uns_b_m1917", // Bayonet M1917 [Trench Gun] + "uns_b_m4", // Bayonet M4 [M1 Carbine] + "uns_b_m40_camo", // Camo wrap [M-40] + "uns_b_m6", // Bayonet M6 [M14] + "uns_b_m7", // Bayonet M7 [M16/XM177] + "uns_b_m70_camo", // Camo wrap [Model 70] + "uns_b_mas49", // Bayonet M58 [MAS49/56] + "uns_b_mas49", // Bayonet M58 [MAS49/56] + "uns_b_sks", // Bayonet [SKS] + "uns_b_smle_camo", // Camo wrap [SMLE] + "uns_b_spike", // Bayonet Spike [Type56] + "uns_b_spike17", // Bayonet 17in Spike [MAS36] + "uns_b_svd_camo", // Camo wrap [SVD] + "uns_b_type30", // Bayonet Type 30 [Arisaka Type 99] + "uns_BA30_green", // Battery / Green filter + "uns_BA30_red", // Battery / Red filter + "uns_BA30", // Battery / White filter + "uns_binocular_army", // Binocular M19 green (7x50) + "uns_binocular_navy", // Binocular USN Mk21 (7x50) + "uns_bp_DP28", // Bipod [DP28] + "uns_bp_M60", // Bipod [M30/M16 HBAR] + "UNS_ItemRadio_PRC_25", // Radio - PRC 25 + "UNS_ItemRadio_PRC_90_TFAR", // Radio AN/PRC-90 (TFAR) + "UNS_ItemRadio_PRC_90", // Radio - AN/PRC-90 + "uns_ItemRadio_PRC25_TFAR", // Radio AN/PRC-25 (TFAR) + "UNS_ItemRadio_T_884", // Radio - T 884 + "UNS_ItemRadio_T884_TFAR", // Radio T-884 (TFAR) + "uns_ItemRadio_Transistor_1", // Radio - Transistor 1 + "uns_ItemRadio_Transistor_2", // Radio - Transistor 2 + "uns_o_Akatihi4x", // Scope (Akatihi Tokyo 4x) [Arisaka] + "uns_o_ANPVS2_M14", // Scope (AN-PVS2 Starlite) [M14/Model 70] + "uns_o_ANPVS2_M14", // Scope (AN/PVS2 Starlite)[M14/Model 70] + "uns_o_ANPVS2_M16", // Scope (AN-PVS2 Starlite) [XM177/M16] + "uns_o_ANPVS2", // Scope (AN-PVS2 Starlite) [M40] + "uns_o_APXSOM", // Scope (APXL806L 3.85x) [MAS-49/56] + "uns_o_colt4x", // Scope (Colt 4x) [M16/XM177] + "uns_o_LeatherwoodART_m14_custom", // Scope (Leatherwood 3-9x custom) [M14] + "uns_o_LeatherwoodART_m14", // Scope (Leatherwood 3-9x) [M14] + "uns_o_LeatherwoodART_m16", // Scope (Leatherwood 3-9x) [M16] + "uns_o_M84", // Scope (M84 2.2x) [M1] + "uns_o_PSO1_camo", // Scope camo (PSO1 4x) [SVD camo] + "uns_o_PSO1", // Scope (PSO1 4x) [SVD] + "uns_o_PU", // Scope (PU 3.5x) [Mosin] + "uns_o_RedfieldART_m70", // Scope (Redfield 3-9x variable) [Model 70] + "uns_o_RedfieldART", // Scope (Redfield 3-9x variable) [M40] + "uns_o_Unertl8x_m70", // Scope (Unertl 8x) [Model 70] + "uns_o_Unertl8x", // Scope (Unertl 8x) [M1903] + "uns_o_zf41", // Scope (ZF41 3.5x) [Kar-98k] + "uns_s_APS", // Suppressor [APS] + "uns_s_M14", // Suppressor [M14/M21/M40] + "uns_s_M16", // Suppressor [M16] + "uns_s_M1911", // Suppressor [M1911] + "uns_s_M3a1", // Suppressor [M3A1] + "uns_s_M45", // Suppressor [M/45] + "uns_s_MAC10", // Suppressor [MAC 10] + "uns_s_mat49", // Suppressor [MAT-49] + "uns_s_PBS1", // Suppressor [PBS-1/AKM] + "uns_s_PPK", // Suppressor [PPK] + "uns_s_Sten", // Suppressor [Sten] + "uns_s_UZI", // Suppressor [UZI] + "UNS_TrapKit", // Trap Kit + + // Vanilla Standard Items + "B_UavTerminal", // UAV Terminal [NATO] + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "G_B_Diving", // Diving Goggles [NATO] + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "Laserdesignator_03", // Laser Designator (Olive) + "Laserdesignator", // Laser Designator (Sand) + "Medikit", // Medikit + "MineDetector", // Mine Detector + "NVGoggles_INDEP", // NV Goggles (Green) + "NVGoggles_OPFOR", // NV Goggles (Black) + "NVGoggles_tna_F", // NV Goggles (Tropic) + "NVGoggles", // NV Goggles (Brown) + "NVGogglesB_blk_F", // ENVG-II (Black) + "NVGogglesB_grn_F", // ENVG-II (Green) + "NVGogglesB_gry_F", // ENVG-II (Grey) + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + "U_B_FullGhillie_ard", // Full Ghillie (Arid) [NATO] + "U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO] + "U_B_FullGhillie_sard", // Full Ghillie (Semi-Arid) [NATO] + "U_B_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "V_RebreatherB", // Rebreather [NATO] + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + // TFAR Items (Unsung has own radios which work with TFAR) + "tf_microdagr" // MicroDAGR Radio Programmer +]; + +GRLIB_arsenal_backpacks = [ + "UNS_Alice_1", // Alice Pack 1 + "UNS_Alice_2", // Alice Pack 2 + "UNS_Alice_3", // Alice Pack 3 + "UNS_Alice_4", // Alice Pack 4 + "UNS_Alice_5", // Alice Pack 5 + "UNS_Alice_6", // Alice Pack 6 + "UNS_Alice_DEM", // Alice Pack Demolitions + "UNS_Alice_DEM2", // Alice Pack Demolitions 2 + "UNS_Alice_F1", // USMC Alice Pack/Frame 1 + "UNS_Alice_F10", // ARMY Alice Pack/Frame 8 + "UNS_Alice_F11", // ARMY Alice Pack/Frame 9 + "UNS_Alice_F2", // USMC Alice Pack/Frame 2 + "UNS_Alice_F3", // ARMY Alice Pack/Frame 1 + "UNS_Alice_F4", // ARMY Alice Pack/Frame 2 + "UNS_Alice_F5", // ARMY Alice Pack/Frame 3 + "UNS_Alice_F6", // ARMY Alice Pack/Frame 4 + "UNS_Alice_F7", // ARMY Alice Pack/Frame 5 + "UNS_Alice_F8", // ARMY Alice Pack/Frame 6 + "UNS_Alice_F9", // ARMY Alice Pack/Frame 7 + "UNS_Alice_FR", // USMC Alice Pack/Frame RTO + "UNS_Alice_LRP1", // LRP Alice Pack 1 + "UNS_Alice_LRP2", // LRP Alice Pack 2 + "UNS_Alice_MED", // Alice Pack Medic + "UNS_Alice_MED2", // Alice Pack Medic 2 + "UNS_Alice_SOG", // SOG Alice Pack 1 + "UNS_Alice_SOG2", // SOG Alice Pack 2 + "UNS_Ammopack", // US Heavy Weapons Ammo Pack + "UNS_Ammopack2", // US Heavy Weapons Ammo Pack 2 + "UNS_ARMY_MED", // ARMY Alice Medic Pack + "UNS_ARMY_MED2", // ARMY Alice Medic Pack 2 + "UNS_ARMY_RTO", // PRC-25 (Army) + "UNS_ARMY_RTO2", // PRC-25 (Ruck) + "UNS_BA22_Para", // BA-22 Parachute + "UNS_SF_RTO", // PRC-25 (SF) + "UNS_SF_RTO2", // PRC-25 2 (SF) + "UNS_TROP_R1", // Tropical Rucksack 1 + "UNS_TROP_R2", // Tropical Rucksack 2 + "UNS_TROP_R3", // Tropical Rucksack 3 + "UNS_USMC_E1", // USMC Pack/ETool + "UNS_USMC_E2", // USMC Pack + "UNS_USMC_E3", // USMC Pack/Poncho + "UNS_USMC_E4", // USMC Pack/Poncho2 + "UNS_USMC_E5", // USMC Double Pack/Etool + "UNS_USMC_MED", // USMC Medic Pack + "UNS_USMC_R1", // USMC Ruck/Canteen + "UNS_USMC_R2", // USMC Ruck/Etool + "UNS_USMC_R3", // USMC Ruck + "UNS_USMC_RTO", // USMC PRC-10 + "UNS_USMC_RTO2", // USMC PRC-10 (Etool) + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack" // Telescopic Ladder +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_aaf.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_aaf.sqf new file mode 100644 index 0000000..146a75f --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_aaf.sqf @@ -0,0 +1,255 @@ +/* + AAF Arsenal Preset + Last Update: 2020-08-15 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "hgun_PDW2000_F", // PDW2000 9 mm + "arifle_Mk20_F", // Mk20 5.56 mm (Camo) + "arifle_Mk20_GL_F", // Mk20 EGLM 5.56 mm (Camo) + "arifle_Mk20C_F", // Mk20C 5.56 mm (Camo) + "srifle_GM6_F", // GM6 Lynx 12.7 mm + "srifle_EBR_F", // Mk18 ABR 7.62 mm + "arifle_SDAR_F", // SDAR 5.56 mm + "LMG_Mk200_F", // Mk200 6.5 mm + + // Handgun + "hgun_ACPC2_F", // ACP-C2 .45 ACP + + // Launcher + "launch_I_Titan_F", // Titan MPRL (Digital) + "launch_I_Titan_short_F", // Titan MPRL Compact (Olive) + "launch_NLAW_F", // PCML + "launch_MRAWS_olive_rail_F" // MAAWS Mk4 Mod 0 (Olive) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "I_UavTerminal", // UAV Terminal [AAF] + "NVGoggles_INDEP", // NV Goggles (Green) + "Laserdesignator_03", // Laser Designator (Olive) + + // Uniforms + "U_I_CombatUniform", // Combat Fatigues [AAF] + "U_I_CombatUniform_shortsleeve", // Combat Fatigues [AAF] (Rolled-up) + "U_I_OfficerUniform", // Combat Fatigues [AAF] (Officer) + "U_I_HeliPilotCoveralls", // Heli Pilot Coveralls [AAF] + "U_I_pilotCoveralls", // Pilot Coveralls [AAF] + "U_I_GhillieSuit", // Ghillie Suit [AAF] + "U_I_FullGhillie_ard", // Full Ghillie (Arid) [AAF] + "U_I_FullGhillie_sard", // Full Ghillie (Semi-Arid) [AAF] + "U_I_FullGhillie_lsh", // Full Ghillie (Lush) [AAF] + "U_I_Wetsuit", // Wetsuit [AAF] + "U_Tank_green_F", // Tanker Coveralls [AAF] + "U_I_CBRN_Suit_01_AAF_F", // CBRN Suit [AAF] + + // Headgear + "H_HelmetIA", // Modular Helmet + "H_Beret_blk", // Beret (Black) + "H_Booniehat_dgtl", // Booniehat [AAF] + "H_Cap_blk_Raven", // Cap [AAF] + "H_MilCap_dgtl", // Military Cap [AAF] + "H_HelmetCrew_I", // Crew Helmet [AAF] + "H_PilotHelmetHeli_I", // Heli Pilot Helmet [AAF] + "H_CrewHelmetHeli_I", // Heli Crew Helmet [AAF] + "H_PilotHelmetFighter_I", // Pilot Helmet [AAF] + + // Facegear + "G_Aviator", // Aviator Glasses + "G_Combat", // Combat Goggles + "G_I_Diving", // Diving Goggles [AAF] + "G_Lowprofile", // Low Profile Goggles + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_Spectacles", // Spectacle Glasses + "G_Spectacles_Tinted", // Tinted Spectacles + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_AirPurifyingRespirator_01_F", // APR [NATO] + + // Vests + "V_Chestrig_oli", // Chest Rig (Olive) + "V_PlateCarrierIAGL_dgtl", // GA Carrier GL Rig (Digital) + "V_PlateCarrierIA1_dgtl", // GA Carrier Lite (Digital) + "V_PlateCarrierIA2_dgtl", // GA Carrier Rig (Digital) + "V_RebreatherIA", // Rebreather [AAF] + "V_BandollierB_oli", // Slash Bandolier (Olive) + "V_TacVest_oli", // Tactical Vest (Olive) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_red_F", // Deck Crew Vest (Red) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "optic_ACO_grn", // ACO (Green) + "optic_Holosight_smg", // Mk17 Holosight SMG + "optic_MRCO", // MRCO + "optic_LRPS", // LRPS + "optic_sos", // MOS + "bipod_03_F_blk", // Bipod (Black) [AAF] + "bipod_03_F_oli", // Bipod (Olive) [AAF] + "muzzle_snds_m", // Sound Suppressor (5.56 mm) + "muzzle_snds_l", // Sound Suppressor (9 mm) + "muzzle_snds_b", // Sound Suppressor (7.62 mm) + "muzzle_snds_h_mg", // Sound Suppressor LMG (6.5 mm) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_Parachute", // Steerable Parachute + "B_AssaultPack_dgtl", // Assault Pack (Digital) + "B_FieldPack_blk", // Field Pack (Black) + "B_Carryall_oli", // Carryall Backpack (Olive) + "B_Fieldpack_oli", // Field Pack (Olive) + "B_TacticalPack_oli", // Tactical Backpack (Olive) + "B_Bergen_dgtl_F", // Bergen Backpack (Digital) + "B_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "B_RadioBag_01_digi_F", // Radio Pack (Digital) [AAF] + "B_CombinationUnitRespirator_01_F", // Combination Unit Respirator + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_ghex.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_ghex.sqf new file mode 100644 index 0000000..3e074fc --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_ghex.sqf @@ -0,0 +1,269 @@ +/* + CSAT Green Hex Arsenal Preset + Last Update: 2020-08-17 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "SMG_02_F", // Sting 9 mm + "arifle_SDAR_F", // SDAR 5.56 mm + "srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black) + "srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black) + "MMG_01_tan_F", // Navid 9.3 mm (Tan) + "srifle_GM6_ghex_F", // GM6 Lynx 12.7 mm (Green Hex) + "srifle_DMR_07_blk_F", // CMR-76 6.5 mm (Black) + "arifle_CTAR_blk_F", // CAR-95 5.8 mm (Black) + "arifle_CTAR_GL_blk_F", // CAR-95 GL 5.8 mm (Black) + "arifle_CTARS_blk_F", // CAR-95-1 5.8mm (Black) + "arifle_ARX_ghex_F", // Type 115 6.5 mm (Green Hex) + + // Handgun + "hgun_Rook40_F", // Rook-40 9 mm + "hgun_Pistol_heavy_02_F", // Zubr .45 ACP + + // Launcher + "launch_RPG32_ghex_F", // RPG-42 Alamut (Green Hex) + "launch_O_Titan_ghex_F", // Titan MPRL (Green Hex) + "launch_O_Titan_short_ghex_F", // Titan MPRL Compact (Green Hex) + "launch_O_Vorona_green_F" // 9M135 Vorona (Green) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "O_UavTerminal", // UAV Terminal [CSAT] + "Laserdesignator_02_ghex_F", // Laser Designator (Green Hex) + "O_NVGoggles_ghex_F", // Compact NVG (Green Hex) + + // Uniforms + "U_O_PilotCoveralls", // Pilot Coveralls [CSAT] + "U_O_Wetsuit", // Wetsuit [CSAT] + "U_O_T_Soldier_F", // Fatigues (Green Hex) [CSAT] + "U_O_T_Officer_F", // Officer Fatigues (Green Hex) [CSAT] + "U_O_T_Sniper_F", // Ghillie Suit (Green Hex) [CSAT] + "U_O_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [CSAT] + "U_O_V_Soldier_Viper_F", // Special Purpose Suit (Green Hex) + + // Headgear + "H_Beret_ocamo", // Beret [CSAT] + "H_Beret_CSAT_01_F", // Beret (Red) [CSAT] + "H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT] + "H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT] + "H_PilotHelmetFighter_O", // Pilot Helmet [CSAT] + "H_HelmetSpecO_ghex_F", // Assassin Helmet (Green Hex) + "H_HelmetCrew_O_ghex_F", // Crew Helmet (Green Hex) [CSAT] + "H_HelmetLeaderO_ghex_F", // Defender Helmet (Green Hex) + "H_MilCap_ghex_F", // Military Cap (Green Hex) + "H_HelmetO_ghex_F", // Protector Helmet (Green Hex) + "H_HelmetO_ViperSP_ghex_F", // Special Purpose Helmet (Green Hex) + "H_Tank_black_F", // Crew Helmet (Soft) [CSAT] + + // Facegear + "G_Aviator", // Aviator Glasses + "G_Balaclava_blk", // Balaclava (Black) + "G_Balaclava_oli", // Balaclava (Olive) + "G_Bandanna_beast", // Bandana (Beast) + "G_Bandanna_blk", // Bandana (Black) + "G_Bandanna_khk", // Bandana (Khaki) + "G_Bandanna_tan", // Bandana (Tan) + "G_Bandanna_oli", // Bandana (Olive) + "G_O_Diving", // Diving Goggles [CSAT] + "G_Sport_Red", // Sport Shades (Fire) + "G_Sport_Blackyellow", // Sport Shades (Poison) + "G_Sport_BlackWhite", // Sport Shades (Shadow) + "G_Sport_Checkered", // Sport Shades (Style) + "G_Sport_Blackred", // Sport Shades (Vulcan) + "G_Sport_Greenblack", // Sport Shades (Yetti) + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT] + "G_AirPurifyingRespirator_02_olive_F", // APR (Olive) [CSAT] + + // Vests + "V_TacVest_oli", // Tactical Vest (Olive) + "V_Chestrig_khk", // Chest Rig (Khaki) + "V_RebreatherIR", // Rebreather [CSAT] + "V_HarnessO_ghex_F", // LBV Harness (Green Hex) + "V_HarnessOGL_ghex_F", // LBV Grenadier Harness (Green Hex) + "V_BandollierB_ghex_F", // Slash Bandolier (Green Hex) + "V_TacChestrig_oli_F", // Tactical Chest Rig (Olive) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_green_F", // Deck Crew Vest (Green) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_l", // Sound Suppressor (9 mm) + "optic_yorris", // Yorris J2 + "optic_DMS", // DMS + "optic_DMS_ghex_F", // DMS (Green Hex) + "optic_KHS_blk", // Kahlia (Black) + "optic_ACO_grn", // ACO (Green) + "optic_ACO_grn_smg", // ACO SMG (Green) + "optic_Arco_blk_F", // ARCO (Black) + "optic_Arco_ghex_F", // ARCO (Green Hex) + "optic_LRPS_ghex_F", // LRPS (Green Hex) + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) + "muzzle_snds_65_TI_ghex_F", // Stealth Sound Suppressor (6.5 mm, Green Hex) + "muzzle_snds_58_blk_F", // Stealth Sound Suppressor (5.8 mm, Black) + "muzzle_snds_58_ghex_F", // Stealth Sound Suppressor (5.8 mm, Green Hex) + "bipod_02_F_blk", // Bipod (Black) [CSAT] + "muzzle_snds_93mmg", // Sound Suppressor (9.3mm, Black) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_Parachute", // Steerable Parachute + "B_FieldPack_blk", // Field Pack (Black) + "B_FieldPack_ghex_F", // Field Pack (Green Hex) + "B_Carryall_ghex_F", // Carryall Backpack (Green Hex) + "B_ViperHarness_ghex_F", // Viper Harness (Green Hex) + "B_ViperLightHarness_ghex_F", // Viper Light Harness (Green Hex) + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "B_RadioBag_01_ghex_F", // Radio Pack (Green Hex) [CSAT] + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_hex.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_hex.sqf new file mode 100644 index 0000000..827b83d --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_csat_hex.sqf @@ -0,0 +1,291 @@ +/* + CSAT Hex Arsenal Preset + Last Update: 2020-08-17 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "arifle_Katiba_F", // Katiba 6.5 mm + "arifle_Katiba_C_F", // Katiba Carbine 6.5 mm + "arifle_Katiba_GL_F", // Katiba GL 6.5 mm + "arifle_SDAR_F", // SDAR 5.56 mm + "LMG_Zafir_F", // Zafir 7.62 mm + "SMG_02_F", // Sting 9 mm + "srifle_GM6_camo_F", // GM6 Lynx 12.7 mm (Camo) + "srifle_DMR_01_F", // Rahim 7.62 mm + "srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black + "srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black) + "MMG_01_hex_F", // Navid 9.3 mm (Hex) + "arifle_ARX_hex_F", // Type 115 6.5 mm (Hex) + + // Handgun + "hgun_Rook40_F", // Rook-40 9 mm + "hgun_Pistol_heavy_02_F", // Zubr .45 ACP + + // Launcher + "launch_RPG32_F", // RPG-42 Alamut + "launch_O_Titan_F", // Titan MPRL (Hex) + "launch_O_Titan_short_F", // Titan MPRL Compact (Coyote) + "launch_O_Vorona_brown_F" // 9M135 Vorona (Brown) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "O_UavTerminal", // UAV Terminal [CSAT] + "Laserdesignator_02", // Laser Designator (Hex) + "NVGoggles_OPFOR", // NV Goggles (Black) + + // Uniforms + "U_O_CombatUniform_ocamo", // Fatigues (Hex) [CSAT] + "U_O_CombatUniform_oucamo", // Fatigues (Urban) [CSAT] + "U_O_OfficerUniform_ocamo", // Officer Fatigues (Hex) + "U_O_officer_noInsignia_hex_F", // Light Fatigues (Hex) + "U_O_PilotCoveralls", // Pilot Coveralls [CSAT] + "U_O_V_Soldier_Viper_hex_F", // Special Purpose Suit (Hex) + "U_O_Wetsuit", // Wetsuit [CSAT] + "U_O_GhillieSuit", // Ghillie Suit [CSAT] + "U_O_FullGhillie_ard", // Full Ghillie (Arid) [CSAT] + "U_O_FullGhillie_sard", // Full Ghillie (Semi-Arid) [CSAT] + "U_O_FullGhillie_lsh", // Full Ghillie (Lush) [CSAT] + + // Headgear + "H_HelmetSpecO_blk", // Assassin Helmet (Black) + "H_HelmetSpecO_ocamo", // Assassin Helmet (Hex) + "H_Beret_ocamo", // Beret [CSAT] + "H_Cap_brn_SPECOPS", // Cap [OPFOR] + "H_HelmetCrew_O", // Crew Helmet [CSAT] + "H_HelmetLeaderO_ocamo", // Defender Helmet (Hex) + "H_HelmetLeaderO_oucamo", // Defender Helmet (Urban) + "H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT] + "H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT] + "H_MilCap_ocamo", // Military Cap (Hex) + "H_PilotHelmetFighter_O", // Pilot Helmet [CSAT] + "H_HelmetO_ocamo", // Protector Helmet (Hex) + "H_HelmetO_oucamo", // Protector Helmet (Urban) + "H_Beret_CSAT_01_F", // Beret (Red) [CSAT] + "H_HelmetO_ViperSP_hex_F", // Special Purpose Helmet (Hex) + "H_Tank_black_F", // Crew Helmet (Soft) [CSAT] + + // Facegear + "G_Aviator", // Aviator Glasses + "G_Balaclava_blk", // Balaclava (Black) + "G_Balaclava_oli", // Balaclava (Olive) + "G_Bandanna_beast", // Bandana (Beast) + "G_Bandanna_blk", // Bandana (Black) + "G_Bandanna_khk", // Bandana (Khaki) + "G_Bandanna_tan", // Bandana (Tan) + "G_Bandanna_oli", // Bandana (Olive) + "G_O_Diving", // Diving Goggles [CSAT] + "G_Sport_Red", // Sport Shades (Fire) + "G_Sport_Blackyellow", // Sport Shades (Poison) + "G_Sport_BlackWhite", // Sport Shades (Shadow) + "G_Sport_Checkered", // Sport Shades (Style) + "G_Sport_Blackred", // Sport Shades (Vulcan) + "G_Sport_Greenblack", // Sport Shades (Yetti) + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT] + "G_AirPurifyingRespirator_02_sand_F", // APR (Sand) [CSAT] + + // Vests + "V_Chestrig_khk", // Chest Rig (Khaki) + "V_HarnessOGL_brn", // LBV Grenadier Harness + "V_HarnessOGL_gry", // LBV Grenadier Harness (Grey) + "V_HarnessO_brn", // LBV Harness + "V_HarnessO_gry", // LBV Harness (Grey) + "V_RebreatherIR", // Rebreather [CSAT] + "V_BandollierB_khk", // Slash Bandolier (Khaki) + "V_TacVest_blk", // Tactical Vest (Black) + "V_TacVest_khk", // Tactical Vest (Khaki) + "V_TacVest_brn", // Tactical Vest (Brown) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_green_F", // Deck Crew Vest (Green) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_l", // Sound Suppressor (9 mm) + "optic_yorris", // Yorris J2 + "optic_DMS", // DMS + "optic_ACO_grn", // ACO (Green) + "optic_ACO_grn_smg", // ACO SMG (Green) + "optic_Arco", // ARCO + "optic_Arco_blk_F", // ARCO (Black) + "optic_KHS_blk", // Kahlia (Black) + "optic_KHS_hex", // Kahlia (Hex) + "optic_LRPS", // LRPS + "bipod_02_F_blk", // Bipod (Black) [CSAT] + "bipod_02_F_hex", // Bipod (Hex) [CSAT] + "bipod_02_F_tan", // Bipod (Tan) [CSAT] + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_b", // Sound Suppressor (7.62 mm) + "muzzle_snds_93mmg", // Sound Suppressor (9.3mm, Black) + "muzzle_snds_93mmg_tan", // Sound Suppressor (9.3mm, Tan) + "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) + "muzzle_snds_65_TI_hex_F", // Stealth Sound Suppressor (6.5 mm, Hex) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_Parachute", // Steerable Parachute + "B_AssaultPack_ocamo", // Assault Pack (Hex) + "B_Carryall_cbr", // Carryall Backpack (Coyote) + "B_Carryall_ocamo", // Carryall Backpack (Hex) + "B_Carryall_oucamo", // Carryall Backpack (Urban) + "B_FieldPack_blk", // Field Pack (Black) + "B_FieldPack_cbr", // Field Pack (Coyote) + "B_FieldPack_ocamo", // Field Pack (Hex) + "B_FieldPack_oucamo", // Field Pack (Urban) + "B_TacticalPack_ocamo", // Tactical Backpack (Hex) + "B_Bergen_hex_F", // Bergen Backpack (Hex) + "B_ViperHarness_hex_F", // Viper Harness (Hex) + "B_ViperLightHarness_hex_F", // Viper Light Harness (Hex) + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote) + "B_RadioBag_01_hex_F", // Radio Pack (Hex) [CSAT] + "B_RadioBag_01_oucamo_F", // Radio Pack (Urban) [CSAT] + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_ldf.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_ldf.sqf new file mode 100644 index 0000000..2d04118 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_ldf.sqf @@ -0,0 +1,264 @@ +/* + LDF Arsenal Preset + Last Update: 2020-08-17 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "SMG_03C_black", // ADR-97C 5.7 mm (Black) + "SMG_03C_TR_black", // ADR-97C TR 5.7 mm (Black) + "LMG_Mk200_black_F", // Mk200 6.5 mm (Black) + "arifle_MSBS65_F", // Promet 6.5 mm + "arifle_MSBS65_black_F", // Promet 6.5 mm (Black) + "arifle_MSBS65_GL_F", // Promet GL 6.5 mm + "arifle_MSBS65_GL_black_F", // Promet GL 6.5 mm (Black) + "arifle_MSBS65_Mark_F", // Promet MR 6.5 mm + "arifle_MSBS65_Mark_black_F", // Promet MR 6.5 mm (Black) + "arifle_MSBS65_UBS_F", // Promet SG 6.5 mm + "arifle_MSBS65_UBS_black_F", // Promet SG 6.5 mm (Black) + + // Handgun + "hgun_Pistol_heavy_01_green_F", // 4-five .45 ACP (Green) + + // Launcher + "launch_NLAW_F", // PCML + "launch_I_Titan_eaf_F", // Titan MPRL (Geometric) + "launch_I_Titan_short_F", // Titan MPRL Compact (Olive) + "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "I_E_UavTerminal", // UAV Terminal [LDF] + "Laserdesignator_03", // Laser Designator (Sand) + "NVGoggles_INDEP", // NV Goggles (Green) + "NVGogglesB_grn_F", // ENVG-II (Green) + + // Uniforms + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_C_CBRN_Suit_01_White_F", // CBRN Suit (White) + "U_I_E_CBRN_Suit_01_EAF_F", // CBRN Suit [LDF] + "U_I_E_Uniform_01_coveralls_F", // Heli Pilot Coveralls [LDF] + "U_I_E_Uniform_01_F", // Combat Fatigues [LDF] + "U_I_E_Uniform_01_officer_F", // Combat Fatigues (Officer) [LDF] + "U_I_E_Uniform_01_shortsleeve_F", // Combat Fatigues (Rolled-up) [LDF] + "U_I_E_Uniform_01_sweater_F", // Combat Fatigues (Sweater) [LDF] + "U_I_E_Uniform_01_tanktop_F", // Combat Fatigues (Tank Top) [LDF] + + // Headgear + "H_HelmetHBK_headset_F", // Advanced Modular Helmet + "H_HelmetHBK_chops_F", // Advanced Modular Helmet (Chops) + "H_HelmetHBK_ear_F", // Advanced Modular Helmet (Ear Protectors) + "H_HelmetHBK_F", // Advanced Modular Helmet (Olive) + "H_Beret_EAF_01_F", // Beret [LDF] + "H_Booniehat_eaf", // Booniehat [LDF] + "H_Tank_eaf_F", // Crew Helmet (Soft) [LDF] + "H_HelmetCrew_I_E", // Crew Helmet [LDF] + "H_CrewHelmetHeli_I_E", // Heli Crew Helmet [LDF] + "H_PilotHelmetHeli_I_E", // Heli Pilot Helmet [LDF] + "H_MilCap_eaf", // Military Cap [LDF] + "H_PilotHelmetFighter_I_E", // Pilot Helmet [LDF] + + // Facegear + "G_Aviator", // Aviator Glasses + "G_Combat", // Combat Goggles + "G_B_Diving", // Diving Goggles [NATO] + "G_Lowprofile", // Low Profile Goggles + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_Spectacles", // Spectacle Glasses + "G_Spectacles_Tinted", // Tinted Spectacles + "G_AirPurifyingRespirator_01_F", // APR [NATO] + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_Tactical_Clear", // Tactical Glasses + "G_Tactical_Black", // Tactical Shades + "G_Sport_Red", // Sport Shades (Fire) + "G_Sport_Blackyellow", // Sport Shades (Poison) + "G_Sport_BlackWhite", // Sport Shades (Shadow) + "G_Sport_Checkered", // Sport Shades (Style) + "G_Sport_Blackred", // Sport Shades (Vulcan) + "G_Sport_Greenblack", // Sport Shades (Yetti) + + // Vests + "V_Chestrig_blk", // Chest Rig (Black) + "V_BandollierB_oli", // Slash Bandolier (Olive) + "V_CarrierRigKBT_01_light_EAF_F", // Modular Carrier Lite (Geometric) + "V_CarrierRigKBT_01_light_Olive_F", // Modular Carrier Lite (Olive) + "V_CarrierRigKBT_01_heavy_EAF_F", // Modular Carrier GL Rig (Geometric) + "V_CarrierRigKBT_01_heavy_Olive_F", // Modular Carrier GL Rig (Olive) + "V_CarrierRigKBT_01_EAF_F", // Modular Carrier Vest (Geometric) + "V_CarrierRigKBT_01_Olive_F", // Modular Carrier Vest (Olive) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "optic_mrd_black", // MRD (Black) + "optic_Aco", // ACO (Red) + "optic_ico_01_f", // Promet Modular Sight + "optic_ico_01_black_f", // Promet Modular Sight (Black) + "optic_SOS", // MOS + "bipod_01_f_blk", // Bipod (Black) [NATO] + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) + "muzzle_snds_h_mg_blk_f", // Sound Suppressor LMG (6.5 mm, Black) + "muzzle_snds_570", // Sound Suppressor (5.7 mm) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_Parachute", // Steerable Parachute + "B_AssaultPack_eaf_F", // Assault Pack (Geometric) + "B_Carryall_eaf_F", // Carryall Backpack (Geometric) + "B_Fieldpack_green_F", // Field Pack (Green) + "B_RadioBag_01_eaf_F", // Radio Pack (Geometric) [LDF] + "B_CombinationUnitRespirator_01_F", // Combination Unit Respirator + "B_LegStrapBag_black_F", // B_LegStrapBag_black_F + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_mtp.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_mtp.sqf new file mode 100644 index 0000000..db18577 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_mtp.sqf @@ -0,0 +1,298 @@ +/* + NATO MTP Arsenal Preset + Last Update: 2020-08-17 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "arifle_MX_F", // MX 6.5 mm + "arifle_MX_GL_F", // MX 3GL 6.5 mm + "arifle_MX_SW_F", // MX SW 6.5 mm + "arifle_MXC_F", // MXC 6.5 mm + "arifle_MXM_F", // MXM 6.5 mm + "arifle_SDAR_F", // SDAR 5.56 mm + "srifle_LRR_camo_F", // M320 LRR .408 (Camo) + "SMG_01_F", // Vermin SMG .45 ACP + "MMG_02_sand_F", // SPMG .338 (Sand) + "srifle_DMR_02_sniper_F", // MAR-10 .338 (Sand) + "srifle_DMR_03_tan_F", // Mk-I EMR 7.62 mm (Sand) + + // Handgun + "hgun_P07_F", // P07 9 mm + "hgun_Pistol_heavy_01_F", // 4-five .45 ACP + + // Launcher + "launch_B_Titan_F", // Titan MPRL (Sand) + "launch_B_Titan_short_F", // Titan MPRL Compact (Sand) + "launch_NLAW_F", // PCML + "launch_MRAWS_sand_F" // MAAWS Mk4 Mod 1 (Sand) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "B_UavTerminal", // UAV Terminal [NATO] + "Laserdesignator", // Laser Designator (Sand) + "NVGoggles", // NV Goggles (Brown) + + // Uniforms + "U_B_CombatUniform_mcam", // Combat Fatigues (MTP) + "U_B_CombatUniform_mcam_tshirt", // Combat Fatigues (MTP) (Tee) + "U_B_CombatUniform_mcam_vest", // Recon Fatigues (MTP) + "U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO] + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "U_B_GhillieSuit", // Ghillie Suit [NATO] + "U_B_FullGhillie_ard", // Full Ghillie (Arid) [NATO] + "U_B_FullGhillie_sard", // Full Ghillie (Semi-Arid) [NATO] + "U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO] + "U_B_CBRN_Suit_01_MTP_F", // CBRN Suit (MTP) [NATO] + + // Headgear + "H_Watchcap_camo", // Beanie (Green) + "H_Beret_02", // Beret [NATO] + "H_Beret_Colonel", // Beret [NATO] (Colonel) + "H_Booniehat_mcamo", // Booniehat (MTP) + "H_Bandanna_mcamo", // Bandana (MTP) + "H_Cap_tan_specops_US", // Cap (US MTP) + "H_MilCap_mcamo", // Military Cap (MTP) + "H_HelmetB", // Combat Helmet + "H_HelmetB_black", // Combat Helmet (Black) + "H_HelmetB_camo", // Combat Helmet (Camo) + "H_HelmetB_grass", // Combat Helmet (Grass) + "H_HelmetB_sand", // Combat Helmet (Sand) + "H_HelmetB_desert", // Combat Helmet (Desert) + "H_HelmetB_snakeskin", // Combat Helmet (Snakeskin) + "H_HelmetCrew_B", // Crew Helmet [NATO] + "H_PilotHelmetFighter_B", // Pilot Helmet [NATO] + "H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO] + "H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO] + "H_HelmetB_light", // Light Combat Helmet + "H_HelmetB_light_black", // Light Combat Helmet (Black) + "H_HelmetB_light_desert", // Light Combat Helmet (Desert) + "H_HelmetB_light_grass", // Light Combat Helmet (Grass) + "H_HelmetB_light_sand", // Light Combat Helmet (Sand) + "H_HelmetB_light_snakeskin", // Light Combat Helmet (Snakeskin) + "H_HelmetSpecB", // Enhanced Combat Helmet + "H_HelmetSpecB_blk", // Enhanced Combat Helmet (Black) + "H_HelmetSpecB_paint2", // Enhanced Combat Helmet (Desert) + "H_HelmetSpecB_paint1", // Enhanced Combat Helmet (Grass) + "H_HelmetSpecB_sand", // Enhanced Combat Helmet (Sand) + "H_HelmetSpecB_snakeskin", // Enhanced Combat Helmet (Snakeskin) + + // Facegear + "G_Aviator", // Aviator Glasses + "G_Combat", // Combat Goggles + "G_B_Diving", // Diving Goggles [NATO] + "G_Lowprofile", // Low Profile Goggles + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_Spectacles", // Spectacle Glasses + "G_Spectacles_Tinted", // Tinted Spectacles + "G_AirPurifyingRespirator_01_F", // APR [NATO] + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_Tactical_Clear", // Tactical Glasses + "G_Tactical_Black", // Tactical Shades + + // Vests + "V_PlateCarrierGL_rgr", // Carrier GL Rig (Green) + "V_PlateCarrierGL_mtp", // Carrier GL Rig (MTP) + "V_PlateCarrier1_rgr", // Carrier Lite (Green) + "V_PlateCarrier2_rgr", // Carrier Rig (Green) + "V_PlateCarrierSpec_rgr", // Carrier Special Rig (Green) + "V_PlateCarrierSpec_mtp", // Carrier Special Rig (MTP) + "V_Chestrig_rgr", // Chest Rig (Green) + "V_RebreatherB", // Rebreather [NATO] + "V_BandollierB_rgr", // Slash Bandolier (Green) + "V_TacVest_blk", // Tactical Vest (Black) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_smg_01", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "muzzle_snds_l", // Sound Suppressor (9 mm) + "optic_mrd", // MRD + "optic_yorris", // Yorris J2 + "optic_DMS", // DMS + "optic_Aco", // ACO (Red) + "optic_Holosight", // Mk17 Holosight + "optic_Holosight_smg", // Mk17 Holosight SMG + "optic_Hamr", // RCO + "optic_sos", // MOS + "optic_LRPS", // LRPS + "optic_AMS", // AMS (Black) + "optic_AMS_snd", // AMS (Sand) + "bipod_01_f_blk", // Bipod (Black) [NATO] + "bipod_01_f_snd", // Bipod (Sand) [NATO] + "bipod_01_f_mtp", // Bipod (MTP) [NATO] + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_h_snd_f", // Sound Suppressor (6.5 mm, Sand) + "muzzle_snds_338_black", // Sound Suppressor (.338, Black) + "muzzle_snds_338_sand", // Sound Suppressor (.338, Sand) + "muzzle_snds_b", // Sound Suppressor (7.62 mm) + "muzzle_snds_b_snd_f", // Sound Suppressor (7.62 mm, Sand) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_AssaultPack_blk", // Assault Pack (Black) + "B_AssaultPack_rgr", // Assault Pack (Green) + "B_AssaultPack_mcamo", // Assault Pack (MTP) + "B_Carryall_mcamo", // Carryall Backpack (MTP) + "B_Kitbag_rgr", // Kitbag (Green) + "B_Kitbag_mcamo", // Kitbag (MTP) + "B_Parachute", // Steerable Parachute + "B_TacticalPack_mcamo", // Tactical Backpack (MTP) + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote) + "B_Bergen_mcamo_F", // Bergen Backpack (MTP) + "B_RadioBag_01_mtp_F", // Radio Pack (MTP) [NATO] + "B_CombinationUnitRespirator_01_F", // Combination Unit Respirator + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_tropic.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_tropic.sqf new file mode 100644 index 0000000..bfd1b21 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_tropic.sqf @@ -0,0 +1,297 @@ +/* + NATO Tropic Arsenal Preset + Last Update: 2020-08-12 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "arifle_MX_khk_F", // MX 6.5 mm (Khaki) + "arifle_MX_GL_khk_F", // MX 3GL 6.5 mm (Khaki) + "arifle_MX_SW_khk_F", // MX SW 6.5 mm (Khaki) + "arifle_MXC_khk_F", // MXC 6.5 mm (Khaki) + "arifle_MXM_khk_F", // MXM 6.5 mm (Khaki) + "arifle_SDAR_F", // SDAR 5.56 mm + "srifle_LRR_tna_F", // M320 LRR .408 (Tropic) + "SMG_01_F", // Vermin SMG .45 ACP + "MMG_02_black_F", // SPMG .338 (Black) + "srifle_DMR_02_F", // MAR-10 .338 (Black) + "srifle_DMR_03_khaki_F", // Mk-I EMR 7.62 mm (Khaki) + "arifle_SPAR_01_blk_F", // SPAR-16 5.56 mm (Black) + "arifle_SPAR_01_khk_F", // SPAR-16 5.56 mm (Khaki) + "arifle_SPAR_01_GL_blk_F", // SPAR-16 GL 5.56 mm (Black) + "arifle_SPAR_01_GL_khk_F", // SPAR-16 GL 5.56 mm (Khaki) + "arifle_SPAR_02_blk_F", // SPAR-16S 5.56 mm (Black) + "arifle_SPAR_02_khk_F", // SPAR-16S 5.56 mm (Khaki) + "arifle_SPAR_03_blk_F", // SPAR-17 7.62 mm (Black) + "arifle_SPAR_03_khk_F", // SPAR-17 7.62 mm (Khaki) + + // Handgun + "hgun_P07_khk_F", // P07 9 mm (Khaki) + "hgun_Pistol_heavy_01_F", // 4-five .45 ACP + + // Launcher + "launch_NLAW_F", // PCML + "launch_B_Titan_tna_F", // Titan MPRL (Tropic) + "launch_B_Titan_short_tna_F", // Titan MPRL Compact (Tropic) + "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "B_UavTerminal", // UAV Terminal [NATO] + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "NVGoggles_tna_F", // NV Goggles (Tropic) + "NVGogglesB_grn_F", // ENVG-II (Green) + + // Uniforms + "U_B_T_Soldier_F", // Combat Fatigues (Tropic) + "U_B_T_Soldier_AR_F", // Combat Fatigues (Tropic, Tee) + "U_B_T_Soldier_SL_F", // Recon Fatigues (Tropic) + "U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO] + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "U_B_T_Sniper_F", // Ghillie Suit (Tropic) [NATO] + "U_B_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [NATO] + "U_B_CTRG_Soldier_F", // CTRG Stealth Uniform + "U_B_CTRG_Soldier_2_F", // CTRG Stealth Uniform (Tee) + "U_B_CTRG_Soldier_3_F", // CTRG Stealth Uniform (Rolled-up) + "U_B_CBRN_Suit_01_Tropic_F", // CBRN Suit (Tropic) [NATO] + + // Headgear + "H_Watchcap_camo", // Beanie (Green) + "H_Beret_02", // Beret [NATO] + "H_Beret_Colonel", // Beret [NATO] (Colonel) + "H_HelmetCrew_B", // Crew Helmet [NATO] + "H_PilotHelmetFighter_B", // Pilot Helmet [NATO] + "H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO] + "H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO] + "H_Booniehat_tna_F", // Booniehat (Tropic) + "H_HelmetB_tna_F", // Combat Helmet (Tropic) + "H_HelmetB_Enh_tna_F", // Enhanced Combat Helmet (Tropic) + "H_HelmetB_Light_tna_F", // Light Combat Helmet (Tropic) + "H_MilCap_tna_F", // Military Cap (Tropic) + "H_HelmetB_TI_tna_F", // Stealth Combat Helmet + + // Facegear + "G_Aviator", // Aviator Glasses + "G_B_Diving", // Diving Goggles [NATO] + "G_Lowprofile", // Low Profile Goggles + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_Spectacles", // Spectacle Glasses + "G_Spectacles_Tinted", // Tinted Spectacles + "G_AirPurifyingRespirator_01_F", // APR [NATO] + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_Tactical_Clear", // Tactical Glasses + "G_Tactical_Black", // Tactical Shades + "G_Combat_Goggles_tna_F", // Combat Goggles (Green) + "G_Balaclava_TI_tna_F", // Stealth Balaclava (Green) + "G_Balaclava_TI_G_tna_F", // Stealth Balaclava (Green, Goggles) + + // Vests + "V_PlateCarrierGL_tna_F", // Carrier GL Rig (Tropic) + "V_PlateCarrier1_tna_F", // Carrier Lite (Tropic) + "V_PlateCarrier2_tna_F", // Carrier Rig (Tropic) + "V_PlateCarrierSpec_tna_F", // Carrier Special Rig (Tropic) + "V_PlateCarrierIAGL_oli", // GA Carrier GL Rig (Olive) + "V_PlateCarrier1_rgr_noflag_F", // Carrier Lite (Green, No Flag) + "V_PlateCarrier2_rgr_noflag_F", // Carrier Rig (Green, No Flag) + "V_Chestrig_rgr", // Chest Rig (Green) + "V_RebreatherB", // Rebreather [NATO] + "V_TacVest_blk", // Tactical Vest (Black) + "V_TacVest_oli", // Tactical Vest (Olive) + "V_BandollierB_rgr", // Slash Bandolier (Green) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_smg_01", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "muzzle_snds_l", // Sound Suppressor (9 mm) + "optic_mrd", // MRD + "optic_yorris", // Yorris J2 + "optic_DMS", // DMS + "optic_Aco", // ACO (Red) + "optic_Holosight_khk_F", // Mk17 Holosight (Khaki) + "optic_Holosight_smg_khk_F", // Mk17 Holosight SMG (Khaki) + "optic_Hamr_khk_F", // RCO (Khaki) + "optic_SOS_khk_F", // MOS (Khaki) + "optic_LRPS_tna_F", // LRPS (Tropic) + "optic_AMS", // AMS (Black) + "optic_AMS_khk", // AMS (Khaki) + "optic_ERCO_blk_F", // ERCO (Black) + "optic_ERCO_khk_F", // ERCO (Khaki) + "bipod_01_f_blk", // Bipod (Black) [NATO] + "bipod_01_F_khk", // Bipod (Khaki) [NATO] + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_H_khk_F", // Sound Suppressor (6.5 mm, Khaki) + "muzzle_snds_338_black", // Sound Suppressor (.338, Black) + "muzzle_snds_338_green", // Sound Suppressor (.338, Green) + "muzzle_snds_b", // Sound Suppressor (7.62 mm) + "muzzle_snds_b_khk_f", // Sound Suppressor (7.62 mm, Khaki) + "muzzle_snds_m", // Sound Suppressor (5.56 mm) + "muzzle_snds_m_khk_f", // Sound Suppressor (5.56 mm, Khaki) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_AssaultPack_blk", // Assault Pack (Black) + "B_AssaultPack_rgr", // Assault Pack (Green) + "B_AssaultPack_tna_F", // Assault Pack (Tropic) + "B_Carryall_oli", // Carryall Backpack (Olive) + "B_Kitbag_rgr", // Kitbag (Green) + "B_Parachute", // Steerable Parachute + "B_TacticalPack_oli", // Tactical Backpack (Olive) + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "B_Bergen_tna_F", // Bergen Backpack (Tropic) + "B_RadioBag_01_tropic_F", // Radio Pack (Tropic) [NATO] + "B_CombinationUnitRespirator_01_F", // Combined Unit Respirator + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_wdl.sqf b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_wdl.sqf new file mode 100644 index 0000000..6bd09e5 --- /dev/null +++ b/kp_liberation.brf_sumava/arsenal_presets/vanilla_nato_wdl.sqf @@ -0,0 +1,265 @@ +/* + NATO Woodland Arsenal Preset + Last Update: 2020-08-12 + Needed: + - None + Optional: + - ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057 + - ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892 + - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 +*/ + +GRLIB_arsenal_weapons = [ + // Primary + "arifle_MX_Black_F", // MX 6.5 mm (Black) + "arifle_MX_GL_Black_F", // MX 3GL 6.5 mm (Black) + "arifle_MX_SW_Black_F", // MX SW 6.5 mm (Black) + "arifle_MXC_Black_F", // MXC 6.5 mm (Black) + "arifle_MXM_Black_F", // MXM 6.5 mm (Black) + "arifle_SDAR_F", // SDAR 5.56 mm + "srifle_LRR_F", // M320 LRR .408 + "SMG_01_F", // Vermin SMG .45 ACP + "MMG_02_black_F", // SPMG .338 (Black) + "srifle_DMR_02_F", // MAR-10 .338 (Black) + "srifle_DMR_03_F", // Mk-I EMR 7.62 mm (Black) + + // Handgun + "hgun_P07_khk_F", // P07 9 mm (Khaki) + "hgun_Pistol_heavy_01_F", // 4-five .45 ACP + + // Launcher + "launch_NLAW_F", // PCML + "launch_B_Titan_tna_F", // Titan MPRL (Tropic) + "launch_B_Titan_short_tna_F", // Titan MPRL Compact (Tropic) + "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) +]; + +GRLIB_arsenal_magazines = [ + +]; + +GRLIB_arsenal_items = [ + // Vanilla Standard Items + "Binocular", // Binoculars + "DroneDetector", // Drone Detector + "FirstAidKit", // First Aid Kit + "ItemCompass", // Compass + "ItemGPS", // GPS + "ItemMap", // Map + "ItemRadio", // Radio + "ItemWatch", // Watch + "Medikit", // Medikit + "MineDetector", // Mine Detector + "Rangefinder", // Rangefinder + "ToolKit", // Toolkit + + // Faction Specific Items + "B_UavTerminal", // UAV Terminal [NATO] + "Laserdesignator_01_khk_F", // Laser Designator (Khaki) + "NVGoggles_INDEP", // NV Goggles (Green) + + // Uniforms + "U_B_CombatUniform_mcam_wdl_f", // Combat Fatigues (Woodland) + "U_B_CombatUniform_tshirt_mcam_wdL_f", // Combat Fatigues (Woodland, Tee) + "U_B_CombatUniform_vest_mcam_wdl_f", // Recon Fatigues (Woodland) + "U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO] + "U_B_PilotCoveralls", // Pilot Coveralls [NATO] + "U_B_Wetsuit", // Wetsuit [NATO] + "U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO] + "U_B_CBRN_Suit_01_Wdl_F", // CBRN Suit (Woodland) [NATO] + + // Headgear + "H_Watchcap_camo", // Beanie (Green) + "H_Beret_02", // Beret [NATO] + "H_Beret_Colonel", // Beret [NATO] (Colonel) + "H_HelmetCrew_B", // Crew Helmet [NATO] + "H_PilotHelmetFighter_B", // Pilot Helmet [NATO] + "H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO] + "H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO] + "H_Booniehat_wdl", // Booniehat (Woodland) + "H_HelmetB_plain_wdl", // Combat Helmet (Woodland) + "H_HelmetSpecB_wdl", // Enhanced Combat Helmet (Woodland) + "H_HelmetB_light_wdl", // Light Combat Helmet (Woodland) + "H_MilCap_wdl", // Military Cap (Woodland) + + // Facegear + "G_Aviator", // Aviator Glasses + "G_B_Diving", // Diving Goggles [NATO] + "G_Lowprofile", // Low Profile Goggles + "G_Shades_Black", // Shades (Black) + "G_Shades_Blue", // Shades (Blue) + "G_Shades_Green", // Shades (Green) + "G_Shades_Red", // Shades (Red) + "G_Spectacles", // Spectacle Glasses + "G_Spectacles_Tinted", // Tinted Spectacles + "G_AirPurifyingRespirator_01_F", // APR [NATO] + "G_Squares_Tinted", // Square Shades + "G_Squares", // Square Spectacles + "G_Tactical_Clear", // Tactical Glasses + "G_Tactical_Black", // Tactical Shades + + // Vests + "V_PlateCarrierGL_wdl", // Carrier GL Rig (Woodland) + "V_PlateCarrier1_wdl", // Carrier Lite (Woodland) + "V_PlateCarrier2_wdl", // Carrier Rig (Woodland) + "V_PlateCarrierSpec_wdl", // Carrier Special Rig (Woodland) + "V_Chestrig_rgr", // Chest Rig (Green) + "V_RebreatherB", // Rebreather [NATO] + "V_TacVest_blk", // Tactical Vest (Black) + "V_BandollierB_rgr", // Slash Bandolier (Green) + "V_Safety_orange_F", // Safety Vest (Orange) + "V_Safety_yellow_F", // Safety Vest (Yellow) + "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) + + // Items + "acc_pointer_IR", // IR Laser Pointer + "acc_flashlight", // Flashlight + "acc_flashlight_smg_01", // Flashlight + "acc_flashlight_pistol", // Pistol Flashlight + "muzzle_snds_acp", // Sound Suppressor (.45 ACP) + "muzzle_snds_l", // Sound Suppressor (9 mm) + "optic_mrd", // MRD + "optic_yorris", // Yorris J2 + "optic_DMS", // DMS + "optic_Aco", // ACO (Red) + "optic_holosight_blk_f", // Mk17 Holosight (Black) + "optic_holosight_smg_blk_f", // Mk17 Holosight SMG (Black) + "optic_Hamr", // RCO + "optic_SOS", // MOS + "optic_lrps", // LRPS + "optic_AMS", // AMS (Black) + "bipod_01_f_blk", // Bipod (Black) [NATO] + "muzzle_snds_H", // Sound Suppressor (6.5 mm) + "muzzle_snds_338_black", // Sound Suppressor (.338, Black) + "muzzle_snds_b", // Sound Suppressor (7.62 mm) + "optic_nvs", // NVS + "optic_tws", // TWS + "optic_tws_mg", // TWS MG + + // ACE Items + "ACE_acc_pointer_green", // Laser Pointer (green) + "ACE_adenosine", // Adenosine autoinjector + "ACE_Altimeter", // Altimeter Watch + "ACE_artilleryTable", // Artillery Rangetable + "ACE_ATragMX", // ATragMX + "ACE_Banana", // Banana + "ACE_bloodIV_250", // Blood IV (250 ml) + "ACE_bloodIV_500", // Blood IV (500 ml) + "ACE_bloodIV", // Blood IV (1000 ml) + "ACE_bodyBag", // Bodybag + "ACE_CableTie", // Cable Tie + "ACE_Cellphone", // Cellphone + "ACE_Chemlight_Shield", // Chemlight Shield (Empty) + "ACE_Clacker", // M57 Firing Device + "ACE_DAGR", // DAGR + "ACE_DeadManSwitch", // Dead Man's Switch + "ACE_DefusalKit", // Defusal Kit + "ace_dragon_sight", // SU-36/P Daysight + "ACE_EarPlugs", // Earplugs + "ACE_elasticBandage", // Bandage (Elastic) + "ACE_EntrenchingTool", // Entrenching Tool + "ACE_epinephrine", // Epinephrine autoinjector + "ACE_fieldDressing", // Bandage (Basic) + "ACE_Flashlight_KSF1", // KSF-1 + "ACE_Flashlight_Maglite_ML300L", // Maglite ML300L + "ACE_Flashlight_MX991", // Fulton MX-991 + "ACE_Flashlight_XL50", // Maglite XL50 + "ACE_HuntIR_monitor", // HuntIR monitor + "ACE_IR_Strobe_Item", // IR Strobe + "ACE_Kestrel4500", // Kestrel 4500NV + "ACE_M26_Clacker", // M152 Firing Device + "ACE_MapTools", // Map Tools + "ACE_microDAGR", // MicroDAGR GPS + "ACE_morphine", // Morphine autoinjector + "ACE_muzzle_mzls_338", // Flash Suppressor (.338) + "ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm) + "ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm) + "ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm) + "ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP) + "ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm) + "ACE_MX2A", // MX-2A + "ACE_NVG_Gen1", // NV Goggles (Gen1) + "ACE_NVG_Gen2", // NV Goggles (Gen2) + "ACE_NVG_Gen4", // NV Goggles (Gen4) + "ACE_NVG_Wide", // NV Goggles (Wide) + "ACE_packingBandage", // Bandage (Packing) + "ACE_personalAidKit", // Personal Aid Kit + "ACE_plasmaIV_250", // Plasma IV (250 ml) + "ACE_plasmaIV_500", // Plasma IV (500 ml) + "ACE_plasmaIV", // Plasma IV (1000 ml) + "ACE_quikclot", // Bandage (QuickClot) + "ACE_RangeCard", // Range Card + "ACE_RangeTable_82mm", // 82 mm Rangetable + "ACE_rope12", // Rope 12.2 meters + "ACE_rope15", // Rope 15.2 meters + "ACE_rope18", // Rope 18.3 meters + "ACE_rope27", // Rope 27.4 meters + "ACE_rope36", // Rope 36.6 meters + "ACE_salineIV_250", // Saline IV (250 ml) + "ACE_salineIV_500", // Saline IV (500 ml) + "ACE_salineIV", // Saline IV (1000 ml) + "ACE_Sandbag_empty", // Sandbag (empty) + "ACE_splint", // Splint + "ACE_SpottingScope", // Spotting Scope + "ACE_SpraypaintBlack", // Spray Paint (Black) + "ACE_SpraypaintBlue", // Spray Paint (Blue) + "ACE_SpraypaintGreen", // Spray Paint (Green) + "ACE_SpraypaintRed", // Spray Paint (Red) + "ACE_surgicalKit", // Surgical Kit + "ACE_tourniquet", // Tourniquet (CAT) + "ACE_Tripod", // SSWT Kit + "ACE_UAVBattery", // UAV Battery + "ACE_Vector", // Vector 21 Nite + "ACE_VectorDay", // Vector 21 + "ACE_VMH3", // VMH3 + "ACE_VMM3", // VMM3 + "ACE_wirecutter", // Wirecutter + "ACE_Yardage450", // Yardage 450 + + // ACRE Items + "ACRE_PRC117F", // AN/PRC-117F + "ACRE_PRC148", // AN/PRC-148 + "ACRE_PRC152", // AN/PRC-152 + "ACRE_PRC343", // AN/PRC-343 + "ACRE_PRC77", // AN/PRC-77 + "ACRE_SEM52SL", // SEM 52 SL + "ACRE_SEM70", // SEM 70 + "ACRE_VHF30108", // VHF30108 GSM + "ACRE_VHF30108MAST", // VHF30108 Mast + "ACRE_VHF30108SPIKE", // VHF30108 GS + + //TFAR Items + "tf_anprc148jem", // AN/PRC-148 JEM + "tf_anprc152", // AN/PRC-152 + "tf_anprc154_1", // AN/PRC-154 + "tf_fadak", // FADAK + "tf_microdagr", // MicroDAGR Radio Programmer + "tf_pnr1000a_1", // PNR-1000A + "tf_rf7800str" // PF-7800S-TR +]; + +GRLIB_arsenal_backpacks = [ + "B_AssaultPack_blk", // Assault Pack (Black) + "B_AssaultPack_rgr", // Assault Pack (Green) + "B_AssaultPack_wdl_F", // Assault Pack (Woodland) + "B_Carryall_wdl_F", // Carryall Backpack (Woodland) + "B_Kitbag_rgr", // Kitbag (Green) + "B_Parachute", // Steerable Parachute + "B_LegStrapBag_black_F", // Leg Strap Bag (Black) + "B_LegStrapBag_olive_F", // Leg Strap Bag (Olive) + "B_RadioBag_01_wdl_F", // Radio Pack (Woodland) [NATO] + "B_CombinationUnitRespirator_01_F", // Combined Unit Respirator + + // ACE Backpacks + "ace_gunbag_Tan", // Gunbag (Tan) + "ace_gunbag", // Gunbag + "ACE_NonSteerableParachute", // Non-Steerable Parachute + "ACE_TacticalLadder_Pack", // Telescopic Ladder + + // TFAR Backpacks + "tf_anprc155_coyote", // AN/PRC 155 Coyote + "tf_mr3000", // MR3000 + "tf_rt1523g_black", // RT-1523G (ASIP) Black + "tf_rt1523g_green", // RT-1523G (ASIP) Green + "tf_rt1523g_sage" // RT-1523G (ASIP) Sage +]; diff --git a/kp_liberation.brf_sumava/description.ext b/kp_liberation.brf_sumava/description.ext new file mode 100644 index 0000000..ac8b44a --- /dev/null +++ b/kp_liberation.brf_sumava/description.ext @@ -0,0 +1,250 @@ +/* + File: description.ext + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-16 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Information about the author, mission name, respawn and more very general settings. + This overrides corresponding settings which are made in the sqm via eden editor. + + Reference from where most descriptions are from: + https://community.bistudio.com/wiki/Description.ext +*/ + +/* + ----- General ----- +*/ + +// Gametype and min/max players +class Header { + gameType = "CTI"; + minPlayers = 1; + maxPlayers = 34; +}; + +// Name of Mission author(s) and contributors. Obviously you can only add and not (!) remove someone. +author = "[GREUH] Zbug & McKeewa, KP Liberation Dev Team"; + + +/* + ----- Mission Selection Screen ----- +*/ + +// Mission name displayed in the mission selection menu. +briefingName = $STR_MISSION_TITLE; + +// Path to image which will be displayed when the mission is highlighted on the mission selection screen. +// Image should be .paa format and in 2:1 aspect ratio – ideally 1024x512 (Arma 3). +overviewPicture = "res\lib.paa"; + +// Text to be displayed below the overviewPicture on the mission selection screen +overviewText = "www.killahpotatoes.de"; + + +/* + ----- Mission Loading Screen ----- +*/ + +// String (usually mission name) shown during mission loading. +// The string is shown in a slightly larger font above the loadScreen. +onLoadName = $STR_MISSION_TITLE; + +// You can define a picture to be shown while the mission is loaded. +// The path is relative to the mission folder. +loadScreen = "res\lib.paa"; + +// Displays a message while the mission is loading below the loadScreen picture. +onLoadMission = "www.killahpotatoes.de"; + + +/* + ----- Respawn ----- +*/ + +// Enable or disable the respawn button in the menu for INSTANT and BASE respawn types. +respawnButton = 1; + +// Templates are pre-defined scripts called when player dies and respawns. They are defined in an array and can be combined together. +// List of pre-defined variants: https://community.bistudio.com/wiki/Arma_3_Respawn#Official_Templates +respawnTemplates[] = {}; + +// Additionally, you can define side specific templates. When a side has no unique templates, it will use general respawnTemplates instead. +// respawnTemplatesWest[] = {"MenuInventory"}; +// respawnTemplatesEast[] = {"Counter"}; +// respawnTemplatesGuer[] = {"Tickets"}; +// respawnTemplatesCiv[] = {"Spectator"}; +// respawnTemplatesVirtual[] = {}; + +// Type of Respawn (Default 0 in SP, 1 in MP) +// 0 "NONE" No respawn +// 1 "BIRD" Respawn as a seagull +// 2 "INSTANT" Respawn just where you died. +// 3 "BASE" Respawn in base. A respawn marker is needed. +// 4 "GROUP" Respawn in your group. If there is no remaining AI, you will become a seagull. +// 5 "SIDE" Introduced with Armed Assault version 1.08 Respawn into an AI unit on your side (if there's no AI left, you'll become a seagull). +respawn = 3; + +// Set respawn delay in seconds. +respawndelay = 5; + +// Show the scoreboard and respawn countdown timer for a player if he is killed with respawn type BASE. +respawnDialog = 0; + +// Respawn player when he joins the game. Available only for INSTANT and BASE respawn types. (Default: 0) +// -1 - Dont respawn on start. Don't run respawn script on start. +// 0 - Dont respawn on start. Run respawn script on start. +// 1 - Respawn on start. Run respawn script on start. +respawnOnStart = 0; + + +/* + ----- Corpse & Wreck Management ----- +*/ + +// Sets the mode for corpse removal manager. +// 0 = None - None of the units are managed by the manager +// 1 = All - All units are managed by the manager +// 2 = None_But_Respawned - Only units that can respawn are managed by the manager +// 3 = All_But_Respawned - All units are managed by the manager with exception of respawned (opposite to mode 2) +corpseManagerMode = 1; + +// Corpse limit before which (<=) corpseRemovalMaxTime applies and after which (>) corpseRemovalMinTime applies. +corpseLimit = 50; + +// Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is reached. +corpseRemovalMinTime = 600; + +// Maximum time a corpse can remain on the ground if total number of corpses is equal or under corpseLimit. +corpseRemovalMaxTime = 3600; + +// Sets the mode for wreck removal manager. +// 0 = None - None of the vehicles are managed by the manager +// 1 = All - All vehicles are managed by the manager +// 2 = None_But_Respawned - Only vehicles that can respawn are managed by the manager +// 3 = All_But_Respawned - All vehicles are managed by the manager with exception of respawned (opposite to mode 2) +wreckManagerMode = 1; + +// Vehicle wreck limit before which (<=) wreckRemovalMaxTime applies and after which (>) wreckRemovalMinTime applies. +wreckLimit = 20; + +// Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached. +wreckRemovalMinTime = 1200; + +// Maximum time a wreck can remain on the ground if total number of wrecks is equal or under wreckLimit. +wreckRemovalMaxTime = 7200; + +// The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector. +minPlayerDistance = 1000; + + +/* + ----- Mission Settings ----- +*/ + +// Allows functions to log to the RPT file. +allowFunctionsLog = 1; + +// As a security measure, functions are by default protected against rewriting during mission. +// This restriction does not apply in missions previewed from the editor. +allowFunctionsRecompile = "[0, 1] select (is3DENMultiplayer || is3DEN)"; + +// Disable specific channels for voice and text communication. +// MOTD and admin say have exception and will show in global. +// 0 Global, 1 Side, 2 Command, 3 Group, 4 Vehicle, 5 Direct, 6 System +disableChannels[] = {0}; + +// Multiplayer setting that removes all playable units which do not have a human player. +// When AI is disabled, a player logging out will not have AI take control of his character. +disabledAI = 1; + +// Disables randomization on certain objects, object types or object kinds in the mission. +disableRandomization[] = {}; + +// Allows access to the Debug Console outside of the editor during normal gameplay. +// 0 - Default behavior, available only in editor +// 1 - Available in SP and for hosts / logged in admins +// 2 - Available for everyone +enableDebugConsole = 1; + +// Force enable or disable RotorLib flight model. +// 0 - based on player's options +// 1 - enabled (advanced mode) +// 2 - disabled (default flight mode) +forceRotorLibSimulation = 0; + +// By default a new player is not auto assigned a free playable slot in the mission lobby in Multiplayer. +// Disable this setting to make him auto assigned to the side with least players. +joinUnassigned = 1; + +// When enabled, joining player will join the mission bypassing role selection screen. +// The joinUnassigned param will be set to 1 automatically, so that player receives 1st available role from mission template. +// When leaving such mission, player will go straight back to server browser. +skipLobby = 0; + +// Defines if the map is shown after the mission starts. +showMap = 1; + +// Enable or disable availability of createVehicleLocal +unsafeCVL = 1; + + +/* + ----- Task Settings ----- +*/ + +// Use new 2D markers on the map. +taskManagement_markers2D = 1; + +// Use new 3D markers outside of the map by holding default J key. +taskManagement_markers3D = 1; + +// Propagate shared tasks to subordinates. +taskManagement_propagate = 1; + +// 3D marker maximum draw distance in meters. +// Within this range, unassigned tasks are drawn on screen. +taskManagement_drawDist = 5000; + + +/* + ----- Config Includes ----- +*/ + +class CfgDebriefing { + #include "KPLIB_debriefs.hpp" +}; + +class CfgDiscordRichPresence { + applicationID="698133766975258664"; + defaultDetails=""; + defaultState="Preparing..."; + defaultLargeImageKey="liberation_logo"; + defaultLargeImageText="KP Liberation"; + defaultSmallImageKey="arma3_logo"; + defaultSmallImageText="Arma 3"; + useTimeElapsed=1; +}; + +class CfgFunctions { + #include "CfgFunctions.hpp" + #include "KP\KPPLM\KPPLM_functions.hpp" +}; + +class CfgRespawnTemplates { + +}; + +class CfgTaskDescriptions { + #include "scripts\client\tutorial\CfgTaskDescriptions.hpp" +}; + +#include "ui\liberation_interface.hpp" +#include "ui\liberation_notifications.hpp" +#include "ui\mission_params.hpp" + +#include "GREUH\UI\GREUH_interface.hpp" +#include "KP\KPGUI\KPGUI_defines.hpp" +#include "KP\KPPLM\ui\KPPLM_dialog.hpp" + diff --git a/kp_liberation.brf_sumava/functions/curator/fn_initCuratorHandlers.sqf b/kp_liberation.brf_sumava/functions/curator/fn_initCuratorHandlers.sqf new file mode 100644 index 0000000..db41bce --- /dev/null +++ b/kp_liberation.brf_sumava/functions/curator/fn_initCuratorHandlers.sqf @@ -0,0 +1,115 @@ +/* + File: fn_initCuratorHandlers.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-08-07 + Last Update: 2020-08-30 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Initialize curator handlers. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +#define ZEUSVAR(var) (format ["KPLIB_zeus_%1", var]) + +if (isServer) then { + + // delete old Liberation mission placed Zeus module + deleteVehicle zm1; + + // add curator assign EventHandler + [true, "KPLIB_createZeus", { + params [ + ["_player", objNull, [objNull]], + ["_limited", false, [true]] + ]; + + if (isNull _player) exitWith {}; + private _uid = getPlayerUID _player; + + // check if there's already a managed zeus module for this player, if so we can just reassign + private _oldManagedZeus = missionNamespace getVariable [ZEUSVAR(_uid), objNull]; + if (!isNull _oldManagedZeus && {_limited isEqualTo (_oldManagedZeus getVariable ["KPLIB_limited", -1])}) exitWith { + _player assignCurator _oldManagedZeus; + [true, "KPLIB_zeusAssigned", [_oldManagedZeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player]; + }; + + // remove currently assigned curator + private _oldZeus = getAssignedCuratorLogic _player; + unassignCurator _oldZeus; + deleteVehicle _oldZeus; + + private _group = createGroup [sideLogic, true]; + private _zeus = _group createUnit ["ModuleCurator_F", [-7580, -7580, 0], [], 0, "NONE"]; + missionNamespace setVariable [ZEUSVAR(_uid), _zeus]; + + if (_limited) then { + _zeus setVariable ["Addons", 0, true]; + _zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false]; + + _zeus setCuratorCoef ["Place", -1e8]; + _zeus setCuratorCoef ["Edit", -1e8]; + _zeus setCuratorCoef ["Destroy", -1e8]; + _zeus setCuratorCoef ["Delete", 0]; + } else { + _zeus setVariable ["Addons", 3, true]; + _zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false]; + + _zeus setCuratorCoef ["Place", 0]; + _zeus setCuratorCoef ["Delete", 0]; + + removeAllCuratorAddons _zeus; + }; + + _zeus setVariable ["KPLIB_limited", _limited]; + + _player assignCurator _zeus; + + [true, "KPLIB_zeusAssigned", [_zeus, _limited]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player]; + }] call BIS_fnc_addScriptedEventHandler; + + [true, "KPLIB_activateZeusAddons", { + params [ + ["_zeus", objNull, [objNull]], + ["_addons", [], [[]]] + ]; + + _zeus addCuratorAddons _addons; + }] call BIS_fnc_addScriptedEventHandler; + + // remove the assigned curator on player disconnect + addMissionEventHandler ["HandleDisconnect", { + params ["", "", "_uid"]; + private _zeus = missionNamespace getVariable ZEUSVAR(_uid); + if (!isNil "_zeus") then { + deleteVehicle _zeus; + missionNamespace setVariable [ZEUSVAR(_uid), nil]; + }; + }]; +}; + +if (hasInterface) then { + [true, "KPLIB_zeusAssigned", { + params [ + ["_zeus", objNull, [objNull]], + ["_limited", false, [true]] + ]; + + if !(_zeus getVariable ["KPLIB_drawCuratorLocations", false]) then { + _zeus setVariable ["KPLIB_drawCuratorLocations", true]; + [_zeus] call BIS_fnc_drawCuratorLocations; + }; + + if (!_limited) then { + private _allAddons = ("true" configClasses (configFile >> "CfgPatches")) apply {configName _x}; + [true, "KPLIB_activateZeusAddons", [_zeus, _allAddons]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2]; + }; + }] call BIS_fnc_addScriptedEventHandler; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/curator/fn_requestZeus.sqf b/kp_liberation.brf_sumava/functions/curator/fn_requestZeus.sqf new file mode 100644 index 0000000..e25c969 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/curator/fn_requestZeus.sqf @@ -0,0 +1,24 @@ +/* + File: fn_requestZeus.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-08-07 + Last Update: 2020-08-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Request Curator functionality from server. + + Parameter(s): + _player - Player requesting Curator functionality [OBJECT, defaults to player] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_player", player, [objNull]] +]; + +[true, "KPLIB_createZeus", [_player, KP_liberation_limited_zeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2]; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_addActionsFob.sqf b/kp_liberation.brf_sumava/functions/fn_addActionsFob.sqf new file mode 100644 index 0000000..0520709 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_addActionsFob.sqf @@ -0,0 +1,56 @@ +/* + File: fn_addActionsFob.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-13 + Last Update: 2020-04-13 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds build action to FOB box and repackage action to FOB building. + + Parameter(s): + _obj - FOB box/truck/building to add the deploy/repack action to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_obj", objNull, [objNull]] +]; + +if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false}; + +if (isNil "FOB_build_in_progress") then {FOB_build_in_progress = false;}; + +if ((typeOf _obj) isEqualTo FOB_typename) exitWith { + _obj addAction [ + ["", localize "STR_FOB_REPACKAGE", " "] joinString "", + "scripts\client\actions\do_repackage_fob.sqf", + nil, + -754, + false, + true, + "", + "isNull (objectParent _this) && {player getVariable ['KPLIB_hasDirectAccess', false]}", + 20 + ]; + true +}; + +if ((typeOf _obj) in [FOB_box_typename, FOB_truck_typename]) exitWith { + _obj addAction [ + ["", localize "STR_FOB_ACTION", " "] joinString "", + "scripts\client\build\do_build_fob.sqf", + nil, + -752, + false, + true, + "", + "isNull (objectParent _this) && {!FOB_build_in_progress} && {player getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission}} && {player getVariable ['KPLIB_isAwayFromStart', false]} && {!(surfaceIsWater getPos player)}", + 10 + ]; + true +}; + +false diff --git a/kp_liberation.brf_sumava/functions/fn_addActionsPlayer.sqf b/kp_liberation.brf_sumava/functions/fn_addActionsPlayer.sqf new file mode 100644 index 0000000..f8ff5df --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_addActionsPlayer.sqf @@ -0,0 +1,373 @@ +/* + File: fn_addActionsPlayer.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-13 + Last Update: 2020-08-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds Liberation player actions to the given player. + + Parameter(s): + _player - Player to add the actions to [OBJECT, defaults to player] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_player", player, [objNull]] +]; + +if !(isPlayer _player) exitWith {["No player given"] call BIS_fnc_error; false}; + +if (isNil "KP_liberation_resources_global") then {KP_liberation_resources_global = false;}; + +// Tutorial +_player addAction [ + ["", localize "STR_TUTO_ACTION", ""] joinString "", + {howtoplay = 1;}, + nil, + -700, + false, + true, + "", + " + alive _originalTarget + && {_originalTarget getVariable ['KPLIB_isNearStart', false]} + " +]; + +// HALO +_player addAction [ + ["", localize "STR_HALO_ACTION", ""] joinString "", + "scripts\client\spawn\do_halo.sqf", + nil, + -710, + false, + true, + "", + " + GRLIB_halo_param > 0 + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 + || {_originalTarget getVariable ['KPLIB_isNearStart', false]} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Redeploy +_player addAction [ + ["", localize "STR_DEPLOY_ACTION", ""] joinString "", + {GRLIB_force_redeploy = true;}, + nil, + -720, + false, + true, + "", + " + isNull (objectParent _originalTarget) + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 + || {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]} + || {_originalTarget getVariable ['KPLIB_isNearStart', false]} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Squad management +_player addAction [ + ["", localize "STR_SQUAD_MANAGEMENT_ACTION", ""] joinString "", + "scripts\client\ui\squad_management.sqf", + nil, + -730, + false, + true, + "", + " + isNull (objectParent _originalTarget) + && {alive _originalTarget} + && {!((units group _originalTarget) isEqualTo [_originalTarget])} + && {(leader group _originalTarget) isEqualTo _originalTarget} + && {build_confirmed isEqualTo 0} + " +]; + +// Arsenal +_player addAction [ + ["", localize "STR_ARSENAL_ACTION", ""] joinString "", + "scripts\client\actions\open_arsenal.sqf", + nil, + -740, + false, + true, + "", + " + isNull (objectParent _originalTarget) + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 + || {_originalTarget getVariable ['KPLIB_isNearArsenal', false]} + || {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]} + || {_originalTarget getVariable ['KPLIB_isNearStart', false]} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Build +_player addAction [ + ["", localize "STR_BUILD_ACTION", ""] joinString "", + "scripts\client\build\open_build_menu.sqf", + nil, + -750, + false, + true, + "", + " + isNull (objectParent _originalTarget) + && {alive _originalTarget} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[3] call KPLIB_fnc_hasPermission} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Secondary missions +_player addAction [ + ["", localize "STR_SECONDARY_OBJECTIVES", ""] joinString "", + "scripts\client\ui\secondary_ui.sqf", + nil, + -760, + false, + true, + "", + " + isNull (objectParent _originalTarget) + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 + || {_originalTarget getVariable ['KPLIB_isNearStart', false]} + } + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[5] call KPLIB_fnc_hasPermission} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Build sector storage +_player addAction [ + ["", localize "STR_SECSTORAGEBUILD_ACTION", ""] joinString "", + "scripts\client\build\do_sector_build.sqf", + [KP_liberation_small_storage_building], + -770, + false, + true, + "", + " + !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[3] call KPLIB_fnc_hasPermission} + } + && {(_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo []} + && {build_confirmed isEqualTo 0} + " +]; + +// Build supply facility +_player addAction [ + ["", localize "STR_SECSUPPLYBUILD_ACTION", ""] joinString "", + "scripts\client\build\do_sector_build.sqf", + ["supply"], + -780, + false, + true, + "", + " + !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[3] call KPLIB_fnc_hasPermission} + } + && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} + && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 4)} + && {build_confirmed isEqualTo 0} + " +]; + +// Build ammo facility +_player addAction [ + ["", localize "STR_SECAMMOBUILD_ACTION", ""] joinString "", + "scripts\client\build\do_sector_build.sqf", + ["ammo"], + -790, + false, + true, + "", + " + !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[3] call KPLIB_fnc_hasPermission} + } + && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} + && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 5)} + && {build_confirmed isEqualTo 0} + " +]; + +// Build fuel facility +_player addAction [ + ["", localize "STR_SECFUELBUILD_ACTION", ""] joinString "", + "scripts\client\build\do_sector_build.sqf", + ["fuel"], + -800, + false, + true, + "", + " + !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && { + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + || {[3] call KPLIB_fnc_hasPermission} + } + && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} + && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 6)} + && {build_confirmed isEqualTo 0} + " +]; + +// Switch global/local resources +_player addAction [ + ["", localize "STR_RESOURCE_GLOBAL_ACTION", ""] joinString "", + {KP_liberation_resources_global = !KP_liberation_resources_global}, + nil, + -810, + false, + true, + "", + " + alive _originalTarget + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {build_confirmed isEqualTo 0} + " +]; + +// Production +_player addAction [ + ["", localize "STR_PRODUCTION_ACTION", ""] joinString "", + "scripts\client\commander\open_production.sqf", + nil, + -820, + false, + true, + "", + " + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && {!(KP_liberation_production isEqualTo [])} + && { + _originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8) + || {!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])} + } + && {build_confirmed isEqualTo 0} + " +]; + +// Logistic +_player addAction [ + ["", localize "STR_LOGISTIC_ACTION", ""] joinString "", + "scripts\client\commander\open_logistic.sqf", + nil, + -830, + false, + true, + "", + " + KP_liberation_ailogistics + && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {!( + GRLIB_all_fobs isEqualTo [] + || KP_liberation_production isEqualTo [] + )} + && {build_confirmed isEqualTo 0} + " +]; + +// Permissions +_player addAction [ + ["", localize "STR_COMMANDER_ACTION", ""] joinString "", + "scripts\client\commander\open_permissions.sqf", + nil, + -840, + false, + true, + "", + " + GRLIB_permissions_param + && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} + && {alive _originalTarget} + && {build_confirmed isEqualTo 0} + " +]; + +// Reassign Zeus +if (player == ([] call KPLIB_fnc_getCommander)) then { + _player addAction [ + ["", localize "STR_REASSIGN_ZEUS", ""] joinString "", + {[] call KPLIB_fnc_requestZeus}, + nil, + -870, + false, + true, + "", + " + alive _originalTarget + && {isNull (_originalTarget getVariable ['KPLIB_ownedZeusModule', objNull])} + && {build_confirmed isEqualTo 0} + " + ]; +}; + +// Create FOB clearance +_player addAction [ + ["", localize "STR_CLEARANCE_ACTION", ""] joinString "", + {[player getVariable ["KPLIB_fobPos", [0, 0, 0]], GRLIB_fob_range * 0.9, true] call KPLIB_fnc_createClearanceConfirm;}, + nil, + -850, + false, + true, + "", + " + _originalTarget getVariable ['KPLIB_hasDirectAccess', false] + && {isNull (objectParent _originalTarget)} + && {alive _originalTarget} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {build_confirmed isEqualTo 0} + " +]; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_addObjectInit.sqf b/kp_liberation.brf_sumava/functions/fn_addObjectInit.sqf new file mode 100644 index 0000000..df60272 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_addObjectInit.sqf @@ -0,0 +1,56 @@ +/* + File: fn_addObjectInit.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-08 + Last Update: 2020-04-29 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Applies code from kp_objectInits.sqf to given object. Returns true if some code was applied, false if object has no KPLIB init code. + + Parameter(s): + _object - Object which should get init code applied, if there is any defined [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_object", objNull, [objNull]] +]; + +if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Create objectInitsCache object for this machine, if not present +if (isNil "KPLIB_objectInitsCache") then {KPLIB_objectInitsCache = createSimpleObject ["a3\weapons_f\empty.p3d", [-7580, -7580, 0], true];}; + +private _elements = KPLIB_objectInitsCache getVariable typeOf _object; + +// Find and cache matching objectInits +if (isNil "_elements") then { + _elements = KPLIB_objectInits select { + _x params ["_classes", "", ["_inheritance", false]]; + + if (_inheritance) then { + { + if (_object isKindOf _x) exitWith {true}; + false + } forEach _classes // return + } else { + // return + (toLower (typeOf _object)) in (_classes apply {toLower _x}) + }; + }; + + KPLIB_objectInitsCache setVariable [typeOf _object, _elements]; +}; + +if (_elements isEqualTo []) exitWith { + false +}; + +{ + _object call (_x select 1); +} forEach _elements; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_addRopeAttachEh.sqf b/kp_liberation.brf_sumava/functions/fn_addRopeAttachEh.sqf new file mode 100644 index 0000000..fffc557 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_addRopeAttachEh.sqf @@ -0,0 +1,35 @@ +/* + File: fn_addRopeAttachEh.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-09 + Last Update: 2020-04-10 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds a ropeAttach EH if given vehicle is able to slingload objects. + The EH will make sure that the slingloaded cargo is local to the + helicopter pilot to avoid a rope breaking due to desyncs. + + Parameter(s): + _obj - Object to apply the EH to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_obj", objNull, [objNull]] +]; + +if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false}; + +if (getNumber (configfile >> "CfgVehicles" >> (typeOf _obj) >> "slingLoadMaxCargoMass") > 0) then { + _obj addEventHandler ["RopeAttach", { + params ["_heli", "_rope", "_cargo"]; + if !((owner _heli) isEqualTo (owner _cargo)) then { + _cargo setOwner (owner _heli); + }; + }]; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_allowCrewInImmobile.sqf b/kp_liberation.brf_sumava/functions/fn_allowCrewInImmobile.sqf new file mode 100644 index 0000000..a7991f5 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_allowCrewInImmobile.sqf @@ -0,0 +1,27 @@ +/* + File: fn_allowCrewInImmobile.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-09-05 + Last Update: 2019-12-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Allows crew in immobile vehicle depending on AllowEnemiesInImmobile parameters. + + Parameter(s): + _vehicle - Vehicle which should allow immobile crew [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_vehicle", objNull, [objNull]] +]; + +if (isNull _vehicle) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// KP_liberation_allowEnemiesInImmobile (0-50-100) +_vehicle allowCrewInImmobile (random 100 < KP_liberation_allowEnemiesInImmobile); + +true diff --git a/kp_liberation.brf_sumava/functions/fn_checkClass.sqf b/kp_liberation.brf_sumava/functions/fn_checkClass.sqf new file mode 100644 index 0000000..a1cbd3e --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_checkClass.sqf @@ -0,0 +1,29 @@ +/* + File: fn_checkClass.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Checks if given classname is available in currently loaded modset. + + Parameter(s): + _classname - Classname of class to check [STRING, defaults to ""] + + Returns: + Classname in config [BOOL] +*/ + +params [ + ["_classname", "", [""]] +]; + +if (_classname isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; + +if (isClass (configFile >> "CfgVehicles" >> _classname)) then { + true +} else { + if (isServer) then {[format ["%1 not found in CfgVehicles", _classname], "PRESETS"] call KPLIB_fnc_log;}; + false +}; diff --git a/kp_liberation.brf_sumava/functions/fn_checkCrateValue.sqf b/kp_liberation.brf_sumava/functions/fn_checkCrateValue.sqf new file mode 100644 index 0000000..5e9abe7 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_checkCrateValue.sqf @@ -0,0 +1,33 @@ +/* + File: fn_checkCrateValue.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-05-26 + Last Update: 2019-12-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Checks content of given crate and displays a hint about it. + Additionally it makes sure that ropeAttach is enabled on the crate. + + Parameter(s): + _crate - Crate to check [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +if (isDedicated) exitWith {}; + +params [ + ["_crate", objNull, [objNull]] +]; + +if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false}; + +hint format [localize "STR_ACTION_CRATE_VALUE_HINT", _crate getVariable ["KP_liberation_crate_value", 0]]; + +if !(ropeAttachEnabled _crate) then { + [_crate, true] remoteExec ["enableRopeAttach"]; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_checkGear.sqf b/kp_liberation.brf_sumava/functions/fn_checkGear.sqf new file mode 100644 index 0000000..57c2627 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_checkGear.sqf @@ -0,0 +1,125 @@ +/* + File: fn_checkGear.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-11-22 + Last Update: 2020-04-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Checks the players gear for blacklisted items. + Found items are removed from the loadout. + Furthermore a hint with the found items is displayed to the player + while a server log entry is created for the admin. + + Parameter(s): + _backpack - Backpack classname of the players current backpack [STRING, defaults to ""] + + Returns: + Player checked without findings [BOOL] +*/ + +params [ + ["_backpack", "", [""]] +]; + +private _removedItems = []; + +// Check single item slots +if !(toLower (headgear player) in KP_liberation_allowed_items) then { + _removedItems pushBack (headgear player); + removeHeadgear player; +}; +if !(toLower (goggles player) in KP_liberation_allowed_items) then { + _removedItems pushBack (goggles player); + removeGoggles player; +}; +if !(toLower (uniform player) in KP_liberation_allowed_items) then { + _removedItems pushBack (uniform player); + removeUniform player; +}; +if !(toLower (vest player) in KP_liberation_allowed_items) then { + _removedItems pushBack (vest player); + removeVest player; +}; +if (!(toLower (backpack player) in KP_liberation_allowed_items) && ((backpack player) != _backpack)) then { + _removedItems pushBack (backpack player); + removeBackpack player; +}; + +// Check items +private _items = assignedItems player; +_items append ((getItemCargo (uniformContainer player)) select 0); +_items append ((getItemCargo (vestContainer player)) select 0); +_items append ((getItemCargo (backpackContainer player)) select 0); +_items = _items apply {toLower _x}; +{ + _removedItems pushBack _x; + player unassignItem _x; + player removeItems _x; +} forEach (((_items arrayIntersect _items) - KP_liberation_allowed_items) select {!([_x] call KPLIB_fnc_isRadio)}); + +// Check magazines +_items = ((getMagazineCargo (uniformContainer player)) select 0); +_items append ((getMagazineCargo (vestContainer player)) select 0); +_items append ((getMagazineCargo (backpackContainer player)) select 0); +_items = _items apply {toLower _x}; +{ + _removedItems pushBack _x; + player removeMagazines _x; +} forEach ((_items arrayIntersect _items) - KP_liberation_allowed_items); + +// Check weapons stored in inventory containers +{ + if (!isNull _x) then {_removedItems append ([_x] call KPLIB_fnc_checkWeaponCargo);}; +} forEach [uniformContainer player, vestcontainer player, backpackContainer player]; + +// Check equipped weapons +_items = (weapons player) apply {toLower ([_x] call BIS_fnc_baseWeapon)}; +{ + _removedItems pushBack _x; + player removeWeapon _x; +} forEach (_items - KP_liberation_allowed_items); + +// Check weapon items of primary weapon +_items = primaryWeaponItems player; +_items append primaryWeaponMagazine player; +_items = _items apply {toLower _x}; +{ + _removedItems pushBack _x; + player removePrimaryWeaponItem _x; +} forEach (_items - KP_liberation_allowed_items); + +// Check weapon items of secondary weapon +_items = secondaryWeaponItems player; +_items append secondaryWeaponMagazine player; +_items = _items apply {toLower _x}; +{ + _removedItems pushBack _x; + player removeSecondaryWeaponItem _x; +} forEach (_items - KP_liberation_allowed_items); + +// Check weapon items of handgun +_items = handgunItems player; +_items append handgunMagazine player; +_items = _items apply {toLower _x}; +{ + _removedItems pushBack _x; + player removeHandgunItem _x; +} forEach (_items - KP_liberation_allowed_items); + +// Remove duplicates and empty strings +_removedItems = (_removedItems arrayIntersect _removedItems) - [""]; + +// Show hint and log list, if something was found +if !(_removedItems isEqualTo []) exitWith { + [_removedItems] spawn { + params ["_removedItems"]; + [format ["Found %1 at player %2", _removedItems, name player], "BLACKLIST"] remoteExecCall ["KPLIB_fnc_log", 2]; + hint format [localize "STR_BLACKLISTED_ITEM_FOUND", _removedItems joinString "\n"]; + sleep 6; + hintSilent ""; + }; + false +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_checkWeaponCargo.sqf b/kp_liberation.brf_sumava/functions/fn_checkWeaponCargo.sqf new file mode 100644 index 0000000..fc1b75d --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_checkWeaponCargo.sqf @@ -0,0 +1,107 @@ +/* + File: fn_removeWeaponCargo.sqf + Author: Zharf - https://github.com/zharf + Date: 2019-06-21 + Last Update: 2020-04-13 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Removes weapons not found in KP_liberation_allowed_items from a cargo space. + + Warning: All weapon attachments/magazines in container will become detached. + Warning: Preset weapons without non-preset parents will get their attachments readded (engine limitation). + + Parameter(s): + _container - Object with cargo [OBJECT, defaults to objNull] + + Returns: + Removed items [ARRAY] +*/ + +params [ + ["_container", objNull, [objNull]] +]; + +if (isNull _container) exitWith {["Null object given"] call BIS_fnc_error; []}; + +private _removed = []; +private _weaponsItemsCargo = weaponsItemsCargo _container; +clearWeaponCargoGlobal _container; + +{ + _x params ["_weapon", "_muzzle", "_pointer", "_optic", "_magazine", "_magazineGL", "_bipod"]; + + // Some weapons don't have non-preset parents + _components = _weapon call KPLIB_fnc_getWeaponComponents; + private _weaponNonPreset = _components select 0; + + if (_weaponNonPreset == "") then { + _weaponNonPreset = _weapon; + }; + + if ((toLower ([_x] call BIS_fnc_baseWeapon)) in KP_liberation_allowed_items) then { + _container addWeaponCargoGlobal [_weaponNonPreset, 1]; + + // If weapon does not have a non-preset parent, only add attachments that were custom added + // Removed attachments cannot be handled (engine limitation) and will be readded due to having to readd preset weapon + private _presetAttachments = []; + + if (_weaponNonPreset == _weapon) then { + _presetAttachments = _components; + }; + + if !(toLower _muzzle in _presetAttachments) then { + if (toLower _muzzle in KP_liberation_allowed_items) then { + _container addItemCargoGlobal [_muzzle, 1]; + } else { + _removed pushBack _muzzle; + } + }; + + if !(toLower _pointer in _presetAttachments) then { + if (toLower _pointer in KP_liberation_allowed_items) then { + _container addItemCargoGlobal [_pointer, 1]; + } else { + _removed pushBack _pointer; + } + }; + + if !(toLower _optic in _presetAttachments) then { + if (toLower _optic in KP_liberation_allowed_items) then { + _container addItemCargoGlobal [_optic, 1]; + } else { + _removed pushBack _optic; + } + }; + + if !(toLower _bipod in _presetAttachments) then { + if (toLower _bipod in KP_liberation_allowed_items) then { + _container addItemCargoGlobal [_bipod, 1]; + } else { + _removed pushBack _bipod; + } + }; + + _magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]]; + if (_magazineClass != "") then { + if (toLower _magazineClass in KP_liberation_allowed_items) then { + _container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount]; + } else { + _removed pushBack _magazineClass; + } + }; + + _magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]]; + if (_magazineGLClass != "") then { + if (toLower _magazineGLClass in KP_liberation_allowed_items) then { + _container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount]; + } else { + _removed pushBack _magazineGLClass; + } + }; + } else { + _removed pushBack _weapon; + } +} forEach _weaponsItemsCargo; + +_removed; diff --git a/kp_liberation.brf_sumava/functions/fn_cleanOpforVehicle.sqf b/kp_liberation.brf_sumava/functions/fn_cleanOpforVehicle.sqf new file mode 100644 index 0000000..f51f4a9 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_cleanOpforVehicle.sqf @@ -0,0 +1,28 @@ +/* + File: fn_cleanOpforVehicle.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-20 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Deletes given vehicle, if not an opfor vehicle captured by players. + + Parameter(s): + _veh - Vehicle to delete if not captured [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_veh", objNull, [objNull]] +]; + +if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; + +if !(_veh getVariable ["KPLIB_captured", false]) then { + deleteVehicle _veh; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_clearCargo.sqf b/kp_liberation.brf_sumava/functions/fn_clearCargo.sqf new file mode 100644 index 0000000..05228eb --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_clearCargo.sqf @@ -0,0 +1,34 @@ +/* + File: fn_clearCargo.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-03-30 + Last Update: 2020-03-30 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Clears the cargo of given object while providing + a toggle to skip the paramter and ace crate check. + + Parameter(s): + _obj - Object for cargo clearing [OBJECT, defaults to objNull] + _force - Skip the paramter and ACE crate check [BOOL, defaults to false] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_obj", objNull, [objNull]], + ["_force", false, [false]] +]; + +if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false}; + +if (_force || {!((typeOf _obj) in KP_liberation_ace_crates) && {KP_liberation_clear_cargo || {!((typeOf _obj) isKindOf "AllVehicles")}}}) then { + clearWeaponCargoGlobal _obj; + clearMagazineCargoGlobal _obj; + clearBackpackCargoGlobal _obj; + clearItemCargoGlobal _obj; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_crAddAceAction.sqf b/kp_liberation.brf_sumava/functions/fn_crAddAceAction.sqf new file mode 100644 index 0000000..f9d1a1d --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crAddAceAction.sqf @@ -0,0 +1,56 @@ +/* + File: fn_crAddAceAction.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-22 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds action for healing with ACE field dressing to a given object. + + Parameter(s): + _civ - Civilian to add the healing action to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_civ", objNull, [objNull]] +]; + +if (isNull _civ) exitWith {["Null object given"] call BIS_fnc_error; false}; + +if (KP_liberation_civrep_debug > 0) then {[format ["ace_action called on: %1", debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +_civ addAction [ + "" + localize "STR_CR_ACE_ACTION" + "", + { + params ["_target", "_caller"]; + + private _items = [ + "ACE_elasticBandage", + "ACE_fieldDressing", + "ACE_packingBandage", + "ACE_quikclot" + ] arrayIntersect (vestItems _caller + uniformItems _caller + backpackItems _caller); + + if !(_items isEqualTo []) then { + _caller removeItem (selectRandom _items); + _target setDamage 0; + } else { + hint localize "STR_CR_ACE_ACTION_FAIL"; + sleep 3; + hintSilent ""; + }; + }, + nil, + 1.5, + true, + true, + "", + "(damage _target) >= 0.5", + 3 +]; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_crGetMulti.sqf b/kp_liberation.brf_sumava/functions/fn_crGetMulti.sqf new file mode 100644 index 0000000..8e43e45 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crGetMulti.sqf @@ -0,0 +1,18 @@ +/* + File: fn_crGetMulti.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-08 + Last Update: 2019-12-04 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the current multiplier of the civilian reputation. + + Parameter(s): + NONE + + Returns: + Reputation multiplier [NUMBER] +*/ + +3 min (floor (abs (KP_liberation_civ_rep / 25))) diff --git a/kp_liberation.brf_sumava/functions/fn_crGlobalMsg.sqf b/kp_liberation.brf_sumava/functions/fn_crGlobalMsg.sqf new file mode 100644 index 0000000..0c5fed3 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crGlobalMsg.sqf @@ -0,0 +1,36 @@ +/* + File: fn_crGlobalMsg.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-17 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + No description added yet. + + Parameter(s): + _msgType - Type of message to display [NUMBER, defaults to -1] + _data - Data which is needed in the selected msgType [ARRAY, defaults to []] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_msgType", -1, [0]], + ["_data", [], []] +]; + +if (KP_liberation_civrep_debug > 0) then {[format ["globalMsg called on: %1 - Parameters: [%2, %3]", debug_source, _msgType, _data], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +switch (_msgType) do { + case 0: {systemChat localize "STR_CR_VEHICLEMSG";}; + case 1: {systemChat (format [localize "STR_CR_BUILDINGMSG", (_data select 0)]);}; + case 2: {systemChat (format [localize "STR_CR_KILLMSG", (_data select 0)]);}; + case 3: {systemChat (format [localize "STR_CR_RESISTANCE_KILLMSG", (_data select 0)]);}; + case 4: {systemChat (format [localize "STR_CR_HEALMSG", (_data select 0)]);}; + case 5: {["lib_asymm_guerilla_incoming", _data] call BIS_fnc_showNotification;}; + default {[format ["globalMsg without valid msgType - %1", _msgType], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_crateFromStorage.sqf b/kp_liberation.brf_sumava/functions/fn_crateFromStorage.sqf new file mode 100644 index 0000000..c105b79 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crateFromStorage.sqf @@ -0,0 +1,74 @@ +/* + File: fn_crateFromStorage.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-03-27 + Last Update: 2020-04-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Unloads given crate type from storage area. + + Parameter(s): + _cratetype - Crate type [STRING, defaults to ""] + _storage - Storage [OBJECT, defaults to objNull] + _update - Update sector resources [BOOL, defaults to false] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_cratetype", "", [""]], + ["_storage", objNull, [objNull]], + ["_update", false, [false]] +]; + +// Validate parameters +if !((toLower _cratetype) in KPLIB_crates) exitWith {["Invalid craty type given: %1", _cratetype] call BIS_fnc_error; false}; +if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Get correct storage positions +([_storage] call KPLIB_fnc_getStoragePositions) params ["_storagePositions", "_unloadDist"]; + +// Check for next empty unload position +private _i = 0; +private _dir = (getDir _storage) - 180; +private _unloadPos = _storage getPos [_unloadDist, _dir]; +while {!((nearestObjects [_unloadPos, KPLIB_crates, 1]) isEqualTo [])} do { + _i = _i + 1; + _unloadPos = _storage getPos [_unloadDist + _i * 1.8, _dir]; +}; + +// Fetch all stored crates +private _storedCrates = attachedObjects _storage; +reverse _storedCrates; +private _crate = _storedCrates deleteAt (_storedCrates findIf {(typeOf _x) == _crateType}); + +// Exit if desired crate isn't stored +if (isNil "_crate") exitWith {false}; + +// Unload crate +detach _crate; +[_crate, true] call KPLIB_fnc_clearCargo; +_crate setPos _unloadPos; +[_crate, true] remoteExec ["enableRopeAttach"]; +if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + +// Fill the possible gap in the storage area +reverse _storedCrates; +_i = 0; +{ + detach (_x select 0); + (_x select 0) attachTo [_storage, [(_storagePositions select _i) select 0, (_storagePositions select _i) select 1, _x select 1]]; + _i = _i + 1; +} forEach (_storedCrates apply {[_x, [typeOf _x] call KPLIB_fnc_getCrateHeight]}); + +// Update sector resources +if (_update) then { + if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then { + recalculate_sectors = true; + publicVariable "recalculate_sectors"; + }; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_crateToStorage.sqf b/kp_liberation.brf_sumava/functions/fn_crateToStorage.sqf new file mode 100644 index 0000000..8b21110 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crateToStorage.sqf @@ -0,0 +1,64 @@ +/* + File: fn_crateToStorage.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-03-27 + Last Update: 2020-04-23 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Attach given crate at storage area. + + Parameter(s): + _crate - Crate [OBJECT, defaults to objNull] + _storage - Storage [OBJECT, defaults to objNull] + _update - Update sector resources [BOOL, defaults to false] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_crate", objNull, [objNull]], + ["_storage", objNull, [objNull]], + ["_update", false, [false]] +]; + +// Validate parameters +if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Handle return values from nearestObjects of function call in ammobox action manager +if (!isNull _storage) then { + // Get storage and crate specific values + ([_storage] call KPLIB_fnc_getStoragePositions) params ["_storage_positions", "_unload_distance"]; + private _height = [typeOf _crate] call KPLIB_fnc_getCrateHeight; + + // Remove possible cargo from crate + [_crate, true] call KPLIB_fnc_clearCargo; + + // Check for enough space in storage + private _crates_count = count (attachedObjects _storage); + if (_crates_count >= (count _storage_positions)) exitWith {if (!isDedicated) then {[] spawn {hint localize "STR_BOX_CANTSTORE"; sleep 2; hintSilent "";};};}; + + // Store crate + _crate attachTo [_storage, [(_storage_positions select _crates_count) select 0, (_storage_positions select _crates_count) select 1, _height]]; + [_crate, false] remoteExec ["enableRopeAttach"]; + if(KP_liberation_ace) then {[_crate, false, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + + // Update sector resource values, if requested + if (_update) then { + if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then { + recalculate_sectors = true; + publicVariable "recalculate_sectors"; + }; + }; +} else { + if (!isDedicated) then { + [] spawn { + hint localize "STR_BOX_CANTSTORE"; + sleep 2; + hintSilent ""; + }; + }; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_crawlAllItems.sqf b/kp_liberation.brf_sumava/functions/fn_crawlAllItems.sqf new file mode 100644 index 0000000..b8fd7ee --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_crawlAllItems.sqf @@ -0,0 +1,53 @@ +/* + File: fn_crawlAllItems.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-19 + Last Update: 2020-04-19 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Crawls through CfgWeapons, CfgMagazines, CfgVehicles and CfgGlasses to fetach all + weapon, magazine, item and backpack classnames available in the arsenal. + + Parameter(s): + NONE + + Returns: + Array of classnames for weapons, magazines, items and backpacks [ARRAY] +*/ + +private _weapons = []; +private _magazines = []; +private _items = []; +private _backpacks = []; +private _configClasses = []; +private _type = []; + +{ + _configClasses append ( + " + _type = (configName _x) call BIS_fnc_itemType; + (getNumber(_x >> 'scope') isEqualTo 2) && !(((_type select 0) isEqualTo '') || ((_type select 0) isEqualTo 'VehicleWeapon')) + " configClasses _x + ); +} forEach [ + (configFile >> "CfgWeapons"), + (configFile >> "CfgMagazines"), + (configFile >> "CfgVehicles"), + (configFile >> "CfgGlasses") +]; + +private _classnames = _configClasses apply {configName _x}; + +{ + _type = _x call BIS_fnc_itemType; + switch (_type select 0) do { + case "Weapon": {if ((_x call BIS_fnc_baseWeapon) isEqualTo _x) then {_weapons pushBackUnique _x;};}; + case "Mine"; + case "Magazine": {_magazines pushBackUnique _x;}; + case "Item"; + case "Equipment": {if ((_type select 1) isEqualTo "Backpack") then {_backpacks pushBackUnique _x;} else {_items pushBackUnique _x;};}; + }; +} forEach _classnames; + +[_weapons, _magazines, _items, _backpacks] diff --git a/kp_liberation.brf_sumava/functions/fn_createClearance.sqf b/kp_liberation.brf_sumava/functions/fn_createClearance.sqf new file mode 100644 index 0000000..4987609 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_createClearance.sqf @@ -0,0 +1,45 @@ +/* + File: fn_createClearance.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-10 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds a terrain objects clearance around given position with given radius. + If the save switch is set to true, the clearance will be saved during the campaign. + + Parameter(s): + _centerPos - Position for the clearance [POSITION, defaults to [0, 0, 0]] + _radius - Radius of the clearance around the center [NUMBER, defaults to 0] + _save - Switch to decide if the clearance should be persistent [BOOL, defaults to false] + + Returns: + Function reached the end [BOOL] +*/ + +if (!isServer) exitWith {false}; + +params [ + ["_centerPos", [0, 0, 0], [[]], [3]], + ["_radius", 0, [0]], + ["_save", false, [false]] +]; + +if (_centerPos isEqualTo [0, 0, 0]) exitWith {["Zero position given"] call BIS_fnc_error; false}; +if (_radius isEqualTo 0) exitWith {["Zero radius given"] call BIS_fnc_error; false}; + +if (save_is_loaded && {(KP_liberation_clearances findIf {(_x select 0) isEqualTo _centerPos}) != -1}) exitWith {false}; + +{ + _x switchLight "OFF"; + _x hideObjectGlobal true; + _x allowDamage false; +} forEach (nearestTerrainObjects [_centerPos, [], _radius, false, true]); + +if (_save) then { + KP_liberation_clearances pushBackUnique [_centerPos, _radius]; + publicVariable "KP_liberation_clearances"; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_createClearanceConfirm.sqf b/kp_liberation.brf_sumava/functions/fn_createClearanceConfirm.sqf new file mode 100644 index 0000000..50692b3 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_createClearanceConfirm.sqf @@ -0,0 +1,52 @@ +/* + File: fn_createClearanceConfirm.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-10 + Last Update: 2020-04-10 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Displays a confirmation dialog for the create clearance action. + If confirmed, the clearance will be created by the server. + + Parameter(s): + _centerPos - Position for the clearance [POSITION, defaults to [0, 0, 0]] + _radius - Radius of the clearance around the center [NUMBER, defaults to 0] + _save - Switch to decide if the clearance should be persistent [BOOL, defaults to false] + + Returns: + Creation confirmed [BOOL] +*/ + +params [ + ["_centerPos", [0, 0, 0], [[]], [3]], + ["_radius", 0, [0]], + ["_save", false, [false]] +]; + +if (_centerPos isEqualTo [0, 0, 0]) exitWith {["Zero position given"] call BIS_fnc_error; false}; +if (_radius isEqualTo 0) exitWith {["Zero radius given"] call BIS_fnc_error; false}; +if (!canSuspend) exitWith {_this spawn KPLIB_fnc_createClearanceConfirm}; + +private _text = format [ + localize "STR_CONFIRM_CLEARANCE_TEXT", + count (nearestTerrainObjects [_centerPos, [], _radius, false, true]), + floor _radius, + ["FOB", [_centerPos] call KPLIB_fnc_getFobName] joinString " " +]; + +private _confirmed = [ + _text, + localize "STR_CONFIRM_CLEARANCE_TITLE", + localize "STR_CONFIRM", + localize "STR_RECYCLING_CANCEL", + nil, + false, + false +] call BIS_fnc_guiMessage; + +if (_confirmed) then { + [_centerPos, _radius, true] remoteExecCall ["KPLIB_fnc_createClearance", 2]; +}; + +_confirmed diff --git a/kp_liberation.brf_sumava/functions/fn_createCrate.sqf b/kp_liberation.brf_sumava/functions/fn_createCrate.sqf new file mode 100644 index 0000000..290903e --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_createCrate.sqf @@ -0,0 +1,44 @@ +/* + File: fn_createCrate.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-11 + Last Update: 2020-04-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns a resource crate of given type and with given amount at given position. + + Parameter(s): + _resource - Type of resource [STRING, defaults to KP_liberation_supply_crate] + _amount - Resource amount [NUMBER, defaults to 100] + _pos - Position where to spawn the crate [POSITION, defaults to getPos player] + + Returns: + Created crate [OBJECT] +*/ + +params [ + ["_resource", KP_liberation_supply_crate, [""]], + ["_amount", 100, [0]], + ["_pos", getPos player, [[]], [2, 3]] +]; + +// Check if resource is valid +if !((toLower _resource) in KPLIB_crates) exitWith { + ["Invalid resource param given: %1", _resource] call BIS_fnc_error; + objNull +}; + +// Create crate +private _crate = _resource createVehicle _pos; +_crate setMass 500; +_crate setVariable ["KP_liberation_crate_value", _amount, true]; +[_crate, true] call KPLIB_fnc_clearCargo; + +// Add ACE carry functionality +if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + +// Process KP object init +[_crate] call KPLIB_fnc_addObjectInit; + +_crate diff --git a/kp_liberation.brf_sumava/functions/fn_createManagedUnit.sqf b/kp_liberation.brf_sumava/functions/fn_createManagedUnit.sqf new file mode 100644 index 0000000..0ccefdb --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_createManagedUnit.sqf @@ -0,0 +1,48 @@ +/* + File: fn_createManagedUnit.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-10-04 + Last Update: 2019-12-04 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Creates unit managed by kill tracker. + + Parameter(s): + _type - Type of unit [STRING, defaults to ""] + _spawnPos - Where to spawn [ARRAY|OBJECT|GROUP, defaults to [0, 0, 0]] + _group - Group to add the unit to [GROUP, defaults to grpNull] + _rank - Unit rank [STRING, defaults to "PRIVATE"] + _placement - Placement radius [NUMBER, defaults to 0] + + Returns: + Created unit [OBJECT] +*/ + +params [ + ["_type", "", [""]], + ["_spawnPos", [0, 0, 0], [[], objNull, grpNull], [2, 3]], + ["_group", grpNull, [grpNull]], + ["_rank", "PRIVATE", [""]], + ["_placement", 0, [0]] +]; + +private ["_unit"]; +isNil { + // Create temp group, as we need to let the unit join the "correct side group". + // If we use the "correct side group" for the createUnit, the group would switch to the side of the unit written in the config. + private _groupTemp = createGroup [CIVILIAN, true]; + + _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; + _unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _unit setRank _rank; + + // Join to target group to preserve Side + [_unit] joinSilent _group; + deleteGroup _groupTemp; + + // Process KP object init + [_unit] call KPLIB_fnc_addObjectInit; +}; + +_unit diff --git a/kp_liberation.brf_sumava/functions/fn_doSave.sqf b/kp_liberation.brf_sumava/functions/fn_doSave.sqf new file mode 100644 index 0000000..8b09a9c --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_doSave.sqf @@ -0,0 +1,40 @@ +/* + File: fn_doSave.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-03-29 + Last Update: 2020-05-08 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Save mission state to profileNamespace. + + Parameter(s): + NONE + + Returns: + Data was saved [BOOL] +*/ + +if (!isServer) exitWith {false}; + +if (!KPLIB_init) exitWith { + ["Framework is not initalized, skipping save!", "SAVE"] call KPLIB_fnc_log; + false +}; + +if (missionNamespace getVariable ["kp_liberation_saving", false]) exitWith { + ["Saving already in progress, skipping save!", "SAVE"] call KPLIB_fnc_log; + false +}; + +kp_liberation_saving = true; + +private _saveData = [] call KPLIB_fnc_getSaveData; + +// Write data in the server profileNamespace +profileNamespace setVariable [GRLIB_save_key, str _saveData]; +saveProfileNamespace; + +kp_liberation_saving = false; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_fillStorage.sqf b/kp_liberation.brf_sumava/functions/fn_fillStorage.sqf new file mode 100644 index 0000000..34d2687 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_fillStorage.sqf @@ -0,0 +1,56 @@ +/* + File: fn_fillStorage.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-05-04 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Fills given storage with given amounts of resources. + + Parameter(s): + _supply - Amount of supply resource [NUMBER, defaults to 0] + _ammo - Amount of ammo resource [NUMBER, defaults to 0] + _fuel - Amount of fuel resource [NUMBER, defaults to 0] + _storage - Storage object to fill [OBJECT, defaults to objNull] + _delay - Enable a small delay between crate create and attach to storage [BOOL, defaults to false] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_supply", 0, [0]], + ["_ammo", 0, [0]], + ["_fuel", 0, [0]], + ["_storage", objNull, [objNull]], + ["_delay", false, [false]] +]; + +if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Make sure it's scheduled, if delay is enabled +if (_delay && {!canSuspend}) exitWith {_this spawn KPLIB_fnc_fillStorage}; + +private _amount = 0; +private _crate = objNull; +private _pos = getPos _storage; + +{ + while {_x > 0} do { + _amount = 100 min _x; + _x = _x - _amount; + + _crate = [ + KPLIB_crates select _forEachIndex, + _amount, + _pos + ] call KPLIB_fnc_createCrate; + + if (_delay) then {sleep 0.1;}; + + [_crate, _storage] call KPLIB_fnc_crateToStorage; + }; +} forEach [_supply, _ammo, _fuel]; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_forceBluforCrew.sqf b/kp_liberation.brf_sumava/functions/fn_forceBluforCrew.sqf new file mode 100644 index 0000000..4fe1c38 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_forceBluforCrew.sqf @@ -0,0 +1,49 @@ +/* + File: fn_forceBluforCrew.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-04 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Creates vehicle crew from vehicle config. + If the crew isn't the same side as the players, it'll create a player side crew. + + Parameter(s): + _veh - Vehicle to add the blufor crew to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_veh", objNull, [objNull]] +]; + +if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Create regular config crew +private _grp = createVehicleCrew _veh; + +// If the config crew isn't the correct side, replace it with the crew classnames from the preset +if ((side _grp) != GRLIB_side_friendly) then { + {deleteVehicle _x} forEach (units _grp); + + _grp = createGroup [GRLIB_side_friendly, true]; + while {count units _grp < 3} do { + [crewman_classname, getPos _veh, _grp] call KPLIB_fnc_createManagedUnit; + }; + ((units _grp) select 0) moveInDriver _veh; + ((units _grp) select 1) moveInGunner _veh; + ((units _grp) select 2) moveInCommander _veh; + + // Delete crew which isn't in the vehicle due to e.g. no commander seat + { + if (isNull objectParent _x) then {deleteVehicle _x}; + } forEach (units _grp); +}; + +// Set the crew to safe behaviour +_grp setBehaviour "SAFE"; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_getAdaptiveVehicle.sqf b/kp_liberation.brf_sumava/functions/fn_getAdaptiveVehicle.sqf new file mode 100644 index 0000000..2b752bc --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getAdaptiveVehicle.sqf @@ -0,0 +1,18 @@ +/* + File: fn_getAdaptiveVehicle.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-11-26 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Provides a vehicle classname depending on the combat readiness. + + Parameter(s): + NONE + + Returns: + Vehicle classname [STRING] +*/ + +selectRandom ([opfor_vehicles, opfor_vehicles_low_intensity] select (combat_readiness < 40)) diff --git a/kp_liberation.brf_sumava/functions/fn_getBluforRatio.sqf b/kp_liberation.brf_sumava/functions/fn_getBluforRatio.sqf new file mode 100644 index 0000000..be9723b --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getBluforRatio.sqf @@ -0,0 +1,32 @@ +/* + File: fn_getBluforRatio.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the ratio of blufor units in the given sector to the total number of units. + + Parameter(s): + _sector - Sector to get the blufor / opfor ratio from [STRING, defaults to ""] + + Returns: + Blufor ratio [NUMBER] +*/ + +params [ + ["_sector", "", [""]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; -1}; + +private _range = [GRLIB_capture_size, GRLIB_capture_size * 1.4] select (_sector in sectors_bigtown); +private _red = [(markerPos _sector), _range, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount; +private _blue = [(markerPos _sector), _range, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + +if (_blue > 0 || _red > 0) then { + _blue / (_blue + _red) +} else { + [0, 1] select (_sector in blufor_sectors) +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getCommander.sqf b/kp_liberation.brf_sumava/functions/fn_getCommander.sqf new file mode 100644 index 0000000..d387283 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getCommander.sqf @@ -0,0 +1,18 @@ +/* + File: fn_getCommander.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-11-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the actual commander object. + + Parameter(s): + NONE + + Returns: + Commander [OBJECT] +*/ + +missionNamespace getVariable ["commandant", objNull] diff --git a/kp_liberation.brf_sumava/functions/fn_getCrateHeight.sqf b/kp_liberation.brf_sumava/functions/fn_getCrateHeight.sqf new file mode 100644 index 0000000..019acc1 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getCrateHeight.sqf @@ -0,0 +1,33 @@ +/* + File: fn_getCrateHeight.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-03-26 + Last Update: 2020-03-26 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the height for the relative positioning of a crate. + + Parameter(s): + _crateClass - Classname of the crate to get the height for [STRING, defaults to ""] + + Returns: + Height for given class [NUMBER] +*/ + +params [ + ["_crateClass", "", [""]] +]; + +if (_crateClass isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; 0}; + +private _height = 0; + +switch (_crateClass) do { + case KP_liberation_supply_crate: {_height = 0.4;}; + case KP_liberation_ammo_crate: {_height = 0.6;}; + case KP_liberation_fuel_crate: {_height = 0.3;}; + default {_height = 0.6;}; +}; + +_height diff --git a/kp_liberation.brf_sumava/functions/fn_getFobName.sqf b/kp_liberation.brf_sumava/functions/fn_getFobName.sqf new file mode 100644 index 0000000..449f550 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getFobName.sqf @@ -0,0 +1,22 @@ +/* + File: fn_getFobName.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the FOB name in accordance to the military alphabet set in init presets. + + Parameter(s): + _fob - Position of FOB to get the name from [POSITION, defaults to [0, 0, 0]] + + Returns: + FOB name [STRING] +*/ + +params [ + ["_fob", [0, 0, 0], [[]], [2, 3]] +]; + +military_alphabet param [GRLIB_all_fobs findIf {(_x distance2d _fob) < 100}, ""] diff --git a/kp_liberation.brf_sumava/functions/fn_getFobResources.sqf b/kp_liberation.brf_sumava/functions/fn_getFobResources.sqf new file mode 100644 index 0000000..5ec3290 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getFobResources.sqf @@ -0,0 +1,24 @@ +/* + File: fn_getFobResources.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-08 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the FOB resource data in format [, , , , , ]. + + Parameter(s): + _fob - Position of FOB to get resources of [POSITION, defaults to [0, 0, 0]] + + Returns: + FOB resource data [ARRAY] +*/ + +#define NO_RESULT [[0, 0, 0], 0, 0, 0, false, false] + +params [ + ["_fob", [0, 0, 0], [[]], [2, 3]] +]; + +KP_liberation_fob_resources param [KP_liberation_fob_resources findIf {(_x select 0) isEqualTo _fob}, NO_RESULT] // return diff --git a/kp_liberation.brf_sumava/functions/fn_getGroupType.sqf b/kp_liberation.brf_sumava/functions/fn_getGroupType.sqf new file mode 100644 index 0000000..c92ae68 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getGroupType.sqf @@ -0,0 +1,50 @@ +/* + File: fn_getGroupType.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the type of a given group. + Can be infantry, light, heavy, air, support, static or UAV. + + Parameter(s): + _grp - Group to get the type from [GROUP, defaults to grpNull] + + Returns: + Group type [STRING] +*/ + +params [ + ["_grp", grpNull, [grpNull]] +]; + +if (isNull _grp) exitWith {["Null group given"] call BIS_fnc_error; ""}; + +private _grpType = "infantry"; +private _vehType = ""; + +// Get vehicle type, if at least one group member is in a crew seat +private _parent = objNull; +{ + _parent = objectParent _x; + if (!(isNull _parent) && {_x in [driver _parent, gunner _parent, commander _parent]}) exitWith { + _vehType = typeOf (objectParent _x); + }; +} forEach (units _grp); + +// Exit with infantry, if not as crew in objectParent +if (_vehType isEqualTo "") exitWith {_grpType}; + +// Otherwise continue to get the type of the vehicle +[] call { + if ((toLower _vehType) in KPLIB_b_light_classes) exitWith {_grpType = "light";}; + if ((toLower _vehType) in KPLIB_b_heavy_classes) exitWith {_grpType = "heavy";}; + if ((toLower _vehType) in KPLIB_b_air_classes) exitWith {_grpType = "air";}; + if ((toLower _vehType) in KPLIB_b_static_classes) exitWith {_grpType = "static";}; + if ((toLower _vehType) in KPLIB_b_support_classes) exitWith {_grpType = "support";}; + if ([_vehType] call KPLIB_fnc_isClassUAV) exitWith {_grpType = "uav";}; +}; + +_grpType diff --git a/kp_liberation.brf_sumava/functions/fn_getLessLoadedHC.sqf b/kp_liberation.brf_sumava/functions/fn_getLessLoadedHC.sqf new file mode 100644 index 0000000..9981981 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getLessLoadedHC.sqf @@ -0,0 +1,31 @@ +/* + File: fn_getLessLoadedHC.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the HC with the current less load. + + Parameter(s): + NONE + + Returns: + Less loaded HC [OBJECT] +*/ + +private _hcArray = []; +private _hc = objNull; + +{ + _hc = _x; + _hcArray pushBack [count (allUnits select {(owner _x) isEqualTo (owner _hc)}), _hc]; +} forEach (entities "HeadlessClient_F"); + +if !(_hcArray isEqualTo []) then { + _hcArray sort true; + (_hcArray select 0) select 1 +} else { + objNull +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getLoadout.sqf b/kp_liberation.brf_sumava/functions/fn_getLoadout.sqf new file mode 100644 index 0000000..af8d44c --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getLoadout.sqf @@ -0,0 +1,297 @@ +/* + File: fn_getLoadout.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-11-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + No description added yet. + + Parameter(s): + _localVariable - Description [DATATYPE, defaults to DEFAULTVALUE] + + Returns: + Function reached the end [BOOL] +*/ +// TODO +/* + + AUTHOR: aeroson + NAME: get_loadout.sqf + VERSION: 3.4 + + DOWNLOAD & PARTICIPATE: + https://github.com/aeroson/a3-loadout + http://forums.bistudio.com/showthread.php?148577-GET-SET-Loadout-(saves-and-loads-pretty-much-everything) + + DESCRIPTION: + I guarantee backwards compatibility. + These scripts allows you set/get (load/save)all of the unit's gear, including: + uniform, vest, backpack, contents of it, all quiped items, all three weapons with their attachments, currently loaded magazines and number of ammo in magazines. + All this while preserving order of items. + Useful for saving/loading loadouts. + Ideal for revive scripts where you have to set exactly the same loadout to newly created unit. + Uses workaround with placeholders to add vest/backpack items, so items stay where you put them. + + PARAMETER(S): + 0 : target unit + 1 : (optional) array of options, default [] : + "ammo" will save ammo count of partially emptied magazines + "repetitive" intended for repetitive use, will not use selectWeapon, means no visible effect on solder, but will not save magazines of assigned items such as laser designator batteries + + RETURNS: + Array : array of strings/arrays containing target unit's loadout, to be used by fnc_set_loadout.sqf + + addAction support: + Saves player's loadout into global var loadout + +*/ + +private ["_target","_options","_saveMagsAmmo","_isRepetitive","_isOnFoot","_currentWeapon","_currentMode","_isFlashlightOn","_isIRLaserOn","_magazinesAmmo","_loadedMagazines","_saveWeaponMagazines","_getMagsAmmo","_backPackItems","_assignedItems","_data"]; + +_options = []; + +// addAction support +if(count _this < 4) then { + #define PARAM_START private ["_PARAM_INDEX"]; _PARAM_INDEX=0; + #define PARAM_REQ(A) if (count _this <= _PARAM_INDEX) exitWith { systemChat format["required param '%1' not supplied in file:'%2' at line:%3", #A ,__FILE__,__LINE__]; }; A = _this select _PARAM_INDEX; _PARAM_INDEX=_PARAM_INDEX+1; + #define PARAM(A,B) A = B; if (count _this > _PARAM_INDEX) then { A = _this select _PARAM_INDEX; }; _PARAM_INDEX=_PARAM_INDEX+1; + PARAM_START + PARAM_REQ(_target) + PARAM(_options,[]) +} else { + _target = player; +}; + +_saveMagsAmmo = "ammo" in _options; +_isRepetitive = "repetitive" in _options; +_isOnFoot = vehicle _target == _target; + +_currentWeapon = ""; +_currentMode = ""; +_isFlashlightOn = false; +_isIRLaserOn = false; + +_magazinesAmmo = magazinesAmmoFull _target; + +// save weapon mode and muzzle +if(_isOnFoot) then { + _currentWeapon = currentMuzzle _target; + _currentMode = currentWeaponMode _target; + _isFlashlightOn = _target isFlashlightOn _currentWeapon; + _isIRLaserOn = _target isIRLaserOn _currentWeapon; +} else { + _currentWeapon = currentWeapon _target; +}; + + +_loadedMagazines=[]; + +// universal weapon saving +_saveWeaponMagazines = { + private ["_weapon","_magazines","_muzzles","_saveMagazine"]; + _weapon = _this select 0; + _magazines = []; + + _saveMagazine = { // find, save and eat mag for _weapon + private ["_weapon","_magazine","_ammo"]; + _weapon = _this select 0; + _magazine = ""; + _ammo = 0; + { + if((_x select 4)==_weapon) then { + _magazine = _x select 0; + _ammo = _x select 1; + _x = -1; + }; + } forEach _magazinesAmmo; + _magazinesAmmo = _magazinesAmmo - [-1]; + if(_magazine!="") then { + if(_saveMagsAmmo) then { + _magazines set [count _magazines, [_magazine, _ammo]]; + } else { + _magazines set [count _magazines, _magazine]; + }; + }; + }; + + if(_weapon != "") then { + [_weapon] call _saveMagazine; + _muzzles = configFile>>"CfgWeapons">>_weapon>>"muzzles"; + if(isArray(_muzzles)) then { + { // add one mag for each muzzle + if (_x != "this") then { + [_x] call _saveMagazine; + }; + } forEach getArray(_muzzles); + }; + }; + + _loadedMagazines set [count _loadedMagazines, _magazines]; +}; + +// save loaded mags for each weapon separetely, since some weapons can use same magazines +[primaryWeapon _target] call _saveWeaponMagazines; +[handgunWeapon _target] call _saveWeaponMagazines; +[secondaryWeapon _target] call _saveWeaponMagazines; + +_getMagsAmmo = { // default function with _saveMagsAmmo == false + _this select 0; +}; +if(_saveMagsAmmo) then { + // check if input array contains magazine, if it does, find it add ammo count + _getMagsAmmo = { + private ["_items","_location","_item","_itemIndex"]; + _items = _this select 0; + _location = _this select 1; + { + _item = _x; + _itemIndex = _forEachIndex; + { + if((_x select 4)==_location && (_x select 0)==_item) then { + _items set[_itemIndex, [_item, _x select 1]]; + _x = -1; + }; + } forEach _magazinesAmmo; + _magazinesAmmo = _magazinesAmmo - [-1]; + } forEach _items; + _items; + }; + +}; + +// get backpack items +_cargo = getbackpackcargo (unitbackpack _target); +_backpacks = []; +{ + for "_i" from 1 to ((_cargo select 1) select _foreachindex) do { + _backpacks set [count _backpacks, _x]; + }; +} foreach (_cargo select 0); +_backPackItems = (backpackitems _target) + _backpacks; + +// get assigned items, headgear and goggles is not part of assignedItems +_assignedItems = assignedItems _target; +_headgear = headgear _target; +_goggles = goggles _target; +if((_headgear != "") && !(_headgear in _assignedItems)) then { + _assignedItems set [count _assignedItems, _headgear]; +}; +if((_goggles != "") && !(_goggles in _assignedItems)) then { + _assignedItems set [count _assignedItems, _goggles]; +}; + + + +/* +// use this once magazinesAmmoFull is fixed and shows magazines of assignedItems + +// get magazines of everything else except weapons, most likely assigned items +// only ["Uniform","Vest","Backpack"] locations remain, weapon locations have already been eaten +_magazines = []; +{ + if(_x select 2) then { + if(_saveMagsAmmo) then { + _magazines set[count _magazines, [_x select 0, _x select 1]]; + } else { + _magazines set[count _magazines, _x select 0]; + }; + _x = -1; + }; +} forEach _magazinesAmmo; +_magazinesAmmo = _magazinesAmmo - [-1]; +_loadedMagazines set [3, _magazines]; +*/ + + +// old method using selectWeapon, cycles and tries to selectWeapon all assigned items +if(!_isRepetitive) then { + private ["_weaponHasChanged"]; + _weaponHasChanged = false; + + // get magazines of all assigned items + _magazines = []; + { + _target selectWeapon _x; + if(currentWeapon _target==_x) then { + _weaponHasChanged = true; + _magazine = currentMagazine _target; + if(_magazine != "") then { + if(_saveMagsAmmo) then { + _magazines set[count _magazines, [_magazine, _target ammo _x]]; + } else { + _magazines set[count _magazines, _magazine]; + }; + }; + }; + } forEach _assignedItems; + _loadedMagazines set [3, _magazines]; + + // select back originaly selected weapon and mode, only if weapon has changed + if(_weaponHasChanged) then { + if(_isOnFoot) then { + if(_currentWeapon != "" && _currentMode != "") then { + _muzzles = 0; + while{ (_currentWeapon != currentMuzzle _target || _currentMode != currentWeaponMode _target ) && _muzzles < 200 } do { + _target action ["SWITCHWEAPON", _target, _target, _muzzles]; + _muzzles = _muzzles + 1; + }; + if(_isFlashlightOn) then { + _target action ["GunLightOn"]; + } else { + _target action ["GunLightOff"]; + }; + if(_isIRLaserOn) then { + _target action ["IRLaserOn"]; + } else { + _target action ["IRLaserOff"]; + }; + }; + } else { + _currentMode = ""; + }; + if(_currentMode == "") then { + if(_currentWeapon=="") then { + _target action ["SWITCHWEAPON", _target, _target, 0]; + } else { + _target selectWeapon _currentWeapon; + }; + }; + }; +}; + + +_data = [ + _assignedItems, //0 [] + + primaryWeapon _target, //1 "" + primaryWeaponItems _target, //2 [] + + handgunWeapon _target, //3 "" + handgunItems _target, //4 [] + + secondaryWeapon _target, //5 "" + secondaryWeaponItems _target, //6 [] + + uniform _target, //7 "" + [uniformItems _target, "Uniform"] call _getMagsAmmo, //8 ["magazine without ammo count",["magazine with ammo count",30], ....] + + vest _target, //9 "" + [vestItems _target, "Vest"] call _getMagsAmmo, //10 + + backpack _target, //11 "" + [_backPackItems, "Backpack"] call _getMagsAmmo, //12 + + _loadedMagazines, //13 (optional) [[primary mags],[handgun mags],[secondary mags],[other mags]] + _currentWeapon, //14 (optional) "" + _currentMode //15 (optional) "" +]; + +// addAction support +if(count _this < 4) then { + _data; +} else { + loadout = _data; + //playSound3D ["A3\Sounds_F\sfx\ZoomOut.wav", _target]; +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getLocalCap.sqf b/kp_liberation.brf_sumava/functions/fn_getLocalCap.sqf new file mode 100644 index 0000000..924b485 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getLocalCap.sqf @@ -0,0 +1,18 @@ +/* + File: fn_getLocalCap.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the current blufor unit cap. + + Parameter(s): + NONE + + Returns: + Blufor unit cap [NUMBER] +*/ + +(round (infantry_cap / 2)) min GRLIB_blufor_cap diff --git a/kp_liberation.brf_sumava/functions/fn_getLocationName.sqf b/kp_liberation.brf_sumava/functions/fn_getLocationName.sqf new file mode 100644 index 0000000..9de46e9 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getLocationName.sqf @@ -0,0 +1,28 @@ +/* + File: fn_getLocationName.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the name of the nearest FOB/sector from given position. + + Parameter(s): + _pos - Position to get the location name from [POSITION, defaults to [0, 0, 0]] + + Returns: + Location name [STRING] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]] +]; + +private _name = [_pos] call KPLIB_fnc_getFobName; + +if (_name isEqualTo "") then { + markerText ([50, _pos] call KPLIB_fnc_getNearestSector) +} else { + ["FOB", _name] joinString " " +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getMilitaryId.sqf b/kp_liberation.brf_sumava/functions/fn_getMilitaryId.sqf new file mode 100644 index 0000000..dc32f50 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getMilitaryId.sqf @@ -0,0 +1,37 @@ +/* + File: fn_getMilitaryId.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-09-14 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Converts a number to an ID string. + + Parameter(s): + _number - ID number to convert (starts with 0 as first character) [NUMBER, defaults to -1] + + Returns: + Military ID [STRING] +*/ + +params [ + ["_number", -1, [0]] +]; + +if (_number isEqualTo -1) exitWith {["No valid number given"] call BIS_fnc_error; ""}; + +_number = _number + 1; +private _return = []; +private _alphabetCount = count military_alphabet; +private _remain = 0; + +while {_number > 0} do { + _remain = _number % _alphabetCount; + _number = floor (_number / _alphabetCount); + _return append [_remain - 1]; +}; + +reverse _return; + +(_return apply {military_alphabet select _x}) joinString " " diff --git a/kp_liberation.brf_sumava/functions/fn_getMobileRespawns.sqf b/kp_liberation.brf_sumava/functions/fn_getMobileRespawns.sqf new file mode 100644 index 0000000..918e092 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getMobileRespawns.sqf @@ -0,0 +1,27 @@ +/* + File: fn_getMobileRespawns.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets all mobile respawn vehicles sorted by their positions X value. + + Parameter(s): + NONE + + Returns: + Mobile respawns [ARRAY] +*/ + +private _respawn_trucks = vehicles select { + (typeOf _x) in [Respawn_truck_typename, huron_typename] && + {alive _x} && + {_x distance2d startbase > 500} && + {abs (speed _x) < 5} && + {(isTouchingGround _x || {5 > ((getPos _x) select 2)})} && + {!surfaceIsWater (getPos _x)} +}; + +[_respawn_trucks, [], {(getPos _x) select 0}, 'ASCEND'] call BIS_fnc_sortBy diff --git a/kp_liberation.brf_sumava/functions/fn_getNearbyPlayers.sqf b/kp_liberation.brf_sumava/functions/fn_getNearbyPlayers.sqf new file mode 100644 index 0000000..2b31a1a --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearbyPlayers.sqf @@ -0,0 +1,24 @@ +/* + File: fn_getNearbyPlayers.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets all alive players inside given radius to given position. + + Parameter(s): + _pos - Center position to search from [POSITION, defaults to [0, 0, 0]] + _radius - Radius from center position to search from [NUMBER, defaults to 100] + + Returns: + Nearby alive players [ARRAY] +*/ + +params [ + ["_pos", [0, 0, 0], [[2, 3]]], + ["_radius", 100, [0]] +]; + +allPlayers select {alive _x && {(_x distance2d _pos) < _radius}} diff --git a/kp_liberation.brf_sumava/functions/fn_getNearestBluforObjective.sqf b/kp_liberation.brf_sumava/functions/fn_getNearestBluforObjective.sqf new file mode 100644 index 0000000..f148d16 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearestBluforObjective.sqf @@ -0,0 +1,28 @@ +/* + File: fn_getNearestBluforObjective.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the position of the nearest blufor sector/fob from given position. + + Parameter(s): + _pos - Position to check for nearest blufor sector/fob [POSITION, defaults to [0, 0, 0]] + + Returns: + Nearest blufor sector/fob position [POSITION] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]] +]; + +if (GRLIB_all_fobs isEqualTo [] && blufor_sectors isEqualTo []) exitWith {[]}; + +private _objectives = GRLIB_all_fobs + (blufor_sectors apply {markerPos _x}); +_objectives = _objectives apply {[_x distance2d _pos, _x]}; +_objectives sort true; + +(_objectives select 0) select 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getNearestFob.sqf b/kp_liberation.brf_sumava/functions/fn_getNearestFob.sqf new file mode 100644 index 0000000..6280db5 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearestFob.sqf @@ -0,0 +1,28 @@ +/* + File: fn_getNearestFob.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the nearest FOB position to given position. + + Parameter(s): + _pos - Position to find the nearest FOB from [POSITION, defaults to getPos player] + + Returns: + Nearest FOB position [POSITION] +*/ + +params [ + ["_pos", getPos player, [[]], [2, 3]] +]; + +if !(GRLIB_all_fobs isEqualTo []) then { + private _fobs = GRLIB_all_fobs apply {[_pos distance2d _x, _x]}; + _fobs sort true; + (_fobs select 0) select 1 +} else { + [] +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getNearestSector.sqf b/kp_liberation.brf_sumava/functions/fn_getNearestSector.sqf new file mode 100644 index 0000000..78308dc --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearestSector.sqf @@ -0,0 +1,31 @@ +/* + File: fn_getNearestSector.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the marker of the nearest sector from given position inside given radius. + + Parameter(s): + _radius - Radius in which to look for the nearest sector [NUMBER, defaults to 1000] + _pos - Position to look from for the nearest sector [POSITION, defaults to getPos player] + + Returns: + Marker of nearest sector [STRING] +*/ + +params [ + ["_radius", 1000, [0]], + ["_pos", getPos player, [[]], [2, 3]] +]; + +private _sectors = sectors_allSectors select {((markerPos _x) distance2d _pos) < _radius}; + +if (_sectors isEqualTo []) exitWith {""}; + +_sectors = _sectors apply {[(markerPos _x) distance2d _pos, _x]}; +_sectors sort true; + +(_sectors select 0) select 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getNearestTower.sqf b/kp_liberation.brf_sumava/functions/fn_getNearestTower.sqf new file mode 100644 index 0000000..ceab507 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearestTower.sqf @@ -0,0 +1,30 @@ +/* + File: fn_getNearestTower.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets nearest radio tower marker occupied by given side inside given radius from given position. + + Parameter(s): + _pos - Position from which to look for the nearest radio tower [POSITION, defaults to [0, 0, 0]] + _side - Side of owner for nearest radio tower [SIDE, defaults to GRLIB_side_enemy] + _radius - Radius in which to look for the nearest radio tower [NUMBER, defaults to 1000] + + Returns: + Marker of nearest radio tower [STRING] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]], + ["_side", GRLIB_side_enemy, [sideEmpty]], + ["_radius", 1000, [0]] +]; + +private _towers = [sectors_tower select {_x in blufor_sectors}, sectors_tower - blufor_sectors] select (_side == GRLIB_side_enemy); +_towers = (_towers apply {[(markerPos _x) distance2d _pos, _x]}) select {(_x select 0) <= _radius}; +_towers sort true; + +(_towers select 0) select 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getNearestViVTransport.sqf b/kp_liberation.brf_sumava/functions/fn_getNearestViVTransport.sqf new file mode 100644 index 0000000..0f33d36 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getNearestViVTransport.sqf @@ -0,0 +1,24 @@ +/* + File: fn_getNearestViVTransport.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-08 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets nearest object that can transport given object via ViV. + + Parameter(s): + _object - Object to get a transport vehicle for [OBJECT, defaults to objNull] + _radius - Radius to look for a transport vehicle [NUMBER, defaults to 15] + + Returns: + Closest transport or objNull [OBJECT] +*/ + +params [ + ["_object", objNull, [objNull]], + ["_radius", 15, [0]] +]; + +((nearestObjects [_object, ["AllVehicles"], _radius]) select {(_x canVehicleCargo _object) select 0}) param [0, objNull] diff --git a/kp_liberation.brf_sumava/functions/fn_getOpforCap.sqf b/kp_liberation.brf_sumava/functions/fn_getOpforCap.sqf new file mode 100644 index 0000000..0e8aef5 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getOpforCap.sqf @@ -0,0 +1,18 @@ +/* + File: fn_getOpforCap.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets current amount of total opfor units. + + Parameter(s): + NONE + + Returns: + Total opfor units [NUMBER] +*/ + +GRLIB_side_enemy countSide allUnits diff --git a/kp_liberation.brf_sumava/functions/fn_getOpforFactor.sqf b/kp_liberation.brf_sumava/functions/fn_getOpforFactor.sqf new file mode 100644 index 0000000..f67d909 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getOpforFactor.sqf @@ -0,0 +1,22 @@ +/* + File: fn_getOpforFactor.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-11-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the opfor factor to scale down enemy forces, if "adapt to player count" mission param is enabled. + + Parameter(s): + NONE + + Returns: + Opfor factor [NUMBER] +*/ + +if !(GRLIB_adaptive_opfor) exitWith {1}; + +private _bluforcount = (0.2 * (GRLIB_side_friendly countSide allUnits)) + ([] call KPLIB_fnc_getPlayerCount); + +(0.5 + (_bluforcount / 25.0)) min 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getOpforSpawnPoint.sqf b/kp_liberation.brf_sumava/functions/fn_getOpforSpawnPoint.sqf new file mode 100644 index 0000000..6b90b11 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getOpforSpawnPoint.sqf @@ -0,0 +1,108 @@ +/* + File: fn_getOpforSpawnPoint.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-17 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets a random opfor spawn point marker name respecting following conditions: + * Wasn't used already in the current session (server restart to server restart) + * Distance to blufor FOBs and sectors is more than given min distance + * Distance to blufor FOBs and sectors is less than given max distance + * Distance to an opfor sector is less than 2000m (to avoid strange spawn in blufor territory) + * If nearest is set to true, the valid spawn point which is nearest to any blufor sector/FOB is returned + * If a position is given, the closest valid spawn point to that position is returned + + Parameter(s): + _min - Minimum distance to any blufor sector or FOB [NUMBER, defaults to 2000] + _max - Maximum distance to any blufor sector or FOB [NUMBER, defaults to 20000] + _nearest - Provide the nearest spawn point of valid points [BOOL, defaults to false] + _pos - Position if the nearest spawn point to this should be selected [POSITION, defaults to [0, 0, 0]] + + Returns: + Opfor spawn point [STRING] +*/ + +params [ + ["_min", 2000, [0]], + ["_max", 20000, [0]], + ["_nearest", false, [false]], + ["_pos", [0, 0, 0], [[]], [2, 3]] +]; + +private _possibleSpawns = []; + +// Only check for opfor spawn points which aren't used already in the current session +private _spawnsToCheck = sectors_opfor; +if (!isNil "used_positions") then { + _spawnsToCheck = sectors_opfor - used_positions; +}; + +private ["_valid", "_current", "_distances"]; +{ + _valid = true; + _current = _x; + + // Shouldn't be too close to the current/last position of a secondary mission + if (!isNil "secondary_objective_position" && _valid) then { + if !(secondary_objective_position isEqualTo []) then { + _valid = !(((markerPos _current) distance2d secondary_objective_position) < 500); + }; + }; + + if (_valid) then { + // Fetch distances to FOBs + _distances = (GRLIB_all_fobs apply {(markerPos _current) distance2d _x}) select {_x < _max}; + + // Fetch distances to blufor sectors + _distances append ((blufor_sectors apply {(markerPos _current) distance2d (markerPos _x)}) select {_x < _max}); + + // Invalid, if all sectors and FOBs are further away than given max distance + if (_distances isEqualTo []) then { + _valid = false; + } else { + // Invalid, if one sector or FOB is closer than min distance + _distances sort true; + if ((_distances select 0) < _min) then { + _valid = false; + }; + }; + }; + + // Make sure that there is an opfor sector in sensible range to spawn + if (_valid) then { + if ((sectors_allSectors - blufor_sectors) findIf {((markerPos _current) distance2D (markerPos _x)) < 2000} < 0) then { + _valid = false; + }; + }; + + // Make sure that there is no blufor unit inside min dist to spawn + if (_valid) then { + if (([markerpos _current, _min, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0) then { + _valid = false; + }; + }; + + // Add distance and marker name to possible spawn, if still valid + if (_valid) then { + _possibleSpawns pushBack [_distances select 0, _current]; + }; +} forEach _spawnsToCheck; + +// Return empty string, if no possible spawn point was found +if (_possibleSpawns isEqualTo []) exitWith {["No opfor spawn point found", "WARNING"] call KPLIB_fnc_log; ""}; + +// Return nearest spawn point to a blufor sector/FOB, if selected via parameter +if (_nearest) exitWith { + _possibleSpawns sort true; + (_possibleSpawns select 0) select 1 +}; + +// Return nearest spawn point to given position, if provided +if !(_pos isEqualTo [0, 0, 0]) exitWith { + ([_possibleSpawns apply {_x select 1}, [_pos] , {_input0 distance (markerPos _x)} , "ASCEND"] call BIS_fnc_sortBy) select 0 +}; + +// Return random spawn point +(selectRandom _possibleSpawns) select 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getPlayerCount.sqf b/kp_liberation.brf_sumava/functions/fn_getPlayerCount.sqf new file mode 100644 index 0000000..1b6a1bd --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getPlayerCount.sqf @@ -0,0 +1,18 @@ +/* + File: fn_getPlayerCount.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-11-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the number of connected players without counting headless clients. + + Parameter(s): + NONE + + Returns: + Amount of players [NUMBER] +*/ + +count (allPlayers - entities "HeadlessClient_F") diff --git a/kp_liberation.brf_sumava/functions/fn_getResistanceTier.sqf b/kp_liberation.brf_sumava/functions/fn_getResistanceTier.sqf new file mode 100644 index 0000000..b078d8e --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getResistanceTier.sqf @@ -0,0 +1,22 @@ +/* + File: fn_getResistanceTier.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-08 + Last Update: 2019-12-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the current tier level of the resistance forces. + + Parameter(s): + NONE + + Returns: + Tier level [NUMBER] +*/ + +switch (true) do { + case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier3): {3}; + case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier2): {2}; + default {1}; +}; diff --git a/kp_liberation.brf_sumava/functions/fn_getSaveData.sqf b/kp_liberation.brf_sumava/functions/fn_getSaveData.sqf new file mode 100644 index 0000000..37e7cb9 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getSaveData.sqf @@ -0,0 +1,208 @@ +/* + File: fn_getSaveData.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-03-29 + Last Update: 2020-08-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gather current session data for saving. + + Parameter(s): + NONE + + Returns: + Save data [ARRAY] +*/ + +private _objectsToSave = []; +private _resourceStorages = []; +private _aiGroups = []; + +private _allObjects = []; +private _allStorages = []; +private _allMines = []; +private _allCrates = []; + +// Get all blufor groups +private _allBlueGroups = allGroups select { + (side _x == GRLIB_side_friendly) && // Only blufor groups + {isNull objectParent (leader _x)} && // Make sure it's an infantry group + {!(((units _x) select {alive _x}) isEqualTo [])} // At least one unit has to be alive +}; + +// Fetch all objects and AI groups near each FOB +private ["_fobPos", "_fobObjects", "_grpUnits", "_fobMines"]; +{ + _fobPos = _x; + _fobObjects = (_fobPos nearObjects (GRLIB_fob_range * 1.2)) select { + ((toLower (typeof _x)) in KPLIB_classnamesToSave) && // Exclude classnames which are not in the presets + {alive _x} && // Exclude dead or broken objects + {getObjectType _x >= 8} && // Exclude preplaced terrain objects + {speed _x < 5} && // Exclude moving objects (like civilians driving through) + {isNull attachedTo _x} && // Exclude attachTo'd objects + {((getpos _x) select 2) < 10} && // Exclude hovering helicopters and the like + {!(_x getVariable ["KP_liberation_edenObject", false])} && // Exclude all objects placed via editor in mission.sqm + {!(_x getVariable ["KP_liberation_preplaced", false])} && // Exclude preplaced (e.g. little birds from carrier) + {!((toLower (typeOf _x)) in KPLIB_crates)} // Exclude storage crates (those are handled separately) + }; + + _allObjects = _allObjects + (_fobObjects select {!((toLower (typeOf _x)) in KPLIB_storageBuildings)}); + _allStorages = _allStorages + (_fobObjects select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}); + + // Process all groups near this FOB + { + // Get only living AI units of the group by excluding possible POWs currently in the player group + _grpUnits = (units _x) select {!(isPlayer _x) && (alive _x) && !((typeOf _x) in KPLIB_o_inf_classes) && !((typeOf _x) in militia_squad)}; + // Add to save array + _aiGroups pushBack [getPosATL (leader _x), (_grpUnits apply {typeOf _x})]; + } forEach (_allBlueGroups select {(_fobPos distance2D (leader _x)) < (GRLIB_fob_range * 1.2)}); + + // Save all mines around FOB + _fobMines = allMines inAreaArray [_fobPos, GRLIB_fob_range * 1.2, GRLIB_fob_range * 1.2]; + _allMines append (_fobMines apply {[ + getPosWorld _x, + [vectorDirVisual _x, vectorUpVisual _x], + typeOf _x, + _x mineDetectedBy GRLIB_side_friendly + ]}); +} forEach GRLIB_all_fobs; + +// Save all fetched objects +private ["_savedPos", "_savedVecDir", "_savedVecUp", "_class", "_hasCrew"]; +{ + // Position data + _savedPos = getPosWorld _x; + _savedVecDir = vectorDirVisual _x; + _savedVecUp = vectorUpVisual _x; + _class = typeOf _x; + _hasCrew = false; + + // Determine if vehicle is crewed + if ((toLower _class) in KPLIB_b_allVeh_classes) then { + if (({!isPlayer _x} count (crew _x) ) > 0) then { + _hasCrew = true; + }; + }; + + // Only save player side, seized or captured objects + if ( + (!(_class in civilian_vehicles) || {_x getVariable ["KPLIB_seized", false]}) && + (!((toLower _class) in KPLIB_o_allVeh_classes) || {_x getVariable ["KPLIB_captured", false]}) + ) then { + _objectsToSave pushBack [_class, _savedPos, _savedVecDir, _savedVecUp, _hasCrew]; + }; +} forEach _allObjects; + +// Save all storages and resources +private ["_supplyValue", "_ammoValue", "_fuelValue"]; +{ + // Position data + _savedPos = getPosWorld _x; + _savedVecDir = vectorDirVisual _x; + _savedVecUp = vectorUpVisual _x; + _class = typeOf _x; + + // Resource variables + _supplyValue = 0; + _ammoValue = 0; + _fuelValue = 0; + + // Sum all stored resources of current storage + { + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach (attachedObjects _x); + + // Add to saving with corresponding resource values + _resourceStorages pushBack [_class, _savedPos, _savedVecDir, _savedVecUp, _supplyValue, _ammoValue, _fuelValue]; +} forEach _allStorages; + +// Save crates at blufor sectors which spawn crates on activation +{ + _allCrates append ( + ((nearestObjects [markerPos _x, KPLIB_crates, GRLIB_capture_size]) select {isNull attachedTo _x}) apply { + [typeOf _x, _x getVariable ["KP_liberation_crate_value", 0], getPosATL _x] + } + ); +} forEach (blufor_sectors select {_x in sectors_factory || _x in sectors_capture}); + +// Pack all stats in one array +private _stats = [ + stats_ammo_produced, + stats_ammo_spent, + stats_blufor_soldiers_killed, + stats_blufor_soldiers_recruited, + stats_blufor_teamkills, + stats_blufor_vehicles_built, + stats_blufor_vehicles_killed, + stats_civilian_buildings_destroyed, + stats_civilian_vehicles_killed, + stats_civilian_vehicles_killed_by_players, + stats_civilian_vehicles_seized, + stats_civilians_healed, + stats_civilians_killed, + stats_civilians_killed_by_players, + stats_fobs_built, + stats_fobs_lost, + stats_fuel_produced, + stats_fuel_spent, + stats_hostile_battlegroups, + stats_ieds_detonated, + stats_opfor_killed_by_players, + stats_opfor_soldiers_killed, + stats_opfor_vehicles_killed, + stats_opfor_vehicles_killed_by_players, + stats_player_deaths, + stats_playtime, + stats_prisoners_captured, + stats_readiness_earned, + stats_reinforcements_called, + stats_resistance_killed, + stats_resistance_teamkills, + stats_resistance_teamkills_by_players, + stats_secondary_objectives, + stats_sectors_liberated, + stats_sectors_lost, + stats_spartan_respawns, + stats_supplies_produced, + stats_supplies_spent, + stats_vehicles_recycled +]; + +// Pack the weights in one array +private _weights = [ + infantry_weight, + armor_weight, + air_weight +]; + +// Pack the save data in the save array +[ + kp_liberation_version, + date, + _objectsToSave, + _resourceStorages, + _stats, + _weights, + _aiGroups, + blufor_sectors, + combat_readiness, + GRLIB_all_fobs, + GRLIB_permissions, + GRLIB_vehicle_to_military_base_links, + KP_liberation_civ_rep, + KP_liberation_clearances, + KP_liberation_guerilla_strength, + KP_liberation_logistics, + KP_liberation_production, + KP_liberation_production_markers, + resources_intel, + _allMines, + _allCrates, + KPLIB_sectorTowers +] // return diff --git a/kp_liberation.brf_sumava/functions/fn_getSaveableParam.sqf b/kp_liberation.brf_sumava/functions/fn_getSaveableParam.sqf new file mode 100644 index 0000000..3ab50ab --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getSaveableParam.sqf @@ -0,0 +1,93 @@ +/* + File: fn_getSaveableParam.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2018-01-27 + Last Update: 2020-04-17 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Saves/loads/fetches mission parameter from profileNamespace depending on "_action" argument. + If no action provided value from "KP_load_params" variable is used. + On SP enviroment saving/loading is disabled. + + Parameter(s): + _paramName - Name of parameter [STRING, defaults to ""] + _defaultValue - Default value if parameter not found or no saved value [NUMBER, defaults to 0] + _action - Should save(0)/load(1) from profile namespace or get(2) from selected param value [NUMBER, defaults to nil] + + Returns: + Parameter value [BOOL] +*/ + +params [ + ["_paramName", "", [""]], + ["_defaultValue", 0, [0]], + ["_action", nil, [0]] +]; + +private _saveKey = "KP_LIBERATION_" + (toUpper worldName) + "_SAVE_PARAMS"; +private _value = nil; + +// Use lobby value if no action specified +if(isNil "_action") then {_action = KP_load_params;}; + +// We propably shoud not load parameters on SP environment +if(!isMultiplayer) then {_action = 2}; + +switch (_action) do { + // Save to profileNamespace + case 0: { + _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; + private _savedParams = profileNamespace getVariable _saveKey; + + if(isNil "_savedParams") then { + if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, creating new.", "PARAM"] call KPLIB_fnc_log;}; + // Create new "associative" array + _savedParams = [[_paramName, _value]]; + + } else { + private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0; + if(isNil "_singleParam") then { + if (KP_liberation_savegame_debug > 0) then {[format ["Saving value: %1 for param: %2", _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; + _savedParams pushBack [_paramName, _value]; + + } else { + if (KP_liberation_savegame_debug > 0) then {[format ["Overwriting value: %1 with: %2 for param: %3", (_singleParam select 1), _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; + // _singleparam is an reference to array in _savedParams, we can use "set" + _singleParam set [1, _value]; + }; + }; + + // Save params to profile namespace + profileNamespace setVariable [_saveKey, _savedParams]; + saveProfileNamespace; + }; + // Load from profileNamespace + case 1: { + private _savedParams = profileNamespace getVariable _saveKey; + if(isNil "_savedParams") then { + if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, can't load!", "PARAM"] call KPLIB_fnc_log;}; + // Fix param save data + profileNamespace setVariable [_saveKey, []]; + if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; + _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; + } else { + private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0; + if(isNil "_singleParam") then { + if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; + _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; + } else { + if (KP_liberation_savegame_debug > 0) then {[format ["Found value: %1 for param: %2,", (_singleParam select 1), _paramName], "PARAM"] call KPLIB_fnc_log;}; + _value = _singleParam select 1; + }; + }; + }; + // Get param + default { + if (KP_liberation_savegame_debug > 0) then {[format ["Fetching selected value for param: %1", _paramName], "PARAM"] call KPLIB_fnc_log;}; + _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; + }; +}; + +// Return param value +_value; diff --git a/kp_liberation.brf_sumava/functions/fn_getSectorOwnership.sqf b/kp_liberation.brf_sumava/functions/fn_getSectorOwnership.sqf new file mode 100644 index 0000000..ff7e33e --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getSectorOwnership.sqf @@ -0,0 +1,39 @@ +/* + File: fn_getSectorOwnership.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-05-02 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the side of the owner of a given position with given radius. + + Parameter(s): + _pos - Position to get owner [POSITION, defaults to [0, 0, 0]] + _radius - Radius to count units [NUMBER, defaults to GRLIB_capture_size] + + Returns: + Owner of the position [SIDE] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]], + ["_radius", GRLIB_capture_size, [0]] +]; + +private _capCount = 3; +private _capRatio = 0.85; +private _capRatioMin = 0.51; +private _blufor = [_pos, _radius, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +private _opfor = [_pos, _radius, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount; +private _ratio = 0; + +if (_blufor + _opfor != 0) then { + _ratio = _blufor / (_blufor + _opfor); +}; + +if (_blufor > 0 && {(_opfor <= _capCount && _ratio > _capRatioMin) || _ratio > _capRatio}) exitWith {GRLIB_side_friendly}; +if (_blufor == 0 && _opfor > _capCount) exitWith {GRLIB_side_enemy}; +if (_blufor == 0 && _opfor <= _capCount) exitWith {GRLIB_side_civilian}; + +GRLIB_side_resistance diff --git a/kp_liberation.brf_sumava/functions/fn_getSectorRange.sqf b/kp_liberation.brf_sumava/functions/fn_getSectorRange.sqf new file mode 100644 index 0000000..6574417 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getSectorRange.sqf @@ -0,0 +1,25 @@ +/* + File: fn_getSectorRange.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2019-12-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the sector size with taking the given amount of units into account. + + Parameter(s): + _unitCount - Number of units to take into account [NUMBER, defaults to 0] + + Returns: + Calculated sector size [NUMBER] +*/ + +params [ + ["_unitCount", 0, [0]] +]; + + +if (_unitCount < (GRLIB_sector_cap / 2)) exitWith {GRLIB_sector_size}; +if (_unitCount <= GRLIB_sector_cap) exitWith {GRLIB_sector_size - (GRLIB_sector_size * 0.5 * ((_unitCount / GRLIB_sector_cap) - 0.5))}; +GRLIB_sector_size * 0.75 diff --git a/kp_liberation.brf_sumava/functions/fn_getSquadComp.sqf b/kp_liberation.brf_sumava/functions/fn_getSquadComp.sqf new file mode 100644 index 0000000..9ade330 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getSquadComp.sqf @@ -0,0 +1,58 @@ +/* + File: fn_getSquadComp.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-24 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Provides an infantry squad composition of classnames in accordance to the current weights to adapt to the players playstyle. + + Parameter(s): + _type - Type of infantry. Army or militia [STRING, defaults to "army"] + + Returns: + Array of infantry classnames [ARRAY] +*/ + +params [ + ["_type", "army", [""]] +]; + +private _squadcomp = []; + +if (_type == "army") then { + private _selected = false; + private _randomchance = 0; + _squadcomp = KPLIB_o_squadStd; + + if (armor_weight > 40 && !_selected) then { + _randomchance = (armor_weight - 35) * 1.4; + if ((random 100) < _randomchance) then { + _selected = true; + _squadcomp = KPLIB_o_squadTank; + }; + }; + + if (air_weight > 40 && !_selected) then { + _randomchance = (air_weight - 35) * 1.4; + if ((random 100) < _randomchance) then { + _selected = true; + _squadcomp = KPLIB_o_squadAir; + }; + }; + + if (infantry_weight > 40 && !_selected) then { + _randomchance = (infantry_weight - 35) * 1.4; + if ((random 100) < _randomchance) then { + _selected = true; + _squadcomp = KPLIB_o_squadInf; + }; + }; +} else { + private _multiplier = 1; + if (GRLIB_unitcap < 1) then {_multiplier = GRLIB_unitcap;}; + while {count _squadcomp < (10 * _multiplier)} do {_squadcomp pushback (selectRandom militia_squad)}; +}; + +_squadcomp diff --git a/kp_liberation.brf_sumava/functions/fn_getStoragePositions.sqf b/kp_liberation.brf_sumava/functions/fn_getStoragePositions.sqf new file mode 100644 index 0000000..967d8fb --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getStoragePositions.sqf @@ -0,0 +1,31 @@ +/* + File: fn_getStoragePositions.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-03-27 + Last Update: 2020-03-30 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the storage positions and the unload distance for given storage object. + + Parameter(s): + _storage - Storage object [OBJECT, defaults to objNull] + + Returns: + Positions array and unload distance [ARRAY] +*/ + +params [ + ["_storage", objNull, [objNull]] +]; + +if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; [[], 0]}; + +private _data = [ + [KP_liberation_small_storage_building, [KP_liberation_small_storage_positions, 4]], + [KP_liberation_large_storage_building, [KP_liberation_large_storage_positions, 6.5]] +] select {(typeOf _storage) isEqualTo (_x select 0)}; + +if (_data isEqualTo []) exitWith {["No valid storage object given"] call BIS_fnc_error; [[], 0]}; + +(_data select 0) select 1 diff --git a/kp_liberation.brf_sumava/functions/fn_getUnitPositionId.sqf b/kp_liberation.brf_sumava/functions/fn_getUnitPositionId.sqf new file mode 100644 index 0000000..b6d33ad --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getUnitPositionId.sqf @@ -0,0 +1,29 @@ +/* + File: fn_getUnitPositionId.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the position ID of given unit with vehicleVarName bypassing. + + Parameter(s): + _unit - Unit to get the position ID from [OBJECT, defaults to objNull] + + Returns: + Position ID [NUMBER] +*/ + +params [ + ["_unit", objNull, [objNull]] +]; + +if (isNull _unit) exitWith {["Null object given"] call BIS_fnc_error; -1}; + +private _vvn = vehicleVarName _unit; +_unit setVehicleVarName ""; +private _str = str _unit; +_unit setVehicleVarName _vvn; + +parseNumber (_str select [(_str find ":") + 1]) diff --git a/kp_liberation.brf_sumava/functions/fn_getUnitsCount.sqf b/kp_liberation.brf_sumava/functions/fn_getUnitsCount.sqf new file mode 100644 index 0000000..e33f9f2 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getUnitsCount.sqf @@ -0,0 +1,31 @@ +/* + File: fn_getUnitsCount.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-05-08 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Gets the amount of units of given side inside given radius of given position. + + Parameter(s): + _pos - Description [POSITION, defaults to [0, 0, 0] + _radius - Description [NUMBER, defaults to 100] + _side - Description [SIDE, defaults to GRLIB_side_friendly] + + Returns: + Amount of units [NUMBER] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]], + ["_radius", 100, [0]], + ["_side", GRLIB_side_friendly, [sideEmpty]] +]; + +private _amount = _side countSide ((_pos nearEntities ["Man", _radius]) select {!(captive _x) && ((getpos _x) select 2 < 500)}); +{ + _amount = _amount + (_side countSide (crew _x)); +} forEach ((_pos nearEntities [["Car", "Tank", "Air", "Boat"], _radius]) select {((getpos _x) select 2 < 500) && count (crew _x) > 0}); + +_amount diff --git a/kp_liberation.brf_sumava/functions/fn_getWeaponComponents.sqf b/kp_liberation.brf_sumava/functions/fn_getWeaponComponents.sqf new file mode 100644 index 0000000..5d945a7 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_getWeaponComponents.sqf @@ -0,0 +1,53 @@ +/* + File: fn_getWeaponComponents.sqf + Author: Zharf - https://github.com/zharf + Date: 2019-06-21 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Snatched from CBA since we don't depend on it yet. + Reports class name of base weapon without attachments and all attachments belonging to a pre equipped weapon. + Base weapon and attachments are reported in lower case capitalization. + Fixed version of BIS_fnc_weaponComponents. + + Parameter(s): + _weapon - A weapons class name with attachments build in [STRING, defaults to ""] + + Returns: + Weapon components [ARRAY] +*/ + +params [ + ["_weapon", "", [""]] +]; + +if (_weapon isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; []}; + +private _config = configFile >> "CfgWeapons" >> _weapon; + +// Return empty array if the weapon doesn't exist +if (!isClass _config) exitWith { + []; +}; + +// get attachments +private _attachments = []; +{ + _attachments pushBack toLower getText (_x >> "item"); +} forEach ("true" configClasses (_config >> "LinkedItems")); // inheritance is apparently disabled for these + +// get first parent without attachments +private _baseWeapon = ""; +while {isClass _config && {getNumber (_config >> "scope") > 0}} do { // Some preset weapons are scope = 1 + if (count (_config >> "LinkedItems") == 0) exitWith { + _baseWeapon = configName _config; + }; + + _config = inheritsFrom _config; +}; + +private _components = [toLower _baseWeapon]; +_components append _attachments; + +_components diff --git a/kp_liberation.brf_sumava/functions/fn_handlePlacedZeusObject.sqf b/kp_liberation.brf_sumava/functions/fn_handlePlacedZeusObject.sqf new file mode 100644 index 0000000..e3d3ad8 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_handlePlacedZeusObject.sqf @@ -0,0 +1,54 @@ +/* + File: fn_handlePlacedZeusObject.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-11 + Last Update: 2020-04-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Applies all KP Liberation values and functionalities for crates, units and vehicles. + + Parameter(s): + _obj - Object to add the functionalities and values to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ +params [ + ["_obj", objNull, [objNull]] +]; + +// Identify kind of placed object once +private _unit = _obj in allUnits; +private _vehicle = _obj in vehicles; +private _crate = (toLower (typeOf _obj)) in KPLIB_crates; + +// Exit if building and no resource crate +if !(_unit || _vehicle || _crate) exitWith {false}; + +// For a vehicle apply clear cargo +if (_vehicle) then { + [_obj] call KPLIB_fnc_clearCargo; + + // Add kill manager and object init to possible crew units + { + _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + [_x] call KPLIB_fnc_addObjectInit; + } forEach (crew _obj); +}; + +// Apply kill manager, if it's not a crate +if !(_crate) then { + _obj addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; +} else { + // Otherwise apply all needed values/functionalities + _obj setMass 500; + _obj setVariable ["KP_liberation_crate_value", 100, true]; + [_obj, true] call KPLIB_fnc_clearCargo; + if (KP_liberation_ace) then {[_obj, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; +}; + +// Add object init codes +[_obj] call KPLIB_fnc_addObjectInit; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_hasPermission.sqf b/kp_liberation.brf_sumava/functions/fn_hasPermission.sqf new file mode 100644 index 0000000..6fcb960 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_hasPermission.sqf @@ -0,0 +1,38 @@ +/* + File: fn_hasPermission.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-11-25 + Last Update: 2020-04-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Checks if local player has the given permission granted. + + Parameter(s): + _permission - Permission to check [NUMBER, defaults to -1] + + Returns: + Has permission granted [BOOL] +*/ + +params [ + ["_permission", -1, [0]] +]; + +if (_permission isEqualTo -1) exitWith {["No permission number given"] call BIS_fnc_error; false}; +if (!GRLIB_permissions_param) exitWith {true}; + +if (isNil "GRLIB_last_permission_check_time") then {GRLIB_last_permission_check_time = -1000;}; + +if (time > GRLIB_last_permission_check_time + 10) then { + GRLIB_last_permission_check_time = time; + GRLIB_permissions_cache = ((GRLIB_permissions select {(_x select 0) isEqualTo (getPlayerUID player)}) select 0) select 2; +}; + +if (isNil "GRLIB_permissions_cache") exitWith {false}; + +if (count GRLIB_permissions_cache > _permission) then { + GRLIB_permissions_cache select _permission +} else { + false +}; diff --git a/kp_liberation.brf_sumava/functions/fn_initSectors.sqf b/kp_liberation.brf_sumava/functions/fn_initSectors.sqf new file mode 100644 index 0000000..e197c16 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_initSectors.sqf @@ -0,0 +1,39 @@ +/* + File: fn_initSectors.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-29 + Last Update: 2020-04-29 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sorts the placed sector markers to their category array. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +sectors_airspawn = []; +sectors_allSectors = []; +sectors_bigtown = []; +sectors_capture = []; +sectors_factory = []; +sectors_military = []; +sectors_opfor = []; +sectors_tower = []; + +{ + switch (true) do { + case (_x find "bigtown" == 0): {sectors_bigtown pushBack _x; sectors_allSectors pushBack _x;}; + case (_x find "capture" == 0): {sectors_capture pushBack _x; sectors_allSectors pushBack _x;}; + case (_x find "factory" == 0): {sectors_factory pushBack _x; sectors_allSectors pushBack _x;}; + case (_x find "military" == 0): {sectors_military pushBack _x; sectors_allSectors pushBack _x;}; + case (_x find "opfor_airspawn" == 0): {sectors_airspawn pushBack _x;}; + case (_x find "opfor_point" == 0): {sectors_opfor pushBack _x;}; + case (_x find "tower" == 0): {sectors_tower pushBack _x; if (isServer) then {_x setMarkerText format ["%1 %2",markerText _x, mapGridPosition (markerPos _x)];}; sectors_allSectors pushBack _x;}; + }; +} forEach allMapMarkers; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_isBigtownActive.sqf b/kp_liberation.brf_sumava/functions/fn_isBigtownActive.sqf new file mode 100644 index 0000000..f6c601a --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_isBigtownActive.sqf @@ -0,0 +1,18 @@ +/* + File: fn_isBigtownActive.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Checks if a bigtown (capital) is currently activated. + + Parameter(s): + NONE + + Returns: + Bigtown currently activated [BOOL] +*/ + +(active_sectors findIf {_x in sectors_bigtown}) != -1 diff --git a/kp_liberation.brf_sumava/functions/fn_isClassUAV.sqf b/kp_liberation.brf_sumava/functions/fn_isClassUAV.sqf new file mode 100644 index 0000000..cd98554 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_isClassUAV.sqf @@ -0,0 +1,24 @@ +/* + File: fn_isClassUAV.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-11-17 + Last Update: 2019-12-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns if given vehicle class is an UAV. + + Parameter(s): + _class - Class of object which will be checked if it is an UAV [STRING, defaults to ""] + + Returns: + Class is UAV [BOOL] +*/ + +params [ + ["_class", "", [""]] +]; + +if (_class isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; + +(getNumber (configFile >> "CfgVehicles" >> _class >> "isUav")) == 1 diff --git a/kp_liberation.brf_sumava/functions/fn_isRadio.sqf b/kp_liberation.brf_sumava/functions/fn_isRadio.sqf new file mode 100644 index 0000000..ac68882 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_isRadio.sqf @@ -0,0 +1,32 @@ +/* + File: fn_isRadio.sqf + Author: Zharf - https://github.com/zharf + Date: 2019-07-07 + Last Update: 2020-05-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns whether the classname is a TFAR/ACRE radio or not. + + Parameter(s): + _class - Description [STRING, defaults to ""] + + Returns: + Item is a radio [BOOL] +*/ + +params [ + ["_class", "", [""]] +]; + +if (_class isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; + +if ((isClass (configFile >> "CfgPatches" >> "tfar_core")) || (isClass (configFile >> "CfgPatches" >> "task_force_radio"))) exitWith { + _class call TFAR_fnc_isRadio +}; + +if (isClass (configFile >> "CfgPatches" >> "acre_api")) exitWith { + [_class] call acre_api_fnc_isRadio +}; + +false diff --git a/kp_liberation.brf_sumava/functions/fn_log.sqf b/kp_liberation.brf_sumava/functions/fn_log.sqf new file mode 100644 index 0000000..2417579 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_log.sqf @@ -0,0 +1,35 @@ +/* + File: fn_log.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-16 + Last Update: 2020-04-20 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Logs given string to the rpt of the machine while adding KP Liberation prefix. + + Parameter(s): + _text - Text to write into log [STRING, defaults to ""] + _tag - Tag to display between KPLIB prefix and text [STRING, defaults to "INFO"] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_text", "", [""]], + ["_tag", "INFO", [""]] +]; + +if (_text isEqualTo "" || _tag isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; + +private _msg = text ([ + "[KPLIB] [", + _tag, + "] ", + _text +] joinString ""); + +diag_log _msg; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_potatoScan.sqf b/kp_liberation.brf_sumava/functions/fn_potatoScan.sqf new file mode 100644 index 0000000..911660e --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_potatoScan.sqf @@ -0,0 +1,23 @@ +/* + File: fn_potatoScan.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Returns the current Potato 01, if alive. + + Parameter(s): + NONE + + Returns: + Potato 01 [OBJECT] +*/ + +private _potatoes = vehicles select {typeof _x == huron_typename && alive _x}; +if !(_potatoes isEqualTo []) then { + _potatoes select 0 +} else { + objNull +}; diff --git a/kp_liberation.brf_sumava/functions/fn_protectObject.sqf b/kp_liberation.brf_sumava/functions/fn_protectObject.sqf new file mode 100644 index 0000000..61e49ca --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_protectObject.sqf @@ -0,0 +1,29 @@ +/* + File: fn_protectObject.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2019-12-08 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Given object will get damage and simulation enabled/disabled. + + Parameter(s): + _obj - Object to (un)protect [OBJECT, defaults to objNull] + _enable - Enable/Disable [BOOL, defaults to true] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_obj", objNull, [objNull]], + ["_enable", true, [false]] +]; + +if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false}; + +_obj allowDamage _enable; +_obj enableSimulation _enable; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_secondsToTimer.sqf b/kp_liberation.brf_sumava/functions/fn_secondsToTimer.sqf new file mode 100644 index 0000000..f6869d3 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_secondsToTimer.sqf @@ -0,0 +1,30 @@ +/* + File: fn_secondsToTimer.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Converts given amount of seconds to a MM:SS string. + + Parameter(s): + _amount - Amount of seconds to convert [NUMBER, defaults to 0] + + Returns: + MM:SS [STRING] +*/ + +params [ + ["_amount", 0, [0]] +]; + +if (_amount isEqualTo 0) exitWith {"00:00"}; + +private _minutes = floor (_amount / 60); +private _seconds = _amount % 60; + +if (_minutes < 10) then {_minutes = ["0", _minutes] joinString "";}; +if (_seconds < 10) then {_seconds = ["0", _seconds] joinString "";}; + +[_minutes, _seconds] joinString ":" diff --git a/kp_liberation.brf_sumava/functions/fn_setDiscordState.sqf b/kp_liberation.brf_sumava/functions/fn_setDiscordState.sqf new file mode 100644 index 0000000..ca31513 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setDiscordState.sqf @@ -0,0 +1,36 @@ +/* + File: fn_setDiscordState.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-10 + Last Update: 2020-04-18 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Updated the Discord rich presence state with given string. + If empty string is given, the state is determined by player variables. + + Parameter(s): + _state - New state which should be applied to rich presence [STRING, defaults to ""] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_state", "", [""]] +]; + +if (_state isEqualTo "") then { + _state = "In the field"; + [] call { + if (player getVariable ["KPLIB_isNearStart", false]) exitWith {_state = "Startbase";}; + if !(player getVariable ["KPLIB_fobName", ""] isEqualTo "") exitWith {_state = player getVariable "KPLIB_fobName";}; + if !(player getVariable ["KPLIB_nearSector", ""] isEqualTo "") exitWith {_state = markerText (player getVariable "KPLIB_nearSector");}; + }; +}; + +[ + ["UpdateState", _state] +] call (missionNamespace getVariable ["DiscordRichPresence_fnc_update", {}]); + +true diff --git a/kp_liberation.brf_sumava/functions/fn_setFobMass.sqf b/kp_liberation.brf_sumava/functions/fn_setFobMass.sqf new file mode 100644 index 0000000..383f53c --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setFobMass.sqf @@ -0,0 +1,35 @@ +/* + File: fn_setFobMass.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-02 + Last Update: 2020-04-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sets mass of FOB box to Max slingload weight of "huron_typename" lowered by 100. + If max slingload mass is lower than 1000 its set to 1000. + If it is higher than 3000 it's set to 3000. + + Parameter(s): + _box - FOB Box on which mass will be set [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_box", objNull, [objNull]] +]; + +if (isNull _box) exitWith {["Null object given"] call BIS_fnc_error; false}; + +private _boxMass = getNumber(configFile >> "CfgVehicles" >> huron_typename >> "slingLoadMaxCargoMass") - 100; +_boxMass = 1000 max (_boxMass min 3000); + +if (local _box) then { + _box setMass _boxMass; +} else { + [_box, _boxMass] remoteExec ["setMass", _box]; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_setLoadableViV.sqf b/kp_liberation.brf_sumava/functions/fn_setLoadableViV.sqf new file mode 100644 index 0000000..5f7459f --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setLoadableViV.sqf @@ -0,0 +1,75 @@ +/* + File: fn_setLoadableViV.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-08 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Adds ViV load/unload actions to object. + + Parameter(s): + _object - Object to add actions to [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_object", objNull, [objNull]] +]; + +if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false}; + +private _loadFnc = { + params ["_target"]; + + (_target call KPLIB_fnc_getNearestViVTransport) setVehicleCargo _target; +}; + +// Add "Load" action +_object addAction [ + "" + localize "STR_ACTION_LOAD_VIV" + "", + _loadFnc, + nil, + -991, + false, + true, + "", + "(isNull objectParent player) && {!isNull (_target call KPLIB_fnc_getNearestViVTransport)}", + 10 +]; + +// Add "No transports nearby action" +_object addAction [ + "" + localize "STR_ACTION_NOTRANSPORT_VIV" + "", + {}, + nil, + -991, + false, + true, + "", + "(isNull objectParent player) && {isNull (_target call KPLIB_fnc_getNearestViVTransport)} && {isNull isVehicleCargo _target}", + 10 +]; + +private _unloadFnc = { + params ["_target"]; + + objNull setVehicleCargo _target; +}; + +// Add "Unload" action +_object addAction [ + "" + localize "STR_ACTION_UNLOAD_VIV" + "", + _unloadFnc, + nil, + -991, + false, + true, + "", + "(isNull objectParent player) && {!isNull isVehicleCargo _target}", + 10 +]; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_setLoadout.sqf b/kp_liberation.brf_sumava/functions/fn_setLoadout.sqf new file mode 100644 index 0000000..f4ccf2c --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setLoadout.sqf @@ -0,0 +1,342 @@ +/* + File: fn_setLoadout.sqf + Author: aeroson - https://github.com/aeroson + Date: 2014-03-25 + Last Update: 2019-12-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + I guarantee backwards compatibility. + These scripts allows you set/get (load/save)all of the unit's gear, including: + uniform, vest, backpack, contents of it, all quiped items, all three weapons with their attachments, currently loaded magazines and number of ammo in magazines. + All this while preserving order of items. + Useful for saving/loading loadouts. + Ideal for revive scripts where you have to set exactly the same loadout to newly created unit. + Uses workaround with placeholders to add vest/backpack items, so items stay where you put them. + + Parameter(s): + _localVariable - Description [DATATYPE, defaults to DEFAULTVALUE] + + Returns: + Function reached the end [BOOL] +*/ +// TODO +private ["_target","_options","_loadMagsAmmo","_data","_loadedMagazines","_placeholderCount","_loadBeforeAdd","_add","_outfit","_addWeapon","_addPrimary","_addHandgun","_addSecondary","_addOrder","_currentWeapon","_currentMode"]; + +_options = []; + +// addAction support +if(count _this < 4) then { + #define PARAM_START private ["_PARAM_INDEX"]; _PARAM_INDEX=0; + #define PARAM_REQ(A) if (count _this <= _PARAM_INDEX) exitWith { systemChat format["required param '%1' not supplied in file:'%2' at line:%3", #A ,__FILE__,__LINE__]; }; A = _this select _PARAM_INDEX; _PARAM_INDEX=_PARAM_INDEX+1; + #define PARAM(A,B) A = B; if (count _this > _PARAM_INDEX) then { A = _this select _PARAM_INDEX; }; _PARAM_INDEX=_PARAM_INDEX+1; + PARAM_START + PARAM_REQ(_target) + PARAM_REQ(_data) + PARAM(_options,[]) +} else { + _target = player; + _data = loadout; + //playSound3D ["A3\Sounds_F\sfx\ZoomIn.wav", _target]; +}; + +if(isNil{_data}) exitWith { + systemChat "you are trying to set/load empty loadout"; +}; +if(count _data < 13) exitWith { + systemChat "you are trying to set/load corrupted loadout"; +}; + +#define QUOTE(A) #A +#define EL(A,B) ((A) select (B)) +#define _THIS(A) EL(_this,A) + +// placeholders +#define PLACEHOLDER_BACKPACK QUOTE(B_Kitbag_mcamo) // any backpack with capacity>0 +#define PLACEHOLDER_ITEM QUOTE(ItemWatch) // addItem placeholder should be smallest item possible + +_loadMagsAmmo = "ammo" in _options; +_loadedMagazines = []; +if(count _data > 13) then { + if(typeName(_data select 13)=="ARRAY") then { + _loadedMagazines = _data select 13; + }; +}; + +_currentWeapon = ""; +if(count _data > 14) then { + _currentWeapon = _data select 14; +}; +_currentMode = ""; +if(count _data > 15) then { + _currentMode = _data select 15; +}; + +_placeholderCount = 0; + +// basic add function intended for use with uniform and vest +_add = { + private ["_target","_item","_callback"]; + _target = _this select 0; + _item = _this select 1; + _callback = _this select 2; + if(typename _item == "ARRAY") then { + if(_item select 0 != "") then { + if(_loadMagsAmmo) then { + _target addMagazine _item; + } else { + (_item select 0) call _callback; + }; + }; + } else { + if(_item != "") then { + _item call _callback; + }; + }; +}; + +// remove clothes to prevent incorrect mag loading +removeUniform _target; +removeVest _target; +removeBackpack _target; + + +_outfit = PLACEHOLDER_BACKPACK; // we need to add items somewhere before we can assign them +_target addBackpack _outfit; +clearAllItemsFromBackpack _target; +removeAllAssignedItems _target; +removeHeadgear _target; +removeGoggles _target; + +// add loaded magazines of assigned items +if(count _loadedMagazines>=3) then { + { + [_target, _x, { _target addItemToBackpack _x }] call _add; + } forEach (_loadedMagazines select 3); +}; + +// add assigned items +{ + [_target, _x, { _target addItemToBackpack _x }] call _add; + _target assignItem _x; +} forEach (_data select 0); + +clearAllItemsFromBackpack _target; + +// get assigned items, headgear and goggles is not part of assignedItems +private ["_assignedItems","_headgear","_goggles"]; +_assignedItems = assignedItems _target; +_headgear = headgear _target; +_goggles = goggles _target; +if((_headgear != "") && !(_headgear in _assignedItems)) then { + _assignedItems set [count _assignedItems, _headgear]; +}; +if((_goggles != "") && !(_goggles in _assignedItems)) then { + _assignedItems set [count _assignedItems, _goggles]; +}; +// add asigned items that could not be added with assign item +// asuming each assigned item can be put only into one slot +{ + if(!(_x in _assignedItems)) then { + _target addWeapon _x; + } +} forEach (_data select 0); + + + +// universal add weapon to hands +_addWeapon = { + private ["_weapon","_magazines","_muzzles"]; + clearAllItemsFromBackpack _target; + _target removeWeapon ([] call _THIS(0)); + _weapon = _data select _THIS(1); + if(_weapon != "") then { + if(isClass(configFile>>"CfgWeapons">>_weapon)) then { + if (_currentWeapon == "") then { + _currentWeapon = _weapon; + }; + if(count _loadedMagazines > 0) then { + _magazines = _loadedMagazines select _THIS(5); // get loaded magazines from saved loadout + if(typename _magazines != "ARRAY") then { // backwards compatibility, make sure _magazines is array + if(_magazines=="") then { + _magazines = []; + } else { + _magazines = [_magazines]; + }; + }; + } else { + _magazines = [getArray(configFile>>"CfgWeapons">>_weapon>>"magazines") select 0]; // generate weapon magazine + _muzzles = configFile>>"CfgWeapons">>_weapon>>"muzzles"; + if(isArray(_muzzles)) then { // generate magazine for each muzzle + { + if (_x != "this") then { + _magazines set [count _magazines, toLower(getArray(configFile>>"CfgWeapons">>_weapon>>_x>>"magazines") select 0)]; + }; + } forEach getArray(_muzzles); + }; + }; + { + [_target, _x, { _target addItemToBackpack _x }] call _add; + } forEach _magazines; // add magazines + _target addWeapon _weapon; + { + if(_x!="" && !(_x in ([] call _THIS(3)))) then { + _x call _THIS(4); + }; + } forEach (_data select (1+_THIS(1))); // add weapon items + } else { + systemchat format["%1 %2 doesn't exist",_THIS(2),_weapon]; + if (_currentWeapon == _weapon) then { + _currentWeapon = ""; + _currentMode = ""; + }; + }; + }; +}; + +// add primary weapon, add primary weapon loaded magazine, add primary weapon items +_addPrimary = { + [ + { primaryWeapon _target }, // 0 // get current weapon + 1, // 1 //weapon classname index in _data + "primary", // 2 // weapon debug type + { primaryWeaponItems _target }, // 3 // weapon items + { _target addPrimaryWeaponItem _this }, // 4 // add weapon item + 0 // 5 // index in _loadedMagazines + ] call _addWeapon; +}; + +// add handgun weapon, add handgun weapon loaded magazine, add handgun weapon items +_addHandgun = { + [ + { handgunWeapon _target }, // 0 // get current weapon + 3, // 1 //weapon classname index in _data + "handgun", // 2 // weapon debug type + { handgunItems _target }, // 3 // weapon items + { _target addHandgunItem _this }, // 4 // add weapon item + 1 // 5 // index in _loadedMagazines + ] call _addWeapon; +}; + +// add secondary weapon, add secondary weapon loaded magazine, add secondary weapon items +_addSecondary = { + [ + { secondaryWeapon _target }, // 0 // get current weapon + 5, // 1 //weapon classname index in _data in _data + "secondary", // 2 // weapon debug type + { secondaryWeaponItems _target }, // 3 // weapon items + { _target addSecondaryWeaponItem _this }, // 4 // add weapon item + 2 // 5 // index in _loadedMagazines + ] call _addWeapon; +}; + + +// first added weapon is selected weapon, order add functions to firstly add currently selected weapon +_addOrder=[_addPrimary,_addHandgun,_addSecondary]; +if(_currentWeapon!="") then { + _addOrder = switch _currentWeapon do { + case (_data select 3): {[_addHandgun,_addPrimary,_addSecondary]}; + case (_data select 5): {[_addSecondary,_addPrimary,_addHandgun]}; + default {_addOrder}; + }; +}; +{ + [] call _x; +} forEach _addOrder; + +// select weapon and firing mode +if(vehicle _target == _target && _currentWeapon != "" && _currentMode != "") then { + _muzzles = 0; + while { (_currentWeapon != currentMuzzle _target || _currentMode != currentWeaponMode _target ) && _muzzles < 100 } do { + _target action ["SWITCHWEAPON", _target, _target, _muzzles]; + _muzzles = _muzzles + 1; + }; + if(_muzzles >= 100) then { + systemchat format["mode %1 for %2 doesn't exist", _currentMode, _currentWeapon]; + _currentMode = ""; + }; +} else { + _currentMode = ""; +}; +if(_currentMode == "" && _currentWeapon != "") then { + _target selectWeapon _currentWeapon; +}; + +clearAllItemsFromBackpack _target; + +// add uniform, add uniform items and fill uniform with item placeholders +_outfit = _data select 7; +if(_outfit != "") then { + if(isClass(configFile>>"CfgWeapons">>_outfit)) then { + _target forceAddUniform _outfit; + _target addItem PLACEHOLDER_ITEM; + if(loadUniform _target > 0) then { + _placeholderCount = _placeholderCount + 1; + { + [_target, _x, { _target addItemToUniform _x }] call _add; + } forEach (_data select 8); + while{true} do { + _loadBeforeAdd = loadUniform _target; + _target addItem PLACEHOLDER_ITEM; + if(loadUniform _target == _loadBeforeAdd) exitWith {}; + _placeholderCount = _placeholderCount + 1; + }; + }; + } else { + systemchat format["uniform %1 doesn't exist",_outfit]; + }; +}; + +// add vest, add vest items and fill vest with item placeholders +_outfit = _data select 9; +if(_outfit != "") then { + if(isClass(configFile>>"CfgWeapons">>_outfit)) then { + _target addVest _outfit; + _target addItem PLACEHOLDER_ITEM; + if(loadVest _target > 0) then { + _placeholderCount = _placeholderCount + 1; + { + [_target, _x, { _target addItemToVest _x }] call _add; + } forEach (_data select 10); + while{true} do { + _loadBeforeAdd = loadVest _target; + _target addItem PLACEHOLDER_ITEM; + if(loadVest _target == _loadBeforeAdd) exitWith {}; + _placeholderCount = _placeholderCount + 1; + }; + }; + } else { + systemchat format["vest %1 doesn't exist",_outfit]; + }; +}; + +// add backpack and add backpack items +removeBackpack _target; +_outfit = _data select 11; +if(_outfit != "") then { + if(getNumber(configFile>>"CfgVehicles">>_outfit>>"isbackpack")==1) then { + _target addBackpack _outfit; + clearAllItemsFromBackpack _target; + _target addItem PLACEHOLDER_ITEM; + _placeholderCount = _placeholderCount + 1; + if(loadBackpack _target > 0) then { + { + [_target, _x, { _target addItemToBackpack _x }] call _add; + } forEach (_data select 12); + }; + } else { + systemchat format["backpack %1 doesn't exist",_outfit]; + }; +}; + +// remove item placeholders +for "_i" from 1 to _placeholderCount do { + _target removeItem PLACEHOLDER_ITEM; +}; + + +// make loadout visible fix? +if(vehicle _target == _target) then { + //_target switchMove (getArray(configFile>>"CfgMovesMaleSdr">>"States">>animationState player>>"ConnectTo") select 0); + _target setPosATL (getPosATL _target); +}; diff --git a/kp_liberation.brf_sumava/functions/fn_setVehicleCaptured.sqf b/kp_liberation.brf_sumava/functions/fn_setVehicleCaptured.sqf new file mode 100644 index 0000000..854ceaf --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setVehicleCaptured.sqf @@ -0,0 +1,38 @@ +/* + File: fn_setVehicleCaptured.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-10 + Last Update: 2020-04-26 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sets the captured variable on given vehicle, if vehicle class + is in enemy preset. + + Parameter(s): + _veh - Vehicle to capture [OBJECT, defaults to objNull] + + Returns: + Vehicles is set to captured [BOOL] +*/ + +params [ + ["_veh", objNull, [objNull]] +]; + +if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; + +private _type = typeOf _veh; + +if !((toLower _type) in KPLIB_o_allVeh_classes) exitWith {false}; + +if !(_veh getVariable ["KPLIB_captured", false]) then { + _veh setVariable ["KPLIB_captured", true, true]; + + [ + format ["%1 captured an enemy %2 (%3)", name player, getText (configFile >> "CfgVehicles" >> _type >> "displayName"), _type], + "CAPTURED" + ] remoteExecCall ["KPLIB_fnc_log", 2]; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_setVehicleSeized.sqf b/kp_liberation.brf_sumava/functions/fn_setVehicleSeized.sqf new file mode 100644 index 0000000..ed2e553 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_setVehicleSeized.sqf @@ -0,0 +1,42 @@ +/* + File: fn_setVehicleSeized.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-20 + Last Update: 2020-04-26 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sets the seized variable on given vehicle, if vehicle class + is in civilian preset. + + Parameter(s): + _veh - Vehicle to seize [OBJECT, defaults to objNull] + + Returns: + Vehicles is set to seized [BOOL] +*/ + +params [ + ["_veh", objNull, [objNull]] +]; + +if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; + +private _type = typeOf _veh; + +if !(_type in civilian_vehicles) exitWith {false}; + +if !(_veh getVariable ["KPLIB_seized", false]) then { + _veh setVariable ["KPLIB_seized", true, true]; + [0] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + [KP_liberation_cr_vehicle_penalty, true] remoteExec ["F_cr_changeCR", 2]; + stats_civilian_vehicles_seized = stats_civilian_vehicles_seized + 1; + publicVariable "stats_civilian_vehicles_seized"; + + [ + format ["%1 seized a civilian %2 (%3)", name player, getText (configFile >> "CfgVehicles" >> _type >> "displayName"), _type], + "CAPTURED" + ] remoteExecCall ["KPLIB_fnc_log", 2]; +}; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_sortStorage.sqf b/kp_liberation.brf_sumava/functions/fn_sortStorage.sqf new file mode 100644 index 0000000..0e786fb --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_sortStorage.sqf @@ -0,0 +1,41 @@ +/* + File: fn_sortStorage.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-06-09 + Last Update: 2020-04-17 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Stack and sort the resources inside a storage area. + + Parameter(s): + _storage - Storage to sort [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_storage", objNull, [objNull]] +]; + +if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false}; + +private _supply = 0; +private _ammo = 0; +private _fuel = 0; + +{ + switch (typeOf _x) do { + case KP_liberation_supply_crate: {_supply = _supply + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_ammo_crate: {_ammo = _ammo + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_fuel_crate: {_fuel = _fuel + (_x getVariable ["KP_liberation_crate_value",0]);}; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + detach _x; + deleteVehicle _x; +} forEach (attachedObjects _storage); + +[_supply, _ammo, _fuel, _storage, true] spawn KPLIB_fnc_fillStorage; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_spawnBuildingSquad.sqf b/kp_liberation.brf_sumava/functions/fn_spawnBuildingSquad.sqf new file mode 100644 index 0000000..30ea8f1 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnBuildingSquad.sqf @@ -0,0 +1,56 @@ +/* + File: fn_spawnBuildingSquad.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns given amount of infantry in buildings of given sector at given building positions. + + Parameter(s): + _type - Type of infantry. Either "militia" or "army" [STRING, defaults to "army"] + _amount - Amount of infantry units to spawn [NUMBER, defaults to 0] + _positions - Array of building positions [ARRAY, defaults to []] + _sector - Sector where to spawn the units [STRING, defaults to ""] + + Returns: + Spawned units [ARRAY] +*/ + +params [ + ["_type", "army", [""]], + ["_amount", 0, [0]], + ["_positions", [], [[]]], + ["_sector", "", [""]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; []}; + +// Get classnames array +private _classnames = [[] call KPLIB_fnc_getSquadComp, militia_squad] select (_type == "militia"); + +// Adjust amount, if needed +if (_amount > floor ((count _positions) * GRLIB_defended_buildingpos_part)) then { + _amount = floor ((count _positions) * GRLIB_defended_buildingpos_part) +}; + +// Spawn units +private _grp = createGroup [GRLIB_side_enemy, true]; +private _pos = markerPos _sector; +private _unit = objNull; +private _units = []; +for "_i" from 1 to _amount do { + // Create new group, if current group has 10 units + if (count (units _grp) >= 10) then { + _grp = createGroup [GRLIB_side_enemy, true]; + }; + + _unit = [selectRandom _classnames, _pos, _grp] call KPLIB_fnc_createManagedUnit; + _unit setDir (random 360); + _unit setPos (_positions deleteAt (random (floor (count _positions) - 1))); + [_unit, _sector] spawn building_defence_ai; + _units pushBack _unit; +}; + +_units diff --git a/kp_liberation.brf_sumava/functions/fn_spawnCivilians.sqf b/kp_liberation.brf_sumava/functions/fn_spawnCivilians.sqf new file mode 100644 index 0000000..67f2c2a --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnCivilians.sqf @@ -0,0 +1,52 @@ +/* + File: fn_spawnCivilians.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns civilians at given sector. + + Parameter(s): + _sector - Sector to spawn the civilians at [STRING, defaults to ""] + + Returns: + Spawned civilian units [ARRAY] +*/ + +params [ + ["_sector", "", [""]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; []}; + +private _civs = []; +private _sPos = markerPos _sector; + +// Amount and spread depending if capital or city/factory +private _amount = round ((3 + (floor (random 7))) * GRLIB_civilian_activity); +private _spread = 1; +if (_sector in sectors_bigtown) then { + _amount = _amount + 10; + _spread = 2.5; +}; +_amount = _amount * (sqrt (GRLIB_unitcap)); + +// Spawn civilians +private _grp = grpNull; +for "_i" from 1 to _amount do { + _grp = createGroup [GRLIB_side_civilian, true]; + + _civs pushBack ( + [ + selectRandom civilians, + [(((_sPos select 0) + (75 * _spread)) - (random (150 * _spread))), (((_sPos select 1) + (75 * _spread)) - (random (150 * _spread))), 0], + _grp + ] call KPLIB_fnc_createManagedUnit + ); + + [_grp] call add_civ_waypoints; +}; + +_civs diff --git a/kp_liberation.brf_sumava/functions/fn_spawnGuerillaGroup.sqf b/kp_liberation.brf_sumava/functions/fn_spawnGuerillaGroup.sqf new file mode 100644 index 0000000..6ebf552 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnGuerillaGroup.sqf @@ -0,0 +1,80 @@ +/* + File: fn_spawnGuerillaGroup.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-08 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns a group of guerilla units with random gear depending on guerilla strength. + + Parameter(s): + _pos - Position where to spawn the group [POSITION, defaults to [0, 0, 0]] + _amount - Amount of units for the group. 0 for automatic calculation [NUMBER, defaults to 0] + + Returns: + Spawned group [GROUP] +*/ + +params [ + ["_pos", [0, 0, 0], []], + ["_amount", 0, []] +]; + +// Get tier and civilian reputation depending values +private _tier = [] call KPLIB_fnc_getResistanceTier; +private _cr_multi = [] call KPLIB_fnc_crGetMulti; +if (_amount == 0) then {_amount = (6 + (round (random _cr_multi)) + (round (random _tier)));}; +private _weapons = missionNamespace getVariable ("KP_liberation_guerilla_weapons_" + str _tier); +private _uniforms = missionNamespace getVariable ("KP_liberation_guerilla_uniforms_" + str _tier); +private _vests = missionNamespace getVariable ("KP_liberation_guerilla_vests_" + str _tier); +private _headgear = missionNamespace getVariable ("KP_liberation_guerilla_headgear_" + str _tier); + +// Spawn guerilla units +private _grp = createGroup [GRLIB_side_resistance, true]; +private _unit = objNull; +private _weapon = []; +for "_i" from 1 to _amount do { + // Create unit + _unit = [selectRandom KP_liberation_guerilla_units, _pos, _grp, "PRIVATE", 5] call KPLIB_fnc_createManagedUnit; + + // Clear inventory + removeAllWeapons _unit; + removeAllItems _unit; + removeAllAssignedItems _unit; + removeUniform _unit; + removeVest _unit; + removeBackpack _unit; + removeHeadgear _unit; + removeGoggles _unit; + + // Add uniform etc. + _unit forceAddUniform (selectRandom _uniforms); + _unit addItemToUniform "FirstAidKit"; + _unit addItemToUniform "MiniGrenade"; + _unit addVest (selectRandom _vests); + _unit addHeadgear (selectRandom _headgear); + if (_tier > 1) then {_unit addGoggles (selectRandom KP_liberation_guerilla_facegear);}; + + // Add standard items + _unit linkItem "ItemMap"; + _unit linkItem "ItemCompass"; + _unit linkItem "ItemWatch"; + _unit linkItem "ItemRadio"; + + // Add weapon + _weapon = selectRandom _weapons; + _unit addWeapon (_weapon select 0); + for "_i" from 1 to (_weapon select 2) do {_unit addItemToVest (_weapon select 1);}; + _unit addPrimaryWeaponItem (_weapon select 3); + _unit addPrimaryWeaponItem (_weapon select 4); + + // Add possible RPG launcher + if ((_tier > 1) && ((random 100) <= KP_liberation_resistance_at_chance)) then { + _unit addBackpack "B_FieldPack_cbr"; + for "_i" from 1 to 3 do {_unit addItemToBackpack "RPG7_F";}; + _unit addWeapon "launch_RPG7_F"; + }; +}; + +_grp diff --git a/kp_liberation.brf_sumava/functions/fn_spawnMilitaryPostSquad.sqf b/kp_liberation.brf_sumava/functions/fn_spawnMilitaryPostSquad.sqf new file mode 100644 index 0000000..7e85ff9 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnMilitaryPostSquad.sqf @@ -0,0 +1,45 @@ +/* + File: fn_spawnMilitaryPostSquad.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns soldiers inside military cargo towers around given position. + + Parameter(s): + _pos - Center position of the area to look for military cargo towers [ARRAY, defaults to [0, 0, 0]] + + Returns: + Spawned units [ARRAY] +*/ + +params [ + ["_pos", [0, 0, 0], [[]]] +]; + +if (_pos isEqualTo [0, 0, 0]) exitWith {["No or zero pos given"] call BIS_fnc_error; []}; + +// Get all military patrol towers near given position +private _allPosts = ( + nearestObjects [_pos, ["Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Cargo_Patrol_V4_F"], GRLIB_capture_size, true] +) select {alive _x}; + +// Exit if no patrol towers were found +if (_allPosts isEqualTo []) exitWith {[]}; + +// Spawn units +private _grp = createGroup [GRLIB_side_enemy, true]; +private _unit = objNull; +private _units = []; +{ + _unit = [[opfor_marksman, opfor_machinegunner] select (random 100 > 50), _pos, _grp] call KPLIB_fnc_createManagedUnit; + _unit setdir (180 + (getdir _x)); + _unit setpos (([_x] call BIS_fnc_buildingPositions) select 1); + [_unit] spawn building_defence_ai; + _unit setUnitPos 'UP'; + _units pushback _unit; +} forEach _allPosts; + +_units diff --git a/kp_liberation.brf_sumava/functions/fn_spawnMilitiaCrew.sqf b/kp_liberation.brf_sumava/functions/fn_spawnMilitiaCrew.sqf new file mode 100644 index 0000000..62b7ee4 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnMilitiaCrew.sqf @@ -0,0 +1,43 @@ +/* + File: fn_spawnMilitiaCrew.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns a militia crew for given vehicle. + + Parameter(s): + _vehicle - Vehicle to spawn the crew for [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_vehicle", objNull, [objNull]] +]; + +if (isNull _vehicle) exitWith {["Null object given"] call BIS_fnc_error; false}; + +// Spawn units +private _grp = createGroup [GRLIB_side_enemy, true]; +private _units = []; +for "_i" from 1 to 3 do { + _units pushBack ([selectRandom militia_squad, getPos _vehicle, _grp] call KPLIB_fnc_createManagedUnit); +}; + +// Assign to vehicle +(_units select 0) moveInDriver _vehicle; +(_units select 1) moveInGunner _vehicle; +(_units select 2) moveInCommander _vehicle; + +// Remove possible leftovers +{ + if (isNull objectParent _x) then { + deleteVehicle _x; + }; +} forEach _units; + +true diff --git a/kp_liberation.brf_sumava/functions/fn_spawnRegularSquad.sqf b/kp_liberation.brf_sumava/functions/fn_spawnRegularSquad.sqf new file mode 100644 index 0000000..af514b6 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnRegularSquad.sqf @@ -0,0 +1,51 @@ +/* + File: fn_spawnRegularSquad.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-05-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns a regular enemy squad with given soldier classnames at given sector. + + Parameter(s): + _sector - Sector to spawn the squad at [STRING, defaults to ""] + _classnames - Classnames of units to spawn in squad [ARRAY, defaults to []] + + Returns: + Created squad [GROUP] +*/ + +params [ + ["_sector", "", [""]], + ["_classnames", [], [[]]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; grpNull}; + +// Get spawn position for squad +private _sectorPos = (markerPos _sector) getPos [random 100, random 360]; +private _spawnPos = []; +private _i = 0; +while {_spawnPos isEqualTo []} do { + _i = _i + 1; + _spawnPos = (_sectorPos getPos [random 50, random 360]) findEmptyPosition [5, 100, "B_Heli_Light_01_F"]; + if (_i isEqualTo 10) exitWith {}; +}; + +if (_spawnPos isEqualTo zeroPos) exitWith { + ["No suitable spawn position found."] call BIS_fnc_error; + [format ["Couldn't find infantry spawn position for sector %1", _sector], "WARNING"] call KPLIB_fnc_log; + grpNull +}; + +// Spawn units of squad +private _corrected_amount = round ((count _classnames) * ([] call KPLIB_fnc_getOpforFactor)); +private _grp = createGroup [GRLIB_side_enemy, true]; +{ + if (_forEachIndex < _corrected_amount) then { + [_x, _spawnPos, _grp] call KPLIB_fnc_createManagedUnit; + }; +} forEach _classnames; + +_grp diff --git a/kp_liberation.brf_sumava/functions/fn_spawnVehicle.sqf b/kp_liberation.brf_sumava/functions/fn_spawnVehicle.sqf new file mode 100644 index 0000000..40a1844 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_spawnVehicle.sqf @@ -0,0 +1,96 @@ +/* + File: fn_spawnVehicle.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-05-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns a vehicle with all needed Liberation connections/dependencies. + + Parameter(s): + _pos - Position to spawn the vehicle [POSITION, defaults to [0, 0, 0]] + _classname - Classname of the vehicle to spawn [STRING, defaults to ""] + _precise - Selector if the vehicle should spawned precisely on given position [BOOL, defaults to false] + _rndDir - Selector if the direction should be randomized [BOOL, defaults to true] + + Returns: + Spawned vehicle [OBJECT] +*/ + +params [ + ["_pos", [0, 0, 0], [[]], [2, 3]], + ["_classname", "", [""]], + ["_precise", false, [false]], + ["_rndDir", true, [false]] +]; + +if (_pos isEqualTo [0, 0, 0]) exitWith {["No or zero pos given"] call BIS_fnc_error; objNull}; +if (_classname isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; objNull}; +if (!canSuspend) exitWith {_this spawn KPLIB_fnc_spawnVehicle}; + +private _newvehicle = objNull; +private _spawnpos = []; + +if (_precise) then { + // Directly use given pos, if precise placement is true + _spawnpos = _pos; +} else { + // Otherwise find a suitable position for vehicle spawning near given pos + private _i = 0; + while {_spawnPos isEqualTo []} do { + _i = _i + 1; + _spawnpos = (_pos getPos [random 150, random 360]) findEmptyPosition [10, 100, _classname]; + if (_i isEqualTo 10) exitWith {}; + }; +}; + +if (_spawnPos isEqualTo zeroPos) exitWith { + ["No suitable spawn position found."] call BIS_fnc_error; + [format ["Couldn't find spawn position for %1 around position %2", _classname, _pos], "WARNING"] call KPLIB_fnc_log; + objNull +}; + +// If it's a chopper, spawn it flying +if (_classname in opfor_choppers) then { + _newvehicle = createVehicle [_classname, _spawnpos, [], 0, 'FLY']; + _newvehicle flyInHeight (80 + (random 120)); + _newvehicle allowDamage false; +} else { + _newvehicle = _classname createVehicle _spawnpos; + _newvehicle allowDamage false; + + [_newvehicle] call KPLIB_fnc_allowCrewInImmobile; + + // Randomize direction and reset position and vector + if (_rndDir) then { + _newvehicle setDir (random 360); + }; + _newvehicle setPos _spawnpos; + _newvehicle setVectorUp surfaceNormal position _newvehicle; +}; + +// Clear cargo, if enabled +[_newvehicle] call KPLIB_fnc_clearCargo; + +// Process KP object init +[_newvehicle] call KPLIB_fnc_addObjectInit; + +// Spawn crew of vehicle +if (_classname in militia_vehicles) then { + [_newvehicle] call KPLIB_fnc_spawnMilitiaCrew; +} else { + private _grp = createGroup [GRLIB_side_enemy, true]; + private _crew = units (createVehicleCrew _newvehicle); + _crew joinSilent _grp; + sleep 0.1; + {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach _crew; +}; + +// Add MPKilled and GetIn EHs and enable damage again +_newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; +sleep 0.1; +_newvehicle allowDamage true; +_newvehicle setDamage 0; + +_newvehicle diff --git a/kp_liberation.brf_sumava/functions/fn_swapInventory.sqf b/kp_liberation.brf_sumava/functions/fn_swapInventory.sqf new file mode 100644 index 0000000..26272ac --- /dev/null +++ b/kp_liberation.brf_sumava/functions/fn_swapInventory.sqf @@ -0,0 +1,28 @@ +/* + File: fn_swapInventory.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-12-03 + Last Update: 2020-04-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sets loadout of one given unit to the loadout of second given unit. + + Parameter(s): + _from - Unit to get the loadout from [OBJECT, defaults to objNull] + _to - Unit which should get the loadout applied [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_from", objNull, [objNull]], + ["_to", objNull, [objNull]] +]; + +if (isNull _from || isNull _to) exitWith {["Null object given"] call BIS_fnc_error; false}; + +[_to, [_from, ["repetitive"]] call KPLIB_fnc_getLoadout] call KPLIB_fnc_setLoadout; + +true diff --git a/kp_liberation.brf_sumava/functions/ui/fn_overlayUpdateResources.sqf b/kp_liberation.brf_sumava/functions/ui/fn_overlayUpdateResources.sqf new file mode 100644 index 0000000..2314fb0 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/ui/fn_overlayUpdateResources.sqf @@ -0,0 +1,75 @@ +#include "script_components.hpp" +/* + File: fn_overlayUpdateResources.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-01 + Last Update: 2020-08-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Update resources overlay. + + Parameter(s): + _overlay - Overlay display [DISPLAY, defaults to displayNull] + _show - Should the resources controls be shown [BOOL, defaults to true] + _updateValues - Should values controls be updated with data [BOOL, defaults to true] + _resourceArea - Name of resource area to be shown [STRING, defaults ""] + + Returns: + Resources overlay visible [BOOL] +*/ + +params [ + ["_overlay", displayNull, [displayNull]], + ["_show", true, [true]], + ["_updateValues", true, [true]], + ["_resourceArea", "", [""]] +]; + +if (isNull _overlay) exitWith { + ["Null overlay given"] call BIS_fnc_error; + false +}; +if (!_show) exitWith { + { + (_overlay displayCtrl _x) ctrlShow false; + } forEach OVERLAY_RSC_IDCS; + false +}; + +if (_updateValues) then { + + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FOB) ctrlSetText toUpper (_resourceArea select [4]); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_SUPPLIES) ctrlSetText str floor KP_liberation_supplies; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_AMMO) ctrlSetText str floor KP_liberation_ammo; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FUEL) ctrlSetText str floor KP_liberation_fuel; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_UNITCAP) ctrlSetText ([unitcap, "/", [] call KPLIB_fnc_getLocalCap] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_HELIPAD) ctrlSetText ([KP_liberation_heli_count, "/", KP_liberation_heli_slots] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_PLANE) ctrlSetText ([KP_liberation_plane_count, "/", KP_liberation_plane_slots] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_ALERT) ctrlSetText ([round combat_readiness, "%"] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_CIVREP) ctrlSetText ([KP_liberation_civ_rep,"%"] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_INTEL) ctrlSetText str round resources_intel; + + private _color_readiness = [0.8,0.8,0.8,1]; + if (combat_readiness >= 25) then {_color_readiness = [0.8,0.8,0,1]}; + if (combat_readiness >= 50) then {_color_readiness = [0.8,0.6,0,1]}; + if (combat_readiness >= 75) then {_color_readiness = [0.8,0.3,0,1]}; + if (combat_readiness >= 100) then {_color_readiness = [0.8,0,0,1]}; + + (_overlay displayCtrl IDC_OVERLAY_RSC_PIC_ALERT) ctrlSetTextColor _color_readiness; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_ALERT) ctrlSetTextColor _color_readiness; + + private _color_reputation = [0.8,0.8,0.8,1]; + if (KP_liberation_civ_rep >= 25) then {_color_reputation = [0,0.7,0,1]}; + if (KP_liberation_civ_rep <= -25) then {_color_reputation = [0.7,0,0,1]}; + + (_overlay displayCtrl IDC_OVERLAY_RSC_PIC_CIVREP) ctrlSetTextColor _color_reputation; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_CIVREP) ctrlSetTextColor _color_reputation; + +}; + +{ + (_overlay displayCtrl _x) ctrlShow true; +} forEach OVERLAY_RSC_IDCS; + +true diff --git a/kp_liberation.brf_sumava/functions/ui/script_components.hpp b/kp_liberation.brf_sumava/functions/ui/script_components.hpp new file mode 100644 index 0000000..d8456f3 --- /dev/null +++ b/kp_liberation.brf_sumava/functions/ui/script_components.hpp @@ -0,0 +1,78 @@ + +#define IDC_OVERLAY_RSC_PIC_BG 758001 + +#define IDC_OVERLAY_RSC_PIC_FOB 758002 +#define IDC_OVERLAY_RSC_PIC_FOB_SHADOW 758003 + +#define IDC_OVERLAY_RSC_PIC_SUPPLIES 758005 +#define IDC_OVERLAY_RSC_PIC_SUPPLIES_SHADOW 758006 + +#define IDC_OVERLAY_RSC_PIC_AMMO 758008 +#define IDC_OVERLAY_RSC_PIC_AMMO_SHADOW 758009 + +#define IDC_OVERLAY_RSC_PIC_FUEL 758011 +#define IDC_OVERLAY_RSC_PIC_FUEL_SHADOW 758012 + +#define IDC_OVERLAY_RSC_PIC_UNITCAP 758014 +#define IDC_OVERLAY_RSC_PIC_UNITCAP_SHADOW 758015 + +#define IDC_OVERLAY_RSC_PIC_HELIPAD 758017 +#define IDC_OVERLAY_RSC_PIC_HELIPAD_SHADOW 758018 + +#define IDC_OVERLAY_RSC_PIC_PLANE 758020 +#define IDC_OVERLAY_RSC_PIC_PLANE_SHADOW 758021 + +// Combat readiness / enemy altertness +#define IDC_OVERLAY_RSC_PIC_ALERT 758023 +#define IDC_OVERLAY_RSC_PIC_ALERT_SHADOW 758024 + +#define IDC_OVERLAY_RSC_PIC_CIVREP 758026 +#define IDC_OVERLAY_RSC_PIC_CIVREP_SHADOW 758027 + +#define IDC_OVERLAY_RSC_PIC_INTEL 758029 +#define IDC_OVERLAY_RSC_PIC_INTEL_SHADOW 758030 + +#define IDC_OVERLAY_RSC_LABEL_FOB 758004 +#define IDC_OVERLAY_RSC_LABEL_SUPPLIES 758007 +#define IDC_OVERLAY_RSC_LABEL_AMMO 758010 +#define IDC_OVERLAY_RSC_LABEL_FUEL 758013 +#define IDC_OVERLAY_RSC_LABEL_UNITCAP 758016 +#define IDC_OVERLAY_RSC_LABEL_HELIPAD 758019 +#define IDC_OVERLAY_RSC_LABEL_PLANE 758022 +#define IDC_OVERLAY_RSC_LABEL_ALERT 758025 +#define IDC_OVERLAY_RSC_LABEL_CIVREP 758028 +#define IDC_OVERLAY_RSC_LABEL_INTEL 758031 + +#define OVERLAY_RSC_IDCS [\ + IDC_OVERLAY_RSC_PIC_BG,\ + IDC_OVERLAY_RSC_PIC_FOB,\ + IDC_OVERLAY_RSC_PIC_FOB_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_FOB,\ + IDC_OVERLAY_RSC_PIC_SUPPLIES,\ + IDC_OVERLAY_RSC_PIC_SUPPLIES_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_SUPPLIES,\ + IDC_OVERLAY_RSC_PIC_AMMO,\ + IDC_OVERLAY_RSC_PIC_AMMO_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_AMMO,\ + IDC_OVERLAY_RSC_PIC_FUEL,\ + IDC_OVERLAY_RSC_PIC_FUEL_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_FUEL,\ + IDC_OVERLAY_RSC_PIC_UNITCAP,\ + IDC_OVERLAY_RSC_PIC_UNITCAP_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_UNITCAP,\ + IDC_OVERLAY_RSC_PIC_HELIPAD,\ + IDC_OVERLAY_RSC_PIC_HELIPAD_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_HELIPAD,\ + IDC_OVERLAY_RSC_PIC_PLANE,\ + IDC_OVERLAY_RSC_PIC_PLANE_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_PLANE,\ + IDC_OVERLAY_RSC_PIC_ALERT,\ + IDC_OVERLAY_RSC_PIC_ALERT_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_ALERT,\ + IDC_OVERLAY_RSC_PIC_CIVREP,\ + IDC_OVERLAY_RSC_PIC_CIVREP_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_CIVREP,\ + IDC_OVERLAY_RSC_PIC_INTEL,\ + IDC_OVERLAY_RSC_PIC_INTEL_SHADOW,\ + IDC_OVERLAY_RSC_LABEL_INTEL\ +] diff --git a/kp_liberation.brf_sumava/init.sqf b/kp_liberation.brf_sumava/init.sqf new file mode 100644 index 0000000..acc03d8 --- /dev/null +++ b/kp_liberation.brf_sumava/init.sqf @@ -0,0 +1,64 @@ + +KPLIB_init = false; + +// Version of the KP Liberation framework +KP_liberation_version = [0, 96, "7a"]; + +enableSaving [ false, false ]; + +if (isDedicated) then {debug_source = "Server";} else {debug_source = name player;}; + +[] call KPLIB_fnc_initSectors; +if (!isServer) then {waitUntil {!isNil "KPLIB_initServer"};}; +[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf"; +[] call compileFinal preprocessFileLineNumbers "kp_liberation_config.sqf"; +[] call compileFinal preprocessFileLineNumbers "presets\init_presets.sqf"; +[] call compileFinal preprocessFileLineNumbers "kp_objectInits.sqf"; + +// Activate selected player menu. If CBA isn't loaded -> fallback to GREUH +if (KPPLM_CBA && KP_liberation_playermenu) then { + [] call KPPLM_fnc_postInit; +} else { + [] execVM "GREUH\scripts\GREUH_activate.sqf"; +}; + +[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf"; + +if (isServer) then { + [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf"; +}; + +if (!isDedicated && !hasInterface && isMultiplayer) then { + execVM "scripts\server\offloading\hc_manager.sqf"; +}; + +if (!isDedicated && hasInterface) then { + // Get mission version and readable world name for Discord rich presence + [ + ["UpdateDetails", [localize "STR_MISSION_VERSION", "on", getText (configfile >> "CfgWorlds" >> worldName >> "description")] joinString " "] + ] call (missionNamespace getVariable ["DiscordRichPresence_fnc_update", {}]); + + // Add EH for curator to add kill manager and object init recognition for zeus spawned units/vehicles + { + _x addEventHandler ["CuratorObjectPlaced", {[_this select 1] call KPLIB_fnc_handlePlacedZeusObject;}]; + } forEach allCurators; + + waitUntil {alive player}; + if (debug_source != name player) then {debug_source = name player}; + [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf"; +} else { + setViewDistance 1600; +}; + +// Execute fnc_reviveInit again (by default it executes in postInit) +if ((isNil {player getVariable "bis_revive_ehHandleHeal"} || isDedicated) && !(bis_reviveParam_mode == 0)) then { + [] call bis_fnc_reviveInit; +}; + +KPLIB_init = true; + +// Notify clients that server is ready +if (isServer) then { + KPLIB_initServer = true; + publicVariable "KPLIB_initServer"; +}; diff --git a/kp_liberation.brf_sumava/kp_liberation_config.sqf b/kp_liberation.brf_sumava/kp_liberation_config.sqf new file mode 100644 index 0000000..8116674 --- /dev/null +++ b/kp_liberation.brf_sumava/kp_liberation_config.sqf @@ -0,0 +1,1129 @@ +/* + CONFIG FILE FOR KP LIBERATION + https://github.com/KillahPotatoes/KP-Liberation +*/ + +// Vehicle classnames which also function as ACE medical vehicles. +KP_liberation_medical_vehicles = [ + "B_T_Truck_01_medical_F", + "B_Truck_01_medical_F", + "C_Van_02_medevac_F", + "CUP_B_BMP2_AMB_CDF", + "CUP_B_BMP2_AMB_CZ_Des", + "CUP_B_BMP2_AMB_CZ", + "CUP_B_FV432_GB_Ambulance", + "CUP_B_HMMWV_Ambulance_ACR", + "CUP_B_HMMWV_Ambulance_USA", + "CUP_B_HMMWV_Ambulance_USMC", + "CUP_B_LR_Ambulance_CZ_D", + "CUP_B_LR_Ambulance_CZ_W", + "CUP_B_LR_Ambulance_GB_D", + "CUP_B_LR_Ambulance_GB_W", + "CUP_B_S1203_Ambulance_CDF", + "CUP_B_UH1Y_MEV_USMC", + "CUP_B_UH60M_Unarmed_FFV_MEV_US", + "CUP_O_BMP2_AMB_CHDKZ", + "CUP_O_BMP2_AMB_sla", + "CUP_O_LR_Ambulance_TKA", + "CUP_O_M113_Med_TKA", + "gm_gc_airforce_mi2sr", + "gm_gc_army_ural375d_medic_win", + "gm_gc_army_ural375d_medic", + "gm_ge_airforce_do28d2_medevac", + "gm_ge_army_u1300l_medic_win_rc", + "gm_ge_army_u1300l_medic", + "I_E_Truck_02_Medical_F", + "I_E_Van_02_medevac_F", + "O_T_Truck_03_medical_ghex_F", + "O_Truck_03_medical_F", + "RHS_UH60M_MEV_d", + "RHS_UH60M_MEV", + "RHS_UH60M_MEV2_d", + "RHS_UH60M_MEV2", + "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy", + "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy", + "rhsusf_m113_usarmy_medical", + "rhsusf_m113d_usarmy_medical", + "rhsusf_M1230a1_usarmy_d", + "rhsusf_M1230a1_usarmy_wd", + "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP", + "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM", + "uns_ch47a_medevac", + "uns_H13_medevac_CAV", + "uns_M577_amb", + "uns_uh1D_med" +]; + +// Building classnames which also function as ACE medical facilities. +KP_liberation_medical_facilities = [ + "Land_Medevac_house_V1_F", + "Land_Medevac_HQ_V1_F", + "LAND_uns_army_med", + "LAND_uns_tent3mash", + "uns_mash_main", + "uns_mash", + "US_Tent_2", + "US_Tent_MASH" +]; + +// Classnames of ACE3 crates (which have to be in the unit preset as well). +KP_liberation_ace_crates = [ + "ACE_Box_82mm_Mo_HE", + "ACE_Box_82mm_Mo_Illum", + "ACE_Box_82mm_Mo_Smoke", + "ACE_medicalSupplyCrate_advanced" +]; + +/* - Custom unit and arsenal preset settings. +If you want to change a preset, it's recommended to set all four presets to 0 and edit the appropriate custom.sqf files in the preset folders.*/ + +/* BLUFOR preset: +0 = Custom (default vanilla with many optional mods supported) +1 = Apex Tanoa (apex vanilla with many optional mods supported) +2 = 3cb BAF (MTP) +3 = 3cb BAF (Desert) +4 = BWMod Bundeswehr (Flecktarn) +5 = BWMod Bundeswehr (Tropentarn) +6 = RHS USAF (Woodland) +7 = RHS USAF (Desert) +8 = RHS AFRF (VDV/MSV) +9 = Germany West (Global Mobilization) +10 = Germany West Winter (Global Mobilization) +11 = Germany East (Global Mobilization) +12 = Germany East Winter (Global Mobilization) +13 = CSAT Brown +14 = CSAT Green +15 = Unsung US +16 = CUP British Armed Forces (Desert) +17 = CUP British Armed Forces (Woodland) +18 = CUP US Marine Corps (Desert) +19 = CUP US Marine Corps (Woodland) +20 = CUP US Army (Desert) +21 = CUP US Army (Woodland) +22 = CUP Chernarus Defense Force +23 = CUP Army of the Czech Republic (Desert) +24 = CUP Army of the Czech Republic (Woodland) +25 = CUP Chernarussian Movement of the Red Star +26 = CUP Sahrani Liberation Army +27 = CUP Takistani Army +28 = SFP (Woodland) +29 = SFP (Desert) +30 = LDF (Contact DLC) */ +KP_liberation_preset_blufor = 11; + +/* OPFOR preset: +0 = Custom (default vanilla CSAT) +1 = Apex Tanoa (apex vanilla CSAT) +2 = RHS AFRF (EMR/MSV) +3 = Project OPFOR (Takistan) +4 = Project OPFOR (Islamic State) +5 = Project OPFOR (Sahrani) +6 = AAF +7 = NATO +8 = Germany West (Global Mobilization) +9 = Germany West Winter (Global Mobilization) +10 = Germany East (Global Mobilization) +11 = Germany East Winter (Global Mobilization) +12 = Unsung NVA +13 = CUP Sahrani Liberation Army +14 = CUP Takistani Army +15 = CUP Chernarussian Movement of the Red Star +16 = CUP Armed Forces of the Russian Federation (MSV - EMR) +17 = CUP Armed Forces of the Russian Federation (Modern MSV) +18 = CUP Chernarus Defense Force +19 = CUP British Armed Forces (Desert) +20 = CUP British Armed Forces (Woodland) */ +KP_liberation_preset_opfor = 8; + +/* Resistance preset: +0 = Custom (default vanilla FIA) +1 = Apex Tanoa (apex vanilla Syndikat) +2 = RHS GREF +3 = Project OPFOR (Middle Eastern) +4 = Project OPFOR (Sahrani) +5 = Germany (Global Mobilization) +6 = Unsung +7 = CUP Takistani Locals +8 = CUP National Party of Chernarus */ +KP_liberation_preset_resistance = 5; + +/* Civilians preset: +0 = Custom (default vanilla) +1 = Apex Tanoa (apex vanilla) +2 = Project OPFOR (Middle Eastern) +3 = RDS Civilians +4 = Germany (Global Mobilization) +5 = Unsung +6 = CUP Takistani Civilians +7 = CUP Chernarussian Civilians */ +KP_liberation_preset_civilians = 4; + +/* Which arsenal preset should be used? +0 = Use the default blacklist method (defined below) +1 = Custom arsenal preset (edit the custom.sqf in the arsenal_presets\ folder to change things for your own versions and tweaks) +2 = RHS USAF arsenal preset +3 = 3cbBAF and RHS USAF arsenal preset +4 = GM West arsenal preset +5 = GM East arsenal preset +6 = CSAT arsenal preset +7 = Unsung US arsenal preset +8 = SFP arsenal preset +9 = BWMod arsenal preset +10 = NATO MTP arsenal preset +11 = NATO Tropic arsenal preset +12 = NATO Woodland arsenal preset +13 = CSAT Hex arsenal preset +14 = CSAT Green Hex arsenal preset +15 = AAF arsenal preset +16 = LDF arsenal preset */ +KP_liberation_arsenal = 1; + +/* - Fuel consumption settings. +Time in minutes till a full tank depletes whilst the vehicle is standing still with a running engine. */ +KP_liberation_fuel_neutral = 180; +// Time in minutes till a full tank depletes whilst the vehicle is driving below max speed. +KP_liberation_fuel_normal = 90; +// Time in minutes till a full tank depletes whilst the vehicle is driving at max speed. +KP_liberation_fuel_max = 45; + +/* - Gameplay constant settings. +Name of the savegame namespace inside of the [ServerProfileName].vars.Arma3Profile file. */ +GRLIB_save_key = "KP_LIBERATION_" + (toUpper worldName) + "_SAVEGAME"; + +KP_liberation_save_interval = 60; // Interval in seconds for automatic save. + +GRLIB_side_friendly = WEST; // Friendly side. +GRLIB_side_enemy = EAST; // Enemy side. +GRLIB_side_resistance = RESISTANCE; // Resistance side. +GRLIB_side_civilian = CIVILIAN; // Civilian side. +GRLIB_respawn_marker = "respawn"; // Respawn marker name. + +GRLIB_color_friendly = "ColorBLUFOR"; // Friendly sector marker color. +GRLIB_color_enemy = "ColorOPFOR"; // Enemy sector marker color. +GRLIB_color_enemy_bright = "ColorRED"; // Enemy sector marker color (activated). + +GRLIB_fob_range = 125; // Build range around the main FOB building. +GRLIB_halo_altitude = 2500; // Altitude in metres for the HALO jump. +GRLIB_secondary_missions_costs = [15, 10, 8]; // Intel price for the secondary missions [FOB hunting, Convoy ambush, SAR]. +GRLIB_secondary_objective_impact = 0.6; // The percentage impact against enemy combat readiness for a successful FOB hunt. +GRLIB_recycling_percentage = 0.5; // Percentage of resources you get back from recycling. +KP_liberation_production_interval = 30; // Time in minutes until a production process is finished, when resources multiplier is set to 1. + +GRLIB_sector_size = 1000; // Range to activate a sector. +GRLIB_capture_size = 175; // Range to capture a sector. +GRLIB_defended_buildingpos_part = 0.4; // Multiplier for defenders in buildings. +GRLIB_battlegroup_size = 6; // Size of enemy battlegroups. +GRLIB_vulnerability_timer = 1200; // Time in seconds how long a captured sector is vulnerable to enemy troops. +GRLIB_radiotower_size = 2500; // Radio Tower scanning range. +GRLIB_surrender_chance = 80; // Chance that enemy infantry will surrender after heavy losses are encountered. + +GRLIB_civilians_amount = 10; // Civilian count multiplier. +GRLIB_cleanup_delay = 1200; // Time in seconds until bodies of dead soldiers are cleaned up. + +GRLIB_blufor_cap = 100; // Cap for BLUFOR. +GRLIB_sector_cap = 180; // Cap for sector defenders. +GRLIB_battlegroup_cap = 150; // Cap for enemy battlegroups. +GRLIB_patrol_cap = 150; // Cap for enemy patrols. + +KP_liberation_cr_kill_penalty = 5; // Civil Reputation penalty for killing a civilian. +KP_liberation_cr_building_penalty = 3; // Civil Reputation penalty for destroying/damaging a building. +KP_liberation_cr_vehicle_penalty = 2; // Civil Reputation penalty for stealing a civilian vehicle. +KP_liberation_cr_resistance_penalty = 3; // Civil Reputation penalty for killing a friendly resistance soldier. +KP_liberation_cr_sector_gain = 5; // Civil Reputation gain for liberate a sector. +KP_liberation_cr_wounded_chance = 35; // Chance (0-100) that there are wounded civilians right after capturing a sector. +KP_liberation_cr_wounded_gain = 2; // Civil Reputation gain for providing medical assistance for wounded civilians. + +KP_liberation_civinfo_min = 5400; // Civil Informant minimum spawn time. (seconds) +KP_liberation_civinfo_max = 10800; // Civil Informant maximum spawn time. (seconds) +KP_liberation_civinfo_chance = 75; // Civil Informant spawn chance. (0-100) +KP_liberation_civinfo_intel = 5; // Civil Informant intel amount. +KP_liberation_civinfo_duration = 1200; // Civil Informant staytime until despawning. (seconds) +KP_liberation_civinfo_task_chance = 40; // Chance (0-100) that the delivered informant will spawn a time critical task. +KP_liberation_civinfo_task_duration = 900; // Duration until the task will despawn if no player is near. (seconds) + +KP_liberation_convoy_ambush_chance = 2; // Chance that a logistic convoy will be ambushed, when civil reputation is low. +KP_liberation_convoy_ambush_duration = 1200; // Duration of the convoy ambush event. (seconds) + +KP_liberation_resistance_tier2 = 30; // At which strength (0-100) the guerilla forces will be at tier 2? +KP_liberation_resistance_tier3 = 70; // At which strength (0-100) the guerilla forces will be at tier 3? +KP_liberation_resistance_at_chance = 20; // Chance that a guerilla unit has a RPG. (tier 2 and 3) +KP_liberation_resistance_sector_chance = 35; // Chance that a guerilla squad will join an ongoing sector attack. +KP_liberation_resistance_ambush_chance = 25; // Chance that some guerilla units will spawn in blufor sectors for an ambush, if reputation is low. + +// Array of worldName values. +// When playing on this map, it'll create a clearance (remove terrain objects) in a 15m radius around the battlegroup/reinforcements spawnpoint. +KP_liberation_battlegroup_clearance = [ + "song_bin_tanh" +]; + +/* Slot independent commander action access. +The Steam UIDs entered in this array will allow corresponding players to access the commander actions (rights, production, etc.), +even if they are not in the commander slot. */ +KP_liberation_commander_actions = [ + /* + Example: + "1324678", + "5468711", + "2156347" + */ +]; + +/* Whitelist for BI support framework access. +Same format as for the commander actions. */ +KP_liberation_suppMod_whitelist = [ + +]; + +/* Array of radio tower classnames to place at radio tower sectors. +If more than one is added, it'll be selected random for each sector on campaign start. */ +KPLIB_radioTowerClassnames = [ + "Land_Communication_F" +]; + +/* - Default arsenal blacklist method. +Useless if you're using anything other than "kp_liberation_arsenal = 0;" above. A whitelisted arsenal is always more performance friendly then a blacklisted arsenal. +REMEMBER: All static turret and UAV bags should be defined here, to stop players from exploiting free resources via the virtual arsenal. */ +blacklisted_from_arsenal = [ + "B_AA_01_weapon_F", + "B_AT_01_weapon_F", + "B_GMG_01_A_weapon_F", + "B_GMG_01_high_weapon_F", + "B_GMG_01_weapon_F", + "B_HMG_01_A_weapon_F", + "B_HMG_01_high_weapon_F", + "B_HMG_01_support_F", + "B_HMG_01_support_high_F", + "B_HMG_01_weapon_F", + "B_Mortar_01_support_F", + "B_Mortar_01_weapon_F", + "B_Respawn_Sleeping_bag_blue_F", + "B_Respawn_Sleeping_bag_brown_F", + "B_Respawn_Sleeping_bag_F", + "B_Respawn_TentA_F", + "B_Respawn_TentDome_F", + "B_UAV_01_backpack_F", + "B_UAV_06_backpack_F", + "B_UAV_06_medical_backpack_F", + "B_UGV_02_Demining_backpack_F", + "B_UGV_02_Science_backpack_F", + "C_IDAP_UAV_01_backpack_F", + "C_IDAP_UAV_06_antimine_backpack_F", + "C_IDAP_UAV_06_backpack_F", + "C_IDAP_UAV_06_medical_backpack_F", + "C_IDAP_UGV_02_Demining_backpack_F", + "C_UAV_06_backpack_F", + "C_UAV_06_medical_backpack_F", + "I_AA_01_weapon_F", + "I_AT_01_weapon_F", + "I_C_HMG_02_high_weapon_F", + "I_C_HMG_02_support_F", + "I_C_HMG_02_support_high_F", + "I_C_HMG_02_weapon_F", + "I_E_AA_01_weapon_F", + "I_E_AT_01_weapon_F", + "I_E_GMG_01_A_Weapon_F", + "I_E_GMG_01_high_Weapon_F", + "I_E_GMG_01_Weapon_F", + "I_E_HMG_01_A_Weapon_F", + "I_E_HMG_01_high_Weapon_F", + "I_E_HMG_01_support_F", + "I_E_HMG_01_support_high_F", + "I_E_HMG_01_Weapon_F", + "I_E_HMG_02_high_weapon_F", + "I_E_HMG_02_support_F", + "I_E_HMG_02_support_high_F", + "I_E_HMG_02_weapon_F", + "I_E_Mortar_01_support_F", + "I_E_Mortar_01_Weapon_F", + "I_E_UAV_01_backpack_F", + "I_E_UAV_06_backpack_F", + "I_E_UAV_06_medical_backpack_F", + "I_E_UGV_02_Demining_backpack_F", + "I_E_UGV_02_Science_backpack_F", + "I_G_HMG_02_high_weapon_F", + "I_G_HMG_02_support_F", + "I_G_HMG_02_support_high_F", + "I_G_HMG_02_weapon_F", + "I_GMG_01_A_weapon_F", + "I_GMG_01_high_weapon_F", + "I_GMG_01_weapon_F", + "I_HMG_01_A_weapon_F", + "I_HMG_01_high_weapon_F", + "I_HMG_01_support_F", + "I_HMG_01_support_high_F", + "I_HMG_01_weapon_F", + "I_HMG_02_high_weapon_F", + "I_HMG_02_support_F", + "I_HMG_02_support_high_F", + "I_HMG_02_weapon_F", + "I_Mortar_01_support_F", + "I_Mortar_01_weapon_F", + "I_UAV_01_backpack_F", + "I_UAV_06_backpack_F", + "I_UAV_06_medical_backpack_F", + "I_UGV_02_Demining_backpack_F", + "I_UGV_02_Science_backpack_F", + "O_AA_01_weapon_F", + "O_AT_01_weapon_F", + "O_GMG_01_A_weapon_F", + "O_GMG_01_high_weapon_F", + "O_GMG_01_weapon_F", + "O_HMG_01_A_weapon_F", + "O_HMG_01_high_weapon_F", + "O_HMG_01_support_F", + "O_HMG_01_support_high_F", + "O_HMG_01_weapon_F", + "O_Mortar_01_support_F", + "O_Mortar_01_weapon_F", + "O_UAV_01_backpack_F", + "O_UAV_06_backpack_F", + "O_UAV_06_medical_backpack_F", + "O_UGV_02_Demining_backpack_F", + "O_UGV_02_Science_backpack_F", + "RHS_AGS30_Gun_Bag", + "RHS_AGS30_Tripod_Bag", + "RHS_DShkM_Gun_Bag", + "RHS_DShkM_TripodHigh_Bag", + "RHS_DShkM_TripodLow_Bag", + "RHS_Kord_Gun_Bag", + "RHS_Kord_Tripod_Bag", + "RHS_Kornet_Gun_Bag", + "RHS_Kornet_Tripod_Bag", + "RHS_M2_Gun_Bag", + "RHS_M2_MiniTripod_Bag", + "RHS_M2_Tripod_Bag", + "rhs_M252_Bipod_Bag", + "rhs_M252_Gun_Bag", + "RHS_Metis_Gun_Bag", + "RHS_Metis_Tripod_Bag", + "RHS_Mk19_Gun_Bag", + "RHS_Mk19_Tripod_Bag", + "RHS_NSV_Gun_Bag", + "RHS_NSV_Tripod_Bag", + "RHS_Podnos_Bipod_Bag", + "RHS_Podnos_Gun_Bag", + "RHS_SPG9_Gun_Bag", + "RHS_SPG9_Tripod_Bag", + "rhs_Tow_Gun_Bag", + "rhs_TOW_Tripod_Bag", + "UK3CB_BAF_L111A1", + "UK3CB_BAF_L134A1", + "UK3CB_BAF_L16_Tripod", + "UK3CB_BAF_L16", + "UK3CB_BAF_M6", + "UK3CB_BAF_Tripod", + "uns_M1_81mm_mortar_US_Bag", + "uns_M1919_low_US_Bag", + "uns_M2_60mm_mortar_US_Bag", + "uns_m2_high_US_Bag", + "uns_M2_low_US_Bag", + "uns_M30_107mm_mortar_US_Bag", + "uns_M60_high_US_Bag", + "uns_M60_low_US_Bag", + "uns_MK18_low_US_Bag", + "uns_STABO_US_Bag", + "uns_Tripod_Bag", + "Uns_US_searchlight_Bag" +]; + +// Items which should be added as allowed Items, when they get blacklisted, even if they are not in the blacklisted_from_arsenal array +KP_liberation_allowed_items_extension = [ + "ACE_Chemlight_Shield_Blue", + "ACE_Chemlight_Shield_Green", + "ACE_Chemlight_Shield_Orange", + "ACE_Chemlight_Shield_Red", + "ACE_Chemlight_Shield_White", + "ACE_Chemlight_Shield_Yellow", + "ACE_launch_NLAW_Used_F", + "ACE_PreloadedMissileDummy_CUP", + "ACE_PreloadedMissileDummy_Igla_CUP", + "ACE_PreloadedMissileDummy_M72A6_CUP", + "ACE_PreloadedMissileDummy_NLAW_CUP", + "ACE_PreloadedMissileDummy_RPG18_CUP", + "ACE_PreloadedMissileDummy_Stinger_CUP", + "ACE_PreloadedMissileDummy_Strela_2_CUP", + "ACE_ReserveParachute", + "BWA3_acc_LLM01_flash_tan", + "BWA3_acc_LLM01_flash_underbarrel", + "BWA3_acc_LLM01_flash", + "BWA3_acc_LLM01_laser_tan", + "BWA3_acc_LLM01_laser_underbarrel", + "BWA3_acc_LLM01_laser", + "BWA3_acc_VarioRay_flash", + "BWA3_acc_VarioRay_laser", + "BWA3_Bunkerfaust", + "BWA3_G36A2_pip", + "BWA3_G36A2_tan_pip", + "BWA3_optic_CompM2_G36A2", + "BWA3_optic_CompM2_tan_G36A2", + "BWA3_optic_EOTech_G36A2", + "BWA3_optic_EOTech_Mag_Off", + "BWA3_optic_EOTech_Mag_On", + "BWA3_optic_EOTech_sand_G36A2", + "BWA3_optic_EOTech_tan_Mag_Off", + "BWA3_optic_EOTech_tan_Mag_On", + "BWA3_optic_EOTech552_G36A2", + "BWA3_optic_EOTech552_tan_G36A2", + "BWA3_optic_Hensoldt_NSV", + "BWA3_optic_M5Xi_MSR_MicroT2_pip", + "BWA3_optic_M5Xi_MSR_pip", + "BWA3_optic_M5Xi_Tremor3_MicroT2_pip", + "BWA3_optic_M5Xi_Tremor3_pip", + "BWA3_optic_MicroT1_G36A2", + "BWA3_optic_MicroT2_G36A2", + "BWA3_optic_NSA80_G36", + "BWA3_optic_PMII_DMR_MicroT1_front_NSV_pip", + "BWA3_optic_PMII_DMR_MicroT1_front_NSV", + "BWA3_optic_PMII_DMR_MicroT1_front_pip", + "BWA3_optic_PMII_DMR_MicroT1_rear_NSV_pip", + "BWA3_optic_PMII_DMR_MicroT1_rear_NSV", + "BWA3_optic_PMII_DMR_MicroT1_rear_pip", + "BWA3_optic_PMII_DMR_NSV_pip", + "BWA3_optic_PMII_DMR_NSV", + "BWA3_optic_PMII_DMR_pip", + "BWA3_optic_PMII_ShortdotCC_pip", + "BWA3_optic_RSAS_brown_G36A2", + "BWA3_optic_RSAS_G36A2", + "BWA3_optic_RSAS_sand_G36A2", + "BWA3_optic_RSAS_tan_G36A2", + "BWA3_optic_ZO4x30_brown_IRV", + "BWA3_optic_ZO4x30_brown_NSV", + "BWA3_optic_ZO4x30_brown_pip", + "BWA3_optic_ZO4x30_brown_RSAS_IRV_pip", + "BWA3_optic_ZO4x30_brown_RSAS_IRV", + "BWA3_optic_ZO4x30_brown_RSAS_NSV_pip", + "BWA3_optic_ZO4x30_brown_RSAS_NSV", + "BWA3_optic_ZO4x30_brown_RSAS_pip", + "BWA3_optic_ZO4x30_IRV", + "BWA3_optic_ZO4x30_MicroT2_brown_IRV", + "BWA3_optic_ZO4x30_MicroT2_brown_NSV", + "BWA3_optic_ZO4x30_MicroT2_IRV", + "BWA3_optic_ZO4x30_MicroT2_NSV", + "BWA3_optic_ZO4x30_NSV", + "BWA3_optic_ZO4x30_pip", + "BWA3_optic_ZO4x30_RSAS_IRV_pip", + "BWA3_optic_ZO4x30_RSAS_IRV", + "BWA3_optic_ZO4x30_RSAS_NSV_pip", + "BWA3_optic_ZO4x30_RSAS_NSV", + "BWA3_optic_ZO4x30_RSAS_pip", + "BWA3_optic_ZO4x30i_MicroT2_pip", + "BWA3_optic_ZO4x30i_MicroT2_sand_pip", + "BWA3_optic_ZO4x30i_pip", + "BWA3_optic_ZO4x30i_RSAS_pip", + "BWA3_optic_ZO4x30i_RSAS_sand_pip", + "BWA3_optic_ZO4x30i_sand_pip", + "BWA3_PzF3_Used", + "BWA3_PzF3", + "BWA3_RGW90_Used", + "BWA3_RGW90", + "ItemRadioAcreFlagged", + "rhs_acc_ekp8_18b", + "rhs_acc_ekp8_18c", + "rhs_acc_ekp8_18d", + "rhs_m136_hedp_mag", + "rhs_m136_hp_mag", + "rhs_m136_mag", + "rhs_m72a7_mag", + "rhs_rpg26_mag", + "rhs_rshg2_mag", + "rhs_weap_M136_used", + "rhsusf_acc_anpeq15_bk_light_h", + "rhsusf_acc_g33_T1_flip", + "rhsusf_acc_g33_xps3_flip", + "rhsusf_acc_g33_xps3_tan_flip", + "sma_spitfire_03_rds_low_ard_red", + "UK3CB_BAF_AT4_CS_AP_Mag", + "UK3CB_BAF_Javelin_Launcher" +]; + +/* - Configuration settings for crates transported by vehicles. +Format = ["classname", distance behind vehicle to unload crate, attachTo positions for each box], */ +KPLIB_transportConfigs = [ + ["B_Heli_Transport_03_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], + ["B_Heli_Transport_03_unarmed_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], + ["B_T_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_VTOL_01_infantry_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], + ["B_T_VTOL_01_vehicle_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], + ["B_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["BW_AW101_Trans_Heer_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["BW_LKW7T_Trans_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["C_IDAP_Van_02_transport_F", -5, [0,-1.75,0]], + ["C_IDAP_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["C_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["C_Truck_02_covered_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["C_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["C_Van_02_service_F", -5, [0,0.5,0], [0,-1.75,0]], + ["C_Van_02_transport_F", -5, [0,-1.75,0]], + ["C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["CUP_B_C130J_Cargo_USMC",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], + ["CUP_B_CH47F_GB", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], + ["CUP_B_CH47F_USA", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], + ["CUP_B_CH53E_USMC", -8, [0,7.566,-3], [0,5.749,-3], [0,3.847,-3], [0,2,-3], [0,0.338,-3]], + ["CUP_B_Kamaz_CDF", -6.5, [0,-0.4,0], [0,-2.6,0]], + ["CUP_B_Kamaz_Open_CDF", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], + ["CUP_B_Mi17_CDF", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_Mi171Sh_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_Mi171Sh_Unarmed_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_MI6A_CDF", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_B_MTVR_USA", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], + ["CUP_B_MTVR_USMC", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], + ["CUP_B_MV22_USMC_RAMPGUN", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_MV22_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_MV22_VIV_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_T810_Armed_CZ_DES", -6.5, [0,0,-0.5], [0,-2,-0.5]], + ["CUP_B_T810_Armed_CZ_WDL", -6.5, [0,0,-0.5], [0,-2,-0.5]], + ["CUP_B_T810_Unarmed_CZ_DES", -6.5, [0,0,0.2], [0,-2,0.2]], + ["CUP_B_T810_Unarmed_CZ_WDL", -6.5, [0,0,0.2], [0,-2,0.2]], + ["CUP_B_Ural_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_B_Ural_Open_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_B_Wolfhound_GMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_GMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_HMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_HMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_LMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_LMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_C_Ural_Civ_01", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_C_Ural_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_C_Ural_Open_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Kamaz_Open_RU", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], + ["CUP_O_Kamaz_RU", -6.5, [0,-0.4,0], [0,-2.6,0]], + ["CUP_O_Ural_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Mi8_SLA_1", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_O_MI6A_CHDKZ", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_O_MI6A_TKA", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_O_C130J_Cargo_TKA",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], + ["gm_gc_army_ural4320_cargo_win", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], + ["gm_gc_army_ural4320_cargo", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], + ["gm_gc_bgs_ural4320_cargo", -5, [-0.0373535,-0.535156,-0.1], [-0.0344238,-1.76611,-0.1], [-0.0334473,-2.85547,-0.1]], + ["gm_ge_army_kat1_451_container_win", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2],[-0.0222168,-2.79834,-0.2]], + ["gm_ge_army_kat1_451_container", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2], [-0.0222168,-2.79834,-0.2]], + ["gm_ge_army_kat1_454_cargo_win",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], + ["gm_ge_army_kat1_454_cargo",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], + ["gm_ge_army_u1300l_container_win", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], + ["gm_ge_army_u1300l_container", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], + ["greuh_eh101_gr", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["I_C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["I_C_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_E_Truck_02_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["I_E_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["I_E_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_E_Van_02_transport_MP_F", -5, [0,-1.75,0]], + ["I_E_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["I_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["I_G_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_G_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_Heli_Transport_02_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["LOP_ISTS_OPF_Truck", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["LOP_SLA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TAK_Civ_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TAK_Civ_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TKA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TKA_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["O_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["O_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["O_T_Truck_03_covered_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_T_Truck_03_transport_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_Truck_03_covered_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_Truck_03_transport_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["RHS_C130J", -9.5, [-0.8,8.0,-4.0], [0.8,8.0,-4.0], [-0.8,8.0,-2.8], [0.8,8.0,-2.8], [-0.8,6.5,-4.0], [0.8,6.5,-4.0], [-0.8,6.5,-2.8], [0.8,6.5,-2.8], [-0.8,5.0,-4.0], [0.8,5.0,-4.0], [-0.8,5.0,-2.8], [0.8,5.0,-2.8], [-0.8,3.5,-4.0], [0.8,3.5,-4.0], [-0.8,3.5,-2.8], [0.8,3.5,-2.8], [-0.8,2.0,-4.0], [0.8,2.0,-4.0], [-0.8,2.0,-2.8], [0.8,2.0,-2.8], [-0.8,0.5,-4.0], [0.8,0.5,-4.0], [-0.8,0.5,-2.8], [0.8,0.5,-2.8]], + ["RHS_CH_47F_10", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["RHS_CH_47F_light", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["RHS_CH_47F", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["rhs_kamaz5350_flatbed_cover_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_flatbed_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_open_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["RHS_Ural_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Flat_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Flat_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["rhsusf_CH53E_USMC_D", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], + ["rhsusf_CH53E_USMC", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], + ["rhsusf_M1078A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M977A4_BKIT_M2_usarmy_d", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], + ["rhsusf_M977A4_BKIT_M2_usarmy_wd", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], + ["rhsusf_M977A4_BKIT_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_BKIT_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_m998_d_2dr_halftop", -4.5, [0,-0.9,-0.2]], + ["rhsusf_m998_w_2dr_halftop", -4.5, [0,-0.9,-0.2]], + ["rhsusf_M1239_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["rhsusf_M1239_M2_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["rhsusf_M1239_MK19_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["sfp_tgb30", -5, [0.2,-0.1,2], [0.2,-2.1,2]], + ["sfp_tgb40", -5, [0.1,-0.7,2], [0.1,-2.7,2]], + ["UK3CB_BAF_Merlin_HC3_18_DPMT", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC3_32_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC3_CSAR_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_18_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_18_GPMG_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_32_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_CSAR_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["USAF_C17",-10,[-1.2,14.4,-0.43],[-1.2,12.8,-0.43],[-1.2,11.1,-0.43],[-1.2,9.5,-0.43],[-1.2,7.9,-0.43],[-1.2,6.3,-0.43],[-1.2,4.6,-0.43],[-1.2,3,-0.43],[-1.2,1.4,-0.43],[-1.2,-0.1,-0.43],[-1.2,-1.8,-0.43],[1.2,14.4,-0.43],[1.2,12.8,-0.43],[1.2,11.2,-0.43],[1.2,9.6,-0.43],[1.2,7.9,-0.43],[1.2,6.3,-0.43],[1.2,4.7,-0.43],[1.2,3.1,-0.43],[1.2,1.5,-0.43],[1.2,0,-0.43],[1.2,-1.7,-0.43],[-1.2,14.5,1.22],[-1.2,12.8,1.22],[-1.2,11.2,1.2],[-1.2,9.5,1.22],[-1.2,7.9,1.22],[-1.2,6.3,1.22],[-1.2,4.7,1.22],[-1.2,3,1.22],[-1.2,1.4,1.22],[-1.2,-0.1,1.22],[-1.2,-1.7,1.22],[1.2,14.5,1.22],[1.2,12.8,1.22],[1.2,11.2,1.22],[1.2,9.6,1.22],[1.2,8,1.22],[1.2,6.3,1.22],[1.2,4.7,1.22],[1.2,3.1,1.22],[1.2,1.5,1.22],[1.2,0,1.22],[1.2,-1.6,1.22]], + ["USAF_C130J",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08]], + ["USAF_C130J_Cargo",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08],[0,5.3,2.08],[0,7,2.08]], + ["uns_M35A2_Open", -5, [0,-0.6,0.1], [0,-2.3,0.1]], + ["uns_M35A2", -5, [0,-0.6,0.1], [0,-2.3,0.1]], + ["uns_m37b1", -5, [0,-1.8,0.15]], + ["uns_nvatruck_mg", -5, [0,-1.05,0.8], [0,-2.75,0.8]], + ["uns_nvatruck_open", -5, [0,-1.05,0.8], [0,-2.75,0.8]], + ["uns_nvatruck", -5, [0,-1.05,0.8], [0,-2.75,0.8]] +]; + +/* Various other settings. +Everything the AI troups should be able to resupply from. */ +KPLIB_aiResupplySources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Ammo_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_ammo_F", + "B_Truck_01_ammo_F", + "BW_LKW15T_Ammo_F", + "CUP_B_Kamaz_Reammo_CDF", + "CUP_B_MTVR_Ammo_USA", + "CUP_B_MTVR_Ammo_USMC", + "CUP_B_T810_Reammo_CZ_DES", + "CUP_B_T810_Reammo_CZ_WDL", + "CUP_O_Kamaz_Reammo_RU", + "CUP_O_Ural_Reammo_CHDKZ", + "CUP_O_Ural_Reammo_SLA", + "CUP_O_Ural_Reammo_TKA", + "CUP_O_V3S_Rearm_TKA", + "gm_gc_army_ural4320_reammo_win", + "gm_gc_army_ural4320_reammo", + "gm_ge_army_kat1_451_reammo_win", + "gm_ge_army_kat1_451_reammo", + "I_E_Truck_02_Ammo_F", + "Land_Pod_Heli_Transport_04_ammo_F", + "O_Heli_Transport_04_ammo_F", + "O_T_Truck_03_ammo_ghex_F", + "O_Truck_03_ammo_F", + "rhs_gaz66_ammo_msv", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_AMMO_BKIT_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", + "rhsusf_M977A4_AMMO_usarmy_d", + "rhsusf_M977A4_AMMO_usarmy_wd", + "sfp_tgb40_ammo", + "uns_M113_ENG", + "uns_M35A2_ammo", + "uns_motorpool1_repair" +]; + +// Everything that can resupply other vehicles. +vehicle_repair_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Repair_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_Repair_F", + "B_Truck_01_Repair_F", + "BW_LKW15T_Repair_F", + "C_Offroad_01_repair_F", + "CUP_B_Kamaz_Repair_CDF", + "CUP_B_MTVR_Repair_USA", + "CUP_B_MTVR_Repair_USMC", + "CUP_B_T810_Repair_CZ_DES", + "CUP_B_T810_Repair_CZ_WDL", + "CUP_O_V3S_Repair_TKA", + "CUP_O_Ural_Repair_SLA", + "CUP_O_Ural_Repair_CHDKZ", + "gm_gc_army_ural4320_repair_win", + "gm_gc_army_ural4320_repair", + "gm_ge_army_u1300l_repair_win", + "gm_ge_army_u1300l_repair", + "I_E_Truck_02_Box_F", + "Land_Pod_Heli_Transport_04_repair_F", + "O_Heli_Transport_04_repair_F", + "O_T_Truck_03_repair_ghex_F", + "O_Truck_03_repair_F", + "RHS_Ural_Repair_VDV_01", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_d", + "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_REPAIR_BKIT_usarmy_d", + "rhsusf_M977A4_REPAIR_BKIT_usarmy_wd", + "rhsusf_M977A4_REPAIR_usarmy_d", + "rhsusf_M977A4_REPAIR_usarmy_wd", + "sfp_tgb30_repair", + "UNS_Hanger_repair", + "uns_M113_ENG", + "uns_M35A2_repair", + "uns_motorpool1_repair" +]; + +vehicle_rearm_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Ammo_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_ammo_F", + "B_Truck_01_ammo_F", + "BW_LKW15T_Ammo_F", + "CUP_B_Kamaz_Reammo_CDF", + "CUP_B_MTVR_Ammo_USA", + "CUP_B_MTVR_Ammo_USMC", + "CUP_B_T810_Reammo_CZ_DES", + "CUP_B_T810_Reammo_CZ_WDL", + "CUP_O_Kamaz_Reammo_RU", + "CUP_O_Ural_Reammo_CHDKZ", + "CUP_O_Ural_Reammo_SLA", + "CUP_O_Ural_Reammo_TKA", + "CUP_O_V3S_Rearm_TKA", + "gm_gc_army_ural4320_reammo_win", + "gm_gc_army_ural4320_reammo", + "gm_ge_army_kat1_451_reammo_win", + "gm_ge_army_kat1_451_reammo", + "I_E_Truck_02_Ammo_F", + "Land_Pod_Heli_Transport_04_ammo_F", + "O_Heli_Transport_04_ammo_F", + "O_T_Truck_03_ammo_ghex_F", + "O_Truck_03_ammo_F", + "rhs_gaz66_ammo_msv", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_AMMO_BKIT_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", + "rhsusf_M977A4_AMMO_usarmy_d", + "rhsusf_M977A4_AMMO_usarmy_wd", + "sfp_tgb40_ammo", + "uns_M113_ENG", + "uns_M35A2_ammo" +]; + +vehicle_refuel_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Fuel_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_fuel_F", + "B_Truck_01_fuel_F", + "BW_LKW15T_Fuel_F", + "C_Truck_02_fuel_F", + "C_Van_01_fuel_F", + "CUP_B_Kamaz_Refuel_CDF", + "CUP_B_MTVR_Refuel_USA", + "CUP_B_MTVR_Refuel_USMC", + "CUP_B_T810_Refuel_CZ_DES", + "CUP_B_T810_Refuel_CZ_WDL", + "CUP_O_Kamaz_Refuel_RU", + "CUP_O_Ural_Refuel_CHDKZ", + "CUP_O_Ural_Refuel_SLA", + "CUP_O_Ural_Refuel_TKA", + "CUP_O_V3S_Refuel_TKA", + "gm_gc_army_ural375d_refuel_win", + "gm_gc_army_ural375d_refuel", + "gm_ge_army_kat1_451_refuel_win", + "gm_ge_army_kat1_451_refuel", + "I_E_Truck_02_fuel_F", + "Land_Pod_Heli_Transport_04_fuel_F", + "O_Heli_Transport_04_fuel_F", + "O_T_Truck_03_fuel_ghex_F", + "O_Truck_03_fuel_F", + "RHS_Ural_Fuel_VDV_01", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M978A4_BKIT_usarmy_d", + "rhsusf_M978A4_BKIT_usarmy_wd", + "rhsusf_M978A4_usarmy_d", + "rhsusf_M978A4_usarmy_wd", + "sfp_tgb40_fuel", + "uns_M113_ENG", + "uns_M35A2_fuel", + "uns_M35A2_fueltanker" +]; + +// Classnames of boats, so they can be built on water. +boats_names = [ + "B_Boat_Armed_01_minigun_F", + "B_Boat_Transport_01_F", + "B_SDV_01_F", + "B_T_Boat_Armed_01_minigun_F", + "B_T_Boat_Transport_01_F", + "O_Boat_Armed_01_hmg_F", + "O_Boat_Transport_01_F", + "O_T_Boat_Armed_01_hmg_F", + "O_T_Boat_Transport_01_F", + "CUP_B_MK10_GB", + "CUP_B_RHIB_USMC", + "CUP_B_RHIB2Turret_USMC", + "CUP_B_LCU1600_USMC", + "CUP_O_LCVP_SLA", + "CUP_O_LCVP_VIV_SLA", + "CUP_O_PBX_SLA", + "rhsusf_mkvsoc", + "sfp_gruppbat", + "sfp_rbb_norrkoping", + "sfp_strb90_rws", + "sfp_strb90", + "uns_PBR_M10", + "uns_pbr_mk18", + "uns_pbr", + "UNS_Zodiac_W" +]; + +// Classnames of artillery vehicles, which should be added to the support module +// (Needed/Favorized as BIS_SUPP_eligible_Artillery from the support module isn't broadcasted over the network and may hold unwanted vehicles) +KP_liberation_suppMod_artyVeh = [ + "B_G_Mortar_01_F", + "B_MBT_01_arty_F", + "B_MBT_01_mlrs_F", + "B_Mortar_01_F", + "B_Ship_Gun_01_F", + "B_T_MBT_01_arty_F", + "B_T_MBT_01_mlrs_F", + "B_T_Mortar_01_F", + "CUP_B_2b14_82mm_ACR", + "CUP_B_2b14_82mm_CDF", + "CUP_B_BM21_CDF", + "CUP_B_D30_CDF", + "CUP_B_L16A2_BAF_DDPM", + "CUP_B_L16A2_BAF_MPT", + "CUP_B_L16A2_BAF_WDL", + "CUP_B_M1129_MC_MK19_Desert_Slat", + "CUP_B_M1129_MC_MK19_Desert", + "CUP_B_M1129_MC_MK19_Woodland_Slat", + "CUP_B_M1129_MC_MK19_Woodland", + "CUP_B_M119_US", + "CUP_B_M119_USMC", + "CUP_B_M252_US", + "CUP_B_M252_USMC", + "CUP_B_M270_DPICM_BAF_DES", + "CUP_B_M270_DPICM_BAF_WOOD", + "CUP_B_M270_DPICM_USA", + "CUP_B_M270_DPICM_USMC", + "CUP_B_M270_HE_BAF_DES", + "CUP_B_M270_HE_BAF_WOOD", + "CUP_B_M270_HE_USA", + "CUP_B_M270_HE_USMC", + "CUP_B_RM70_CZ", + "CUP_I_2b14_82mm_TK_GUE", + "CUP_I_D30_TK_GUE", + "CUP_I_Hilux_armored_MLRS_TK", + "CUP_I_Hilux_armored_podnos_TK", + "CUP_I_Hilux_armored_UB32_TK", + "CUP_I_Hilux_MLRS_TK", + "CUP_I_Hilux_podnos_TK", + "CUP_I_Hilux_UB32_TK", + "CUP_I_M119_RACS", + "CUP_I_M252_RACS", + "CUP_I_M270_DPICM_AAF", + "CUP_I_M270_DPICM_RACS", + "CUP_I_M270_HE_AAF", + "CUP_I_M270_HE_RACS", + "CUP_O_2b14_82mm_ChDKZ", + "CUP_O_2b14_82mm_RU", + "CUP_O_2b14_82mm_SLA", + "CUP_O_2b14_82mm_TK_INS", + "CUP_O_2b14_82mm_TK", + "CUP_O_BM21_CHDKZ", + "CUP_O_BM21_RU", + "CUP_O_BM21_SLA", + "CUP_O_BM21_TKA", + "CUP_O_D30_ChDKZ", + "CUP_O_D30_RU", + "CUP_O_D30_SLA", + "CUP_O_D30_TK_INS", + "CUP_O_D30_TK", + "CUP_O_Hilux_armored_MLRS_TK_INS", + "CUP_O_Hilux_armored_podnos_TK_INS", + "CUP_O_Hilux_armored_UB32_TK_INS", + "CUP_O_Hilux_MLRS_TK_INS", + "CUP_O_Hilux_podnos_TK_INS", + "CUP_O_Hilux_UB32_TK_INS", + "I_E_Mortar_01_F", + "I_E_Truck_02_MRL_F", + "I_G_Mortar_01_F", + "I_Mortar_01_F", + "I_Truck_02_MRL_F", + "O_G_Mortar_01_F", + "O_MBT_02_arty_F", + "O_Mortar_01_F", + "O_T_MBT_02_arty_ghex_F", + "rhs_2b14_82mm_msv", + "rhs_2b14_82mm_vdv", + "rhs_2b14_82mm_vmf", + "rhs_2s1_tv", + "rhs_2s1_vmf", + "rhs_2s3_tv", + "RHS_BM21_MSV_01", + "RHS_BM21_VDV_01", + "RHS_BM21_VMF_01", + "RHS_BM21_VV_01", + "rhs_D30_msv", + "rhs_D30_vdv", + "rhs_D30_vmf", + "RHS_M119_D", + "RHS_M119_WD", + "RHS_M252_D", + "RHS_M252_USMC_D", + "RHS_M252_USMC_WD", + "RHS_M252_WD", + "rhsusf_m109_usarmy", + "rhsusf_m109d_usarmy", + "rhsusf_M142_usarmy_D", + "rhsusf_M142_usarmy_WD", + "rhsusf_M142_usmc_WD", + "Uns_D20_artillery", + "Uns_D30_artillery", + "uns_M1_81mm_mortar_arty", + "uns_M1_81mm_mortar_pvp", + "uns_M1_81mm_mortar", + "Uns_M102_artillery", + "uns_m107sp", + "uns_m110sp", + "uns_M113_M30_HQ", + "uns_M113_M30", + "Uns_M114_artillery", + "uns_m1941_82mm_mortarNVA_arty", + "uns_m1941_82mm_mortarNVA_pvp", + "uns_m1941_82mm_mortarNVA", + "uns_m1941_82mm_mortarVC", + "uns_M2_60mm_mortar_pvp", + "uns_M2_60mm_mortar", + "uns_M30_107mm_mortar", + "uns_Type55_mortar" +]; + +// Objects which are spawned as intel objects for pickup +KPLIB_intelObjectClasses = [ + "Land_File_research_F", + "Land_Document_01_F" +]; + +// Classnames of buildings inside military sectors, which are valid to hold intel items +KPLIB_intelBuildingClasses = [ + "Land_Cargo_House_V1_F", + "Land_Cargo_House_V2_F", + "Land_Cargo_House_V3_F", + "Land_Cargo_HQ_V1_F", + "Land_Cargo_HQ_V2_F", + "Land_Cargo_HQ_V3_F", + "Land_i_Barracks_V1_dam_F", + "Land_i_Barracks_V1_F", + "Land_i_Barracks_V2_dam_F", + "Land_i_Barracks_V2_F", + "Land_Medevac_house_V1_F", + "Land_Medevac_HQ_V1_F", + "Land_MilOffices_V1_F", + "Land_Research_house_V1_F", + "Land_Research_HQ_F", + "Land_u_Barracks_V2_F" +]; + +// Large storage area placement position offsets. +KP_liberation_large_storage_positions = [ + [-5.59961,3.60938,0.6], + [-3.99902,3.60938,0.6], + [-2.39941,3.60938,0.6], + [-0.799805,3.60938,0.6], + [0.800781,3.60938,0.6], + [2.40039,3.60938,0.6], + [4.00098,3.60938,0.6], + [5.60059,3.60938,0.6], + [-5.59961,1.80859,0.6], + [-3.99902,1.80859,0.6], + [-2.39941,1.80859,0.6], + [-0.799805,1.80859,0.6], + [0.800781,1.80859,0.6], + [2.40039,1.80859,0.6], + [4.00098,1.80859,0.6], + [5.60059,1.80859,0.6], + [-5.59961,0.00976563,0.6], + [-3.99902,0.00976563,0.6], + [-2.39941,0.00976563,0.6], + [-0.799805,0.00976563,0.6], + [0.800781,0.00976563,0.6], + [2.40039,0.00976563,0.6], + [4.00098,0.00976563,0.6], + [5.60059,0.00976563,0.6], + [-5.59961,-1.79102,0.6], + [-3.99902,-1.79102,0.6], + [-2.39941,-1.79102,0.6], + [-0.799805,-1.79102,0.6], + [0.800781,-1.79102,0.6], + [2.40039,-1.79102,0.6], + [4.00098,-1.79102,0.6], + [5.60059,-1.79102,0.6], + [-5.59961,-3.58984,0.6], + [-3.99902,-3.58984,0.6], + [-2.39941,-3.58984,0.6], + [-0.799805,-3.58984,0.6], + [0.800781,-3.58984,0.6], + [2.40039,-3.58984,0.6], + [4.00098,-3.58984,0.6], + [5.60059,-3.58984,0.6] +]; + +// Small storage area placement position offsets. +KP_liberation_small_storage_positions = [ + [-2.34961,1.80078,0.6], + [-0.75,1.80078,0.6], + [0.850586,1.80078,0.6], + [2.4502,1.80078,0.6], + [-2.34961,0,0.6], + [-0.75,0,0.6], + [0.850586,0,0.6], + [2.4502,0,0.6], + [-2.34961,-1.79883,0.6], + [-0.75,-1.79883,0.6], + [0.850586,-1.79883,0.6], + [2.4502,-1.79883,0.6] +]; + +// DO NOT CHANGE (unless you know what you are doing). +GRLIB_endgame = 0; +KP_liberation_production_interval = ceil (KP_liberation_production_interval / GRLIB_resources_multiplier); +GRLIB_battlegroup_size = GRLIB_battlegroup_size * (sqrt GRLIB_unitcap) * (sqrt GRLIB_csat_aggressivity); +GRLIB_civilians_amount = GRLIB_civilians_amount * GRLIB_civilian_activity; +GRLIB_blufor_cap = (GRLIB_blufor_cap * GRLIB_unitcap) min 100; +GRLIB_sector_cap = GRLIB_sector_cap * GRLIB_unitcap; +GRLIB_battlegroup_cap = GRLIB_battlegroup_cap * GRLIB_unitcap; +GRLIB_patrol_cap = GRLIB_patrol_cap * GRLIB_unitcap; diff --git a/kp_liberation.brf_sumava/kp_objectInits.sqf b/kp_liberation.brf_sumava/kp_objectInits.sqf new file mode 100644 index 0000000..1ba6f00 --- /dev/null +++ b/kp_liberation.brf_sumava/kp_objectInits.sqf @@ -0,0 +1,132 @@ +/* + Specific object init codes depending on classnames. + + Format: + [ + Array of classnames as strings , + Code to apply , + Allow inheritance (default false) + ] + _this is the reference to the object with the classname + + Example: + KPLIB_objectInits = [ + [ + ["O_soldierU_F"], + {systemChat "CSAT urban soldier was spawned!"} + ], + [ + ["CAManBase"], + {systemChat format ["Some human named '%1' was spawned!", name _this]}, + true + ] + ]; +*/ + +KPLIB_objectInits = [ + // Set KP logo on white flag + [ + ["Flag_White_F"], + {_this setFlagTexture "res\flag_kp_co.paa";} + ], + + // Add helipads to zeus, as they can't be recycled after built + [ + ["Helipad_base_F", "LAND_uns_Heli_pad", "Helipad", "LAND_uns_evac_pad", "LAND_uns_Heli_H"], + {{[_x, [[_this], true]] remoteExecCall ["addCuratorEditableObjects", 2]} forEach allCurators;}, + true + ], + + // Add ViV and build action to FOB box/truck + [ + [FOB_box_typename, FOB_truck_typename], + { + [_this] spawn { + params ["_fobBox"]; + waitUntil {sleep 0.1; time > 0}; + [_fobBox] call KPLIB_fnc_setFobMass; + if ((typeOf _fobBox) isEqualTo FOB_box_typename) then { + [_fobBox] call KPLIB_fnc_setFobMass; + [_fobBox] remoteExecCall ["KPLIB_fnc_setLoadableViV", 0, _fobBox]; + }; + [_fobBox] remoteExecCall ["KPLIB_fnc_addActionsFob", 0, _fobBox]; + }; + } + ], + + // Add FOB building damage handler override and repack action + [ + [FOB_typename], + { + _this addEventHandler ["HandleDamage", {0}]; + [_this] spawn { + params ["_fob"]; + waitUntil {sleep 0.1; time > 0}; + [_fob] remoteExecCall ["KPLIB_fnc_addActionsFob", 0, _fob]; + }; + } + ], + + // Add ViV action to Arsenal crate + [ + [Arsenal_typename], + { + [_this] spawn { + params ["_arsenal"]; + waitUntil {sleep 0.1; time > 0}; + [_arsenal] remoteExecCall ["KPLIB_fnc_setLoadableViV", 0, _arsenal]; + }; + } + ], + + // Add storage type variable to built storage areas (only for FOB built/loaded ones) + [ + [KP_liberation_small_storage_building, KP_liberation_large_storage_building], + {_this setVariable ["KP_liberation_storage_type", 0, true];} + ], + + // Add ACE variables to corresponding building types + [ + [KP_liberation_recycle_building], + {_this setVariable ["ace_isRepairFacility", 1, true];} + ], + [ + KP_liberation_medical_facilities, + {_this setVariable ["ace_medical_isMedicalFacility", true, true];} + ], + [ + KP_liberation_medical_vehicles, + {_this setVariable ["ace_medical_isMedicalVehicle", true, true];} + ], + + // Hide Cover on big GM trucks + [ + ["gm_ge_army_kat1_454_cargo", "gm_ge_army_kat1_454_cargo_win"], + {_this animateSource ["cover_unhide", 0, true];} + ], + + // Make sure a slingloaded object is local to the helicopter pilot (avoid desync and rope break) + [ + ["Helicopter"], + {if (isServer) then {[_this] call KPLIB_fnc_addRopeAttachEh;} else {[_this] remoteExecCall ["KPLIB_fnc_addRopeAttachEh", 2];};}, + true + ], + + // Add valid vehicles to support module, if system is enabled + [ + KP_liberation_suppMod_artyVeh, + {if (KP_liberation_suppMod > 0) then {KPLIB_suppMod_arty synchronizeObjectsAdd [_this];};} + ], + + // Disable autocombat (if set in parameters) and fleeing + [ + ["Man"], + { + if (!(GRLIB_autodanger) && {(side _this) isEqualTo GRLIB_side_friendly}) then { + _this disableAI "AUTOCOMBAT"; + }; + _this allowFleeing 0; + }, + true + ] +]; diff --git a/kp_liberation.brf_sumava/mission.sqm b/kp_liberation.brf_sumava/mission.sqm new file mode 100644 index 0000000..07323d2 --- /dev/null +++ b/kp_liberation.brf_sumava/mission.sqm @@ -0,0 +1,53854 @@ +version=54; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=7161; + }; + class MarkerIDProvider + { + nextID=2; + }; + class LayerIndexProvider + { + nextID=1190; + }; + class Camera + { + pos[]={6497.4775,84.869537,9983.8057}; + dir[]={-0.94716185,-0.3206287,-0.010280139}; + up[]={-0.32061338,0.9472025,-0.0034798596}; + aside[]={-0.010852606,1.8589913e-07,0.9999494}; + }; +}; +binarizationWanted=0; +sourceName="kp_liberation"; +addons[]= +{ + "A3_Ui_F", + "A3_Modules_F", + "A3_Structures_F_Mil_BagBunker", + "A3_Structures_F_Walls", + "A3_Signs_F", + "ace_interaction", + "ace_cargo", + "ace_dragging", + "CUP_Misc3_Config", + "A3_Structures_F_Civ_Market", + "A3_Structures_F_Items_Vessels", + "ace_field_rations", + "CUP_CAMisc", + "CUP_Misc_e_Config", + "A3_Structures_F_EPA_Mil_Scrapyard", + "A3_Structures_F_Civ_Accessories", + "A3_Structures_F_Civ_Garbage", + "A3_Structures_F_Ind_Tank", + "A3_Structures_F_EPB_Items_Vessels", + "CUP_CAStructures_E_Misc_Misc_Market", + "cba_xeh", + "A3_Structures_F_Civ_Camping", + "CUP_WarfareBuildings", + "CUP_StandaloneTerrains_Core_Faction", + "ace_sitting", + "A3_Structures_F_EPA_Civ_Camping", + "A3_Props_F_Enoch_Civilian_Forest", + "A3_Structures_F_System", + "CUP_Shed_small", + "CUP_Editor_A2_Roads_Config", + "A3_Structures_F_Enoch_Industrial_Sawmills", + "A3_Structures_F_Argo_Industrial_Materials", + "A3_Structures_F_Enoch_Industrial_Materials", + "CUP_CAStructuresHouse_Shed_Ind", + "A3_Structures_F_Argo_Military_Fortifications", + "CUP_CAStructures_Ruins", + "A3_Structures_F_Heli_Civ_Garbage", + "A3_Rocks_F_Argo_Limestone", + "A3_Rocks_F_Blunt", + "A3_Rocks_F_Water", + "A3_Rocks_F_Sharp", + "A3_Rocks_F_Enoch", + "A3_Rocks_F", + "CUP_Editor_Rocks_Config", + "A3_Structures_F_Wrecks", + "A3_Structures_F_Ind_Transmitter_Tower", + "A3_Structures_F_Argo_Walls_Military", + "A3_Structures_F_Enoch_Military_Bunkers", + "A3_Structures_F_Civ_Constructions", + "CUP_CAStructures_E_Misc_Misc_Interier", + "A3_Structures_F_EPA_Civ_Constructions", + "A3_Structures_F_Civ_InfoBoards", + "CUP_Editor_Structures_Config", + "A3_Structures_F_Heli_Items_Luggage", + "A3_Structures_F_Mil_Fortification", + "CUP_A1_EditorObjects", + "CUP_Ind_Tank", + "A3_Structures_F_Heli_Ind_Machines", + "A3_Structures_F_Mil_Bunker", + "A3_Structures_F_Enoch_Military_Barracks", + "A3_Structures_F_Mil_Cargo", + "A3_Structures_F_Naval_Piers", + "A3_Props_F_Orange_Humanitarian_Garbage", + "A3_Props_F_Enoch_Military_Garbage", + "A3_Props_F_Orange_Humanitarian_Supplies", + "A3_Structures_F_EPB_Items_Luggage", + "A3_Structures_F_Enoch_Military_Training", + "A3_Structures_F_Civ_Dead", + "A3_Modules_F_Effects", + "CUP_New_Buildings_Warehouse_Mezzanine", + "A3_Structures_F_Mil_Flags", + "A3_Structures_F_Civ_Lamps", + "emr_main", + "CUP_CAStructures_E_Misc_Misc_Construction", + "CUP_CAMisc_ACR_Container", + "ace_compat_cup_terrains", + "CUP_Buildings_Config", + "CUP_Editor_Buildings_Config", + "A3_Structures_F_EPB_Items_Military", + "A3_Structures_F_Mil_Helipads", + "CUP_CABuildings2_Misc_Cargo", + "A3_Supplies_F_Heli_Slingload", + "A3_Structures_F_Mil_Barracks", + "ace_logistics_wirecutter", + "ace_concertina_wire", + "A3_Structures_F_Kart_Civ_SportsGrounds", + "CUP_A2_EditorObjects", + "A3_Modules_F_Curator_Curator", + "A3_Characters_F", + "ace_explosives", + "A3_Structures_F_Items_Tools", + "A3_Structures_F_EPA_Items_Vessels", + "A3_Structures_F_EPB_Civ_Accessories", + "A3_Structures_F_Ind_Cargo", + "CUP_CAStructures_E_Ind_Ind_Shed", + "CUP_CAStructures_Nav_pier", + "A3_Structures_F_Exp_Naval_Piers", + "A3_Structures_F_Mil_BagFence", + "A3_Structures_F_EPC_Dominants_GhostHotel" +}; +class AddonsMetaData +{ + class List + { + items=58; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item2 + { + className="A3_Structures_F_Mil"; + name="Arma 3 - Military Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item3 + { + className="A3_Structures_F"; + name="Arma 3 - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item4 + { + className="A3_Signs_F"; + name="Arma 3 - Signs"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item5 + { + className="ace_interaction"; + name="ACE3 - Interaction"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item6 + { + className="ace_cargo"; + name="ACE3 - Cargo"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item7 + { + className="ace_dragging"; + name="ACE3 - Dragging"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item8 + { + className="CUP_Misc3_Config"; + name="CUP_Misc3_Config"; + }; + class Item9 + { + className="ace_field_rations"; + name="ACE3 - Field Rations"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item10 + { + className="CUP_CAMisc"; + name="CUP_CAMisc"; + }; + class Item11 + { + className="CUP_Misc_e_Config"; + name="CUP_Misc_e_Config"; + }; + class Item12 + { + className="A3_Structures_F_EPA"; + name="Arma 3 Survive Episode - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item13 + { + className="A3_Structures_F_Ind"; + name="Arma 3 - Industrial Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item14 + { + className="A3_Structures_F_EPB"; + name="Arma 3 Adapt Episode - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item15 + { + className="CUP_CAStructures_E_Misc_Misc_Market"; + name="CUP_CAStructures_E_Misc_Misc_Market"; + }; + class Item16 + { + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item17 + { + className="CUP_WarfareBuildings"; + name="CUP_WarfareBuildings"; + }; + class Item18 + { + className="CUP_StandaloneTerrains_Core_Faction"; + name="CUP_StandaloneTerrains_Core_Faction"; + }; + class Item19 + { + className="ace_sitting"; + name="ACE3 - Sitting"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item20 + { + className="A3_Props_F_Enoch"; + name="Arma 3 Contact Platform - Decorative and Mission Objects"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item21 + { + className="CUP_Shed_small"; + name="CUP_Shed_small"; + }; + class Item22 + { + className="CUP_Editor_A2_Roads_Config"; + name="CUP_Editor_A2_Roads_Config"; + }; + class Item23 + { + className="A3_Structures_F_Enoch_Industrial"; + name="Arma 3 Contact Platform - Industrial Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item24 + { + className="A3_Structures_F_Argo"; + name="Arma 3 Malden - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item25 + { + className="CUP_CAStructuresHouse_Shed_Ind"; + name="CUP_CAStructuresHouse_Shed_Ind"; + }; + class Item26 + { + className="CUP_CAStructures_Ruins"; + name="CUP_CAStructures_Ruins"; + }; + class Item27 + { + className="A3_Structures_F_Heli"; + name="Arma 3 Helicopters - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item28 + { + className="A3_Rocks_F_Argo"; + name="Arma 3 Malden - Rocks and Stones"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item29 + { + className="A3_Rocks_F"; + name="Arma 3 - Rocks and Stones"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item30 + { + className="A3_Rocks_F_Enoch"; + name="Arma 3 Contact Platform - Rocks and Stones"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item31 + { + className="CUP_Editor_Rocks_Config"; + name="CUP_Editor_Rocks_Config"; + }; + class Item32 + { + className="A3_Structures_F_Wrecks"; + name="Arma 3 - Vehicle Wrecks"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item33 + { + className="A3_Structures_F_Enoch_Military"; + name="Arma 3 Contact Platform - Military Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item34 + { + className="CUP_CAStructures_E_Misc_Misc_Interier"; + name="CUP_CAStructures_E_Misc_Misc_Interier"; + }; + class Item35 + { + className="CUP_Editor_Structures_Config"; + name="CUP_Editor_Structures_Config"; + }; + class Item36 + { + className="CUP_A1_EditorObjects"; + name="CUP_A1_EditorObjects"; + author="NeoArmageddon"; + }; + class Item37 + { + className="CUP_Ind_Tank"; + name="CUP_Ind_Tank"; + }; + class Item38 + { + className="A3_Props_F_Orange"; + name="Arma 3 Orange - Decorative and Mission Objects"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item39 + { + className="CUP_New_Buildings_Warehouse"; + name="CUP_New_Buildings_Warehouse_Mezzanine"; + }; + class Item40 + { + className="emr_main"; + name="Enhanced Movement Rework"; + author="Simplex Team"; + url="https://github.com/SceptreOfficial/Enhanced-Movement-Rework"; + }; + class Item41 + { + className="CUP_CAStructures_E_Misc_Misc_Construction"; + name="CUP_CAStructures_E_Misc_Misc_Construction"; + }; + class Item42 + { + className="CUP_CAMisc_ACR_Container"; + name="CUP_CAMisc_ACR_Container"; + }; + class Item43 + { + className="ace_compat_cup_terrains"; + name="ACE3 - CUP Terrains Compatibility"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item44 + { + className="CUP_Buildings_Config"; + name="CUP_Buildings_Config"; + }; + class Item45 + { + className="CUP_Editor_Buildings_Config"; + name="CUP_Editor_Buildings_Config"; + }; + class Item46 + { + className="CUP_CABuildings2_Misc_Cargo"; + name="CUP_CABuildings2_Misc_Cargo"; + }; + class Item47 + { + className="A3_Supplies_F_Heli"; + name="Arma 3 Helicopters - Ammoboxes and Supplies"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item48 + { + className="ace_logistics_wirecutter"; + name="ACE3 - Logistics Wire Cutter"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item49 + { + className="ace_concertina_wire"; + name="ACE3 - Concertina Wire"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item50 + { + className="A3_Structures_F_Kart"; + name="Arma 3 Karts - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item51 + { + className="CUP_A2_EditorObjects"; + name="CUP_A2_EditorObjects"; + author="MemphisBelle"; + }; + class Item52 + { + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item53 + { + className="ace_explosives"; + name="ACE3 - Explosives"; + author="ACE-Team"; + url="https://ace3.acemod.org/"; + }; + class Item54 + { + className="CUP_CAStructures_E_Ind_Ind_Shed"; + name="CUP_CAStructures_E_Ind_Ind_Shed"; + }; + class Item55 + { + className="CUP_CAStructures_Nav_pier"; + name="CUP_CAStructures_Nav_pier"; + }; + class Item56 + { + className="A3_Structures_F_Exp"; + name="Arma 3 Apex - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item57 + { + className="A3_Structures_F_EPC"; + name="Arma 3 Win Episode - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + }; +}; +dlcs[]= +{ + "Enoch", + "Argo", + "Heli", + "ORANGE", + "Kart", + "Expansion" +}; +randomSeed=7603109; +class ScenarioData +{ + author="Cathode"; +}; +class Mission +{ + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2015; + month=6; + day=24; + hour=10; + minute=0; + startFogBase=250; + forecastFogBase=250; + startFogDecay=0.017999999; + forecastFogDecay=0.017999999; + }; + class Entities + { + items=232; + class Item0 + { + dataType="Marker"; + position[]={15367.017,152.79428,5970.1265}; + name="ghost_spot"; + type="Empty"; + id=0; + }; + class Item1 + { + dataType="Marker"; + position[]={1285.415,36.702999,10552.004}; + name="capture"; + text="Letovy"; + type="n_art"; + colorName="ColorEAST"; + id=54; + atlOffset=-0.0001335144; + }; + class Item2 + { + dataType="Marker"; + position[]={9518.0332,12.52,11027.022}; + name="military"; + text="VZ Bor"; + type="o_support"; + colorName="ColorEAST"; + id=55; + }; + class Item3 + { + dataType="Marker"; + position[]={7623.7461,7.316,4682.48}; + name="factory"; + text="Zichovice Factory"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=56; + atlOffset=0.23311424; + }; + class Item4 + { + dataType="Marker"; + position[]={5689.1812,36.488998,10720.443}; + name="bigtown"; + text="Hradesice"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=57; + atlOffset=-0.00049972534; + }; + class Item5 + { + dataType="Marker"; + position[]={4215.7095,50.703873,11409.93}; + name="tower"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=58; + }; + class Item6 + { + dataType="Marker"; + position[]={7002.7236,16.43898,9650.0127}; + name="opfor_point"; + type="Empty"; + id=59; + atlOffset=1.9073486e-06; + }; + class Item7 + { + dataType="Marker"; + position[]={6093.1729,44.992435,11927.601}; + name="huronmarker"; + text="Spartan 01"; + type="b_air"; + id=61; + }; + class Item8 + { + dataType="Marker"; + position[]={6066.3643,45.424618,11956.629}; + name="startbase_marker"; + text="Operation Base"; + type="mil_start"; + colorName="ColorWEST"; + id=66; + atlOffset=0.85117722; + }; + class Item9 + { + dataType="Logic"; + class PositionInfo + { + position[]={4216.6738,50.620995,11412.005}; + angles[]={0.053284902,0,0.021659536}; + }; + areaSize[]={5,-1,5}; + flags=1; + id=70; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item10 + { + dataType="Marker"; + position[]={713.38159,74.973816,11491.044}; + name="tower_1"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=71; + }; + class Item11 + { + dataType="Logic"; + class PositionInfo + { + position[]={712.87653,74.95887,11491.683}; + angles[]={0.029989703,0,6.2748561}; + }; + areaSize[]={5,-1,5}; + flags=1; + id=72; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item12 + { + dataType="Marker"; + position[]={7948.8472,98.741341,9253.9307}; + name="tower_2"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=73; + }; + class Item13 + { + dataType="Marker"; + position[]={2961.751,3.4349999,9234.3779}; + name="capture_1"; + text="Merenice"; + type="n_art"; + colorName="ColorEAST"; + id=74; + atlOffset=2.3841858e-05; + }; + class Item14 + { + dataType="Marker"; + position[]={5166.0371,19.652,9576.9629}; + name="capture_2"; + text="Cerníc"; + type="n_art"; + colorName="ColorEAST"; + id=75; + atlOffset=0.00031280518; + }; + class Item15 + { + dataType="Marker"; + position[]={5103.0649,49.768002,8291.0342}; + name="capture_3"; + text="Vlkonice"; + type="n_art"; + colorName="ColorEAST"; + id=76; + atlOffset=-0.00048065186; + }; + class Item16 + { + dataType="Marker"; + position[]={4124.459,13.599,11944.15}; + name="capture_4"; + text="Zahrádka"; + type="n_art"; + colorName="ColorEAST"; + id=77; + atlOffset=-0.00012111664; + }; + class Item17 + { + dataType="Marker"; + position[]={10209.801,22.4,9672.8818}; + name="capture_5"; + text="Týnec"; + type="n_art"; + colorName="ColorEAST"; + id=78; + }; + class Item18 + { + dataType="Marker"; + position[]={9094.0977,37.356998,8856.6895}; + name="capture_6"; + text="Hlinený Újezd"; + type="n_art"; + colorName="ColorEAST"; + id=79; + atlOffset=0.00035095215; + }; + class Item19 + { + dataType="Marker"; + position[]={10171.832,8.5799999,8435.1934}; + name="capture_7"; + text="Malé Hydcice"; + type="n_art"; + colorName="ColorEAST"; + id=80; + }; + class Item20 + { + dataType="Marker"; + position[]={10235.695,88.652,804.66101}; + name="capture_8"; + text="Kvilda"; + type="n_art"; + colorName="ColorEAST"; + id=81; + atlOffset=0.00040435791; + }; + class Item21 + { + dataType="Marker"; + position[]={5559.564,6.934,4856.3628}; + name="capture_9"; + text="Cepice"; + type="n_art"; + colorName="ColorEAST"; + id=82; + atlOffset=-0.00037002563; + }; + class Item22 + { + dataType="Marker"; + position[]={3246.4309,12.31,4155.1719}; + name="capture_10"; + text="Dobrsín"; + type="n_art"; + colorName="ColorEAST"; + id=83; + }; + class Item23 + { + dataType="Marker"; + position[]={210.17599,130.91,2588.801}; + name="capture_11"; + text="Odolenov"; + type="n_art"; + colorName="ColorEAST"; + id=84; + atlOffset=0.081939697; + }; + class Item24 + { + dataType="Marker"; + position[]={790.69202,4.3000002,1166.408}; + name="capture_12"; + text="Susice Suburbs"; + type="n_art"; + colorName="ColorEAST"; + id=85; + }; + class Item25 + { + dataType="Marker"; + position[]={3236.8579,158.79401,860.70697}; + name="capture_13"; + text="Rok"; + type="n_art"; + colorName="ColorEAST"; + id=86; + atlOffset=-0.00042724609; + }; + class Item26 + { + dataType="Marker"; + position[]={4596.8018,2.99,1325.319}; + name="capture_14"; + text="Modrava"; + type="n_art"; + colorName="ColorEAST"; + id=87; + }; + class Item27 + { + dataType="Marker"; + position[]={10202.699,110.046,2986.198}; + name="capture_15"; + text="Domoraz"; + type="n_art"; + colorName="ColorEAST"; + id=88; + atlOffset=0.00045013428; + }; + class Item28 + { + dataType="Marker"; + position[]={10814.117,33.646999,4186.8799}; + name="capture_16"; + text="Popokatepetl"; + type="n_art"; + colorName="ColorEAST"; + id=89; + atlOffset=-0.00033950806; + }; + class Item29 + { + dataType="Marker"; + position[]={12112.353,148.98,6054.7798}; + name="capture_17"; + text="Karlovce"; + type="n_art"; + colorName="ColorEAST"; + id=90; + }; + class Item30 + { + dataType="Marker"; + position[]={10949.453,51.408001,7055.3452}; + name="capture_18"; + text="Hejná"; + type="n_art"; + colorName="ColorEAST"; + id=92; + atlOffset=0.00018692017; + }; + class Item31 + { + dataType="Marker"; + position[]={2524.6641,55.462002,6314.7988}; + name="capture_19"; + text="Lipová Lhota"; + type="n_art"; + colorName="ColorEAST"; + id=93; + atlOffset=0.0001411438; + }; + class Item32 + { + dataType="Marker"; + position[]={244.06599,37.598999,7320.4492}; + name="capture_20"; + text="Hájek"; + type="n_art"; + colorName="ColorEAST"; + id=94; + atlOffset=-8.0108643e-05; + }; + class Item33 + { + dataType="Marker"; + position[]={2302.7539,2.2620001,9156.1025}; + name="capture_21"; + text="Otesín"; + type="n_art"; + colorName="ColorEAST"; + id=95; + atlOffset=-0.00013422966; + }; + class Item34 + { + dataType="Marker"; + position[]={8536.0371,9.6619997,7502.811}; + name="capture_22"; + text="Bojanovice"; + type="n_art"; + colorName="ColorEAST"; + id=96; + atlOffset=-0.00048828125; + }; + class Item35 + { + dataType="Marker"; + position[]={3851.47,66.030998,2845.8469}; + name="capture_23"; + text="Velká Chmelná"; + type="n_art"; + colorName="ColorEAST"; + id=97; + atlOffset=0.00025177002; + }; + class Item36 + { + dataType="Marker"; + position[]={307.76501,13.526,3997.77}; + name="capture_25"; + text="V Lihu"; + type="n_art"; + colorName="ColorEAST"; + id=99; + atlOffset=0.00036716461; + }; + class Item37 + { + dataType="Marker"; + position[]={636.021,3.1440001,4790.2661}; + name="capture_26"; + text="Tedrazice"; + type="n_art"; + colorName="ColorEAST"; + id=100; + atlOffset=0.00015306473; + }; + class Item38 + { + dataType="Marker"; + position[]={5189.9331,10.97,6356.7349}; + name="capture_27"; + text="Budetice Suburbs"; + type="n_art"; + colorName="ColorEAST"; + id=101; + atlOffset=-0.00046634674; + }; + class Item39 + { + dataType="Marker"; + position[]={4816.877,8.8940001,6506.3828}; + name="capture_28"; + text="Budetice"; + type="n_art"; + colorName="ColorEAST"; + id=102; + atlOffset=0.00026130676; + }; + class Item40 + { + dataType="Marker"; + position[]={2091.8621,34.186001,11406.96}; + name="bigtown_1"; + text="Nalzovské Hory"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=103; + atlOffset=-7.6293945e-05; + }; + class Item41 + { + dataType="Marker"; + position[]={7119.209,21.950001,6144.7871}; + name="bigtown_2"; + text="Rábí"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=104; + atlOffset=7.2479248e-05; + }; + class Item42 + { + dataType="Marker"; + position[]={7953.2778,13.75,4780.1328}; + name="capture_29"; + text="Zichovice East"; + type="n_art"; + colorName="ColorEAST"; + id=106; + }; + class Item43 + { + dataType="Marker"; + position[]={7184.2202,15.208,4640.8672}; + name="capture_30"; + text="Zichovice West"; + type="n_art"; + colorName="ColorEAST"; + id=107; + atlOffset=-0.00047969818; + }; + class Item44 + { + dataType="Marker"; + position[]={9730.7051,170.64301,5974.7632}; + name="military_1"; + text="RZ Sukafon"; + type="o_support"; + colorName="ColorEAST"; + id=108; + atlOffset=-9.1552734e-05; + }; + class Item45 + { + dataType="Marker"; + position[]={7760.1689,190.32001,849.63397}; + name="factory_1"; + text="Lumber Mill"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=109; + }; + class Item46 + { + dataType="Marker"; + position[]={4119.3428,120.76,203.23}; + name="factory_2"; + text="Secluded Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=110; + }; + class Item47 + { + dataType="Marker"; + position[]={11422.635,3.707,10789.682}; + name="capture_31"; + text="Nový Dvur"; + type="n_art"; + colorName="ColorEAST"; + id=113; + atlOffset=1.6772635; + }; + class Item48 + { + dataType="Marker"; + position[]={11213.139,9.3190002,10701.16}; + name="factory_3"; + text="Nový Dvur Factory"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=114; + atlOffset=-8.5830688e-06; + }; + class Item49 + { + dataType="Marker"; + position[]={9858.0059,12.187,7811.7202}; + name="factory_4"; + text="Hydcice Cement Plant"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=115; + atlOffset=0.0002374649; + }; + class Item50 + { + dataType="Marker"; + position[]={10468.439,6.223,8110.1089}; + name="bigtown_3"; + text="Velké Hydcice"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=116; + atlOffset=0.00036334991; + }; + class Item51 + { + dataType="Marker"; + position[]={7171.4272,65.692947,6494.1592}; + name="tower_4"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=118; + }; + class Item52 + { + dataType="Logic"; + class PositionInfo + { + position[]={7167.415,65.902847,6494.0439}; + angles[]={6.2432079,0,6.2017002}; + }; + areaSize[]={5,-1,5}; + flags=1; + id=119; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item53 + { + dataType="Marker"; + position[]={524.58899,29.395,7221.1011}; + name="military_2"; + text="Hájek Barracks"; + type="o_support"; + colorName="ColorEAST"; + id=123; + atlOffset=0.00039482117; + }; + class Item54 + { + dataType="Marker"; + position[]={1246.0699,5.0300002,3178.9929}; + name="military_3"; + text="Susice Power Plant"; + type="o_support"; + colorName="ColorEAST"; + id=124; + }; + class Item55 + { + dataType="Marker"; + position[]={2388.8689,6.921,3362.5281}; + name="factory_5"; + text="Susice Factory"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=125; + atlOffset=-0.00032424927; + }; + class Item56 + { + dataType="Marker"; + position[]={2678.4634,4.2800002,3258.5398}; + name="military_4"; + text="Susice Water Treatment Plant"; + type="o_support"; + colorName="ColorEAST"; + id=126; + }; + class Item57 + { + dataType="Marker"; + position[]={1366.332,4.2969999,1861.903}; + name="bigtown_4"; + text="Susice"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=127; + atlOffset=0.00017166138; + }; + class Item58 + { + dataType="Marker"; + position[]={2005.5192,7.185812,2642.9983}; + name="bigtown_5"; + text="Susice Industrial"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=130; + }; + class Item59 + { + dataType="Marker"; + position[]={11683.603,99.838997,5270.373}; + name="factory_6"; + text="Salt Stockpile"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=131; + atlOffset=-6.1035156e-05; + }; + class Item60 + { + dataType="Marker"; + position[]={11061.965,223.17999,1777.3121}; + name="tower_5"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=134; + }; + class Item61 + { + dataType="Marker"; + position[]={1814.7233,179.18291,5061.2305}; + name="tower_6"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=137; + }; + class Item62 + { + dataType="Logic"; + class PositionInfo + { + position[]={1814.74,179.18365,5061.2339}; + angles[]={6.0746012,0,0.0033335788}; + }; + areaSize[]={15,0,15}; + flags=1; + id=138; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item63 + { + dataType="Marker"; + position[]={3122.2632,108.05,8197.0029}; + name="tower_7"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=140; + }; + class Item64 + { + dataType="Logic"; + class PositionInfo + { + position[]={3123.677,107.88303,8200.9307}; + angles[]={0.054944519,4.9574504,6.2598543}; + }; + areaSize[]={25,0,10}; + flags=1; + id=141; + type="ModuleHideTerrainObjects_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item65 + { + dataType="Marker"; + position[]={10703.864,166.56601,6566.8125}; + name="tower_8"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=143; + }; + class Item66 + { + dataType="Logic"; + class PositionInfo + { + position[]={10701.27,166.54041,6564.9531}; + angles[]={0.0897597,0,0.04164169}; + }; + areaSize[]={15,0,15}; + flags=1; + id=144; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item67 + { + dataType="Marker"; + position[]={1985.8883,35.951107,15450.214}; + name="opfor_airspawn_1"; + type="Empty"; + id=146; + }; + class Item68 + { + dataType="Marker"; + position[]={10726.446,24.390148,15405.254}; + name="opfor_airspawn_2"; + type="Empty"; + id=147; + }; + class Item69 + { + dataType="Marker"; + position[]={15928.025,71.151283,11257.627}; + name="opfor_airspawn_3"; + type="Empty"; + id=148; + }; + class Item70 + { + dataType="Marker"; + position[]={15845.383,135.74057,6479.374}; + name="opfor_airspawn_4"; + type="Empty"; + id=149; + }; + class Item71 + { + dataType="Marker"; + position[]={15787.099,99.642227,1120.9731}; + name="opfor_airspawn_5"; + type="Empty"; + id=150; + }; + class Item72 + { + dataType="Marker"; + position[]={11516.77,118.69849,-3672.29}; + name="opfor_airspawn_6"; + type="Empty"; + id=151; + atlOffset=-7.6293945e-06; + }; + class Item73 + { + dataType="Marker"; + position[]={6346.6699,124.22332,-3615.1348}; + name="opfor_airspawn_7"; + type="Empty"; + id=152; + }; + class Item74 + { + dataType="Marker"; + position[]={905.21246,155.56569,-3715.1572}; + name="opfor_airspawn_8"; + type="Empty"; + id=153; + }; + class Item75 + { + dataType="Marker"; + position[]={-3870.4331,55.448463,385.80542}; + name="opfor_airspawn_9"; + type="Empty"; + id=154; + atlOffset=-0.44250107; + }; + class Item76 + { + dataType="Marker"; + position[]={-3713.3306,14.951936,6244.3257}; + name="opfor_airspawn_10"; + type="Empty"; + id=155; + atlOffset=0.23460007; + }; + class Item77 + { + dataType="Marker"; + position[]={-3884.7161,0.126,11516.992}; + name="opfor_airspawn"; + type="Empty"; + id=156; + atlOffset=-3.8951635e-05; + }; + class Item78 + { + dataType="Marker"; + position[]={4612.0645,34.839592,10643.007}; + name="opfor_point_1"; + type="Empty"; + id=157; + }; + class Item79 + { + dataType="Marker"; + position[]={3491.6865,19.148911,11268.98}; + name="opfor_point_2"; + type="Empty"; + id=158; + atlOffset=1.9073486e-06; + }; + class Item80 + { + dataType="Marker"; + position[]={1842.646,19.516623,11181.635}; + name="opfor_point_3"; + type="Empty"; + id=159; + atlOffset=1.9073486e-06; + }; + class Item81 + { + dataType="Marker"; + position[]={1732.6621,6.5557423,9402.0918}; + name="opfor_point_4"; + type="Empty"; + id=160; + atlOffset=1.9073486e-06; + }; + class Item82 + { + dataType="Marker"; + position[]={3203.1992,16.104679,9927.1836}; + name="opfor_point_5"; + type="Empty"; + id=161; + atlOffset=1.9073486e-06; + }; + class Item83 + { + dataType="Marker"; + position[]={997.12952,40.280304,8305.7715}; + name="opfor_point_6"; + type="Empty"; + id=162; + }; + class Item84 + { + dataType="Marker"; + position[]={321.3924,8.6193571,5938.689}; + name="opfor_point_7"; + type="Empty"; + id=163; + atlOffset=1.9073486e-06; + }; + class Item85 + { + dataType="Marker"; + position[]={2798.936,47.017334,6431.2188}; + name="opfor_point_8"; + type="Empty"; + id=164; + }; + class Item86 + { + dataType="Marker"; + position[]={390.85901,16.244207,4679.4277}; + name="opfor_point_9"; + type="Empty"; + id=165; + atlOffset=1.9073486e-06; + }; + class Item87 + { + dataType="Marker"; + position[]={1802.0776,43.427658,3573.5449}; + name="opfor_point_10"; + type="Empty"; + id=166; + }; + class Item88 + { + dataType="Marker"; + position[]={4501.9316,17.023939,3638.3936}; + name="opfor_point_11"; + type="Empty"; + id=167; + atlOffset=1.9073486e-06; + }; + class Item89 + { + dataType="Marker"; + position[]={4266.9536,57.264305,2303.3914}; + name="opfor_point_12"; + type="Empty"; + id=168; + }; + class Item90 + { + dataType="Marker"; + position[]={2778.9075,18.803974,2836.3916}; + name="opfor_point_13"; + type="Empty"; + id=169; + atlOffset=1.9073486e-06; + }; + class Item91 + { + dataType="Marker"; + position[]={2254.8086,55.319427,2113.6304}; + name="opfor_point_14"; + type="Empty"; + id=170; + }; + class Item92 + { + dataType="Marker"; + position[]={2549.9092,71.945824,1213.719}; + name="opfor_point_15"; + type="Empty"; + id=171; + }; + class Item93 + { + dataType="Marker"; + position[]={1560.7314,67.073357,384.66797}; + name="opfor_point_16"; + type="Empty"; + id=172; + }; + class Item94 + { + dataType="Marker"; + position[]={258.07443,27.841316,217.64212}; + name="opfor_point_17"; + type="Empty"; + id=173; + atlOffset=1.9073486e-06; + }; + class Item95 + { + dataType="Marker"; + position[]={2618.9993,211.42291,226.80249}; + name="opfor_point_18"; + type="Empty"; + id=174; + }; + class Item96 + { + dataType="Marker"; + position[]={3557.0342,141.2179,1003.1624}; + name="opfor_point_19"; + type="Empty"; + id=175; + }; + class Item97 + { + dataType="Marker"; + position[]={5900.8408,115.19822,1711.3293}; + name="opfor_point_20"; + type="Empty"; + id=176; + }; + class Item98 + { + dataType="Marker"; + position[]={2095.8733,83.944878,4390.1411}; + name="opfor_point_21"; + type="Empty"; + id=177; + }; + class Item99 + { + dataType="Marker"; + position[]={3084.6643,3.8779123,3699.093}; + name="opfor_point_22"; + type="Empty"; + id=178; + atlOffset=1.9073486e-06; + }; + class Item100 + { + dataType="Marker"; + position[]={3645.7346,35.037186,7247.9634}; + name="opfor_point_23"; + type="Empty"; + id=179; + }; + class Item101 + { + dataType="Marker"; + position[]={2538.627,54.577072,8175.1538}; + name="opfor_point_24"; + type="Empty"; + id=180; + atlOffset=3.8146973e-06; + }; + class Item102 + { + dataType="Marker"; + position[]={4185.7358,25.178242,9069.0234}; + name="opfor_point_25"; + type="Empty"; + id=181; + atlOffset=1.9073486e-06; + }; + class Item103 + { + dataType="Marker"; + position[]={4930.8906,26.81571,12035.319}; + name="opfor_point_26"; + type="Empty"; + id=182; + }; + class Item104 + { + dataType="Marker"; + position[]={6837.2988,34.757149,10973.266}; + name="opfor_point_27"; + type="Empty"; + id=183; + }; + class Item105 + { + dataType="Marker"; + position[]={5999.3057,56.550514,8283.7129}; + name="opfor_point_28"; + type="Empty"; + id=184; + }; + class Item106 + { + dataType="Marker"; + position[]={5300.8735,51.22496,7001.502}; + name="opfor_point_29"; + type="Empty"; + id=185; + atlOffset=3.8146973e-06; + }; + class Item107 + { + dataType="Marker"; + position[]={5633.3438,85.416893,3637.7783}; + name="opfor_point_30"; + type="Empty"; + id=186; + }; + class Item108 + { + dataType="Marker"; + position[]={7236.6074,13.600556,3862.1843}; + name="opfor_point_31"; + type="Empty"; + id=187; + atlOffset=0.59876633; + }; + class Item109 + { + dataType="Marker"; + position[]={1834.999,62.983772,7047.5186}; + name="opfor_point_32"; + type="Empty"; + id=188; + }; + class Item110 + { + dataType="Marker"; + position[]={7746.748,42.392662,3612.7463}; + name="opfor_point_33"; + type="Empty"; + id=189; + atlOffset=0.59876633; + }; + class Item111 + { + dataType="Marker"; + position[]={10518.941,54.280121,249.73096}; + name="opfor_point_34"; + type="Empty"; + id=190; + atlOffset=0.59867859; + }; + class Item112 + { + dataType="Marker"; + position[]={9757.0732,112.07672,316.90942}; + name="opfor_point_35"; + type="Empty"; + id=191; + atlOffset=0.59877014; + }; + class Item113 + { + dataType="Marker"; + position[]={10438.563,89.79921,1386.6379}; + name="opfor_point_36"; + type="Empty"; + id=192; + atlOffset=0.59870148; + }; + class Item114 + { + dataType="Marker"; + position[]={9626.9482,112.47437,2319.1201}; + name="opfor_point_37"; + type="Empty"; + id=193; + atlOffset=0.59877014; + }; + class Item115 + { + dataType="Marker"; + position[]={10112.96,106.8775,3416.4939}; + name="opfor_point_38"; + type="Empty"; + id=194; + atlOffset=0.59876251; + }; + class Item116 + { + dataType="Marker"; + position[]={9488.0693,50.283707,4102.7051}; + name="opfor_point_39"; + type="Empty"; + id=195; + atlOffset=0.59876633; + }; + class Item117 + { + dataType="Marker"; + position[]={10381.263,10.908027,4332.4585}; + name="opfor_point_40"; + type="Empty"; + id=196; + atlOffset=0.59876633; + }; + class Item118 + { + dataType="Marker"; + position[]={8100.9863,14.867801,5022.999}; + name="opfor_point_41"; + type="Empty"; + id=197; + atlOffset=0.59876633; + }; + class Item119 + { + dataType="Marker"; + position[]={7143.1045,5.4767284,5539.1611}; + name="opfor_point_42"; + type="Empty"; + id=198; + atlOffset=0.59876633; + }; + class Item120 + { + dataType="Marker"; + position[]={6084.062,2.8609831,5035.4546}; + name="opfor_point_43"; + type="Empty"; + id=199; + atlOffset=0.59876633; + }; + class Item121 + { + dataType="Marker"; + position[]={6345.6401,11.81069,6474.1348}; + name="opfor_point_44"; + type="Empty"; + id=200; + atlOffset=0.59876633; + }; + class Item122 + { + dataType="Marker"; + position[]={7082.167,11.807243,7440.0439}; + name="opfor_point_45"; + type="Empty"; + id=201; + atlOffset=0.59876919; + }; + class Item123 + { + dataType="Marker"; + position[]={6192.4761,32.706589,9995.9219}; + name="opfor_point_46"; + type="Empty"; + id=202; + atlOffset=0.59876633; + }; + class Item124 + { + dataType="Marker"; + position[]={8575.8555,14.548703,9989.4121}; + name="opfor_point_47"; + type="Empty"; + id=203; + atlOffset=0.59876633; + }; + class Item125 + { + dataType="Marker"; + position[]={8726.3789,10.073272,11194.889}; + name="opfor_point_48"; + type="Empty"; + id=204; + atlOffset=0.59876633; + }; + class Item126 + { + dataType="Marker"; + position[]={10661.165,6.8564606,11272.745}; + name="opfor_point_49"; + type="Empty"; + id=205; + atlOffset=0.59876251; + }; + class Item127 + { + dataType="Marker"; + position[]={9860.3145,28.03841,8644.9473}; + name="opfor_point_50"; + type="Empty"; + id=206; + atlOffset=0.59876633; + }; + class Item128 + { + dataType="Marker"; + position[]={10688.167,18.831642,9898.1309}; + name="opfor_point_51"; + type="Empty"; + id=207; + atlOffset=0.59876633; + }; + class Item129 + { + dataType="Marker"; + position[]={10254.045,43.472919,7036.3081}; + name="opfor_point_52"; + type="Empty"; + id=208; + atlOffset=0.59876633; + }; + class Item130 + { + dataType="Marker"; + position[]={8413.0742,20.141087,6572.3423}; + name="opfor_point_53"; + type="Empty"; + id=209; + atlOffset=0.59876633; + }; + class Item131 + { + dataType="Marker"; + position[]={8446.5947,57.726746,8668.5918}; + name="opfor_point_54"; + type="Empty"; + id=210; + atlOffset=0.59876633; + }; + class Item132 + { + dataType="Marker"; + position[]={10601.229,27.479147,3989.6228}; + name="opfor_point_55"; + type="Empty"; + id=211; + atlOffset=0.59876633; + }; + class Item133 + { + dataType="Marker"; + position[]={11311.197,125.37755,6235.9355}; + name="opfor_point_56"; + type="Empty"; + id=212; + atlOffset=0.75160217; + }; + class Item134 + { + dataType="Marker"; + position[]={11963.391,110.81458,7183.0713}; + name="opfor_point_57"; + type="Empty"; + id=213; + atlOffset=0.59877777; + }; + class Item135 + { + dataType="Marker"; + position[]={11013.459,20.370941,8748.5928}; + name="opfor_point_58"; + type="Empty"; + id=214; + atlOffset=0.59876633; + }; + class Item136 + { + dataType="Marker"; + position[]={12001.415,13.779332,11056.549}; + name="opfor_point_59"; + type="Empty"; + id=215; + atlOffset=0.59876633; + }; + class Item137 + { + dataType="Marker"; + position[]={11200.115,34.861275,11788.984}; + name="opfor_point_60"; + type="Empty"; + id=216; + atlOffset=0.59876633; + }; + class Item138 + { + dataType="Marker"; + position[]={4235.4063,48.031315,5623.7212}; + name="opfor_point_61"; + type="Empty"; + id=217; + atlOffset=0.59876633; + }; + class Item139 + { + dataType="Marker"; + position[]={3661.2896,25.750698,6242.3955}; + name="opfor_point_62"; + type="Empty"; + id=218; + atlOffset=0.59876633; + }; + class Item140 + { + dataType="Marker"; + position[]={6756.189,8.6140003,7894.3799}; + name="military_5"; + text="VZ Hvězda"; + type="o_support"; + colorName="ColorEAST"; + id=406; + atlOffset=-0.00015068054; + }; + class Item141 + { + dataType="Marker"; + position[]={4673.4141,9.8850002,6108.1899}; + name="factory_8"; + text="Budetice Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=407; + atlOffset=0.00011730194; + }; + class Item142 + { + dataType="Marker"; + position[]={3516.5396,121.8733,5553.7852}; + name="military_6"; + text="Military Supply Bunker"; + type="o_support"; + colorName="ColorEAST"; + id=504; + }; + class Item143 + { + dataType="Marker"; + position[]={8961.9561,119.01,2296.3582}; + name="military_7"; + text="LZ Námest Hangars"; + type="o_support"; + colorName="ColorEAST"; + id=512; + }; + class Item144 + { + dataType="Marker"; + position[]={9179.749,118.98,2636.811}; + name="military_8"; + text="LZ Námest"; + type="o_support"; + colorName="ColorEAST"; + id=513; + }; + class Item145 + { + dataType="Marker"; + position[]={7903.27,51.250999,3530.0911}; + name="factory_9"; + text="Abandoned Warehouse"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=583; + atlOffset=-7.6293945e-05; + }; + class Item146 + { + dataType="Layer"; + name="Checkpoint Alpha"; + class Entities + { + items=23; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={7206.9868,142.50529,1698.09}; + angles[]={0,4.6773643,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=584; + type="Land_BagBunker_Tower_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={7214.2588,140.72873,1679.879}; + angles[]={6.276526,1.5134162,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=585; + type="Land_CncBarrier_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={7214.0898,140.74799,1682.5144}; + angles[]={6.2748561,1.5096112,0.01499443}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=586; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={7213.4434,140.69911,1677.5249}; + angles[]={6.2748489,2.2814558,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=587; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={7211.2358,140.66,1676.4824}; + angles[]={6.2748561,3.1194735,0.0083294781}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=588; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={7213.3662,140.77646,1696.7964}; + angles[]={6.2815294,1.5153922,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=589; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={7213.1943,140.78273,1699.4318}; + angles[]={6.278194,1.5114768,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=590; + type="Land_CncBarrier_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={7212.1577,140.77649,1701.6392}; + angles[]={6.278194,0.77271533,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=591; + type="Land_CncBarrier_F"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={7209.8174,140.74527,1702.4695}; + angles[]={6.278194,6.2179422,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=592; + type="Land_CncBarrier_F"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={7215.1719,140.97478,1697.1045}; + angles[]={6.2815294,1.5694782,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=593; + type="RoadBarrier_F"; + atlOffset=-0.0032958984; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={7216.1338,140.94649,1682.3295}; + angles[]={6.2731848,1.4434614,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=594; + type="RoadBarrier_F"; + atlOffset=-0.0024414063; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={7197.1885,142.33952,1679.7719}; + angles[]={0,1.5357716,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=596; + type="Land_BagBunker_Tower_F"; + atlOffset=1.5258789e-05; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={7189.9678,140.47298,1698.322}; + angles[]={6.2798557,4.6550088,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=597; + type="Land_CncBarrier_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={7190.1367,140.45517,1695.6866}; + angles[]={6.276526,4.6512041,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=598; + type="Land_CncBarrier_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={7190.7832,140.4917,1700.6761}; + angles[]={6.2798557,5.4230485,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=599; + type="Land_CncBarrier_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={7192.9907,140.52008,1701.7186}; + angles[]={6.2815294,6.2610664,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=600; + type="Land_CncBarrier_F"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={7190.8091,140.43846,1681.0654}; + angles[]={0,4.6569848,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=601; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={7190.981,140.41953,1678.4301}; + angles[]={6.2698536,4.6530695,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=602; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={7192.0176,140.40219,1676.2227}; + angles[]={6.2698536,3.9143081,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=603; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={7194.3579,140.41902,1675.3923}; + angles[]={6.2698536,3.0763495,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=604; + type="Land_CncBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={7188.9907,140.58824,1680.7554}; + angles[]={0,4.711071,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=605; + type="RoadBarrier_F"; + atlOffset=1.5258789e-05; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={7188.0801,140.60339,1695.8716}; + angles[]={6.276526,4.5850544,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=606; + type="RoadBarrier_F"; + atlOffset=-3.0517578e-05; + }; + class Item22 + { + dataType="Logic"; + class PositionInfo + { + position[]={7201.9644,140.20667,1688.3577}; + angles[]={6.2815294,4.7130947,0.016666256}; + }; + areaSize[]={20,0,30}; + flags=1; + id=608; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=595; + atlOffset=0.01008606; + }; + class Item147 + { + dataType="Marker"; + position[]={7201.8979,140.20621,1688.7347}; + name="military_9"; + text="Checkpoint Alpha"; + type="o_support"; + colorName="ColorEAST"; + id=607; + }; + class Item148 + { + dataType="Marker"; + position[]={3854.9719,5.118,3935.5439}; + name="factory_10"; + text="Dobrsín Factory"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=609; + atlOffset=0.00027990341; + }; + class Item149 + { + dataType="Marker"; + position[]={6743.2729,19.663,9798.2432}; + name="military_10"; + text="Checkpoint Bravo"; + type="o_support"; + colorName="ColorEAST"; + id=632; + atlOffset=-0.00025749207; + }; + class Item150 + { + dataType="Marker"; + position[]={1467.205,57.631001,5535.2388}; + name="military_11"; + text="Checkpoint Charlie"; + type="o_support"; + colorName="ColorEAST"; + id=657; + atlOffset=-3.4332275e-05; + }; + class Item151 + { + dataType="Marker"; + position[]={817.15802,6.79,8873.9199}; + name="factory_11"; + text="Sedlecko Livestock Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=658; + atlOffset=0.00018215179; + }; + class Item152 + { + dataType="Marker"; + position[]={2158.4741,51.028,7812.0908}; + name="military_12"; + text="FOB Zebrácek"; + type="o_support"; + colorName="ColorEAST"; + id=711; + atlOffset=-0.00010299683; + }; + class Item153 + { + dataType="Marker"; + position[]={7425.7251,45.422001,11283.155}; + name="factory_12"; + text="Sawmill"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=736; + atlOffset=0.014816284; + }; + class Item154 + { + dataType="Marker"; + position[]={3790.71,52.402,6991.4551}; + name="military_13"; + text="FOB Hurcí"; + type="o_support"; + colorName="ColorEAST"; + id=844; + atlOffset=-2.6702881e-05; + }; + class Item155 + { + dataType="Marker"; + position[]={3607.2051,1.641,10246.982}; + name="capture_24"; + text="Cervený Mlýn"; + type="n_art"; + colorName="ColorEAST"; + id=845; + atlOffset=-5.1021576e-05; + }; + class Item156 + { + dataType="Marker"; + position[]={5322.2778,127.337,3684.063}; + name="tower_3"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=111; + atlOffset=0.00025939941; + }; + class Item157 + { + dataType="Layer"; + name="Filipova Hut' Field Barracks"; + class Entities + { + items=132; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6246.8232,117.62952,1837.6566}; + angles[]={6.2083254,0.29430139,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=979; + type="Land_fort_rampart"; + atlOffset=0.031005859; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={6256.9336,118.06666,1838.5728}; + angles[]={6.2149596,5.7921367,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=980; + type="Land_fort_rampart"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={6248.3022,118.01198,1842.4709}; + angles[]={6.2116418,5.5304031,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=981; + type="Land_fort_rampart"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={6252.4536,118.76196,1847.5371}; + angles[]={6.2133002,2.3886881,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=982; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={6255.6489,118.84749,1841.9224}; + angles[]={6.2149596,5.7922716,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=983; + type="Land_CratesWooden_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={6257.6484,118.80335,1842.7013}; + angles[]={6.2166171,4.2219639,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=984; + type="Land_WaterBarrel_F"; + atlOffset=-1.5258789e-05; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={6233.0537,119.56423,1869.114}; + angles[]={6.2265792,5.0065203,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=985; + type="Land_fort_bagfence_round"; + atlOffset=-7.6293945e-06; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={6239.521,118.41853,1841.5256}; + angles[]={6.2050114,0.81790715,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=986; + type="Land_BagBunker_Small_F"; + atlOffset=7.6293945e-06; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={6233.0229,118.57971,1856.924}; + angles[]={6.2083244,2.1267271,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=987; + type="Land_fort_rampart"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={6234.0273,117.80187,1846.9072}; + angles[]={6.2016997,0.81778675,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=988; + type="Land_fort_rampart"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={6247.4038,119.10664,1849.6089}; + angles[]={6.2116408,2.3885829,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=989; + type="Land_CratesShabby_F"; + atlOffset=7.6293945e-06; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={6246.4707,118.87713,1849.3907}; + angles[]={6.2116408,5.5301757,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=990; + type="Barrel4"; + atlOffset=-3.0517578e-05; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={6242.3828,119.52439,1851.054}; + angles[]={6.2083254,5.5302348,0.034986377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=991; + type="Land_Barrack2"; + atlOffset=0.013885498; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={6233.6172,119.18478,1861.7451}; + angles[]={6.2133002,0.29413164,0.013336525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=992; + type="Land_fort_bagfence_corner"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={6247.0488,119.02979,1852.5574}; + angles[]={6.2116408,5.5302348,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=993; + type="GunrackTK_EP1"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={6246.1084,119.06698,1853.5576}; + angles[]={6.2116408,5.5302348,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=994; + type="GunrackTK_EP1"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={6239.042,120.37275,1862.8196}; + angles[]={6.218277,3.4357245,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=995; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-7.6293945e-06; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={6239.7183,119.08543,1844.9412}; + angles[]={6.2066684,4.2212381,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=996; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={6240.2661,119.65095,1862.3108}; + angles[]={6.218277,5.0064726,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=997; + type="Land_PaperBox_closed_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={6233.1812,119.39069,1864.77}; + angles[]={6.2133002,5.0064158,0.013336525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=998; + type="Land_fort_bagfence_long"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={6236.9019,121.37874,1848.2345}; + angles[]={0,5.5470138,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=999; + type="Land_Loudspeakers_F"; + atlOffset=-7.6293945e-06; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={6238.2798,118.09671,1846.9227}; + angles[]={6.2066684,0.81778675,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1000; + type="Land_Tyres_F"; + atlOffset=7.6293945e-06; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={6261.353,119.6434,1854.6714}; + angles[]={6.2199373,0.81786472,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1001; + type="Land_Timbers_F"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={6279.6216,121.41483,1861.4545}; + angles[]={6.2249179,0.81792724,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1002; + type="Land_Tank_rust_F"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={6262.0571,119.37709,1842.9402}; + angles[]={6.2166171,5.7922349,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1003; + type="Land_BagBunker_Small_F"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={6285.2188,120.87865,1856.9757}; + angles[]={6.2265806,5.2686782,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1004; + type="Land_BagBunker_Small_F"; + atlOffset=7.6293945e-06; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.8345,120.4619,1857.7833}; + angles[]={6.223258,3.9596391,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1005; + type="Land_CratesShabby_F"; + atlOffset=7.6293945e-06; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={6274.4727,120.51696,1858.382}; + angles[]={6.223258,5.5303655,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1006; + type="Land_CratesShabby_F"; + atlOffset=7.6293945e-06; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.5854,120.43329,1867.1272}; + angles[]={6.228241,2.9122536,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1007; + type="Land_JunkPile_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.4526,120.18211,1860.7142}; + angles[]={6.223258,0.55571908,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1008; + type="Land_BarrelSand_grey_F"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.6455,120.32148,1863.4064}; + angles[]={6.2232561,2.3886676,0.03004531}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1009; + type="Land_fort_bagfence_corner"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={6271.0879,120.56239,1867.3424}; + angles[]={6.228241,3.9226148,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1010; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={6274.3228,119.33593,1848.3511}; + angles[]={6.223258,2.6507583,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1011; + type="Land_fort_artillery_nest"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={6271.6641,120.27443,1856.0917}; + angles[]={6.223258,2.3888426,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1012; + type="Land_CratesWooden_F"; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={6269.7896,120.16922,1860.8313}; + angles[]={6.223258,0.55573481,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1013; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-2.2888184e-05; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={6268.9014,120.24811,1861.2404}; + angles[]={6.223258,3.9594638,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1014; + type="Fort_Crate_wood"; + atlOffset=-7.6293945e-06; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={6255.2529,118.88327,1847.2648}; + angles[]={6.2166171,5.5302811,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1015; + type="MetalBarrel_burning_F"; + atlOffset=-7.6293945e-06; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.4126,119.98378,1858.8151}; + angles[]={6.223258,1.3415754,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1016; + type="Land_CratesPlastic_F"; + atlOffset=7.6293945e-06; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.8115,120.35385,1864.9347}; + angles[]={6.2249179,5.792047,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1017; + type="Land_GarbagePallet_F"; + atlOffset=7.6293945e-06; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.5513,120.45524,1854.1591}; + angles[]={6.223258,3.4360404,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1018; + type="AmmoCrates_NoInteractive_Small"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={6269.4624,120.21912,1862.2925}; + angles[]={6.223258,3.9594638,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1019; + type="Land_fort_bagfence_long"; + atlOffset=-1.5258789e-05; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.5835,120.03599,1857.6791}; + angles[]={6.223258,0.81804627,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1020; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.7832,119.92006,1855.6475}; + angles[]={6.223258,2.3888426,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1021; + type="Land_fort_bagfence_long"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={6274.9692,120.10853,1857.6954}; + angles[]={6.223258,5.5304356,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1022; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.9336,121.13847,1862.7974}; + angles[]={6.223258,5.5303397,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1023; + type="Land_ToiletBox_F"; + atlOffset=-0.00018310547; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={6255.2378,121.17601,1893.3529}; + angles[]={6.2415438,2.3881519,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1024; + type="Land_fort_rampart"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={6248.856,120.72715,1887.3669}; + angles[]={6.2382145,2.3883274,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1025; + type="Land_fort_rampart"; + atlOffset=-7.6293945e-06; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={6243.0571,120.30132,1880.2129}; + angles[]={6.234889,2.1265738,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1026; + type="Land_fort_rampart"; + atlOffset=0.06778717; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={6252.6548,121.69894,1884.616}; + angles[]={6.2382145,5.5299201,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1027; + type="Land_CamoNetVar_EAST"; + atlOffset=-7.6293945e-06; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={6252.8745,121.18549,1881.4174}; + angles[]={6.2332273,0.81749874,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1028; + type="Land_CratesShabby_F"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={6251.4565,121.32784,1885.2069}; + angles[]={6.2382145,5.5299201,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1029; + type="Land_CratesShabby_F"; + atlOffset=-7.6293945e-06; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={6259.8032,121.17355,1884.058}; + angles[]={6.2382159,4.7439485,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1030; + type="Land_MetalBarrel_F"; + atlOffset=-0.0004119873; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={6259.1001,121.13136,1883.5796}; + angles[]={6.2332273,4.4818525,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1031; + type="Land_MetalBarrel_F"; + atlOffset=-0.00032043457; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={6260.3042,121.21257,1884.6283}; + angles[]={6.2382159,5.5287008,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1032; + type="Land_MetalBarrel_F"; + atlOffset=-0.0004196167; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={6239.4004,119.95534,1874.0443}; + angles[]={6.2315636,3.6973705,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1033; + type="Land_JunkPile_F"; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.4302,120.97066,1871.4403}; + angles[]={6.228241,1.079504,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1034; + type="Barrel4"; + atlOffset=-0.00021362305; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.2202,120.90672,1870.3859}; + angles[]={6.228241,5.5301504,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1035; + type="Barrel4"; + atlOffset=-0.00019836426; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={6252.3042,121.18278,1885.4553}; + angles[]={6.2382145,2.3883274,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1036; + type="Barrel4"; + atlOffset=-0.00050354004; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={6262.4497,121.90902,1881.2461}; + angles[]={6.2332273,0.817577,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1037; + type="Land_Barrack2"; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={6236.6016,119.90173,1872.2664}; + angles[]={6.2332263,1.8647745,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1038; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={6250.085,120.82886,1883.5717}; + angles[]={6.2332287,3.9591699,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1039; + type="Land_fort_bagfence_corner"; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={6246.8169,121.64929,1882.2267}; + angles[]={6.2365537,5.2681665,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1040; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={6256.3184,122.28865,1890.1271}; + angles[]={6.2398806,5.5298424,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1041; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00054168701; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={6252.1592,121.91054,1884.3324}; + angles[]={6.2382145,5.5299659,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1042; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00080871582; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.6807,121.81504,1874.6477}; + angles[]={6.2332273,0.81770474,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1043; + type="Land_CamoNet_EAST"; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={6253.604,121.12002,1882.7313}; + angles[]={6.2332273,0.55569923,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1044; + type="Land_PaperBox_open_full_F"; + atlOffset=-7.6293945e-06; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={6258.2061,120.87876,1879.0033}; + angles[]={6.2332287,5.5299659,0.026657995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1045; + type="MetalBarrel_burning_F"; + atlOffset=-0.00025939941; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={6270.8789,120.9435,1870.7155}; + angles[]={6.228241,3.9593542,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1046; + type="Barrel1"; + atlOffset=-0.00021362305; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={6269.7095,120.92745,1871.0176}; + angles[]={6.228241,4.4829526,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1047; + type="Barrel1"; + atlOffset=-0.00022125244; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={6269.374,120.87887,1870.297}; + angles[]={6.228241,1.3413601,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1048; + type="Barrel1"; + atlOffset=-0.00022125244; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={6260.8003,121.20974,1881.355}; + angles[]={6.2332273,2.9111867,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1049; + type="Land_WaterBarrel_F"; + atlOffset=-0.00034332275; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={6245.9629,120.63472,1880.6189}; + angles[]={6.2365537,5.5299659,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1050; + type="Land_GarbageBags_F"; + atlOffset=0.0098419189; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={6255.5415,119.16385,1861.8129}; + angles[]={6.2215972,3.9593725,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1051; + type="RU_WarfareBBarracks"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={6271.6621,120.74454,1870.3599}; + angles[]={6.231565,5.5301504,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1052; + type="Land_fort_bagfence_long"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.7583,120.89803,1872.3269}; + angles[]={6.2332273,2.3885195,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1053; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={6241.6665,120.26666,1867.552}; + angles[]={6.2249179,1.8648336,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1054; + type="Land_BagBunker_Large_F"; + atlOffset=0.0047683716; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={6247.6733,120.54925,1878.4879}; + angles[]={6.2365537,1.6674041,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1055; + type="Land_CampingTable_F"; + atlOffset=-0.00029754639; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.5488,120.80881,1873.2548}; + angles[]={6.2332273,5.2683125,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1056; + type="Land_Tyres_F"; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={6248.0181,120.6294,1877.9495}; + angles[]={6.228241,1.8652722,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1057; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00024414063; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={6246.938,120.64046,1878.8019}; + angles[]={6.2365537,4.2202883,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1058; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00038909912; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={6300.5225,121.98869,1888.2003}; + angles[]={6.2332263,3.9596014,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1060; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={6283.7588,120.59902,1867.3433}; + angles[]={6.228241,5.5303745,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1061; + type="Land_fort_rampart"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={6283.7437,120.40855,1863.8856}; + angles[]={6.228241,3.9595783,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1062; + type="Land_fort_rampart"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={6297.7065,121.42959,1872.6711}; + angles[]={6.231565,5.2682428,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1063; + type="Land_MetalBarrel_F"; + atlOffset=-0.00016021729; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={6300.8657,122.01548,1883.0493}; + angles[]={6.2332287,5.5293994,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1064; + type="Land_MetalBarrel_F"; + atlOffset=-0.00032806396; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={6296.8311,121.42786,1872.9202}; + angles[]={6.231565,5.2682428,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1065; + type="Land_MetalBarrel_F"; + atlOffset=-0.00017547607; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={6285.7925,121.25846,1873.358}; + angles[]={6.2249179,4.2245703,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1066; + type="Land_MetalBarrel_F"; + atlOffset=-0.00010681152; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={6292.9038,121.50604,1876.5793}; + angles[]={6.231565,0.81808412,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1067; + type="Land_fort_bagfence_corner"; + atlOffset=-7.6293945e-06; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={6281.665,121.08385,1870.6511}; + angles[]={6.228241,3.9593878,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1068; + type="GunrackTK_EP1"; + atlOffset=7.6293945e-06; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={6282.667,121.15558,1871.5914}; + angles[]={6.228241,3.9596293,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1069; + type="GunrackTK_EP1"; + atlOffset=-7.6293945e-06; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={6302.8535,122.84962,1880.5216}; + angles[]={6.2332287,5.5304732,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1070; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-7.6293945e-06; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={6295.7393,122.3767,1873.4991}; + angles[]={6.231565,0.81808895,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1071; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={6296.2671,123.11063,1887.5403}; + angles[]={6.2299027,5.5303979,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1072; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-7.6293945e-06; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={6300.5703,121.4026,1875.7286}; + angles[]={6.2299027,2.3888853,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1073; + type="Land_fort_artillery_nest"; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={6295.1489,122.43925,1888.7813}; + angles[]={6.2299027,2.1270056,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1074; + type="Land_PaperBox_closed_F"; + atlOffset=-7.6293945e-06; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={6301.6494,122.18513,1881.8538}; + angles[]={6.2332287,3.959677,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1075; + type="Land_PaperBox_closed_F"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={6294.7134,121.68508,1875.0035}; + angles[]={6.231565,4.2214761,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1076; + type="Land_PaperBox_open_full_F"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={6295.7432,121.79852,1880.47}; + angles[]={6.2332273,5.5304255,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1077; + type="MetalBarrel_burning_F"; + atlOffset=-0.00021362305; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={6287.4575,121.23186,1872.1552}; + angles[]={6.2249179,2.6505315,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1078; + type="Land_GarbageBags_F"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={6294.0586,121.6763,1879.5503}; + angles[]={6.2332273,5.5304255,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1079; + type="Land_fort_bagfence_long"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.6841,121.67888,1894.1234}; + angles[]={6.2415423,2.6499875,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1080; + type="Land_fort_rampart"; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={6281.4536,122.03154,1897.3809}; + angles[]={6.2432079,2.9120557,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1081; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.0698,120.96444,1878.5498}; + angles[]={6.2332263,3.9592695,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1082; + type="Land_fort_rampart"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={6282.3716,122.55197,1886.4858}; + angles[]={6.2382145,6.0538535,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1083; + type="Land_CamoNetVar_EAST"; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={6281.1016,122.50864,1894.2498}; + angles[]={6.2382174,1.3411133,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1084; + type="Land_CratesShabby_F"; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={6274.5156,121.89355,1891.3948}; + angles[]={6.2382145,3.4349029,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1085; + type="Land_MetalBarrel_F"; + atlOffset=-0.00045013428; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={6275.4902,121.92043,1891.4521}; + angles[]={6.2415423,1.3405075,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1086; + type="Land_MetalBarrel_F"; + atlOffset=-0.00051879883; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={6259.5308,121.5653,1892.9314}; + angles[]={6.2415438,3.9588959,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1087; + type="Land_WoodenTable_small_F"; + atlOffset=-0.00049591064; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={6280.8125,122.28096,1893.3798}; + angles[]={6.2382174,4.4827061,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1088; + type="Barrel4"; + atlOffset=-0.00057983398; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={6264.5127,121.89516,1898.6158}; + angles[]={6.2432079,2.6500194,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1089; + type="Land_fort_bagfence_corner"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={6261.9053,121.76656,1897.1926}; + angles[]={6.2398791,1.079223,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1090; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={6276.4292,122.35429,1880.2004}; + angles[]={6.2365508,2.3888113,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1091; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00062561035; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={6272.2271,122.69433,1889.7932}; + angles[]={6.2348905,1.0793365,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1092; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.0009765625; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.3091,122.75611,1890.4631}; + angles[]={6.2382145,5.5299263,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1093; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.0012664795; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={6274.8057,121.67207,1879.7767}; + angles[]={6.2365508,0.81762558,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1094; + type="Land_CratesWooden_F"; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={6276.7056,122.2071,1892.3666}; + angles[]={6.2415438,4.2209291,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1095; + type="Land_PaperBox_closed_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={6278.4946,122.27296,1893.0171}; + angles[]={6.2415438,4.4827285,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1096; + type="Land_PaperBox_closed_F"; + atlOffset=-7.6293945e-06; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={6275.4829,121.63538,1881.4349}; + angles[]={6.2365508,5.5300145,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1097; + type="Land_PaperBox_open_full_F"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={6273.1904,121.43293,1882.0612}; + angles[]={6.2365508,5.5300145,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1098; + type="Land_GarbageBags_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={6282.5239,121.60873,1880.9637}; + angles[]={6.2365537,1.6032467,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1100; + type="Land_WoodenTable_large_F"; + atlOffset=-0.00025177002; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={6280.853,121.80923,1886.0359}; + angles[]={6.2382145,3.1736462,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1101; + type="Land_WoodenTable_large_F"; + atlOffset=-0.00037384033; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={6285.6187,121.97404,1887.4172}; + angles[]={6.2332263,4.4830489,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1102; + type="Land_WoodenTable_large_F"; + atlOffset=-0.0002822876; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={6284.0742,121.69197,1880.6582}; + angles[]={6.2365537,2.6504791,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1103; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00028991699; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={6280.0459,121.83875,1885.4628}; + angles[]={6.2348905,4.2208791,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1104; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00033569336; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={6281.5771,121.91621,1886.4148}; + angles[]={6.2382145,1.8648758,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1105; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0004196167; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={6285.498,121.99654,1886.4421}; + angles[]={6.2332263,3.1742613,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1106; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00042724609; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={6260.127,121.62846,1892.2859}; + angles[]={6.2415438,2.6501794,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1107; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00062561035; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={6282.7817,121.72005,1881.6738}; + angles[]={6.2365537,0.29449055,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1108; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00022125244; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={6284.8594,122.06049,1888.0414}; + angles[]={6.2332263,5.5301318,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1109; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00035858154; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={6271.0166,124.77974,1889.3328}; + angles[]={0,5.5470138,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=1110; + type="Land_Loudspeakers_F"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={6293.8755,122.99648,1895.7748}; + angles[]={6.2365522,3.6975884,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1111; + type="Land_BagBunker_Large_F"; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={6262.0488,122.18307,1887.4327}; + angles[]={6.2382174,1.7911478,0.026657995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1112; + type="Land_ToiletBox_F"; + atlOffset=-0.001121521; + }; + }; + id=1113; + atlOffset=-0.021629333; + }; + class Item158 + { + dataType="Marker"; + position[]={6263.2651,120.073,1869.322}; + name="military_14"; + text="Filipova Hut' Field Barracks"; + type="o_support"; + colorName="ColorEAST"; + id=1223; + atlOffset=2.2888184e-05; + }; + class Item159 + { + dataType="Layer"; + name="Sawmill"; + class Entities + { + items=19; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={7476.6162,37.934391,11253.478}; + angles[]={0.019999012,0,6.1967349}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=732; + type="Land_DeerSkeleton_full_01_F"; + atlOffset=0.0016860962; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={7444.896,36.315933,11298.659}; + angles[]={0.054943435,0,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=724; + type="Land_DeerSkeleton_pile_01_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={7478.0063,37.581841,11254.994}; + angles[]={0.011662733,0,6.2050123}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=734; + type="Land_DeerSkeleton_pile_01_F"; + atlOffset=0.00064086914; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={7475.2212,37.881523,11251.955}; + angles[]={0.019996032,4.9748821,6.1884694}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=735; + type="Land_DeerSkeleton_pile_01_F"; + atlOffset=3.8146973e-06; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={7427.8442,35.955212,11304.861}; + angles[]={0.054945603,0,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=717; + type="Land_ClutterCutter_medium_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={7474.4766,39.215748,11257.428}; + angles[]={0.0016558425,0.99928558,6.1884699}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=718; + type="Land_Shed_M02"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={7427.2212,36.231934,11299.225}; + angles[]={0.063528262,0.06269861,6.2591572}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=716; + type="CUP_A2_Road_mud_0_2000"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={7427.9307,35.620399,11310.805}; + angles[]={0.063249089,3.2018135,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=713; + type="CUP_A2_Road_mud_6konec"; + atlOffset=3.8146973e-06; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={7423.6816,42.10828,11281.483}; + angles[]={0.023468414,0.066693306,6.2816501}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=712; + type="Land_Sawmill_01_F"; + atlOffset=-0.61881638; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={7430.1138,35.02351,11329.76}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=719; + type="Land_WoodenPlanks_01_pine_F"; + atlOffset=-0.00026702881; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={7418.9707,35.324551,11330.302}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=723; + type="Land_WoodenPlanks_01_pine_F"; + atlOffset=-0.00046920776; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={7429.9146,34.903175,11332.111}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=720; + type="Land_WoodenPlanks_01_messy_pine_F"; + atlOffset=0.0011978149; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={7424.1382,35.270462,11329.904}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=721; + type="Land_WoodenPlanks_01_messy_pine_F"; + atlOffset=0.0011787415; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={7423.4473,35.061279,11332.803}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=722; + type="Land_WoodenPlanks_01_messy_pine_F"; + atlOffset=0.001159668; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={7424.6035,40.133255,11197.34}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=729; + type="Land_TimberPile_02_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={7420.1943,40.335316,11197.155}; + angles[]={0,3.1415935,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=730; + type="Land_TimberPile_03_F"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={7422.1104,40.076103,11197.321}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=727; + type="Land_TimberPile_04_F"; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={7418.5415,40.013958,11197.32}; + angles[]={0,3.141593,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=728; + type="Land_TimberPile_05_F"; + }; + class Item18 + { + dataType="Logic"; + class PositionInfo + { + position[]={7427.3252,36.877998,11288.607}; + angles[]={0.018081611,1.6366825,6.2285738}; + }; + areaSize[]={25,0,15}; + areaIsRectangle=1; + flags=1; + id=714; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=1329; + atlOffset=2.8376122; + }; + class Item160 + { + dataType="Layer"; + name="Fuel Hoarder"; + class Entities + { + items=34; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={3116.8203,39.513214,12087.177}; + angles[]={0,1.3714913,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4285; + type="Wooden_barrels"; + atlOffset=0.0059127808; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={3121.7625,40.171577,12081.723}; + angles[]={0,6.0779142,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4270; + type="Land_Fuel_tank_stairs"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={3103.6162,38.069141,12078.399}; + angles[]={6.0905867,4.7864089,0.42188507}; + }; + side="Empty"; + class Attributes + { + }; + id=4308; + type="Land_Misc_GContainer_Big"; + atlOffset=0.59959412; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={3115.7361,43.439129,12083.896}; + angles[]={0,1.356243,0}; + }; + side="Empty"; + class Attributes + { + }; + id=4272; + type="Land_Shed_Ind02"; + atlOffset=0.8424263; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={3104.5437,37.226456,12082.768}; + angles[]={0.037687946,5.5412197,6.2420459}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=4314; + type="Land_Barricade_01_4m_F"; + atlOffset=-0.30226898; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.561,42.584705,12086.311}; + angles[]={0,0,6.2819896}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4274; + type="Land_MetalBarrel_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.426,42.584705,12086.974}; + angles[]={0.0009418932,4.0486794,0.00073662365}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4275; + type="Land_MetalBarrel_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.2461,42.584785,12087.589}; + angles[]={0.0011355652,5.0309682,6.2828112}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4276; + type="Land_MetalBarrel_F"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.502,43.426811,12086.541}; + angles[]={0.0011355652,5.0309682,6.2828112}; + }; + side="Empty"; + class Attributes + { + }; + id=4277; + type="Land_MetalBarrel_F"; + atlOffset=0.84209442; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.3364,43.425041,12087.224}; + angles[]={0.00031494722,3.4084613,0.0011533858}; + }; + side="Empty"; + class Attributes + { + }; + id=4278; + type="Land_MetalBarrel_F"; + atlOffset=0.84028244; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.0972,42.584827,12088.188}; + angles[]={6.2822356,2.2237594,0.00072609755}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4279; + type="Land_MetalBarrel_F"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={3126.1619,43.428986,12087.867}; + angles[]={6.2819905,1.5338444,6.2831411}; + }; + side="Empty"; + class Attributes + { + }; + id=4280; + type="Land_MetalBarrel_F"; + atlOffset=0.84416199; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={3119.6572,39.234375,12086.66}; + angles[]={0.00031494722,3.4084613,0.0011533858}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4294; + type="Land_MetalBarrel_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={3119.835,39.234375,12086.064}; + angles[]={6.2824736,2.504097,0.00096056511}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4295; + type="Land_MetalBarrel_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={3120.5471,39.234375,12086.963}; + angles[]={0.00060943863,5.7484713,6.2821569}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4296; + type="Land_MetalBarrel_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={3119.7346,40.078285,12086.342}; + angles[]={0.00023048143,6.0895023,6.2820125}; + }; + side="Empty"; + class Attributes + { + }; + id=4297; + type="Land_MetalBarrel_F"; + atlOffset=0.84391022; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={3120.2976,40.060787,12086.694}; + angles[]={6.191381,4.449048,0.17885844}; + }; + side="Empty"; + class Attributes + { + }; + id=4298; + type="Land_MetalBarrel_F"; + atlOffset=0.8264122; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={3121.0198,39.234375,12088.791}; + angles[]={0.00031494722,3.4084613,0.0011533858}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4299; + type="Land_MetalBarrel_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={3114.1892,39.234375,12084.487}; + angles[]={0.00031494722,3.4084613,0.0011533858}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4300; + type="Land_MetalBarrel_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={3117.3347,39.234375,12079.686}; + angles[]={0.00031494722,3.4084613,0.0011533858}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4301; + type="Land_MetalBarrel_F"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={3116.658,39.234375,12079.682}; + angles[]={6.2821565,2.1054077,0.00060886046}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4302; + type="Land_MetalBarrel_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={3116.9553,39.234375,12080.258}; + angles[]={6.2827854,0.34157494,6.2820587}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4303; + type="Land_MetalBarrel_F"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={3117.0127,40.076447,12079.873}; + angles[]={6.282021,1.8003935,0.00027175021}; + }; + side="Empty"; + class Attributes + { + }; + id=4304; + type="Land_MetalBarrel_F"; + atlOffset=0.84207153; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={3104.0007,36.637592,12078.655}; + angles[]={6.2406783,1.2472742,0.003024661}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4312; + type="Land_ruin_rubble"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={3111.4287,40.169243,12085.738}; + angles[]={0,2.9557779,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4273; + type="Land_Ind_TankSmall2_EP1"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={3132.1245,40.804096,12101.261}; + angles[]={0,3.7384191,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4315; + type="Land_Ind_TankSmall2_EP1"; + atlOffset=-0.26374435; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={3102.2942,37.294014,12080.404}; + angles[]={5.9481921,1.3892211,0.36160225}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4310; + type="Land_Tyres_F"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={3105.9971,37.415703,12075.986}; + angles[]={2.9024813,3.1411202,6.1180658}; + }; + side="Empty"; + class Attributes + { + }; + id=4313; + type="Land_WheelieBin_01_F"; + atlOffset=0.27938843; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={3115.2002,39.513214,12086.836}; + angles[]={0,4.6124969,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4283; + type="Wooden_barrels"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={3115.457,39.513214,12085.156}; + angles[]={0,4.5131335,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4286; + type="Wooden_barrels"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={3117.1284,39.513214,12085.629}; + angles[]={0,1.3657463,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4287; + type="Wooden_barrels"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={3118.4175,39.513214,12087.665}; + angles[]={0,1.4740078,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4289; + type="Wooden_barrels"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={3118.6863,39.513214,12086.046}; + angles[]={0,4.5164137,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4291; + type="Wooden_barrels"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={3119.8826,39.513214,12087.944}; + angles[]={0,1.3010385,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4292; + type="Wooden_barrels"; + }; + }; + id=1439; + atlOffset=0.90058899; + }; + class Item161 + { + dataType="Layer"; + name="Rock Farm"; + class Entities + { + items=36; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2500.1194,17.923489,10455.66}; + angles[]={0.09141089,4.8916311,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6412; + type="Land_Limestone_01_03_F"; + atlOffset=1.9073486e-06; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2499.2954,24.323694,10396.301}; + angles[]={0.12107166,0,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6391; + type="Land_BluntStone_02"; + atlOffset=1.9073486e-06; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2499.3152,18.722048,10449.629}; + angles[]={0.09141089,3.2590067,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6417; + type="Land_BluntStone_02"; + atlOffset=1.9073486e-06; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2487.3086,24.718681,10392.353}; + angles[]={0.11449653,5.2023692,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6392; + type="Land_W_sharpStone_02"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2491.0369,20.895357,10426.914}; + angles[]={0.09966857,3.9177849,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6408; + type="Land_W_sharpStone_02"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2506.0339,18.317799,10460.201}; + angles[]={0,2.5320342,0}; + }; + side="Empty"; + class Attributes + { + }; + id=6418; + type="Land_W_sharpStone_02"; + atlOffset=0.78697586; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={2496.4839,22.061747,10414.743}; + angles[]={0.10955995,0,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6390; + type="Land_SharpStone_02"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={2504.6194,19.088884,10443.215}; + angles[]={0.09471602,0.08691109,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6406; + type="Land_SharpStone_02"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={2494.8,18.023043,10456.235}; + angles[]={0.093063012,5.7553315,6.2698579}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6414; + type="Land_SharpStone_02"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={2497.1152,20.883194,10426.002}; + angles[]={0.10131903,2.8161423,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6389; + type="Land_Limestone_01_02_F"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={2498.4624,19.445917,10438.235}; + angles[]={0.093063653,3.7948756,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6381; + type="Land_Bare_boulder_01_F"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={2498.7896,24.629816,10390.581}; + angles[]={0.12435512,0.78717983,6.278182}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6384; + type="Land_Bare_boulder_02_F"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={2501.7102,21.771069,10414.278}; + angles[]={0.10955995,5.8236818,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6388; + type="Land_Bare_boulder_02_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={2493.8762,23.856915,10397.197}; + angles[]={0.11942901,3.5873647,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6403; + type="Land_Bare_boulder_02_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={2498.9319,18.88265,10443.787}; + angles[]={0.094715387,0.78717983,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6415; + type="Land_Bare_boulder_02_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={2488.9697,23.210119,10403.058}; + angles[]={0.11285125,0,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6385; + type="Land_Bare_boulder_03_F"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={2495.1946,17.24132,10461.901}; + angles[]={0.089758366,4.8436022,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6416; + type="Land_Bare_boulder_03_F"; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={2504.6304,19.477077,10437.133}; + angles[]={0.093063653,3.0252895,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6387; + type="Land_Bare_boulder_04_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={2500.6992,23.149014,10408.554}; + angles[]={0.12271385,0,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6386; + type="Land_Bare_boulder_05_F"; + atlOffset=1.9073486e-06; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={2497.8489,20.728479,10432.113}; + angles[]={0.098017827,1.2118999,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6410; + type="Land_Bare_boulder_05_F"; + atlOffset=1.9073486e-06; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={2493.8857,19.058376,10450.212}; + angles[]={0.093063653,1.7344335,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6413; + type="Land_Bare_boulder_05_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={2503.3184,20.000086,10430.555}; + angles[]={0.098018438,5.8647423,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6394; + type="Land_Small_Stone_01_F"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={2494.8191,23.391722,10403.098}; + angles[]={0.12107166,0,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6395; + type="Land_BluntStone_03"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={2491.9038,20.273684,10433.003}; + angles[]={0.098017827,4.4972615,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6411; + type="Land_BluntStone_03"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={2505.7065,18.025631,10454.726}; + angles[]={0.089758366,1.5721371,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6419; + type="Land_BluntStone_03"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={2500.053,23.348269,10402.371}; + angles[]={0.12107166,0,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6396; + type="Land_W_sharpStone_03"; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={2505.2793,18.465425,10449.032}; + angles[]={0.09141089,1.6472949,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6420; + type="Land_W_sharpStone_03"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={2487.9504,23.861305,10397.913}; + angles[]={0.11614174,0,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6402; + type="CUP_R_Stone_02_EP1"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={2500.5525,17.302423,10461.162}; + angles[]={0.08810474,4.8438144,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6421; + type="CUP_R_Stone_02_EP1"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={2495.5491,22.630497,10408.955}; + angles[]={0.11120591,0,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6397; + type="Land_SharpStone_03"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={2503.5464,20.759432,10425.219}; + angles[]={0.09966857,0,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6409; + type="Land_SharpStone_03"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={2493.085,19.57818,10439.023}; + angles[]={0.09966857,0.086870022,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6398; + type="Land_Limestone_01_03_F"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={2493.188,24.681555,10391.646}; + angles[]={0.12435512,0,6.2798381}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6404; + type="Land_Limestone_01_03_F"; + atlOffset=0.00094795227; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={2489.8569,21.925976,10416.23}; + angles[]={0.10461687,0,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6405; + type="Land_Limestone_01_03_F"; + atlOffset=0.00094795227; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={2493.8054,18.81641,10444.514}; + angles[]={0.091411546,0.086924061,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6401; + type="CUP_R_Stone_01_EP1"; + }; + class Item35 + { + dataType="Logic"; + class PositionInfo + { + position[]={2491.2119,24.167747,10394.728}; + angles[]={0.1161342,5.2548723,6.2798343}; + }; + areaSize[]={15,0,8}; + flags=1; + id=6382; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=1553; + atlOffset=0.12265968; + }; + class Item162 + { + dataType="Layer"; + name="VZ Hvězda"; + class Entities + { + items=260; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6738.3398,9.3958979,7893.1997}; + angles[]={6.2798557,1.5707788,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1576; + type="Land_Timbers_F"; + atlOffset=4.7683716e-05; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={6766.8936,9.9975166,7934.9678}; + angles[]={6.2731848,4.7046423,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1577; + type="Land_Tank_rust_F"; + atlOffset=1.9073486e-05; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={6765.8433,9.6856337,7942.0874}; + angles[]={6.2748489,2.8720529,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1579; + type="Land_BagBunker_Small_F"; + atlOffset=9.5367432e-07; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={6773.6592,9.2684374,7933.7676}; + angles[]={6.2765174,1.5630367,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1580; + type="Land_CratesShabby_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={6772.7842,9.2858934,7933.7607}; + angles[]={6.2765174,3.1338384,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1581; + type="Land_CratesShabby_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={6779.7314,8.6598415,7941.0649}; + angles[]={6.2731905,0.25404432,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1586; + type="Land_fort_artillery_nest"; + atlOffset=-9.5367432e-07; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={6776.4097,9.1950865,7933.5391}; + angles[]={6.2765174,6.2754288,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1587; + type="Land_CratesWooden_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={6773.2954,8.7416658,7932.7656}; + angles[]={6.2765174,5.2282343,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1591; + type="Land_CratesPlastic_F"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={6778.5273,9.4930544,7934.1816}; + angles[]={6.2731905,1.0394602,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1593; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=7.6293945e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={6774.6675,8.862299,7933.0254}; + angles[]={6.2765174,4.7046356,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1595; + type="Land_fort_bagfence_long"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={6775.9043,8.8505411,7934.6616}; + angles[]={6.2765174,6.2754288,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1596; + type="Land_fort_bagfence_long"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={6772.9043,8.9072161,7934.6387}; + angles[]={6.2765174,3.1338332,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1597; + type="Land_fort_bagfence_long"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={6738.9604,8.6797924,7902.3242}; + angles[]={6.278182,4.712389,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1626; + type="RU_WarfareBBarracks"; + atlOffset=-9.5367432e-07; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={6756.1021,9.7339792,7941.1382}; + angles[]={6.2748489,2.6102483,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1634; + type="Land_Wreck_BMP2_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={6759.915,8.8984194,7933.5376}; + angles[]={6.2765174,3.1338534,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1636; + type="Land_fort_rampart"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={6762.2705,8.8783255,7936.0552}; + angles[]={6.2748489,1.5630417,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1637; + type="Land_fort_rampart"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.0313,9.4730682,7939.0825}; + angles[]={6.2731905,2.8716083,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1638; + type="Land_MetalBarrel_F"; + atlOffset=-2.9563904e-05; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.6704,9.5887318,7933.605}; + angles[]={6.2731905,3.1329286,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1639; + type="Land_MetalBarrel_F"; + atlOffset=-1.2397766e-05; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.5049,9.4581966,7938.3062}; + angles[]={6.2731905,2.8716083,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1640; + type="Land_MetalBarrel_F"; + atlOffset=-2.9563904e-05; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={6752.3208,9.295927,7931.0273}; + angles[]={6.2748489,2.0197055,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1641; + type="Land_MetalBarrel_F"; + atlOffset=-2.5749207e-05; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.918,9.3640375,7932.937}; + angles[]={6.278182,4.7046518,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1642; + type="Land_fort_bagfence_corner"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={6759.0059,9.2995481,7938.5923}; + angles[]={6.2748489,1.5630598,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1643; + type="GunrackTK_EP1"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={6757.6309,9.3223696,7938.5815}; + angles[]={6.2748489,1.5630449,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1644; + type="GunrackTK_EP1"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.8696,10.554783,7936.7432}; + angles[]={6.2731905,3.133836,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1645; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00015354156; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.8809,10.377714,7937.0684}; + angles[]={6.2731905,4.704648,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1646; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=4.7683716e-06; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={6741.8735,9.3089447,7938.7744}; + angles[]={6.278182,6.2754474,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1648; + type="Land_fort_artillery_nest"; + atlOffset=0.0073757172; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.8936,9.8197412,7934.9878}; + angles[]={6.2731905,1.5630529,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1650; + type="Land_PaperBox_closed_F"; + atlOffset=7.2479248e-05; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.6484,9.6115885,7935.312}; + angles[]={6.278182,1.8248581,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1651; + type="Land_PaperBox_open_full_F"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={6742.1768,9.490263,7932.0225}; + angles[]={6.2731905,3.1338356,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1652; + type="MetalBarrel_burning_F"; + atlOffset=-5.8174133e-05; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={6753.9214,9.2932034,7932.4917}; + angles[]={6.2731848,0.25404045,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1653; + type="Land_GarbageBags_F"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={6744.0557,9.412282,7931.5405}; + angles[]={6.2731905,3.1338356,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1654; + type="Land_fort_bagfence_long"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.208,25.825912,7929.1147}; + angles[]={0,2.3561947,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=227; + type="Land_Communication_F"; + atlOffset=-1.9073486e-06; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={6783.4536,24.956062,7860.0181}; + angles[]={0,2.3561947,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=231; + type="Land_Communication_F"; + atlOffset=9.5367432e-07; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={6722.4604,25.543915,7859.7603}; + angles[]={0,2.3561947,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=232; + type="Land_Communication_F"; + atlOffset=9.5367432e-07; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={6790.8906,24.760551,7929.0737}; + angles[]={0,2.3561947,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=379; + type="Land_Communication_F"; + atlOffset=1.9073486e-06; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={6792.7344,9.9666386,7865}; + angles[]={0,5.491858,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=254; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={6792.6943,9.9398699,7869.3057}; + angles[]={0,3.9210622,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=257; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={6790.292,9.9409981,7872.3726}; + angles[]={0,4.1828613,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=258; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={6788.3569,9.9293585,7875.6943}; + angles[]={0,4.1828613,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=259; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={6786.4199,9.9205112,7879.0308}; + angles[]={0,4.1828613,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=260; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={6784.9048,9.9214211,7882.6099}; + angles[]={0,4.4446611,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=262; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={6783.8955,9.9163313,7886.3193}; + angles[]={0,4.4446611,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=263; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={6782.8882,9.911356,7890.0439}; + angles[]={0,4.4446611,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=264; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={6782.3608,9.9183884,7893.895}; + angles[]={0,4.7064595,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=265; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={6782.3457,9.9185934,7897.7393}; + angles[]={0,4.7064595,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=266; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={6782.3369,9.9187107,7901.5977}; + angles[]={0,4.7064595,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=267; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={6782.8105,9.9177074,7905.4673}; + angles[]={0,4.9682593,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=268; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={6783.7915,9.902997,7909.1846}; + angles[]={0,4.9682593,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=269; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={6784.7808,9.888154,7912.9136}; + angles[]={0,4.9682593,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=270; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={6786.2393,9.86588,7916.5112}; + angles[]={0,5.2300587,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=271; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={6792.3862,9.8847151,7930.5962}; + angles[]={0,3.9210618,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=272; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={6788.1504,9.8473663,7919.8496}; + angles[]={0,5.2300587,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=310; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={6790.0713,9.8590021,7923.1953}; + angles[]={0,5.2300587,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=311; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.9073486e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={6792.4111,9.8556509,7926.293}; + angles[]={0,5.4918575,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=312; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={6788.0889,9.9488716,7930.5493}; + angles[]={0,2.3502655,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=316; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={6785.022,9.9660139,7928.147}; + angles[]={0,2.6120646,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=317; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={6781.7002,9.996479,7926.2114}; + angles[]={0,2.6120646,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=318; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={6778.3638,10.041092,7924.2744}; + angles[]={0,2.6120646,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=319; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={6774.7847,10.102567,7922.7598}; + angles[]={0,2.8738644,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=320; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={6771.0747,10.166131,7921.75}; + angles[]={0,2.8738644,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=321; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={6767.3506,10.219196,7920.7427}; + angles[]={0,2.8738644,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=322; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={6763.4995,10.291667,7920.2153}; + angles[]={0,3.1356633,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=323; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={6759.6548,10.364205,7920.2002}; + angles[]={0,3.1356633,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=324; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.7969,10.435191,7920.1914}; + angles[]={0,3.1356633,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=325; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={6751.9272,10.510072,7920.665}; + angles[]={0,3.3974636,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=326; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={6748.2095,10.580922,7921.646}; + angles[]={0,3.3974636,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=327; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={6744.481,10.65423,7922.6357}; + angles[]={0,3.3974636,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=328; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={6740.8833,10.732671,7924.0942}; + angles[]={0,3.6592624,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=329; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.7979,11.013509,7930.2407}; + angles[]={0,2.350265,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=330; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={6737.5449,10.806738,7926.0049}; + angles[]={0,3.6592624,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=333; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={6734.1992,10.872934,7927.9263}; + angles[]={0,3.6592624,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=334; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.9073486e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.1011,10.940396,7930.2656}; + angles[]={0,3.9210618,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=335; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={6720.2065,10.703189,7857.6421}; + angles[]={0,0.77946872,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=336; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.5122,10.649502,7857.6821}; + angles[]={0,5.491858,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=338; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.5791,10.624505,7860.0845}; + angles[]={0,5.7536573,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=339; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.9009,10.597887,7862.02}; + angles[]={0,5.7536573,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=340; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={6734.2373,10.563766,7863.9565}; + angles[]={0,5.7536573,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=341; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-1.9073486e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={6737.8164,10.522007,7865.4717}; + angles[]={0,6.0154567,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=342; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={6741.5259,10.485416,7866.4814}; + angles[]={0,6.0154567,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=343; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={6745.2505,10.443192,7867.4883}; + angles[]={0,6.0154567,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=344; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={6749.1016,10.391845,7868.0161}; + angles[]={0,6.277256,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=345; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={6752.9458,10.350414,7868.0308}; + angles[]={0,6.277256,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=346; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={6756.8042,10.31183,7868.04}; + angles[]={0,6.277256,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=347; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={6760.6738,10.272728,7867.5664}; + angles[]={0,0.2558701,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=348; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={6764.3911,10.234982,7866.5854}; + angles[]={0,0.2558701,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=349; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={6768.1201,10.200692,7865.5957}; + angles[]={0,0.2558701,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=350; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={6771.7178,10.172008,7864.1372}; + angles[]={0,0.51766944,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=351; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={6785.8032,10.097595,7857.9907}; + angles[]={0,5.491858,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=352; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={6775.0562,10.148177,7862.2261}; + angles[]={0,0.51766944,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=354; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={6778.4019,10.124328,7860.3052}; + angles[]={0,0.51766944,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=355; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={6781.4995,10.119322,7857.9658}; + angles[]={0,0.77946872,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=356; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={6719.8647,11.074428,7923.2534}; + angles[]={0,2.350266,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=357; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={6719.9048,11.036359,7918.9482}; + angles[]={0,0.77946973,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=359; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={6722.3071,10.980828,7915.8813}; + angles[]={0,1.0412693,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=360; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.2422,10.927171,7912.5596}; + angles[]={0,1.0412693,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=361; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.1797,10.867362,7909.2227}; + angles[]={0,1.0412693,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=362; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.6943,10.822673,7905.644}; + angles[]={0,1.3030686,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=363; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.7036,10.788983,7901.9346}; + angles[]={0,1.3030686,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=364; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.7109,10.755257,7898.21}; + angles[]={0,1.3030686,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=365; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.2383,10.728091,7894.3589}; + angles[]={0,1.564868,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=366; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.2534,10.708634,7890.5142}; + angles[]={0,1.564868,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=367; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.2622,10.689215,7886.6563}; + angles[]={0,1.564868,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=368; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.7886,10.676974,7882.7866}; + angles[]={0,1.8266673,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=369; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.8076,10.673097,7879.0693}; + angles[]={0,1.8266673,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=370; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.8184,10.675358,7875.3403}; + angles[]={0,1.8266673,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=371; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.3599,10.674809,7871.7427}; + angles[]={0,2.0884671,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=372; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.4487,10.697149,7868.4043}; + angles[]={0,2.0884671,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=374; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={6722.5278,10.705669,7865.0586}; + angles[]={0,2.0884671,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=375; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={6720.188,10.717483,7861.9609}; + angles[]={0,2.350266,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=376; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.0923,11.044257,7927.5112}; + angles[]={0,2.350265,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=377; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={6721.9302,11.061058,7925.3364}; + angles[]={0,2.350265,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=378; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={6794.4736,9.9418926,7867.2021}; + angles[]={0,3.9269922,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=256; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={6794.1602,9.8444042,7928.4805}; + angles[]={0,3.9269917,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=273; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={6790.1987,9.929616,7932.3481}; + angles[]={0,2.3561952,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=275; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.9136,10.991839,7932.0146}; + angles[]={0,2.3561952,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=331; + type="Land_Mil_WallBig_Corner_F"; + atlOffset=9.5367432e-07; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={6722.4087,10.67133,7855.9033}; + angles[]={0,5.4977884,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=337; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={6783.687,10.123366,7856.2168}; + angles[]={0,5.497788,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=353; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={6718.1255,11.08165,7921.0518}; + angles[]={0,0.78540033,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=358; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={6718.439,10.73331,7859.7729}; + angles[]={0,0.78539991,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=373; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={6789.4355,9.375289,7861.3579}; + angles[]={0,2.3561947,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=255; + type="Land_Net_Fence_Gate_F"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={6766.9966,9.89328,7869.7046}; + angles[]={0,3.403393,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=380; + type="Land_Bunker_02_left_F"; + atlOffset=-9.5367432e-07; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={6780.5352,9.6721973,7883.8174}; + angles[]={0,1.3089981,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=381; + type="Land_Bunker_02_right_F"; + atlOffset=-9.5367432e-07; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={6742.9922,10.127031,7853.0894}; + angles[]={0,0.42489362,6.276526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1232; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=6.5803528e-05; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={6735.8218,10.183304,7854.3584}; + angles[]={6.2798557,0.16309871,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1233; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=7.9154968e-05; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={6732.4043,10.219448,7854.9502}; + angles[]={6.2798557,4.8754878,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1234; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=7.5340271e-05; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={6705.4048,10.835442,7905.6265}; + angles[]={6.2731905,2.6994348,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1252; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=9.5367432e-07; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={6765.2646,9.82967,7888.2261}; + angles[]={0.0016558425,1.5707667,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1304; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=1.9073486e-06; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={6719.5674,10.669384,7912.897}; + angles[]={6.276526,0.86685193,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1305; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=8.5830688e-06; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={6703.9854,10.555244,7904.5879}; + angles[]={6.2731905,3.4848332,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1267; + type="AmmoCrates_NoInteractive_Small"; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={6713.0889,9.8059168,7884.7656}; + angles[]={6.278194,5.5792408,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1261; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={6713.8315,9.7913675,7884.084}; + angles[]={6.278194,3.7466455,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1262; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={6757.123,9.0220909,7851.6152}; + angles[]={0,4.6136861,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1286; + type="Land_fort_bagfence_long"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.916,9.2585459,7850.6919}; + angles[]={0,4.8754907,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1230; + type="Land_fort_bagfence_corner"; + atlOffset=-9.5367432e-07; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={6713.2148,9.5294075,7868.9766}; + angles[]={6.2798557,1.3904507,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1231; + type="Land_fort_bagfence_corner"; + atlOffset=-9.5367432e-07; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={6745.2183,9.1638651,7891.3306}; + angles[]={6.2798557,0.7853682,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1250; + type="Land_fort_bagfence_corner"; + atlOffset=9.5367432e-07; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={6747.3398,9.1245432,7889.3862}; + angles[]={6.278194,5.497757,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1251; + type="Land_fort_bagfence_corner"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.4722,9.0321035,7854.3398}; + angles[]={0,3.0428894,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1277; + type="Land_fort_bagfence_corner"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={6757.6846,8.9997854,7903.73}; + angles[]={6.2798557,2.3561494,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1299; + type="Land_fort_bagfence_corner"; + atlOffset=9.5367432e-07; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={6759.8057,8.9508839,7901.7861}; + angles[]={6.2798557,3.926949,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1302; + type="Land_fort_bagfence_corner"; + atlOffset=9.5367432e-07; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.8896,9.2033482,7852.3306}; + angles[]={6.2815294,4.6136913,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1224; + type="Land_fort_bagfence_round"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={6714.9204,9.4097271,7865.9985}; + angles[]={6.278194,3.2230701,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1225; + type="Land_fort_bagfence_round"; + atlOffset=-9.5367432e-07; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={6767.5874,8.8339109,7857.9209}; + angles[]={0.0033296358,0.42489552,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1271; + type="Land_fort_bagfence_round"; + atlOffset=9.5367432e-07; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={6762.6001,8.7965403,7887.0059}; + angles[]={0,2.3561723,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1288; + type="Land_fort_bagfence_round"; + atlOffset=9.5367432e-07; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={6732.605,9.5057354,7856.5767}; + angles[]={6.2798557,0.16309871,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1235; + type="Land_PaperBox_closed_F"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={6746.1919,9.3849268,7851.8101}; + angles[]={0.0016558425,0.16309425,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1236; + type="Land_PaperBox_closed_F"; + atlOffset=9.5367432e-07; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={6706.6421,9.9814081,7887.5679}; + angles[]={6.278194,4.0084214,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1257; + type="Land_PaperBox_closed_F"; + atlOffset=9.5367432e-07; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={6712.1245,9.8799067,7883.7876}; + angles[]={6.276526,0.86685193,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1258; + type="Land_PaperBox_closed_F"; + atlOffset=9.5367432e-07; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={6744.5659,9.3632803,7852.7114}; + angles[]={0,4.6136842,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1237; + type="Land_PaperBox_open_full_F"; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={6732.8892,9.4734526,7858.3037}; + angles[]={6.2798557,4.8754878,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1238; + type="Land_PaperBox_open_full_F"; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={6705.3555,9.9719868,7888.8652}; + angles[]={6.278194,4.0084214,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1259; + type="Land_PaperBox_open_full_F"; + atlOffset=9.5367432e-07; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={6753.4614,9.5719967,7845.9243}; + angles[]={0.0033296358,6.1844802,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1287; + type="Land_BagBunker_Large_F"; + atlOffset=9.5367432e-07; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={6715.2056,11.563238,7909.6948}; + angles[]={0,0.86693263,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=1317; + type="Land_BagBunker_Tower_F"; + atlOffset=-9.5367432e-07; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={6742.6973,9.8952703,7855.1675}; + angles[]={6.2798557,0.16309425,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1228; + type="Land_CamoNetVar_EAST"; + atlOffset=2.3841858e-05; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={6711.5186,10.361727,7882.7744}; + angles[]={6.276526,1.1286513,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1245; + type="Land_CamoNetVar_EAST"; + atlOffset=9.5367432e-07; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={6758.2568,9.3113785,7887.3291}; + angles[]={0,0.78537011,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1255; + type="Land_CratesWooden_F"; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={6773.8057,9.2366076,7854.8662}; + angles[]={0.0049914722,5.9226828,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1279; + type="Land_CratesWooden_F"; + atlOffset=-9.5367432e-07; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={6696.9624,9.7467842,7899.126}; + angles[]={6.2748561,4.7938371,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1254; + type="Land_fort_artillery_nest"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={6735.7666,8.9622812,7851.6304}; + angles[]={0,0.16309871,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1226; + type="Land_fort_rampart"; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={6743.6011,8.902607,7849.2012}; + angles[]={0,0.42489362,6.276526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1227; + type="Land_fort_rampart"; + atlOffset=9.5367432e-07; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={6701.8848,9.5425434,7887.7271}; + angles[]={6.2748561,0.86682862,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1242; + type="Land_fort_rampart"; + atlOffset=-9.5367432e-07; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={6706.4609,9.4418507,7880.7896}; + angles[]={6.278194,1.1286513,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1243; + type="Land_fort_rampart"; + atlOffset=-9.5367432e-07; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={6712.8516,9.3132963,7873.2617}; + angles[]={6.2798557,0.60506302,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1244; + type="Land_fort_rampart"; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={6704.7065,9.6932869,7909.1377}; + angles[]={6.2748561,2.6994348,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1270; + type="Land_fort_rampart"; + atlOffset=0.034457207; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={6775.0791,8.6489697,7851.1162}; + angles[]={0.0049914722,5.6608825,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1274; + type="Land_fort_rampart"; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={6766.8687,8.7297544,7846.6396}; + angles[]={0.0016558425,5.9226809,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1275; + type="Land_fort_rampart"; + atlOffset=-9.5367432e-07; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={6711.729,9.572629,7913.7935}; + angles[]={6.276526,2.4376383,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1324; + type="Land_fort_rampart"; + atlOffset=-9.5367432e-07; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={6717.1108,9.554327,7875.3975}; + angles[]={6.278194,5.3174415,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1266; + type="Land_GarbageBags_F"; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={6762.5732,9.0448599,7848.9907}; + angles[]={0.0049914722,1.4720896,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1285; + type="Land_GarbageBags_F"; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.625,9.3137217,7859.186}; + angles[]={6.2798557,0.16217159,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1229; + type="Land_MetalBarrel_F"; + atlOffset=-1.335144e-05; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={6707.3442,9.7192965,7881.7886}; + angles[]={6.278194,5.5726509,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1246; + type="Land_MetalBarrel_F"; + atlOffset=-7.6293945e-06; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={6708.8491,9.7001696,7882.3179}; + angles[]={6.278194,0.56539512,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1247; + type="Land_MetalBarrel_F"; + atlOffset=-2.8610229e-06; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={6707.667,9.719142,7882.5112}; + angles[]={6.278194,2.8746686,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1248; + type="Land_MetalBarrel_F"; + atlOffset=-4.7683716e-06; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={6708.1982,9.7102947,7900.9893}; + angles[]={6.278194,3.7466803,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1256; + type="Land_Pallets_F"; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={6764.8433,8.7951555,7885.9512}; + angles[]={0,4.1888075,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1306; + type="Land_Pallets_F"; + atlOffset=9.5367432e-07; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={6711.9595,9.6407166,7904.6421}; + angles[]={6.2748489,2.961247,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1249; + type="Land_JunkPile_F"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.958,9.048687,7857.8804}; + angles[]={0.0016558425,3.0420516,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1276; + type="Land_BarrelTrash_grey_F"; + atlOffset=-3.1471252e-05; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={6704.0596,9.8183451,7893.665}; + angles[]={6.276526,5.5789385,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1260; + type="Land_BarrelWater_F"; + atlOffset=-9.5367432e-07; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={6702.9141,10.199509,7893.6685}; + angles[]={6.276526,0.86684191,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1239; + type="PowerGenerator"; + atlOffset=-8.5830688e-06; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={6754.9966,8.8691845,7857.4053}; + angles[]={0.0016558425,4.3518867,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1283; + type="Land_Sack_EP1"; + atlOffset=-1.4305115e-05; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={6754.9609,9.0469637,7856.5244}; + angles[]={0.0016558425,3.0428894,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1272; + type="Land_Sacks_heap_F"; + atlOffset=-9.5367432e-07; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.8774,9.0373316,7856.8062}; + angles[]={0.0016558425,1.4720931,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1273; + type="Land_Sacks_heap_F"; + atlOffset=-9.5367432e-07; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={6775.3394,9.5401783,7900.2437}; + angles[]={0,1.5707964,6.2698579}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1296; + type="Land_Barrack2"; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={6776.4102,9.5442429,7908.707}; + angles[]={6.2798557,1.8326192,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1297; + type="Land_Barrack2"; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={6760.1514,9.8501959,7913.6528}; + angles[]={6.278182,6.2830977,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1330; + type="Land_Barrack2"; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={6713.4424,9.6387205,7882.6094}; + angles[]={6.276526,3.7466803,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1264; + type="Land_Pallets_stack_F"; + atlOffset=-9.5367432e-07; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={6703.5889,9.8430567,7892.5903}; + angles[]={6.276526,5.5826287,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1265; + type="Land_Pallets_stack_F"; + atlOffset=-1.9073486e-06; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={6764.8047,8.9068537,7884.0859}; + angles[]={0,4.1917048,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1282; + type="Land_Pallets_stack_F"; + atlOffset=-1.8119812e-05; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={6708.502,10.658716,7906.6001}; + angles[]={6.2731905,0.34328726,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1268; + type="Land_ToiletBox_F"; + atlOffset=-1.2397766e-05; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={6709.8682,10.631797,7905.9565}; + angles[]={6.2731905,0.60511702,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1269; + type="Land_ToiletBox_F"; + atlOffset=-4.7683716e-06; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={6765.022,10.894664,7853.6431}; + angles[]={0.0049914722,4.6136842,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1284; + type="GUE_WarfareBUAVterminal"; + atlOffset=0.00028133392; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={6704.1426,9.9556761,7890.1978}; + angles[]={6.261169,4.799171,6.168251}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1263; + type="Land_WaterBarrel_F"; + atlOffset=0.0025663376; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={6772.3896,9.0841093,7853.2017}; + angles[]={0.0049914722,0.16293892,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1280; + type="Land_WaterBarrel_F"; + atlOffset=-7.9154968e-05; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={6771.8052,9.0830717,7854.5776}; + angles[]={0.0033296358,0.16293892,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1281; + type="Land_WaterBarrel_F"; + atlOffset=-6.5803528e-05; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={6708.3999,9.3787174,7898.9424}; + angles[]={6.278194,1.3904507,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1240; + type="Land_WoodenBox_F"; + atlOffset=7.6293945e-06; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={6707.1865,9.3987474,7899.3076}; + angles[]={6.278194,4.2702441,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1241; + type="Land_WoodenBox_F"; + atlOffset=8.5830688e-06; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={6766.3677,8.4559307,7887.4995}; + angles[]={0.0016558425,4.7123761,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1290; + type="Land_WoodenBox_F"; + atlOffset=1.9073486e-06; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={6796.7051,8.585598,7906.6045}; + angles[]={0,2.4626751,6.2698579}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1373; + type="Barrel1"; + atlOffset=-6.5803528e-05; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={6795.7109,8.5988493,7906.7104}; + angles[]={0,6.1278839,6.2698579}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1374; + type="Barrel1"; + atlOffset=-7.6293945e-05; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={6791.7788,8.4845896,7893.4194}; + angles[]={0.0016558425,1.6773375,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1418; + type="Land_fort_bagfence_long"; + atlOffset=-9.5367432e-07; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={6803.0791,8.3834257,7885.0474}; + angles[]={0.0033296358,5.0806956,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1430; + type="Land_fort_bagfence_long"; + atlOffset=1.9073486e-06; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={6800.6479,8.4560966,7878.77}; + angles[]={0.0066682254,5.0806971,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1431; + type="Land_fort_bagfence_long"; + atlOffset=8.5830688e-06; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={6790.2295,8.5054121,7890.6948}; + angles[]={0,4.8189249,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1400; + type="Land_fort_bagfence_corner"; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={6797.1343,8.4271374,7876.5063}; + angles[]={0.0099949092,3.2481031,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1383; + type="Land_fort_bagfence_round"; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={6802.647,8.290637,7889.2437}; + angles[]={0.0033296358,0.89190423,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1428; + type="Land_fort_bagfence_round"; + atlOffset=0.0010442734; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={6802.3423,9.0049839,7881.604}; + angles[]={0.0083294781,5.080708,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1429; + type="Land_BagBunker_Small_F"; + atlOffset=5.1498413e-05; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={6798.1011,9.1899099,7884.3184}; + angles[]={0.0049914722,5.0806851,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1389; + type="Land_CamoNetVar_EAST"; + atlOffset=8.5830688e-06; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={6718.5571,9.3281088,7891.3379}; + angles[]={6.276526,1.5779113,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1333; + type="Land_fort_rampart"; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={6797.1074,8.1652555,7916.2344}; + angles[]={6.2765174,4.0334854,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1358; + type="Land_fort_rampart"; + atlOffset=9.5367432e-07; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={6799.8398,8.1090755,7906.5146}; + angles[]={6.2815294,4.8188677,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1360; + type="Land_fort_rampart"; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={6796.3433,8.1765747,7897.3335}; + angles[]={0.0049914722,5.3424988,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1385; + type="Land_fort_rampart"; + atlOffset=0.001203537; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={6794.3833,8.4753075,7901.312}; + angles[]={0.0049914722,3.2480772,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1416; + type="Land_GarbageBags_F"; + atlOffset=8.5830688e-06; + }; + class Item211 + { + dataType="Object"; + class PositionInfo + { + position[]={6795.9707,8.2733641,7904.4131}; + angles[]={0,1.1536843,6.2698579}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1376; + type="Land_GarbagePallet_F"; + }; + class Item212 + { + dataType="Object"; + class PositionInfo + { + position[]={6799.6211,8.2332468,7899.748}; + angles[]={0.0049914722,4.0334916,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1417; + type="Land_GarbagePallet_F"; + atlOffset=4.7683716e-07; + }; + class Item213 + { + dataType="Object"; + class PositionInfo + { + position[]={6789.3872,8.6332569,7887.5156}; + angles[]={0.0049914722,1.6773318,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1401; + type="GunrackTK_EP1"; + atlOffset=9.5367432e-07; + }; + class Item214 + { + dataType="Object"; + class PositionInfo + { + position[]={6791.1543,8.6152678,7887.5781}; + angles[]={0.0049914722,0.89193356,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1402; + type="GunrackTK_EP1"; + atlOffset=9.5367432e-07; + }; + class Item215 + { + dataType="Object"; + class PositionInfo + { + position[]={6793.0239,8.4999266,7899.2012}; + angles[]={0.0049914722,5.3115172,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1413; + type="Land_Pallets_stack_F"; + atlOffset=-2.6702881e-05; + }; + class Item216 + { + dataType="Object"; + class PositionInfo + { + position[]={6792.1143,8.5194683,7897.7183}; + angles[]={0.0049914722,2.4424758,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1414; + type="Land_Pallets_stack_F"; + atlOffset=-2.6702881e-05; + }; + class Item217 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.8936,10.652361,7927.2744}; + angles[]={6.2765174,5.47644,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1502; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item218 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.1191,10.659967,7926.2861}; + angles[]={6.2765174,2.334847,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1503; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={6723.2651,10.678963,7923.313}; + angles[]={6.2731848,3.9056292,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1504; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.4575,10.341749,7925.8652}; + angles[]={6.278182,2.334847,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1509; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=-9.5367432e-07; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={6721.6816,10.410312,7922.9189}; + angles[]={6.2731848,4.4292278,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1510; + type="AmmoCrates_NoInteractive_Small"; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={6725.1543,9.3458939,7883.9336}; + angles[]={6.278194,3.1415927,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1460; + type="Land_fort_bagfence_round"; + }; + class Item223 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.7793,9.4259787,7898.8135}; + angles[]={6.278194,0,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1461; + type="Land_fort_bagfence_round"; + atlOffset=6.0081482e-05; + }; + class Item224 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.7915,10.217408,7891.2129}; + angles[]={6.278194,4.712389,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1464; + type="Land_CamoNetVar_EAST"; + atlOffset=0.00054359436; + }; + class Item225 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.2944,10.32969,7921.0942}; + angles[]={6.2731905,2.334847,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1498; + type="Land_CamoNetVar_EAST"; + }; + class Item226 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.6572,10.038343,7872.1426}; + angles[]={6.278194,1.9149475,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1520; + type="Land_CamoNetVar_EAST"; + atlOffset=0.00095748901; + }; + class Item227 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.542,9.4268084,7870.1152}; + angles[]={6.2798557,4.2710781,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1479; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00043582916; + }; + class Item228 + { + dataType="Object"; + class PositionInfo + { + position[]={6732.9009,9.3977547,7869.6455}; + angles[]={6.2798557,2.1340654,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1480; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00041007996; + }; + class Item229 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.7368,9.6924038,7920.9058}; + angles[]={6.2731905,2.5965941,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1512; + type="Land_CampingChair_V2_F"; + atlOffset=-5.7220459e-05; + }; + class Item230 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.8193,9.7411566,7923.2661}; + angles[]={6.278182,0.24040437,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1513; + type="Land_CampingChair_V2_F"; + atlOffset=-6.0081482e-05; + }; + class Item231 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.7441,9.7325354,7922.2681}; + angles[]={6.2731905,4.6909752,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1514; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0001115799; + }; + class Item232 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.5396,9.70541,7922.4224}; + angles[]={6.278182,2.3350246,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1515; + type="Land_CampingChair_V2_F"; + atlOffset=-4.5776367e-05; + }; + class Item233 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.2036,9.433898,7871.0576}; + angles[]={6.2798557,6.1037011,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1544; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00043678284; + }; + class Item234 + { + dataType="Object"; + class PositionInfo + { + position[]={6732.1182,9.4113636,7870.9878}; + angles[]={6.2798557,1.9151273,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1547; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00039958954; + }; + class Item235 + { + dataType="Object"; + class PositionInfo + { + position[]={6723.2842,9.5398989,7893.5625}; + angles[]={6.278194,5.5617008,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1486; + type="Land_CampingTable_F"; + atlOffset=-0.00025081635; + }; + class Item236 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.6699,10.048344,7924.7173}; + angles[]={6.2731848,5.47644,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1506; + type="Land_CratesWooden_F"; + }; + class Item237 + { + dataType="Object"; + class PositionInfo + { + position[]={6734.0288,9.2158241,7914.6304}; + angles[]={6.2731905,5.4764452,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1494; + type="Land_fort_rampart"; + }; + class Item238 + { + dataType="Object"; + class PositionInfo + { + position[]={6743.4521,8.9081678,7878.2559}; + angles[]={6.2798557,3.4857841,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1518; + type="Land_fort_rampart"; + atlOffset=5.8174133e-05; + }; + class Item239 + { + dataType="Object"; + class PositionInfo + { + position[]={6734.2046,9.0417728,7880.2432}; + angles[]={6.278194,3.223978,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1519; + type="Land_fort_rampart"; + }; + class Item240 + { + dataType="Object"; + class PositionInfo + { + position[]={6723.394,9.6374512,7894.1914}; + angles[]={6.278194,5.7600923,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1487; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00030994415; + }; + class Item241 + { + dataType="Object"; + class PositionInfo + { + position[]={6722.2876,9.6520014,7893.7813}; + angles[]={6.278194,5.2352896,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1488; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00030994415; + }; + class Item242 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.6758,9.3673744,7869.5498}; + angles[]={6.2798557,1.6531749,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1526; + type="GunrackTK_EP1"; + atlOffset=0.00038433075; + }; + class Item243 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.0752,9.3819075,7872.686}; + angles[]={6.2815294,5.318368,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1527; + type="GunrackTK_EP1"; + atlOffset=0.00039196014; + }; + class Item244 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.4521,9.4502325,7888.9111}; + angles[]={6.278194,0.78488678,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1465; + type="Land_MetalBarrel_F"; + atlOffset=-0.00026035309; + }; + class Item245 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.7832,9.4635391,7889.5664}; + angles[]={6.278194,1.5705293,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1466; + type="Land_MetalBarrel_F"; + atlOffset=-0.00027275085; + }; + class Item246 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.5908,9.4604664,7888.374}; + angles[]={6.278194,5.4972811,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1467; + type="Land_MetalBarrel_F"; + atlOffset=-0.00026321411; + }; + class Item247 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.958,9.5542774,7922.1392}; + angles[]={6.278182,2.3343585,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1499; + type="Land_MetalBarrel_F"; + atlOffset=-2.1934509e-05; + }; + class Item248 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.0537,9.5715733,7921.9805}; + angles[]={6.278182,1.5484716,6.2631893}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1500; + type="Land_MetalBarrel_F"; + atlOffset=-7.6293945e-06; + }; + class Item249 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.1211,9.5431166,7914.7739}; + angles[]={6.278182,5.2144537,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1501; + type="Land_BarrelTrash_grey_F"; + atlOffset=-2.0980835e-05; + }; + class Item250 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.9336,9.3154116,7872.0425}; + angles[]={6.278194,1.6529276,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1523; + type="Land_BarrelTrash_grey_F"; + atlOffset=-0.00036048889; + }; + class Item251 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.2964,9.5436172,7915.5156}; + angles[]={6.278182,5.212656,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1507; + type="Land_BarrelWater_grey_F"; + atlOffset=-1.7166138e-05; + }; + class Item252 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.1826,9.3243303,7872.0786}; + angles[]={6.278194,1.6511035,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1530; + type="Land_BarrelWater_grey_F"; + atlOffset=-0.00037956238; + }; + class Item253 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.0708,10.207055,7865.127}; + angles[]={6.278194,5.3184133,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1484; + type="Land_ToiletBox_F"; + atlOffset=-0.0012407303; + }; + class Item254 + { + dataType="Object"; + class PositionInfo + { + position[]={6725.1899,10.202891,7866.9644}; + angles[]={6.2815294,5.0565677,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1485; + type="Land_ToiletBox_F"; + atlOffset=-0.0010566711; + }; + class Item255 + { + dataType="Object"; + class PositionInfo + { + position[]={6726.0649,10.062845,7895.0942}; + angles[]={6.278194,1.0469847,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1476; + type="MapBoard_stratis_F"; + atlOffset=-0.00065326691; + }; + class Item256 + { + dataType="Object"; + class PositionInfo + { + position[]={6728.4849,10.154376,7917.8604}; + angles[]={6.2731905,3.3817358,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1505; + type="MapBoard_stratis_F"; + atlOffset=-0.0001039505; + }; + class Item257 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.7163,9.6462393,7922.4087}; + angles[]={6.278182,3.6437602,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1511; + type="Land_WoodenTable_large_F"; + atlOffset=-3.528595e-05; + }; + class Item258 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.3721,9.3447609,7870.6372}; + angles[]={6.2798557,3.2238455,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1542; + type="Land_WoodenTable_large_F"; + atlOffset=-0.00034999847; + }; + class Item259 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.3931,27.3871,7894.2007}; + angles[]={6.2815294,2.3561597,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1253; + type="76n6ClamShell"; + }; + }; + id=1688; + atlOffset=0.0033159256; + }; + class Item163 + { + dataType="Marker"; + position[]={12028.818,49.234001,12021.06}; + name="military_15"; + text="Nový Dvur Vehicle Depot"; + type="o_support"; + colorName="ColorEAST"; + id=1690; + atlOffset=-0.00040054321; + }; + class Item164 + { + dataType="Layer"; + name="Nový Dvur Vehicle Depot"; + class Entities + { + items=176; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={11918.914,50.950607,12048.933}; + angles[]={6.1851668,1.4154582,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1895; + type="Land_fort_bagfence_corner"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={11921.782,50.969704,12049.474}; + angles[]={6.1818671,2.9861064,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1896; + type="Land_fort_bagfence_corner"; + atlOffset=3.8146973e-06; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={11919.549,51.942032,12049.109}; + angles[]={6.1851668,4.5570507,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1899; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={11921.548,51.320087,12049.343}; + angles[]={6.1818671,2.9861064,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1902; + type="Land_CratesWooden_F"; + atlOffset=3.8146973e-06; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={11924.337,50.88868,12048.472}; + angles[]={6.1818671,5.0799675,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1908; + type="MetalBarrel_burning_F"; + atlOffset=-0.00082015991; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={11918.321,54.110489,12049.202}; + angles[]={0,0.12317092,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=1928; + type="Land_Loudspeakers_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={11895.315,50.990318,12048.945}; + angles[]={6.1950808,2.464493,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1933; + type="Land_fort_rampart"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={11903.376,51.373871,12053.879}; + angles[]={6.1901217,2.7257938,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1934; + type="Land_fort_rampart"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={11889.454,50.40115,12041.022}; + angles[]={6.2116418,1.9411228,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1935; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={11886.266,49.861359,12032.741}; + angles[]={6.2199373,1.9404993,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1936; + type="Land_fort_rampart"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={11893.159,50.847561,12041.585}; + angles[]={6.2099838,0.63169217,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1938; + type="Barrel4"; + atlOffset=-0.00033950806; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={11910.377,51.90873,12047.578}; + angles[]={6.1983895,5.8661733,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1942; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={11902.285,50.644451,12043.719}; + angles[]={6.1967349,4.8196249,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1943; + type="Land_Pallets_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={11904.953,50.606842,12039.481}; + angles[]={6.2116408,2.463439,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1944; + type="Land_PaperBox_closed_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={11893.671,50.498955,12035.923}; + angles[]={6.2215962,0.36935714,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1945; + type="Land_PaperBox_closed_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={11911.687,51.240524,12048.274}; + angles[]={6.1851678,2.7245803,6.2715225}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1946; + type="Land_PaperBox_closed_F"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={11892.693,50.802017,12040.892}; + angles[]={6.2116408,4.0350842,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1948; + type="Barrel1"; + atlOffset=-0.00032806396; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={11893.878,50.806854,12041.128}; + angles[]={6.2099838,3.511553,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1949; + type="Barrel1"; + atlOffset=-0.00034332275; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={11903.688,50.557991,12041.438}; + angles[]={6.2116408,1.9402459,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1950; + type="Land_GarbageBags_F"; + atlOffset=-0.00011062622; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={11894.295,51.515202,12042.063}; + angles[]={6.2017002,5.344779,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1953; + type="Land_ToiletBox_F"; + atlOffset=-0.0012550354; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={11895.435,51.632046,12043.634}; + angles[]={6.2017002,4.8211784,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1954; + type="Land_ToiletBox_F"; + atlOffset=-0.0012550354; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={11928.3,51.589302,12058.079}; + angles[]={6.1703348,3.2475309,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1961; + type="Land_fort_rampart"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={11924.153,51.268467,12050.38}; + angles[]={6.1818671,2.9858963,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1966; + type="Land_PaperBox_open_full_F"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={11918.832,51.65044,12057.84}; + angles[]={6.1719794,2.9866059,6.2731905}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1967; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={11909.652,52.206898,12062.179}; + angles[]={6.1703339,2.8245151,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=1968; + type="Land_fort_rampart"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={12107.437,50.112129,12005.07}; + angles[]={6.278194,3.1406255,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2512; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={12110.459,50.117249,12005.087}; + angles[]={6.278194,3.1406255,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2513; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={12104.452,50.112221,12006.255}; + angles[]={6.2815294,6.2822185,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2521; + type="Land_fort_bagfence_corner"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={12113.288,50.127808,12006.386}; + angles[]={6.2798557,4.711422,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2568; + type="Land_fort_bagfence_corner"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={12109.614,51.391609,12007.3}; + angles[]={6.2798557,6.2822185,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2514; + type="RU_WarfareBVehicleServicePoint"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={12185.381,49.290596,11999.603}; + angles[]={6.2215962,2.2805102,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2610; + type="Misc_Backpackheap"; + atlOffset=-3.8146973e-06; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={12190.467,49.132904,11993.387}; + angles[]={6.2149587,5.1598468,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2625; + type="Barrel4"; + atlOffset=-0.00049209595; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={12189.637,49.129402,11993.134}; + angles[]={6.2149587,3.3273139,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2626; + type="Barrel4"; + atlOffset=-0.00057220459; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={12189.897,49.373623,11995.072}; + angles[]={6.2215972,2.2798252,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2624; + type="Barrels"; + atlOffset=-0.00048065186; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={12195.071,48.906017,11994.067}; + angles[]={6.218277,4.6363039,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2620; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={12195.296,48.693504,11991.074}; + angles[]={6.2133002,4.6358199,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2621; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={12175.358,48.470161,11981.176}; + angles[]={6.2116408,4.3741241,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2641; + type="Land_fort_bagfence_long"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={12181.591,48.331299,11981.645}; + angles[]={6.2083254,1.7563177,6.2581892}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2642; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={12178.672,48.121208,11978.791}; + angles[]={6.2116408,3.0652411,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2640; + type="Land_fort_bagfence_round"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={12181.615,48.547028,11989.931}; + angles[]={6.2215962,2.8036721,6.2614856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2622; + type="CUP_vojenska_palanda"; + atlOffset=0.0054779053; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={12183.544,48.495857,11990.475}; + angles[]={6.2215962,2.8036721,6.2614856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2623; + type="CUP_vojenska_palanda"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={12172.312,48.777363,11990.286}; + angles[]={6.2265792,3.3275273,6.261488}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2643; + type="CUP_vojenska_palanda"; + atlOffset=0.0034141541; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={12170.369,48.849201,11990.78}; + angles[]={6.2265792,3.3275273,6.261488}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2645; + type="CUP_vojenska_palanda"; + atlOffset=0.0050964355; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={12188.452,49.856869,12012.115}; + angles[]={6.2282419,3.0660589,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2600; + type="Land_fort_rampart"; + atlOffset=0.0028152466; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={12196.235,49.395523,12005.307}; + angles[]={6.2166171,4.6364279,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2601; + type="Land_fort_rampart"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={12191.034,48.967854,11997.77}; + angles[]={6.218277,6.2072902,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2602; + type="Land_fort_rampart"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={12186.497,48.194252,11984.767}; + angles[]={6.2132993,5.9452314,6.2598572}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2617; + type="Land_fort_rampart"; + atlOffset=0.0022087097; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={12169.901,48.559788,11983.77}; + angles[]={6.2249179,0.18548776,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2639; + type="Land_fort_rampart"; + atlOffset=0.0036582947; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={12160.142,49.278927,11992.687}; + angles[]={6.2365537,1.2041624,6.2615237}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3265; + type="Land_fort_rampart"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={12168.663,50.14138,12017.091}; + angles[]={6.2432065,3.4920304,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3266; + type="Land_fort_rampart"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={12184.78,49.493504,12007.197}; + angles[]={6.231565,3.0657547,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2604; + type="Land_Garbage_square5_F"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={12193.329,49.078957,12001.541}; + angles[]={6.2215962,3.0657814,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2605; + type="Land_Garbage_square5_F"; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={12187.205,49.237473,12003.072}; + angles[]={6.2265792,3.065587,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2606; + type="Land_Garbage_square5_F"; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={12187.466,48.287804,11987.862}; + angles[]={6.2116408,1.4944497,6.2615213}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2618; + type="Land_Garbage_square5_F"; + atlOffset=3.8146973e-06; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={12193.219,49.460213,12001.291}; + angles[]={6.2215962,3.0657814,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2603; + type="Land_GarbageBags_F"; + atlOffset=0.0011634827; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={12187.266,48.702774,11987.84}; + angles[]={6.2116408,1.4944497,6.2615213}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2619; + type="Land_GarbageWashingMachine_F"; + atlOffset=3.8146973e-06; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={12187.286,49.557323,12000.878}; + angles[]={6.2265792,3.065748,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2608; + type="GunrackTK_EP1"; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={12186.29,49.566486,12000.805}; + angles[]={6.2265792,3.0658002,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2609; + type="GunrackTK_EP1"; + atlOffset=3.4332275e-05; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={12183.168,48.792118,11991.927}; + angles[]={6.2215962,1.2328235,6.2614856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2627; + type="Land_MetalCase_01_small_F"; + atlOffset=0.0041999817; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={12181.239,48.799248,11991.384}; + angles[]={6.2215962,1.2328235,6.2614856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2644; + type="Land_MetalCase_01_small_F"; + atlOffset=0.0029411316; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={12170.771,49.076183,11992.227}; + angles[]={6.2265792,1.7566787,6.261488}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2646; + type="Land_MetalCase_01_small_F"; + atlOffset=0.0019226074; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={12172.713,49.006138,11991.732}; + angles[]={6.2265792,1.7566787,6.261488}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2647; + type="Land_MetalCase_01_small_F"; + atlOffset=0.0020103455; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={12179.393,49.30962,11995.896}; + angles[]={6.2215962,3.0659897,6.2614856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2637; + type="Land_BarrelTrash_F"; + atlOffset=-0.00024032593; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={12188.073,50.191364,12007.042}; + angles[]={6.2265792,4.3748255,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2611; + type="PowerGenerator"; + atlOffset=-0.00037002563; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={12188.356,49.741295,12005.734}; + angles[]={6.2215962,0.18615118,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2613; + type="Land_Sack_F"; + atlOffset=1.1444092e-05; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={12189.469,49.506519,12005.032}; + angles[]={6.2215962,4.6366863,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2614; + type="Land_Sack_EP1"; + atlOffset=-0.00020217896; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={12188.517,49.519783,12005.119}; + angles[]={6.2215962,4.1131425,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2615; + type="Land_Sack_EP1"; + atlOffset=-0.00020217896; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={12189.291,49.738342,12005.918}; + angles[]={6.2215962,5.9455671,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2612; + type="Land_Sacks_heap_F"; + atlOffset=3.8146973e-05; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={12181.932,49.975327,11991.973}; + angles[]={6.2215962,2.803674,6.2615237}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2616; + type="CampEast_EP1"; + atlOffset=0.0002822876; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={12171.734,50.231064,11992.584}; + angles[]={6.2265792,3.3275294,6.2615213}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2638; + type="CampEast_EP1"; + atlOffset=0.0002822876; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={12189.789,57.93288,12007.7}; + angles[]={0,1.2339314,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=2599; + type="Land_TTowerSmall_2_F"; + atlOffset=0.009349823; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={11882.156,49.654922,12020.998}; + angles[]={6.2332273,0.54508537,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2681; + type="Barrel1"; + atlOffset=-0.0012931824; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={11881.744,49.607552,12020.078}; + angles[]={6.2332273,4.9956751,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2682; + type="Barrel1"; + atlOffset=-0.0012931824; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={11883.337,48.597404,11998.173}; + angles[]={6.2531939,2.9020226,0.013336525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2672; + type="Land_fort_bagfence_long"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={11883.569,49.602837,12024.088}; + angles[]={6.2249193,2.9014599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2676; + type="Land_fort_bagfence_long"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={11879.551,49.220634,12016.29}; + angles[]={6.2398806,2.9014859,0.0066592805}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2683; + type="Land_fort_bagfence_long"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={11876.757,49.172432,12015.607}; + angles[]={6.2398806,2.9013724,0.0066592805}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2684; + type="Land_fort_bagfence_long"; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={11877.266,49.655834,12025.12}; + angles[]={6.223258,2.9010236,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2687; + type="Land_fort_bagfence_long"; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={11885.957,48.698517,12000.102}; + angles[]={6.2515306,4.4728813,0.0099949092}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2670; + type="Land_fort_bagfence_corner"; + atlOffset=0.0080070496; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={11880.354,49.632061,12024.589}; + angles[]={6.2249193,2.9012156,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2677; + type="Land_fort_bagfence_corner"; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={11873.552,49.151913,12017.648}; + angles[]={6.2365537,4.4721637,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2685; + type="Land_fort_bagfence_round"; + atlOffset=3.8146973e-06; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={11883.782,48.981304,12001.647}; + angles[]={6.2482009,0.28409091,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2669; + type="Land_PaperBox_closed_F"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={11877.951,48.650108,11994.994}; + angles[]={6.2448711,2.3782706,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2675; + type="Land_PaperBox_closed_F"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={11880.52,49.75565,12021.814}; + angles[]={6.2332273,1.8540823,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2680; + type="Land_PaperBox_closed_F"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={11880.595,49.18364,11999.346}; + angles[]={6.248199,1.3311223,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2674; + type="Land_BagBunker_Small_F"; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={11875.493,50.116699,12022.922}; + angles[]={6.2332273,1.3302398,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2686; + type="Land_BagBunker_Small_F"; + atlOffset=-3.8146973e-06; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={11883.538,49.392067,11999.72}; + angles[]={6.2531939,2.9020822,0.013336525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2673; + type="Land_CamoNetVar_EAST"; + atlOffset=0.00060653687; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={11880.206,49.840496,12019.947}; + angles[]={6.2332273,1.592283,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2679; + type="Misc_cargo_cont_tiny"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={11886.32,49.881584,12022.331}; + angles[]={6.2365522,4.4723792,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2678; + type="Land_HBarrier_5_F"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={11884.544,48.778713,12002.716}; + angles[]={6.2515306,3.1638763,0.0099949092}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2668; + type="Land_Sack_F"; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={11883.849,48.778606,12002.932}; + angles[]={6.2515306,2.3784776,0.0099949092}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=2671; + type="Land_Sack_F"; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={12096.996,50.896145,12051.239}; + angles[]={6.2382159,1.0616373,0.0050033992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3199; + type="Barrel2"; + atlOffset=0.012996674; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={12093.223,52.373451,12045.539}; + angles[]={6.2531958,1.5852407,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3196; + type="CUP_A1_fuelstation_army"; + atlOffset=-0.036914825; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={12091.295,50.519653,12046.15}; + angles[]={6.2531958,2.1083803,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3202; + type="Land_MetalBarrel_F"; + atlOffset=-0.021541595; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={12091.184,50.549335,12047.152}; + angles[]={6.2531958,1.5850548,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3203; + type="Land_MetalBarrel_F"; + atlOffset=-0.01461792; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={12091.2,50.586895,12048.277}; + angles[]={6.2398806,4.2032928,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3200; + type="Land_MetalBarrel_empty_F"; + atlOffset=-0.002204895; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={12098.094,50.671253,12049.556}; + angles[]={6.2382159,3.155998,0.0050033992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3201; + type="Land_MetalBarrel_empty_F"; + atlOffset=0.032543182; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={12093.82,50.333523,12038.484}; + angles[]={6.2631893,3.1560867,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3208; + type="Land_MetalBarrel_empty_F"; + atlOffset=-0.12926865; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={12093.134,50.341034,12038.975}; + angles[]={6.2631893,1.8470899,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3209; + type="Land_MetalBarrel_empty_F"; + atlOffset=-0.10917664; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={12096.28,51.312798,12040.216}; + angles[]={6.2631893,0.014266063,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3206; + type="Land_Ind_TankSmall2"; + atlOffset=-0.12474823; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={12099.661,50.68573,12048.239}; + angles[]={6.2382159,0.014405181,0.0050033992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3204; + type="Fort_Crate_wood"; + atlOffset=0.061023712; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.934,49.652771,12025.113}; + angles[]={6.2581916,1.8064829,0.0016914561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3233; + type="Barrel4"; + atlOffset=-0.00015640259; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={11971.19,49.939453,12035.25}; + angles[]={6.2498641,3.1156607,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3234; + type="Barrel4"; + atlOffset=-0.00027084351; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.12,49.664936,12025.653}; + angles[]={6.2581916,3.6390791,0.0016914561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3235; + type="Barrel4"; + atlOffset=-0.00014877319; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={11970.4,49.942986,12035.277}; + angles[]={6.2498641,1.2830647,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3236; + type="Barrel4"; + atlOffset=-0.0002784729; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={11980.286,50.065094,12039.588}; + angles[]={6.2415423,4.1625948,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3223; + type="Barrel2"; + atlOffset=-0.00043869019; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={11980.918,50.015659,12038.553}; + angles[]={6.2415423,1.2828605,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3261; + type="Barrel2"; + atlOffset=-0.00043106079; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={11982.546,49.915859,12036.527}; + angles[]={6.2415423,0.23566282,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3258; + type="Barrel5"; + atlOffset=-0.00047302246; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={11982.298,49.952873,12037.366}; + angles[]={6.2415423,1.2828605,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3259; + type="Barrel5"; + atlOffset=-0.00046920776; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={11984.758,49.770153,12031.708}; + angles[]={6.256525,3.37713,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3260; + type="Barrel5"; + atlOffset=-0.00018692017; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={11970.854,49.919868,12034.629}; + angles[]={6.2498641,1.2830647,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3232; + type="Barrel3"; + atlOffset=-0.0002784729; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={11981.488,49.996674,12042.735}; + angles[]={6.22824,1.2828854,6.2665191}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3219; + type="Land_fort_bagfence_long"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={11982.342,49.855686,12039.859}; + angles[]={6.2415423,1.2828059,6.2748489}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3220; + type="Land_fort_bagfence_long"; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={11988.914,49.781879,12040.138}; + angles[]={6.248199,5.9948573,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3249; + type="Land_fort_bagfence_long"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={11986.434,49.791882,12039.448}; + angles[]={6.2482009,5.9948468,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3254; + type="Land_fort_bagfence_long"; + atlOffset=-3.8146973e-06; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={11984.423,49.757942,12037.487}; + angles[]={6.248199,1.2827238,6.2715073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3245; + type="Land_fort_bagfence_corner"; + atlOffset=0.0010948181; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={11991.496,49.723122,12039.646}; + angles[]={6.248199,2.8531394,6.2715073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3246; + type="Land_fort_bagfence_corner"; + atlOffset=3.8146973e-06; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={11975.343,51.472961,12036.616}; + angles[]={6.2332273,5.9953575,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3239; + type="Land_CamoNetB_EAST"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.365,49.429657,12030.552}; + angles[]={6.2498641,1.0211334,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3237; + type="Land_CratesPlastic_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={11984.675,49.982635,12032.856}; + angles[]={6.256525,2.8535309,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3257; + type="Land_CratesShabby_F"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={11970.03,50.331116,12040.044}; + angles[]={6.2332273,5.9955826,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3214; + type="Land_CratesWooden_F"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={11967.24,49.518715,12035.387}; + angles[]={6.2498641,1.2830775,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3211; + type="Land_fort_rampart"; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={11972.29,49.958775,12044.396}; + angles[]={6.2199364,2.8539317,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3212; + type="Land_fort_rampart"; + atlOffset=-4.9591064e-05; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={11969.41,49.281097,12028.046}; + angles[]={6.2581916,1.2829027,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3224; + type="Land_fort_rampart"; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={11970.881,49.573532,12038.94}; + angles[]={6.2332273,0.23580143,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3213; + type="Land_Garbage_square5_F"; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.042,49.347466,12033.845}; + angles[]={6.2498641,1.2829331,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3226; + type="Land_Garbage_square5_F"; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={11971.546,49.242104,12030.534}; + angles[]={6.2498641,1.2829331,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3227; + type="Land_Garbage_square5_F"; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={11975.216,49.217003,12030.148}; + angles[]={6.2498641,1.282919,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3228; + type="Land_Garbage_square5_F"; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={11988.717,49.165955,12030.004}; + angles[]={6.2598572,6.2566185,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3247; + type="Land_Garbage_square5_F"; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={11971.065,49.455845,12030.393}; + angles[]={6.2498641,1.2829331,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3229; + type="Land_GarbagePallet_F"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={11988.723,49.379848,12029.755}; + angles[]={6.2715225,6.2566185,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3248; + type="Land_GarbagePallet_F"; + atlOffset=3.8146973e-06; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={11975.071,50.166992,12042.679}; + angles[]={6.2199364,4.4247422,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3404; + type="GunrackTK_EP1"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={11976.149,50.174774,12042.998}; + angles[]={6.2215962,4.4247422,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3405; + type="GunrackTK_EP1"; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.114,50.335529,12040.643}; + angles[]={6.2398791,1.2830392,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3216; + type="Land_Pallet_vertical_F"; + atlOffset=-0.00063705444; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={11972.734,49.559166,12031.799}; + angles[]={6.2498641,5.4717236,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3231; + type="Land_Pallets_F"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={11988.416,49.474922,12031.229}; + angles[]={6.2598572,4.1622453,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3255; + type="Land_Pallets_F"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={11990.086,49.427597,12029.116}; + angles[]={6.2715225,6.2565928,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3256; + type="Land_Pallets_F"; + atlOffset=3.8146973e-06; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={11973.213,49.47263,12024.899}; + angles[]={6.2581916,1.2825525,0.0016914561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3238; + type="Land_BarrelEmpty_F"; + atlOffset=-9.5367432e-05; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={11970.558,49.936363,12039.019}; + angles[]={6.2332273,4.1627927,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3218; + type="Land_Sack_F"; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={11972.168,50.043934,12040.754}; + angles[]={6.2398791,1.283168,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3215; + type="Land_Pallets_stack_F"; + atlOffset=-0.00037765503; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={11988.734,51.026829,12036.273}; + angles[]={6.248199,2.8531482,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3240; + type="Land_tent_east"; + atlOffset=3.4332275e-05; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={11983.315,50.222546,12029.976}; + angles[]={6.268187,2.591646,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3262; + type="WaterPump_01_forest_F"; + atlOffset=-8.392334e-05; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={11969.681,50.007519,12038.585}; + angles[]={6.2332273,1.2830243,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3217; + type="Fort_Crate_wood"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={12038.775,49.628117,11985.636}; + angles[]={6.2615237,4.6183414,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3269; + type="Land_fort_bagfence_long"; + atlOffset=-3.8146973e-06; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={12017.545,49.272655,11984.879}; + angles[]={6.2665229,0.42973852,0.0066592805}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3275; + type="Land_fort_bagfence_long"; + atlOffset=-3.8146973e-06; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={12094.02,49.940453,11988.85}; + angles[]={6.2681909,1.5945028,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3288; + type="Land_fort_bagfence_long"; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={12030.269,49.493923,11987.598}; + angles[]={6.2648568,1.7421422,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3267; + type="Land_fort_bagfence_corner"; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={12037.82,49.525566,11982.649}; + angles[]={6.254858,4.6190481,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3268; + type="Land_fort_bagfence_corner"; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={12095.34,49.983128,11991.694}; + angles[]={6.2681909,1.5942727,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3287; + type="Land_fort_bagfence_corner"; + atlOffset=3.8146973e-06; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={12016.27,49.236042,11988.483}; + angles[]={6.2748561,5.1406288,0.0066682254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3276; + type="Land_fort_bagfence_round"; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={12048.368,50.227299,11983.528}; + angles[]={6.2548623,6.2215323,0.011662733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3281; + type="Land_BagBunker_Large_F"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={12081.989,49.985344,11990.764}; + angles[]={6.2731848,2.4431293,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3284; + type="Land_CampingTable_F"; + atlOffset=-0.00051498413; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={12027.974,49.833481,11988.224}; + angles[]={6.2765174,1.7385426,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3272; + type="Land_CratesWooden_F"; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={12054.621,50.212173,11986.459}; + angles[]={6.2598572,6.1924486,0.0049914722}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3279; + type="Land_CratesWooden_F"; + atlOffset=0.0060272217; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={12032.031,49.055691,11978.569}; + angles[]={6.2448711,6.1907582,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3273; + type="Land_fort_rampart"; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={12022.184,48.975609,11980.314}; + angles[]={6.249866,0.4297463,0.0099949092}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3274; + type="Land_fort_rampart"; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={12067.628,49.58456,11984.059}; + angles[]={6.2615237,6.2340446,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3282; + type="Land_fort_rampart"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={12058.074,49.554775,11983.477}; + angles[]={6.2598572,6.1924081,0.0049914722}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3283; + type="Land_fort_rampart"; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={12079.633,49.610004,11984.866}; + angles[]={6.2631893,6.2265801,0.0016914561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3294; + type="Land_fort_rampart"; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={12089.295,49.618992,11984.959}; + angles[]={6.2598572,0.02289279,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3295; + type="Land_fort_rampart"; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={12082.982,50.080532,11990.519}; + angles[]={6.2731848,2.1167803,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3296; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00064086914; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={12081.867,50.074833,11990.135}; + angles[]={6.2731848,2.6414678,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3297; + type="Land_CampingChair_V1_F"; + atlOffset=-0.00064468384; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={12092.98,50.100487,11992.385}; + angles[]={6.2681909,3.1646245,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3289; + type="GunrackTK_EP1"; + atlOffset=3.8146973e-06; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={12026.794,49.501038,11988.387}; + angles[]={6.2765174,4.3556132,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3270; + type="Land_MetalBarrel_F"; + atlOffset=-0.0015220642; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={12026.993,49.510845,11989.468}; + angles[]={6.2765174,4.881814,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3271; + type="Land_MetalBarrel_F"; + atlOffset=-0.00157547; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={12070.935,50.056431,11996.907}; + angles[]={6.2748561,0.21428679,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3292; + type="Land_MetalBarrel_F"; + atlOffset=-0.00049209595; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={12071.033,50.065403,11997.984}; + angles[]={6.2748561,0.99930054,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3293; + type="Land_MetalBarrel_F"; + atlOffset=-0.00049591064; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={12088.01,50.327908,11988.966}; + angles[]={6.2731905,0.02270722,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3298; + type="PowerGenerator"; + atlOffset=-0.00046157837; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={12067.423,50.957569,11993.709}; + angles[]={6.2681909,3.0939169,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3277; + type="CampEast_EP1"; + atlOffset=3.8146973e-06; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={12054.848,50.957047,11994.086}; + angles[]={6.2765174,3.3129399,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3278; + type="CampEast_EP1"; + atlOffset=0.0031318665; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={12058.928,49.800957,11987.911}; + angles[]={6.2598572,6.1923957,0.0049914722}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3280; + type="Land_Tyres_F"; + atlOffset=0.0060386658; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={12073.672,51.290863,12046.48}; + angles[]={6.2565274,3.1928837,0.0066592805}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3290; + type="Land_ToiletBox_F"; + atlOffset=-0.00028610229; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={12075.54,51.300789,12046.384}; + angles[]={6.2565274,3.4547031,0.0066592805}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3291; + type="Land_ToiletBox_F"; + atlOffset=-0.00023651123; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={12087.77,58.028667,11987.997}; + angles[]={0,3.1668282,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=3285; + type="Land_TTowerSmall_2_F"; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={12078.352,50.523109,11990.069}; + angles[]={6.2715225,4.2113209,0.0033296358}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3286; + type="MapBoard_stratis_F"; + atlOffset=-0.0011672974; + }; + class Item175 + { + dataType="Logic"; + class PositionInfo + { + position[]={11861.351,47.781891,12001.049}; + angles[]={6.2332339,4.2902813,0.031660274}; + }; + areaSize[]={20,0,30}; + flags=1; + id=3264; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=1969; + atlOffset=-0.041156769; + }; + class Item165 + { + dataType="Layer"; + name="Military Supply Bunker"; + class Entities + { + items=83; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={3530.1125,122.88246,5544.9194}; + angles[]={0,1.1790221,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=453; + type="Land_Bunker_F"; + atlOffset=0.12559509; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={3474.0366,120.85336,5557.9302}; + angles[]={0,4.8442144,0}; + }; + side="Empty"; + flags=1; + class Attributes + { + }; + id=455; + type="Land_GuardTower_02_F"; + atlOffset=0.5080719; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={3524.52,133.42082,5592.0977}; + angles[]={0,0.39362496,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=457; + type="Land_GuardTower_02_F"; + atlOffset=-0.25343323; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={3501.5593,121.26908,5523.5825}; + angles[]={0,3.7970164,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=458; + type="Land_GuardTower_02_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={3473.3193,118.57962,5560.2212}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=410; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={3476.3848,119.13655,5562.5396}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=414; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={3479.4438,119.70229,5564.8584}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=415; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={3482.5093,120.28174,5567.1768}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=416; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={3485.5752,120.92635,5569.4912}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=417; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={3488.6406,121.75496,5571.8096}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=418; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={3491.6997,122.65669,5574.1284}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=419; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={3494.7651,123.77415,5576.4468}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=420; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={3497.8306,124.76904,5578.7495}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=421; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={3500.896,125.68089,5581.0679}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=422; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={3503.9551,126.6343,5583.3867}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=423; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={3507.0205,127.4426,5585.7051}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=424; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={3510.0864,128.35938,5588.0195}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=425; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={3513.1519,129.30026,5590.3379}; + angles[]={0,2.4880238,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=426; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={3516.4192,130.29636,5592.165}; + angles[]={0,2.7498231,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=427; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={3519.9802,131.11978,5593.6108}; + angles[]={0,2.7498231,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=428; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={3498.2175,118.87891,5522.2554}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=433; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={3498.7751,118.86256,5526.5205}; + angles[]={0,2.4880242,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=435; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={3493.2471,118.36028,5533.9829}; + angles[]={0,5.6296172,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=436; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={3488.9592,117.83691,5534.5107}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=437; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={3486.6409,117.83939,5537.5762}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=438; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={3484.322,117.92235,5540.6353}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=439; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={3482.0037,118.02638,5543.7007}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=440; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={3479.6892,118.08006,5546.7666}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=441; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={3477.3708,118.09818,5549.832}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=442; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={3475.052,118.14453,5552.8911}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=443; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={3472.7336,118.15742,5555.9565}; + angles[]={0,0.91722798,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=444; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={3556.2271,134.51434,5527.4834}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=460; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={3552.4182,132.63539,5527.0049}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=461; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={3548.6045,130.83865,5526.5298}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=462; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={3544.792,129.29401,5526.0586}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=463; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={3540.978,127.97935,5525.5835}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=464; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={3537.1694,126.91357,5525.105}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=465; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={3533.3555,125.97678,5524.6299}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=466; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={3529.5493,125.46099,5524.1685}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=467; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={3525.7356,124.75404,5523.6934}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=468; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={3521.9268,123.9976,5523.2144}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=469; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={3518.1128,123.28674,5522.7393}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=470; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={3514.3005,122.51417,5522.2681}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=471; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={3510.4866,121.70213,5521.793}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=472; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={3506.678,120.80549,5521.3145}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=473; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={3502.864,119.93927,5520.8394}; + angles[]={0,6.1532154,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=474; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={3536.8682,132.30484,5579.8091}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=477; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={3539.187,132.59961,5576.75}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=478; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={3541.0327,132.69658,5573.4907}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=479; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={3542.4746,132.6857,5569.9302}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=480; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={3543.9207,132.77458,5566.3691}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=481; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={3545.3687,132.96489,5562.814}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=482; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={3546.8147,133.09178,5559.2529}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=483; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={3548.2454,133.17761,5555.6963}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=484; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=-1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={3549.6914,133.03818,5552.1353}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=485; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={3551.1399,132.92117,5548.5801}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=486; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={3552.5859,133.22748,5545.019}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=487; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={3554.0278,133.8297,5541.4585}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=488; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={3555.4739,134.54076,5537.8975}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=489; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={3556.9216,135.18466,5534.3428}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=490; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={3558.3677,135.81883,5530.7817}; + angles[]={0,4.3206201,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=491; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={3523.6216,132.07173,5594.5103}; + angles[]={0,3.0116234,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=492; + type="Land_Mil_WallBig_4m_battered_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={3527.5691,132.64737,5592.0483}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=494; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={3529.8835,132.61667,5588.9824}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=495; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={3532.2019,132.5957,5585.917}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=496; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={3534.5208,132.30035,5582.8579}; + angles[]={0,4.0588207,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=497; + type="Land_Mil_WallBig_4m_battered_F"; + atlOffset=3.0517578e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={3471.2869,118.12934,5558.3164}; + angles[]={0,0.91722274,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=445; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={3490.9014,117.88603,5532.4971}; + angles[]={0,5.629612,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=446; + type="Land_Mil_WallBig_Corner_F"; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={3496.7471,118.53495,5524.5938}; + angles[]={0,0.91722274,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=447; + type="Land_Mil_WallBig_Corner_F"; + atlOffset=7.6293945e-06; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={3500.1299,118.8839,5520.2695}; + angles[]={0,5.629612,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=459; + type="Land_Mil_WallBig_Corner_F"; + atlOffset=-0.49262238; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={3558.9333,135.56239,5528.2178}; + angles[]={0,4.5824142,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=476; + type="Land_Mil_WallBig_Corner_F"; + atlOffset=-0.43112183; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={3526.2273,132.08777,5594.375}; + angles[]={0,3.2734172,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=498; + type="Land_Mil_WallBig_Corner_F"; + atlOffset=-0.57051086; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={3490.6411,117.64232,5540.4448}; + angles[]={0,4.0588155,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=450; + type="Land_Cargo_House_V1_F"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={3486.2698,117.68989,5546.1377}; + angles[]={0,4.058816,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=499; + type="Land_Cargo_House_V1_F"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={3482.0015,117.78801,5551.7744}; + angles[]={0,4.058816,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=500; + type="Land_Cargo_House_V1_F"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={3492.2346,120.14898,5559.6572}; + angles[]={0,0.91722274,0}; + }; + side="Empty"; + flags=1; + class Attributes + { + }; + id=501; + type="Land_Cargo_House_V1_F"; + atlOffset=0.38738251; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={3496.606,120.32993,5553.9644}; + angles[]={0,0.91722322,0}; + }; + side="Empty"; + flags=1; + class Attributes + { + }; + id=502; + type="Land_Cargo_House_V1_F"; + atlOffset=0.38739777; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={3500.8743,120.31268,5548.3276}; + angles[]={0,0.91722322,0}; + }; + side="Empty"; + flags=1; + class Attributes + { + }; + id=503; + type="Land_Cargo_House_V1_F"; + atlOffset=0.38738251; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={3513.1809,129.65079,5575.7368}; + angles[]={0,4.058816,0}; + }; + side="Empty"; + flags=1; + class Attributes + { + }; + id=448; + type="Land_Cargo_HQ_V1_F"; + atlOffset=0.84141541; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={3539.9551,137.7899,5547.5112}; + angles[]={0,5.8914113,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=509; + type="Land_Cargo_Tower_V1_F"; + atlOffset=0.031028748; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={3536.6028,115.61973,5547.2524}; + angles[]={4.7123876,3.1415901,1.1790249}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=506; + type="Land_Pier_F"; + atlOffset=-5.5937576; + }; + class Item81 + { + dataType="Logic"; + class PositionInfo + { + position[]={3517.3523,121.67838,5552.5854}; + angles[]={6.0698175,0.92479759,0.079829417}; + }; + areaSize[]={45,0,45}; + flags=1; + id=408; + type="ModuleHideTerrainObjects_F"; + atlOffset=7.6293945e-06; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item82 + { + dataType="Logic"; + class PositionInfo + { + position[]={3472.8652,116.48458,5556.0366}; + angles[]={6.2050114,0.92479759,0.14725971}; + }; + areaSize[]={10,0,10}; + areaIsRectangle=1; + flags=1; + id=409; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=2598; + atlOffset=-0.67668915; + }; + class Item166 + { + dataType="Layer"; + name="Malý Bor"; + class Entities + { + items=55; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9140.6846,13.915611,11246.976}; + angles[]={0.014998405,6.1593418,6.2665229}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5829; + type="BloodPool_01_Large_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={9134.668,13.884171,11223.879}; + angles[]={6.2581916,0,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5836; + type="BloodPool_01_Large_Old_F"; + atlOffset=-1.4305115e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={9297.2637,11.077683,11195.518}; + angles[]={0.018331951,0,6.2598572}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5839; + type="BloodPool_01_Large_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={9338.5908,10.183109,11202.389}; + angles[]={0.02999169,0,6.2715178}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5840; + type="BloodPool_01_Large_Old_F"; + atlOffset=8.5830688e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={9313.3477,11.071676,11157.971}; + angles[]={0.0049914722,0,6.2731848}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5841; + type="BloodPool_01_Large_Old_F"; + atlOffset=8.5830688e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={9212.6104,12.961523,11214.072}; + angles[]={6.2765174,0,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5837; + type="BloodPool_01_Medium_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={9264.96,13.648465,11169.726}; + angles[]={1.544867,1.5940019,4.8414316}; + }; + side="Empty"; + class Attributes + { + }; + id=5842; + type="BloodPool_01_Medium_Old_F"; + atlOffset=1.6524782; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={9101.5752,15.525001,11214.271}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6083; + type="BloodPool_01_Medium_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={9264.7813,13.658554,11171.137}; + angles[]={1.5439188,1.5973932,4.8572931}; + }; + side="Empty"; + class Attributes + { + }; + id=6087; + type="BloodPool_01_Medium_Old_F"; + atlOffset=1.6625357; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={9265.1885,13.648802,11168.029}; + angles[]={1.544867,1.5940019,4.8414316}; + }; + side="Empty"; + class Attributes + { + }; + id=6090; + type="BloodPool_01_Medium_Old_F"; + atlOffset=1.6530342; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={9265.7031,11.986378,11169.545}; + angles[]={0.0016558425,0,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6084; + type="BloodSplatter_01_Large_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={9265.9678,11.984751,11168.405}; + angles[]={0.0016558425,1.4236752,6.2698536}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6092; + type="BloodSplatter_01_Large_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={9265.7725,11.981151,11171.179}; + angles[]={0.0033296358,5.0340881,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6093; + type="BloodSplatter_01_Large_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={9134.1807,13.81347,11221.102}; + angles[]={6.256525,0,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5835; + type="BloodSplatter_01_Small_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={9144.083,14.010054,11235.921}; + angles[]={6.2715225,0,6.2748561}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6075; + type="BloodSplatter_01_Small_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={9264.7783,13.677055,11171.116}; + angles[]={1.5543369,0.016322548,4.8421106}; + }; + side="Empty"; + class Attributes + { + }; + id=6088; + type="BloodSpray_01_Old_F"; + atlOffset=1.6809635; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={9264.9629,13.665883,11169.721}; + angles[]={1.5543369,0.016322548,4.8421106}; + }; + side="Empty"; + class Attributes + { + }; + id=6089; + type="BloodSpray_01_Old_F"; + atlOffset=1.6699266; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={9265.1914,13.66622,11168.024}; + angles[]={1.5543369,0.016322548,4.8421106}; + }; + side="Empty"; + class Attributes + { + }; + id=6091; + type="BloodSpray_01_Old_F"; + atlOffset=1.6704817; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={9143.0322,13.864169,11247.514}; + angles[]={0.016662678,4.5081177,6.2648535}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5832; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={9103.6436,15.525001,11214.692}; + angles[]={0,4.5081177,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6082; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={9266.3906,11.966372,11172.83}; + angles[]={0.0033296358,0.34702596,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6095; + type="BloodTrail_01_Old_F"; + atlOffset=-9.5367432e-07; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={9297.5186,11.017322,11197.953}; + angles[]={0.023328418,3.2698934,6.2598572}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6097; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={9266.4648,11.971988,11170.81}; + angles[]={0.0033296358,0.2014934,6.268187}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6098; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={9194.4521,12.963609,11246.252}; + angles[]={0.039979152,1.0416629,6.2581916}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6118; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={9272.1221,7.3461523,11288.232}; + angles[]={0.059928458,0.86462599,6.2432065}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6119; + type="BloodTrail_01_Old_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={9312.2197,7.9868994,11391.014}; + angles[]={6.2076144,2.3305224e-10,0.043612156}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=6099; + type="Land_BurntGarbage_01_F"; + atlOffset=-0.75255919; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={9114.9639,15.405222,11216.804}; + angles[]={0.021664379,5.2200313,6.2265792}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5843; + type="Land_PaperBox_01_small_destroyed_brown_IDAP_F"; + atlOffset=-0.00011825562; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={9112.8975,15.560863,11214.815}; + angles[]={0,0.71977752,6.2465363}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5845; + type="Land_PaperBox_01_small_destroyed_brown_IDAP_F"; + atlOffset=-1.335144e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.4805,15.30835,11217.308}; + angles[]={0.021664379,0,6.2265792}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5846; + type="Land_PaperBox_01_small_destroyed_white_IDAP_F"; + atlOffset=-0.00011920929; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={9114.876,15.311347,11215.476}; + angles[]={0.021664379,5.1787357,6.2265792}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5848; + type="Land_FoodSack_01_dmg_brown_F"; + atlOffset=-0.00012588501; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.1504,15.213127,11214.065}; + angles[]={0.021664379,3.9947603,6.2265792}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5844; + type="Land_FoodSack_01_dmg_brown_idap_F"; + atlOffset=-2.4795532e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={9115.4277,15.293527,11214.854}; + angles[]={0.021664379,0,6.2265792}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5847; + type="Land_FoodSack_01_dmg_white_idap_F"; + atlOffset=-0.00016784668; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={9293.3936,11.676901,11195.315}; + angles[]={0.018331951,5.0004368,6.2598572}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6077; + type="Land_LuggageHeap_03_F"; + atlOffset=0.00025558472; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={9101.7559,15.808046,11211.254}; + angles[]={6.276526,0,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6080; + type="Land_LuggageHeap_02_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={9146.2725,14.281801,11242.979}; + angles[]={0.011662733,6.1593423,6.2648568}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6079; + type="Land_LuggageHeap_05_F"; + atlOffset=1.6212463e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={9208.5225,13.594245,11216.982}; + angles[]={6.2765174,0,6.2531958}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6078; + type="Land_LuggageHeap_04_F"; + atlOffset=3.0517578e-05; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.583,14.652422,11210.641}; + angles[]={0.0087580681,2.2999997,0.012287789}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5895; + type="Land_Wreck_Ural_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={9163.7109,13.210132,11197.484}; + angles[]={6.2615237,0,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=5810; + type="Land_ShellCrater_02_debris_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={9310.916,8.1707735,11385.982}; + angles[]={6.1591625,5.8961411,5.9290056}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6100; + type="Land_HumanSkeleton_F"; + atlOffset=0.76300049; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={9312.6475,8.1490469,11392.515}; + angles[]={0.01537635,1.5516151,0.14849262}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6101; + type="Land_HumanSkeleton_F"; + atlOffset=-0.0050001144; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={9309.5215,8.1731882,11393.549}; + angles[]={6.0903978,4.7324653,6.1327481}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6102; + type="Land_HumanSkeleton_F"; + atlOffset=0.18151665; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={9314.1689,8.2517033,11385.966}; + angles[]={6.197402,4.2838755,0.15575318}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6103; + type="Land_HumanSkeleton_F"; + atlOffset=0.60899925; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={9313.6221,8.1293888,11389.519}; + angles[]={6.1791463,5.0934815,0.064420104}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6104; + type="Land_HumanSkeleton_F"; + atlOffset=0.1869998; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={9308.6191,7.3832173,11384.87}; + angles[]={5.9271121,3.6291533,0.23181643}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6105; + type="Land_HumanSkeleton_F"; + atlOffset=0.24451733; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={9307.5557,7.8671694,11387.765}; + angles[]={6.0773611,1.6550781e-07,0.23537718}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6106; + type="Land_HumanSkeleton_F"; + atlOffset=0.5483489; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={9310.8398,8.1036186,11389.431}; + angles[]={0.051225413,3.9360316,6.2101607}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6108; + type="Land_HumanSkeleton_F"; + atlOffset=0.39799929; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={9308.2695,8.0799065,11392.416}; + angles[]={2.8929877,3.0959549,5.6095657}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6107; + type="Land_HumanSkeleton_F"; + atlOffset=0.30422163; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={9314.3809,8.4468107,11394.604}; + angles[]={6.1154237,0.78346539,0.13650385}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6109; + type="Land_HumanSkeleton_F"; + atlOffset=-0.032614708; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={9311.2227,8.6410398,11395.108}; + angles[]={6.0818434,2.4035566,0.0033116811}; + }; + side="Empty"; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6110; + type="Land_HumanSkeleton_F"; + atlOffset=0.35586834; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={9312.4961,8.6369877,11396.763}; + angles[]={6.1195521,0,6.1814623}; + }; + side="Empty"; + flags=4; + class Attributes + { + createAsSimpleObject=1; + disableSimulation=1; + }; + id=6111; + type="Land_HumanSkeleton_F"; + atlOffset=0.10097599; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={9310.9258,8.1131163,11391.315}; + angles[]={6.2557497,0,6.2470045}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=6112; + type="FireLit"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={9308.9453,8.0100822,11386.639}; + angles[]={0.035694342,0.02777029,0.22000101}; + }; + side="Empty"; + class Attributes + { + }; + id=6113; + type="FireLit"; + atlOffset=0.85857868; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={9313.6846,8.2872505,11387.372}; + angles[]={0.10697767,6.2756839,6.2447176}; + }; + side="Empty"; + class Attributes + { + }; + id=6114; + type="FireLit"; + atlOffset=0.71747541; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={9312.1689,8.4096098,11395.575}; + angles[]={6.2496047,0.0095204376,0.072859503}; + }; + side="Empty"; + class Attributes + { + }; + id=6115; + type="FireLit"; + atlOffset=0.1768198; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item54 + { + dataType="Logic"; + class PositionInfo + { + position[]={9312.1943,8.0230188,11390.828}; + }; + id=6117; + type="ModuleEffectsSmoke_F"; + atlOffset=0.0030450821; + class CustomAttributes + { + class Attribute0 + { + property="ModuleEffectsSmoke_F_ParticleLifeTime"; + expression="_this setVariable ['ParticleLifeTime',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=100; + }; + }; + }; + class Attribute1 + { + property="ModuleEffectsSmoke_F_ParticleLifting"; + expression="_this setVariable ['ParticleLifting',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.2; + }; + }; + }; + class Attribute2 + { + property="ModuleEffectsSmoke_F_ColorAlpha"; + expression="_this setVariable ['ColorAlpha',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.5; + }; + }; + }; + class Attribute3 + { + property="ModuleEffectsSmoke_F_ColorBlue"; + expression="_this setVariable ['ColorBlue',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.5; + }; + }; + }; + class Attribute4 + { + property="ModuleEffectsSmoke_F_Timeout"; + expression="_this setVariable ['Timeout',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + class Attribute5 + { + property="ModuleEffectsSmoke_F_Expansion"; + expression="_this setVariable ['Expansion',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + class Attribute6 + { + property="ModuleEffectsSmoke_F_ColorRed"; + expression="_this setVariable ['ColorRed',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.5; + }; + }; + }; + class Attribute7 + { + property="ModuleEffectsSmoke_F_ParticleDensity"; + expression="_this setVariable ['ParticleDensity',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=10; + }; + }; + }; + class Attribute8 + { + property="ModuleEffectsSmoke_F_ColorGreen"; + expression="_this setVariable ['ColorGreen',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.5; + }; + }; + }; + class Attribute9 + { + property="ModuleEffectsSmoke_F_EffectSize"; + expression="_this setVariable ['EffectSize',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.5; + }; + }; + }; + class Attribute10 + { + property="ModuleEffectsSmoke_F_ParticleSpeed"; + expression="_this setVariable ['ParticleSpeed',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + class Attribute11 + { + property="ModuleEffectsSmoke_F_ParticleSize"; + expression="_this setVariable ['ParticleSize',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + class Attribute12 + { + property="ModuleEffectsSmoke_F_WindEffect"; + expression="_this setVariable ['WindEffect',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=13; + }; + }; + }; + id=2648; + atlOffset=0.093183517; + }; + class Item167 + { + dataType="Layer"; + name="Underground Rave"; + class Entities + { + items=8; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={7921.4683,51.505325,3508.8635}; + angles[]={0.0033296358,4.9712553,0.10955941}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=543; + type="CUP_A2_Road_mud_6konec"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={7894.7168,53.858871,3532.0911}; + angles[]={0,4.9741888,0}; + }; + side="Empty"; + class Attributes + { + }; + id=545; + type="Land_Mezzanine_01"; + atlOffset=0.44802094; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={7912.3213,51.105061,3513.1812}; + angles[]={6.2149577,4.9808698,0.054944519}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=544; + type="CUP_A2_Road_mud_30_25"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={7906.5171,51.614632,3537.7278}; + angles[]={6.277709,2.8789766,6.2007809}; + }; + side="Empty"; + class Attributes + { + }; + id=578; + type="CUP_A2_Road_mud_30_25"; + atlOffset=0.2677536; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={7905.5503,51.51963,3528.928}; + angles[]={0.10442113,0.26306364,0.11944223}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=577; + type="CUP_A2_Road_mud_6"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={7904.9033,51.258377,3521.5352}; + angles[]={6.1681948,5.4925151,0.10266335}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=551; + type="CUP_A2_Road_mud_60_10"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={7905.3799,50.661552,3547.6438}; + angles[]={0.039977662,2.8768222,0.084796712}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=550; + type="CUP_A2_Road_mud_6konec"; + }; + class Item7 + { + dataType="Logic"; + class PositionInfo + { + position[]={7902.0977,51.064075,3532.6489}; + angles[]={6.0823674,0.25640631,0.056845374}; + }; + areaSize[]={14,0,20}; + flags=1; + id=569; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=2688; + atlOffset=-0.18029785; + }; + class Item168 + { + dataType="Layer"; + name="LZ Námest"; + class Entities + { + items=211; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9171.7256,119.55836,2551.1765}; + angles[]={0,4.5467978,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3406; + type="Barrel4"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={9172.7324,119.55836,2550.927}; + angles[]={0,2.976001,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3407; + type="Barrel4"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={9171.1924,119.55836,2550.4905}; + angles[]={0,2.7142017,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3408; + type="Barrel4"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={9171.9346,119.55836,2550.4824}; + angles[]={0,0.35800716,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3409; + type="Barrel4"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.7598,120.34026,2553.022}; + angles[]={0,0.61980671,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3410; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=1.5258789e-05; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.5234,119.16518,2555.593}; + angles[]={0,1.6670042,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3411; + type="Land_fort_artillery_nest"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.7686,119.54676,2560.0251}; + angles[]={0,5.8556376,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3412; + type="Land_WaterBarrel_F"; + atlOffset=7.6293945e-06; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.7129,119.54676,2559.1973}; + angles[]={0,2.9758441,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3413; + type="Land_WaterBarrel_F"; + atlOffset=7.6293945e-06; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.7725,120.04916,2557.7734}; + angles[]={0,4.5467978,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3414; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=7.6293945e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={9167.0264,120.04916,2564.9873}; + angles[]={0,4.0231991,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3415; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=7.6293945e-06; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.1758,120.04916,2553.3843}; + angles[]={0,5.3321958,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3416; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=7.6293945e-06; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={9174.3672,119.55836,2550.5476}; + angles[]={0,5.8557944,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3417; + type="Barrel1"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={9175.1592,119.55836,2550.8845}; + angles[]={0,0.88160604,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3418; + type="Barrel1"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={9170.3418,119.22103,2566.7502}; + angles[]={0,3.7642186,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3419; + type="Land_fort_rampart"; + atlOffset=0.10107422; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.7695,135.37196,2554.4958}; + angles[]={0,3.7613995,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3420; + type="RU_WarfareBAntiAirRadar"; + atlOffset=-7.6293945e-06; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.8594,120.34026,2551.9749}; + angles[]={0,5.3321958,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3421; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=1.5258789e-05; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.0244,119.40958,2546.7698}; + angles[]={0,0.88157094,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3422; + type="Land_Pallets_stack_F"; + atlOffset=7.6293945e-06; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.6113,119.40958,2545.3408}; + angles[]={0,2.4524024,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3423; + type="Land_Pallets_stack_F"; + atlOffset=7.6293945e-06; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={9155.0859,119.55836,2565.363}; + angles[]={0,4.2849979,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3424; + type="Barrel4"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={9155.4668,119.55836,2564.7468}; + angles[]={0,2.4524024,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3425; + type="Barrel4"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={9154.748,119.55836,2564.5623}; + angles[]={0,2.4524024,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3426; + type="Barrel4"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={9156.418,119.55836,2564.4805}; + angles[]={0,2.4524024,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3427; + type="Barrel4"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={9155.5947,119.40269,2563.9246}; + angles[]={0,6.1175938,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3428; + type="MetalBarrel_burning_F"; + atlOffset=7.6293945e-06; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={9155.9502,119.55836,2565.2207}; + angles[]={0,0.61980671,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3429; + type="Barrel1"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={9157.1006,119.55836,2564.6858}; + angles[]={0,0.61980671,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3430; + type="Barrel1"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={9163.7881,119.35772,2568.5203}; + angles[]={0,3.7613995,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3431; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={9161.3467,119.35772,2570.2629}; + angles[]={0,3.7613995,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3432; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.1055,119.35772,2570.886}; + angles[]={0,2.190603,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3433; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.9229,120.23563,2569.1284}; + angles[]={0,3.4995997,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3434; + type="Land_CamoNet_EAST"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={9153.8359,119.3708,2565.3333}; + angles[]={0,6.1175938,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3435; + type="Land_Sacks_heap_F"; + atlOffset=7.6293945e-06; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={9156.5586,119.24683,2602.0061}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3486; + type="Misc_Backpackheap"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={9163.1963,119.55836,2605.4729}; + angles[]={0,3.505435,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3464; + type="Barrel1"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.3193,119.55836,2601.5513}; + angles[]={0,2.7200367,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3465; + type="Barrel1"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={9160.0918,119.55836,2601.3599}; + angles[]={0,5.861629,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3466; + type="Barrel1"; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={9201.0098,119.55836,2643.4978}; + angles[]={0,2.3714895,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3446; + type="Barrel3"; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.3154,119.55836,2632.6492}; + angles[]={0,3.4630189,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3447; + type="Barrel3"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={9168.9678,119.55836,2600.4849}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3467; + type="Barrel3"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={9169.0576,119.55836,2601.3547}; + angles[]={0,0.62564152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3469; + type="Barrel3"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={9173.8818,119.35771,2600.6094}; + angles[]={0,4.8144317,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3456; + type="Land_fort_bagfence_long"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={9151.25,119.35771,2602.9268}; + angles[]={0,4.8144317,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3484; + type="Land_fort_bagfence_long"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={9152.8633,119.35771,2601.5054}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3485; + type="Land_fort_bagfence_long"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={9209.5732,119.35771,2637.002}; + angles[]={0,3.9422863,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3440; + type="Land_fort_bagfence_corner"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={9172.9443,119.35771,2603.7212}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3453; + type="Land_fort_bagfence_corner"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={9149.7539,119.27355,2606.7227}; + angles[]={0,4.5526323,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3483; + type="Land_fort_bagfence_round"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={9161.4238,120.23563,2602.8909}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3449; + type="Land_CamoNet_EAST"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={9160.7832,119.48649,2607.6912}; + angles[]={0,2.4583771,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3471; + type="Land_CampingChair_V2_F"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={9160.166,119.48649,2606.8672}; + angles[]={0,2.981993,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3472; + type="Land_CampingChair_V2_F"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={9159,119.48649,2608.4966}; + angles[]={0,4.2904091,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3473; + type="Land_CampingChair_V2_F"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.8721,119.48649,2609.2073}; + angles[]={0,4.5527773,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3474; + type="Land_CampingChair_V2_F"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={9170.2373,119.83337,2600.6052}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3461; + type="Misc_cargo_cont_net1"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={9164.4385,119.21247,2605.3452}; + angles[]={0,5.5998302,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3468; + type="Land_CratesPlastic_F"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={9164.7354,119.73985,2604.561}; + angles[]={0,5.5998302,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3463; + type="Land_CratesShabby_F"; + atlOffset=7.6293945e-06; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={9163.9609,119.719,2603.9304}; + angles[]={0,0.88744092,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3458; + type="Land_CratesWooden_F"; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={9198.7139,119.11996,2649.4561}; + angles[]={0,3.4186876,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3437; + type="Land_fort_rampart"; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={9207.6475,119.11996,2644.0151}; + angles[]={0,3.9422863,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3438; + type="Land_fort_rampart"; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={9168.5127,119.11996,2597.2634}; + angles[]={0,0.10204286,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3450; + type="Land_fort_rampart"; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.8262,119.11996,2598.3801}; + angles[]={0,0.10204286,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3451; + type="Land_fort_rampart"; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={9164.9629,122.95681,2610.4431}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=3452; + type="FlagPole_F"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={9201.9258,119.01944,2645.6057}; + angles[]={0,2.37149,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3444; + type="Land_Garbage_square5_F"; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={9167.293,119.01944,2603.2251}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3454; + type="Land_Garbage_square5_F"; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={9160.7188,119.01944,2604.3469}; + angles[]={0,3.2436357,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3455; + type="Land_Garbage_square5_F"; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={9202.0098,119.41364,2645.3391}; + angles[]={0,2.3714895,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3443; + type="Land_GarbageBags_F"; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.3555,119.46471,2605.3477}; + angles[]={0,0.10204286,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3460; + type="GunrackTK_EP1"; + atlOffset=-7.6293945e-06; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.3604,119.46471,2605.4482}; + angles[]={0,0.10204286,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3487; + type="GunrackTK_EP1"; + atlOffset=-7.6293945e-06; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={9186.1855,119.77834,2646.9624}; + angles[]={0,0.059626441,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3479; + type="Land_HBarrier_3_F"; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={9181.8184,119.72052,2647.2222}; + angles[]={0,0.059626441,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3476; + type="Land_HBarrier_5_F"; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.3281,119.72052,2647.5498}; + angles[]={0,0.059626441,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3477; + type="Land_HBarrier_5_F"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={9186.4648,122.75204,2630.7966}; + angles[]={0,4.7085881,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=3442; + type="Land_LampShabby_F"; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={9180.3408,122.8554,2637.1672}; + angles[]={0,4.7720156,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=3475; + type="Land_Cargo_HQ_V1_F"; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={9166.6377,119.08104,2600.9763}; + angles[]={0,0.093927063,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3462; + type="Land_Pallet_F"; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={9164.7988,119.29833,2600.8503}; + angles[]={0,4.5526323,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3459; + type="Land_Pallets_F"; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={9204.624,119.38476,2637.0776}; + angles[]={0,2.3711581,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3448; + type="Land_BarrelSand_F"; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={9165.124,118.98901,2610.8042}; + angles[]={0,1.6728394,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3457; + type="Land_TreeBin_F"; + atlOffset=7.6293945e-06; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={9203.1797,121.30275,2640.9016}; + angles[]={0,2.6332889,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3439; + type="RU_WarfareBUAVterminal"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.291,119.54675,2632.2151}; + angles[]={0,4.7719278,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3445; + type="Land_WaterBarrel_F"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.9316,119.4123,2607.9438}; + angles[]={0,0.88203019,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3470; + type="Land_WoodenTable_large_F"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={9161.2939,119.42249,2649.8547}; + angles[]={0,3.1924,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3532; + type="Land_BagFenceLong"; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={9163.041,119.41012,2649.7659}; + angles[]={0,0.050807167,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3528; + type="Land_BagFenceEnd"; + atlOffset=7.6293945e-06; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={9157.9756,119.41014,2648.0146}; + angles[]={0,1.6216034,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3536; + type="Land_BagFenceEnd"; + atlOffset=3.0517578e-05; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.6689,119.42249,2649.3569}; + angles[]={0,2.4070015,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3531; + type="Land_BagFenceRound"; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={9161.2412,119.6232,2643.3425}; + angles[]={0,3.1924,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3540; + type="Land_PaperBox_closed_F"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.8594,120.23563,2645.717}; + angles[]={0,3.1924,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3530; + type="Land_CamoNet_NATO"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={9160.1758,119.73985,2644.5234}; + angles[]={0,1.6216035,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3535; + type="Land_CratesShabby_F"; + atlOffset=7.6293945e-06; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={9165.209,119.77834,2647.5229}; + angles[]={0,1.0980047,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3526; + type="Land_HBarrier_3_F"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={9165.457,119.77834,2645.0061}; + angles[]={0,5.8103938,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3527; + type="Land_HBarrier_3_F"; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={9158.4834,119.77834,2643.2327}; + angles[]={0,0.050807234,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3538; + type="Land_HBarrier_3_F"; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={9155.2627,119.77834,2643.897}; + angles[]={0,0.31260654,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3539; + type="Land_HBarrier_3_F"; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={9164.1621,119.68211,2649.0779}; + angles[]={0,1.8834028,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3529; + type="Land_HBarrier_1_F"; + atlOffset=7.6293945e-06; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={9152.1123,119.68211,2645.9348}; + angles[]={0,2.9306002,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3533; + type="Land_HBarrier_1_F"; + atlOffset=7.6293945e-06; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={9154.4248,119.68211,2649.573}; + angles[]={0,3.7159986,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3534; + type="Land_HBarrier_1_F"; + atlOffset=7.6293945e-06; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={9159.4141,119.38476,2644.3118}; + angles[]={0,3.1920855,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3537; + type="Land_BarrelWater_grey_F"; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={9187.335,120.28139,2708.4526}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3631; + type="AmmoCrates_NoInteractive_Medium"; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={9195.96,119.7432,2719.3252}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3639; + type="Wire"; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={9197.5322,119.7432,2713.8882}; + angles[]={0,5.2474613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3640; + type="Wire"; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={9182.0859,119.36771,2704.0088}; + angles[]={0,0.53507191,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3632; + type="Land_fort_bagfence_long"; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={9190.708,119.36771,2703.1118}; + angles[]={0,0.53507191,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3633; + type="Land_fort_bagfence_long"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={9189.583,119.36771,2717.1475}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3641; + type="Land_fort_bagfence_long"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={9196.2529,119.36771,2704.6206}; + angles[]={0,5.2474613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3644; + type="Land_fort_bagfence_long"; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={9185.0889,119.36771,2703.6819}; + angles[]={0,5.2474613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3621; + type="Land_fort_bagfence_corner"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={9195.3369,119.36771,2711.4119}; + angles[]={0,0.53507191,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3622; + type="Land_fort_bagfence_corner"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={9180.3564,119.36771,2706.4868}; + angles[]={0,0.53507191,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3623; + type="Land_fort_bagfence_corner"; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={9186.6875,119.36771,2717.4106}; + angles[]={0,2.1058683,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3624; + type="Land_fort_bagfence_corner"; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={9193.7754,119.36771,2702.8923}; + angles[]={0,5.2474613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3642; + type="Land_fort_bagfence_corner"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={9196.5361,119.36771,2707.7944}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3643; + type="Land_fort_bagfence_corner"; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={9182.5596,120.24562,2707.5054}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3638; + type="Land_CamoNet_EAST"; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={9190.25,119.74984,2704.5452}; + angles[]={0,5.77106,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3618; + type="Land_CratesShabby_F"; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={9189.3887,119.74984,2705.4167}; + angles[]={0,2.1058683,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3619; + type="Land_CratesShabby_F"; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={9190.3457,119.729,2706.668}; + angles[]={0,5.2474613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3620; + type="Land_CratesWooden_F"; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={9180.7686,119.12995,2713.7988}; + angles[]={0,2.1058683,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3628; + type="Land_fort_rampart"; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={9186.1836,119.47471,2707.2466}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3634; + type="GunrackTK_EP1"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={9188.459,119.78834,2706.915}; + angles[]={0,2.1058683,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3616; + type="Land_HBarrier_3_F"; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={9188.0635,119.78834,2704.5339}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3617; + type="Land_HBarrier_3_F"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={9193.0703,121.17501,2714.449}; + angles[]={0,3.6766648,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3629; + type="Land_HBarrierTower_F"; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={9176.4141,119.54056,2714.0544}; + angles[]={0,1.0586706,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3625; + type="Hedgehog"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.873,119.54056,2714.0615}; + angles[]={0,2.629467,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3626; + type="Hedgehog"; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={9177.0879,119.54056,2712.4924}; + angles[]={0,4.9856615,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3627; + type="Hedgehog"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={9180.665,119.68552,2717.0566}; + angles[]={0,2.3676677,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3637; + type="Land_Misc_IronPipes_EP1"; + atlOffset=-7.6293945e-06; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={9182.4268,119.72537,2711.2153}; + angles[]={0,5.2473917,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3630; + type="Land_Pallet_vertical_F"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={9183.293,119.41956,2710.7034}; + angles[]={0,5.2474785,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3635; + type="Land_Pallets_stack_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={9185.5,119.41956,2714.917}; + angles[]={0,4.9856615,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3636; + type="Land_Pallets_stack_F"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.5322,119.55836,2612.0654}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3649; + type="Barrel1"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={9135.5322,119.35771,2611.1904}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3652; + type="Land_fort_bagfence_long"; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.9072,119.35771,2610.0654}; + angles[]={0,1.5707964,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3647; + type="Land_fort_bagfence_corner"; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={9132.5322,119.35771,2610.0654}; + angles[]={0,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3651; + type="Land_fort_bagfence_corner"; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={9129.4072,119.94563,2607.8154}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3646; + type="Land_BagBunker_Small_F"; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={9131.0322,120.10268,2609.5654}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3650; + type="Land_CamoNetVar_EAST"; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={9129.4072,119.46665,2612.3154}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3648; + type="Fort_Crate_wood"; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={9330.8486,119.42249,2646.5107}; + angles[]={0,2.9290981,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3655; + type="Land_BagFenceLong"; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={9311.9775,119.42249,2668.0271}; + angles[]={0,5.2936616,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3659; + type="Land_BagFenceLong"; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={9341.8164,119.42249,2667.5139}; + angles[]={0,1.2794034,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3667; + type="Land_BagFenceLong"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={9313.5566,119.42249,2670.4292}; + angles[]={0,5.2936616,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3675; + type="Land_BagFenceLong"; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={9315.2393,119.42249,2672.7629}; + angles[]={0,5.2936616,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3676; + type="Land_BagFenceLong"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={9311.2617,119.41804,2666.2534}; + angles[]={0,3.7228651,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3661; + type="Land_BagFenceCorner"; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={9316.5459,119.41804,2674.2988}; + angles[]={0,5.2936616,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3679; + type="Land_BagFenceCorner"; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={9333.5771,119.41011,2649.2739}; + angles[]={0,4.4998941,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3656; + type="Land_BagFenceEnd"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={9313.2822,119.41011,2664.7756}; + angles[]={0,0.31947234,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3662; + type="Land_BagFenceEnd"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={9327.2236,119.41011,2647.9028}; + angles[]={0,4.4998941,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3663; + type="Land_BagFenceEnd"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={9338.8477,119.41011,2670.0137}; + angles[]={0,2.8502004,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3668; + type="Land_BagFenceEnd"; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={9340.7148,119.41011,2663.7886}; + angles[]={0,2.8502004,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3669; + type="Land_BagFenceEnd"; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={9318.8057,119.41011,2673.4111}; + angles[]={0,0.31947234,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3686; + type="Land_BagFenceEnd"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={9333.2832,119.42249,2647.675}; + angles[]={0,5.2852907,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3654; + type="Land_BagFenceRound"; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={9328.1514,119.42249,2646.5681}; + angles[]={0,0.57290345,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3658; + type="Land_BagFenceRound"; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={9341.9727,119.42249,2664.8186}; + angles[]={0,5.2063942,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3665; + type="Land_BagFenceRound"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={9340.4639,119.42249,2669.8472}; + angles[]={0,3.6355982,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3666; + type="Land_BagFenceRound"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={9312.2734,119.423,2665.2908}; + angles[]={0,0.58127183,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3660; + type="Land_BagFenceShort"; + atlOffset=-7.6293945e-06; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={9317.7969,119.423,2673.925}; + angles[]={0,0.58127183,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3677; + type="Land_BagFenceShort"; + atlOffset=-7.6293945e-06; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={9327.4209,119.55836,2673.3235}; + angles[]={0,5.2063942,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3685; + type="Barrel4"; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={9327.4111,119.55836,2672.4543}; + angles[]={0,0.75580478,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3687; + type="Barrel4"; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={9315.0674,119.55836,2671.1511}; + angles[]={0,2.0648022,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3680; + type="Barrel1"; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={9328.0967,119.55836,2672.9375}; + angles[]={0,5.2063942,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3681; + type="Barrel1"; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={9315.7617,119.55836,2671.9143}; + angles[]={0,5.7299933,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3682; + type="Barrel1"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={9315.7949,119.55836,2671.1855}; + angles[]={0,2.0648022,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3683; + type="Barrel1"; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={9328.0625,119.55836,2673.6643}; + angles[]={0,2.8502004,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3684; + type="Barrel1"; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={9316.168,120.23563,2668.7136}; + angles[]={0,5.2063951,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3670; + type="Land_CamoNet_NATO"; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={9322.6934,120.26427,2674.0107}; + angles[]={0,5.468194,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3672; + type="Misc_cargo_cont_small"; + atlOffset=-7.6293945e-06; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={9316.8535,119.83337,2667.3503}; + angles[]={0,1.8030026,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3673; + type="Misc_cargo_cont_net1"; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={9315.832,119.01944,2665.4524}; + angles[]={0,5.2063942,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3657; + type="Land_Garbage_square5_F"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={9318.79,119.01944,2670.0537}; + angles[]={0,5.2063942,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3671; + type="Land_Garbage_square5_F"; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={9317.3848,119.71538,2668.3372}; + angles[]={0,3.6355457,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3678; + type="Land_Pallet_vertical_F"; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={9317.8604,119.40957,2669.2219}; + angles[]={0,3.6355982,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3674; + type="Land_Pallets_stack_F"; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={9286.9375,119.73321,2601.5361}; + angles[]={0,3.6684546,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3692; + type="Wire"; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={9294.291,119.73321,2592.0525}; + angles[]={0,5.2392511,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3705; + type="Wire"; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={9293.5283,119.73321,2597.7021}; + angles[]={0,3.6684546,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3706; + type="Wire"; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={9283.2617,119.55836,2599.5552}; + angles[]={0,6.0246491,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3695; + type="Barrel1"; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={9282.8398,119.55836,2599.0776}; + angles[]={0,3.4066553,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3696; + type="Barrel1"; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={9282.1797,119.55836,2599.821}; + angles[]={0,5.2392511,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3697; + type="Barrel1"; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={9282.8164,119.55836,2600.1917}; + angles[]={0,4.1920538,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3698; + type="Barrel1"; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={9279.5371,119.35771,2597.0195}; + angles[]={0,0.52686185,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3702; + type="Land_fort_bagfence_long"; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={9282.3037,119.35771,2601.7734}; + angles[]={0,3.6684546,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3703; + type="Land_fort_bagfence_long"; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={9280.8604,119.35771,2589.5979}; + angles[]={0,0.52686185,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3710; + type="Land_fort_bagfence_long"; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={9279.1123,119.35771,2592.061}; + angles[]={0,0.52686185,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3708; + type="Land_fort_bagfence_corner"; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={9284.0361,119.35771,2589.3398}; + angles[]={0,5.2392511,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3709; + type="Land_fort_bagfence_corner"; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={9278.6514,119.27355,2600.7163}; + angles[]={0,5.2392511,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3704; + type="Land_fort_bagfence_round"; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={9284.3398,119.6232,2598.5632}; + angles[]={0,4.9774513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3693; + type="Land_PaperBox_closed_F"; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={9284.2773,119.6232,2590.5012}; + angles[]={0,4.715652,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3707; + type="Land_PaperBox_closed_F"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={9285.0303,119.01944,2593.5352}; + angles[]={0,1.3122599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3694; + type="Land_Garbage_square5_F"; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={9284.8447,119.43164,2593.4702}; + angles[]={0,1.3122599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3700; + type="Land_GarbageWashingMachine_F"; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={9284.8965,119.77834,2600.2642}; + angles[]={0,3.6684546,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3689; + type="Land_HBarrier_3_F"; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={9287.7051,119.77834,2598.6301}; + angles[]={0,3.6684546,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3690; + type="Land_HBarrier_3_F"; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={9286.626,119.77834,2591.3054}; + angles[]={0,2.0976582,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3691; + type="Land_HBarrier_3_F"; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={9289.4551,121.16502,2595.0105}; + angles[]={0,5.2392511,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3701; + type="Land_HBarrierTower_F"; + atlOffset=7.6293945e-06; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={9283.2236,119.11292,2594.479}; + angles[]={0,1.3122599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3699; + type="Land_Pneu"; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={9071.9365,120.36024,2558.6633}; + angles[]={0,0.35139853,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3714; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-7.6293945e-06; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.4189,120.06915,2558.4048}; + angles[]={0,0.61319798,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3717; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=7.6293945e-06; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={9085.6299,119.57835,2569.9836}; + angles[]={0,5.8491855,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3738; + type="Barrel4"; + atlOffset=-7.6293945e-06; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={9084.9902,119.60755,2570.0022}; + angles[]={0.011294038,5.8578448,6.1037173}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3739; + type="Barrel4"; + atlOffset=0.009552002; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={9085.2041,119.57668,2569.3096}; + angles[]={0.011294038,1.4000291,6.1037173}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3740; + type="Barrel4"; + atlOffset=-0.0016708374; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.2529,119.57835,2560.7048}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3716; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.833,119.57835,2560.1604}; + angles[]={0,0.089599133,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3731; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={9075.0137,119.57835,2560.9907}; + angles[]={0,4.0165901,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3732; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={9067.7852,119.37771,2578.1128}; + angles[]={0,1.6603955,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3722; + type="Land_fort_bagfence_long"; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={9067.5176,119.37771,2575.1248}; + angles[]={0,1.6603955,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3724; + type="Land_fort_bagfence_long"; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={9082.3838,119.37771,2578.5588}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3734; + type="Land_fort_bagfence_long"; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={9079.3965,119.37771,2578.8271}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3736; + type="Land_fort_bagfence_long"; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={9068.6182,119.37772,2572.0146}; + angles[]={0,0.089599133,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3721; + type="Land_fort_bagfence_corner"; + atlOffset=1.5258789e-05; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={9072.4434,120.12267,2560.1243}; + angles[]={0,0.35139853,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3713; + type="Land_CamoNetVar_EAST"; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.4629,119.18517,2560.2837}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3712; + type="Land_fort_artillery_nest"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.3721,119.13995,2581.6272}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3720; + type="Land_fort_rampart"; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={9076.6367,120.22006,2577.4434}; + angles[]={0,6.1110024,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3735; + type="Land_FieldToilet_F"; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.5879,119.49918,2576.6333}; + angles[]={0,5.8491855,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3726; + type="FoldChair"; + atlOffset=7.6293945e-06; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={9072.9014,119.49918,2575.8979}; + angles[]={0,5.3255868,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3727; + type="FoldChair"; + atlOffset=7.6293945e-06; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.6211,119.49918,2575.0332}; + angles[]={0,2.9693923,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3728; + type="FoldChair"; + atlOffset=7.6293945e-06; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.5488,119.49918,2575.4822}; + angles[]={0,4.2783899,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3729; + type="FoldChair"; + atlOffset=7.6293945e-06; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={9073.6055,119.4001,2575.8333}; + angles[]={0,5.5873861,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3725; + type="FoldTable"; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.998,119,2568.5837}; + angles[]={0,3.2311921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3733; + type="BTR90_HQ_unfolded"; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={9077.4473,119.42268,2575.5825}; + angles[]={0,3.7547908,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3737; + type="MetalBarrel_burning_F"; + atlOffset=7.6293945e-06; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={9070.2754,119.76866,2577.8894}; + angles[]={0,2.4457936,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3723; + type="PowerGenerator"; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={9070.0293,125.4094,2575.1506}; + angles[]={0,5.8491855,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3719; + type="Land_Radar"; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={9065.8291,119.42957,2568.1665}; + angles[]={0.081732936,3.4656465,0.023721177}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3718; + type="Land_Pallets_stack_F"; + atlOffset=0.0015563965; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={9069.7744,119.56675,2559.7363}; + angles[]={0,2.1838372,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3715; + type="Land_WaterBarrel_F"; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={9071.0898,119.56675,2578.5691}; + angles[]={0,2.1838372,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3730; + type="Land_WaterBarrel_F"; + }; + }; + id=3436; + atlOffset=0.00019836426; + }; + class Item169 + { + dataType="Layer"; + name="LZ Námest Hangars"; + class Entities + { + items=296; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={9026.5137,119.30434,2339.4907}; + angles[]={0,0.57688046,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3742; + type="Land_fort_bagfence_round"; + atlOffset=0.00078582764; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={9020.624,119.05069,2333.2383}; + angles[]={0,2.1077135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3743; + type="Land_Garbage_square5_F"; + atlOffset=0.0012512207; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={9029.6309,119.40392,2336.5393}; + angles[]={0,3.678266,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3744; + type="Land_fort_bagfence_long"; + atlOffset=0.016212463; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={9022.7441,119.38863,2338.5374}; + angles[]={0,5.2938547,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3745; + type="Land_fort_bagfence_long"; + atlOffset=0.00092315674; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={9020.5977,119.34194,2332.5994}; + angles[]={0,4.2021089,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3746; + type="Land_Pallets_F"; + atlOffset=0.01361084; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={9022.29,119.10561,2333.447}; + angles[]={0,6.0239358,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3747; + type="Land_Pallet_F"; + atlOffset=-0.0054244995; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={9020.4775,119.25085,2333.804}; + angles[]={0,6.0347042,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3748; + type="Land_CratesPlastic_F"; + atlOffset=0.0083770752; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={9021.1934,119.40063,2334.2268}; + angles[]={0,2.1073818,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3749; + type="Land_BarrelEmpty_F"; + atlOffset=-0.014129639; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={9044.9434,120.13268,2324.719}; + angles[]={0,4.7257075,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3750; + type="Land_CamoNetVar_EAST"; + atlOffset=7.6293945e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={9051.7109,119.15395,2320.6917}; + angles[]={6.2815294,5.2493067,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3751; + type="Land_fort_rampart"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={9049.2529,119.15661,2330.7371}; + angles[]={6.2815294,3.67851,0.0016558425}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3752; + type="Land_fort_rampart"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={9045.4424,119.38771,2317.0029}; + angles[]={0,5.2493067,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3753; + type="Land_fort_bagfence_corner"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={9036.9961,119.38771,2333.3621}; + angles[]={0,5.2493067,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3754; + type="Land_fort_bagfence_corner"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={9043.999,119.04944,2323.6184}; + angles[]={0,2.1077135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3755; + type="Land_Garbage_square5_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={9039.9707,119.39049,2333.4473}; + angles[]={0,0.53691721,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3756; + type="Land_fort_bagfence_long"; + atlOffset=0.0027770996; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={9042.5488,119.39049,2331.9128}; + angles[]={0,0.53691721,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3757; + type="Land_fort_bagfence_long"; + atlOffset=0.0027770996; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={9045.1865,119.749,2328.7935}; + angles[]={0,3.67851,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3758; + type="Land_CratesWooden_F"; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={9047.7441,119.6532,2320.8706}; + angles[]={0,3.67851,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3759; + type="Land_PaperBox_closed_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={9048.5107,119.65405,2322.1587}; + angles[]={0,2.1077135,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3760; + type="Land_PaperBox_closed_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={9049.666,119.49943,2323.4851}; + angles[]={0,5.2493067,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3761; + type="Fort_Crate_wood"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={9050.2168,119.50034,2324.781}; + angles[]={0,1.5841146,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3762; + type="Fort_Crate_wood"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={9049.2969,119.40943,2324.457}; + angles[]={0,0.013318515,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3763; + type="Land_Sack_F"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={9043.8047,119.43268,2328.3115}; + angles[]={0,5.7729053,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3764; + type="Land_MetalBarrel_empty_F"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={9043.5674,119.43268,2329.1904}; + angles[]={0,3.1549792,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3765; + type="Land_MetalBarrel_F"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={9043.9521,119.43268,2329.9353}; + angles[]={0,3.6780493,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3766; + type="Land_MetalBarrel_F"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={9046.8613,119.01,2322.1182}; + angles[]={0,2.1077135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3767; + type="CUP_ammobednaX"; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={9045.8545,119.11536,2321.8501}; + angles[]={0,1.5838876,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3768; + type="Land_Ammobox_rounds_F"; + atlOffset=-7.6293945e-06; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={9046.1533,119.11536,2322.1077}; + angles[]={0,4.2018299,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3769; + type="Land_Ammobox_rounds_F"; + atlOffset=-7.6293945e-06; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={9024.0498,119.01,2322.6099}; + angles[]={0,2.1077135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3770; + type="Land_HelipadCircle_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={8998.2559,120.12978,2368.1995}; + angles[]={0,3.5123708,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3771; + type="Land_CamoNetVar_EAST"; + atlOffset=1.5258789e-05; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={8994.498,119.14079,2373.678}; + angles[]={0,2.4651732,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3772; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={9004.7695,119.14996,2372.4653}; + angles[]={0,4.0359688,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3773; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={8988.3555,120.26849,2363.6987}; + angles[]={0,2.4651728,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3774; + type="Land_Misc_Cargo1D"; + atlOffset=1.5258789e-05; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={9007.8301,119.38771,2363.061}; + angles[]={0,4.0355101,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3775; + type="Land_fort_bagfence_corner"; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={8999.4932,119.04944,2363.2617}; + angles[]={0,5.6067657,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3776; + type="Land_Garbage_square5_F"; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={8999.6494,119.26632,2363.0659}; + angles[]={0,5.6067657,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3777; + type="Land_GarbagePallet_F"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={9002.8174,119.70629,2369.1553}; + angles[]={0,2.4651747,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3778; + type="Misc_concrete_High"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={8991.0137,119.53062,2367.835}; + angles[]={0.0016558425,5.6067677,6.2332273}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3779; + type="Land_fort_bagfence_long"; + atlOffset=-7.6293945e-06; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={9007.0049,119.38771,2366.0854}; + angles[]={0,0.89437646,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3780; + type="Land_fort_bagfence_long"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={8998.3652,119.65048,2372.4546}; + angles[]={0,4.0359707,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3781; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={8999.6338,119.6526,2373.4727}; + angles[]={0,5.6067653,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3782; + type="Land_PaperBox_closed_F"; + atlOffset=1.5258789e-05; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={8998.126,119.00934,2364.4019}; + angles[]={0.0016194459,2.7269716,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3783; + type="Land_WoodenBox_F"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={8995.4805,119.43204,2369.6563}; + angles[]={0,1.1561761,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3784; + type="Land_Pallets_stack_F"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={8996.4004,119.73938,2370.0623}; + angles[]={0,1.1560887,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3785; + type="Land_Pallet_vertical_F"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.5469,119.43268,2364.5698}; + angles[]={0,4.2977676,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3786; + type="Land_MetalBarrel_empty_F"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.4658,119.43268,2363.825}; + angles[]={0,1.679914,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3787; + type="Land_MetalBarrel_F"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={9000.7607,119.43268,2364.2791}; + angles[]={0,2.2029023,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3788; + type="Land_MetalBarrel_F"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={8839.0313,125.9521,2264.457}; + angles[]={0,5.2838044,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3814; + type="RU_WarfareBAircraftFactory"; + atlOffset=-0.13109589; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={8864.9951,119.23175,2252.6802}; + angles[]={0,5.5054522,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3812; + type="AmmoCrate_NoInteractive_"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={8854.9551,120.26209,2267.8186}; + angles[]={0,0.58674592,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3824; + type="AmmoCrate_NoInteractive_"; + atlOffset=-0.40692902; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={8865.8184,120.37025,2251.615}; + angles[]={0,5.767252,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3808; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={8853.8027,121.42581,2267.9939}; + angles[]={0,4.7755361,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3816; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-0.40630341; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.123,120.30139,2251.1462}; + angles[]={0,4.196455,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3809; + type="AmmoCrates_NoInteractive_Medium"; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={8854.9941,121.35494,2268.7517}; + angles[]={0,4.7755361,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3817; + type="AmmoCrates_NoInteractive_Medium"; + atlOffset=-0.31690979; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={8844.6602,120.33123,2233.3665}; + angles[]={6.2820878,5.0176921,0.002068646}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3796; + type="Barrel4"; + atlOffset=0.13404083; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={8850.7666,120.58677,2268.1206}; + angles[]={0,1.8719547,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3818; + type="Barrel4"; + atlOffset=-0.40280151; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={8851.54,120.58677,2268.5183}; + angles[]={0,0.039359171,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3819; + type="Barrel4"; + atlOffset=-0.35604095; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={8850.8711,120.58677,2268.8379}; + angles[]={0,0.039359171,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3820; + type="Barrel4"; + atlOffset=-0.29696655; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={8844.293,120.31425,2232.916}; + angles[]={6.2820878,3.2052202,0.002068646}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3795; + type="Barrel1"; + atlOffset=-0.0056533813; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={8849.3857,120.58677,2268.8518}; + angles[]={0,3.7045507,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3821; + type="Barrel1"; + atlOffset=-0.3010788; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={8849.6768,120.58677,2268.1111}; + angles[]={0,0.56295788,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3822; + type="Barrel1"; + atlOffset=-0.38806152; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={8850.1953,120.58677,2268.7849}; + angles[]={0,4.4899487,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3823; + type="Barrel1"; + atlOffset=-0.29364014; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={8839.0488,120.43703,2237.2444}; + angles[]={0,0.29548872,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3791; + type="Barrels"; + atlOffset=-0.23049164; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={8837.7822,120.44104,2239.1335}; + angles[]={0,1.0794026,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3800; + type="Barrels"; + atlOffset=-0.16629791; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.7461,119.71152,2246.2854}; + angles[]={0,4.7200541,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3810; + type="Barrels"; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.7266,119.71152,2248.4719}; + angles[]={0,3.1492579,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3811; + type="Barrels"; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={8837.1396,121.00751,2240.8298}; + angles[]={0,4.2325363,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3797; + type="Land_CamoNet_EAST"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={8840.6475,119.89114,2231.384}; + angles[]={0,0.55728769,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3790; + type="Land_fort_rampart"; + atlOffset=-0.61151123; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={8828.5781,119.94631,2255.4873}; + angles[]={0,1.416764,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3798; + type="Land_fort_rampart"; + atlOffset=0.24776459; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={8833.5518,119.89366,2239.0991}; + angles[]={0,1.0794026,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3799; + type="Land_fort_rampart"; + atlOffset=-0.61954498; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={8868.8389,120.10727,2258.2151}; + angles[]={0,4.0065861,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3806; + type="Land_fort_rampart"; + atlOffset=-0.26546478; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={8875.4434,119.99896,2250.6807}; + angles[]={0,3.9862766,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3807; + type="Land_fort_rampart"; + atlOffset=-0.32611847; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={8851.4766,120.13231,2271.835}; + angles[]={0,3.1809521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3815; + type="Land_fort_rampart"; + atlOffset=0.13298798; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={8843.1943,119.43268,2240.3308}; + angles[]={0,1.6142995,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3794; + type="MetalBarrel_burning_F"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={8835.6494,120.47971,2242.5847}; + angles[]={0,5.8033514,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3802; + type="Land_Pallet_vertical_F"; + atlOffset=-0.11739349; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.7412,119.40079,2244.5488}; + angles[]={0,1.316662,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3813; + type="Land_Sacks_heap_F"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={8836.0908,120.18051,2241.7756}; + angles[]={0,5.8033314,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3801; + type="Land_Pallets_stack_F"; + atlOffset=-0.12265015; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={8838.6836,119.43557,2245.3264}; + angles[]={0,2.6618164,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3803; + type="Land_Pallets_stack_F"; + atlOffset=-0.0039978027; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={8843.3398,120.31793,2233.5122}; + angles[]={0,1.3523432,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3792; + type="Land_WaterBarrel_F"; + atlOffset=-0.055931091; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={8842.4023,120.31793,2234.3494}; + angles[]={0,0.043318633,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3793; + type="Land_WaterBarrel_F"; + atlOffset=-0.086608887; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={8864.041,119.76321,2293.0769}; + angles[]={0,0.099418886,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3829; + type="Wire"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={8853.418,119.76321,2298.6589}; + angles[]={0,1.6702152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3842; + type="Wire"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={8856.4541,119.76321,2293.8337}; + angles[]={0,0.099418886,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3843; + type="Wire"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.5654,119.58836,2296.4033}; + angles[]={0,2.4556134,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3832; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={8866.752,119.58836,2297.0129}; + angles[]={0,6.1208048,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3833; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={8867.6611,119.58836,2296.6101}; + angles[]={0,1.6702152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3834; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={8867.2344,119.58836,2296.0088}; + angles[]={0,0.62301767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3835; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={8868.9033,119.38771,2300.2546}; + angles[]={0,3.2410116,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3839; + type="Land_fort_bagfence_long"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={8868.3574,119.38771,2294.782}; + angles[]={0,0.099418886,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3840; + type="Land_fort_bagfence_long"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={8864.623,119.38771,2306.4602}; + angles[]={0,3.2410116,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3847; + type="Land_fort_bagfence_long"; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={8867.2354,119.38771,2304.9434}; + angles[]={0,3.2410116,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3845; + type="Land_fort_bagfence_corner"; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={8861.626,119.38771,2305.3784}; + angles[]={0,1.6702152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3846; + type="Land_fort_bagfence_corner"; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={8871.2422,119.30355,2297.2578}; + angles[]={0,1.6702152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3841; + type="Land_fort_bagfence_round"; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={8865.1738,119.6532,2296.8591}; + angles[]={0,1.4084157,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3830; + type="Land_PaperBox_closed_F"; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={8861.8877,119.6532,2304.2217}; + angles[]={0,1.1466163,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3844; + type="Land_PaperBox_closed_F"; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={8862.4609,119.04944,2301.1487}; + angles[]={0,4.0264096,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3831; + type="Land_Garbage_square5_F"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={8862.6025,119.46164,2301.2847}; + angles[]={0,4.0264096,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3837; + type="Land_GarbageWashingMachine_F"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={8865.3721,119.80834,2295.0806}; + angles[]={0,0.099418886,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3826; + type="Land_HBarrier_3_F"; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={8862.1387,119.80834,2295.4033}; + angles[]={0,0.099418886,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3827; + type="Land_HBarrier_3_F"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={8860.084,119.80834,2302.5164}; + angles[]={0,4.8118081,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3828; + type="Land_HBarrier_3_F"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={8859.0459,121.19501,2297.9719}; + angles[]={0,1.6702152,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3838; + type="Land_HBarrierTower_F"; + atlOffset=-7.6293945e-06; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={8864.4961,119.14292,2301.0388}; + angles[]={0,4.0264096,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3836; + type="Land_Pneu"; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={9009.6172,125.05286,2228.0583}; + angles[]={0,3.1492815,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3873; + type="RU_WarfareBAircraftFactory"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={9004.9023,119.23175,2275.873}; + angles[]={0,3.4110808,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3871; + type="AmmoCrate_NoInteractive_"; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={8999.8447,119.23175,2241.5093}; + angles[]={0,4.720078,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3883; + type="AmmoCrate_NoInteractive_"; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={9005.4121,120.37025,2277.1191}; + angles[]={0,3.6728802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3867; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={8999.959,120.37025,2240.1328}; + angles[]={0,2.6256824,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3875; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={9005.666,120.30139,2277.6169}; + angles[]={0,2.1020837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3868; + type="AmmoCrates_NoInteractive_Medium"; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={8998.7148,120.30139,2240.7678}; + angles[]={0,2.6256824,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3876; + type="AmmoCrates_NoInteractive_Medium"; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={9042.2676,119.58881,2236.8992}; + angles[]={0,3.6566007,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3855; + type="Barrel4"; + atlOffset=7.6293945e-06; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.5674,119.58836,2237.8706}; + angles[]={0,6.0290747,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3877; + type="Barrel4"; + atlOffset=7.6293945e-06; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={9000.8359,119.58836,2238.3411}; + angles[]={0,4.1964788,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3878; + type="Barrel4"; + atlOffset=7.6293945e-06; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={9000.8945,119.58836,2237.6018}; + angles[]={0,4.1964788,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3879; + type="Barrel4"; + atlOffset=7.6293945e-06; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={9042.7041,119.58953,2236.3354}; + angles[]={0,1.8240049,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3854; + type="Barrel1"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.624,119.58836,2236.3091}; + angles[]={0,1.578485,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3880; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={9002.1201,119.58836,2236.9314}; + angles[]={0,4.720078,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3881; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.2773,119.58836,2237.0437}; + angles[]={0,2.363883,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3882; + type="Barrel1"; + atlOffset=7.6293945e-06; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={9037.2754,119.71152,2232.0737}; + angles[]={0,5.227397,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3850; + type="Barrels"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={9035.1465,119.71152,2231.2554}; + angles[]={0,6.0127954,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3859; + type="Barrels"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={9009.5645,119.71152,2280.5869}; + angles[]={0,2.6256824,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3869; + type="Barrels"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={9007.6807,119.71152,2279.4766}; + angles[]={0,1.0548863,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3870; + type="Barrels"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={9033.3662,120.26563,2231.0754}; + angles[]={0,2.8712025,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3856; + type="Land_CamoNet_EAST"; + atlOffset=7.6293945e-06; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={9022.4961,119.70629,2228.5845}; + angles[]={0,4.720078,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3863; + type="Misc_concrete_High"; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={9043.4102,119.15231,2232.4949}; + angles[]={0,5.4891968,0.0016194459}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3849; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={9021.0928,119.14996,2224.8452}; + angles[]={0,0.0076887612,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3857; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={9034.3633,119.14996,2227.1667}; + angles[]={0,6.0127954,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3858; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={9001.4092,119.14996,2276.6497}; + angles[]={0,2.1020837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3865; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={9008.9668,119.14996,2284.2168}; + angles[]={0,2.6256824,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3866; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={8998.0557,119.14996,2236.3977}; + angles[]={0,1.0548863,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3874; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={9025.457,119.01,2252.5283}; + angles[]={0,4.6419544,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3864; + type="Land_HelipadCircle_F"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={9035.1504,119.43268,2236.9148}; + angles[]={0,0.25320885,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3853; + type="MetalBarrel_burning_F"; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={9031.2754,119.74538,2230.0012}; + angles[]={0,4.4419417,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3861; + type="Land_Pallet_vertical_F"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={9011.0713,119.40079,2281.4504}; + angles[]={0,5.505476,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3872; + type="Land_Sacks_heap_F"; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={9032.2441,119.43957,2230.2712}; + angles[]={0,4.4419975,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3860; + type="Land_Pallets_stack_F"; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={9029.46,119.43957,2231.9858}; + angles[]={0,1.3004062,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3862; + type="Land_Pallets_stack_F"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={9041.8496,119.57675,2235.6379}; + angles[]={0,6.2744379,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3851; + type="Land_WaterBarrel_F"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={9040.8359,119.57675,2234.896}; + angles[]={0,4.9654131,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3852; + type="Land_WaterBarrel_F"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={9029.7109,119.57835,2144.5454}; + angles[]={0,3.8152313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3889; + type="Barrel2"; + atlOffset=-7.6293945e-06; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={9023.8359,119.57835,2135.3574}; + angles[]={0,3.2916324,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3898; + type="Barrel2"; + atlOffset=-7.6293945e-06; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={9034.7939,119.37771,2141.9456}; + angles[]={0,0.67363858,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3888; + type="Land_fort_bagfence_long"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={9027.6572,119.37771,2135.0076}; + angles[]={0,5.3860278,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3897; + type="Land_fort_bagfence_long"; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={9020.7324,119.37771,2147.572}; + angles[]={0,5.3860278,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3906; + type="Land_fort_bagfence_long"; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={9030.5049,119.37771,2136.5725}; + angles[]={0,2.2444348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3896; + type="Land_fort_bagfence_corner"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={9023.5811,119.37771,2149.1367}; + angles[]={0,2.2444348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3904; + type="Land_fort_bagfence_corner"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={9035.2275,119.29355,2138.0808}; + angles[]={0,2.2444348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3887; + type="Land_fort_bagfence_round"; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={9028.4277,120.25562,2143.9883}; + angles[]={0,0.67363858,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3885; + type="Land_CamoNet_EAST"; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={9031.4219,119.50648,2142.5334}; + angles[]={0,3.8148129,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3893; + type="Land_CampingChair_V2_F"; + atlOffset=-7.6293945e-06; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={9030.4863,119.50648,2142.9634}; + angles[]={0,3.5535715,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3894; + type="Land_CampingChair_V2_F"; + atlOffset=-7.6293945e-06; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={9026.667,119.75984,2146.9934}; + angles[]={0,5.6478271,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3892; + type="Land_CratesShabby_F"; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={9031.04,119.22173,2147.6609}; + angles[]={0,3.8152373,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3886; + type="Land_fort_rampart"; + atlOffset=7.6293945e-06; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={9021.7539,121.28653,2141.6384}; + angles[]={0,3.8152313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3895; + type="CUP_A1_fuelstation_army"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={9023.2949,119.42268,2142.9675}; + angles[]={0,4.3383713,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3901; + type="Land_MetalBarrel_F"; + atlOffset=7.6293945e-06; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={9024.1543,119.42268,2142.4414}; + angles[]={0,3.8149869,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3902; + type="Land_MetalBarrel_F"; + atlOffset=7.6293945e-06; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={9025.0332,119.42268,2141.7397}; + angles[]={0,0.15003966,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3899; + type="Land_MetalBarrel_empty_F"; + atlOffset=7.6293945e-06; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={9021.8193,119.42268,2135.5088}; + angles[]={0,5.3860278,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3900; + type="Land_MetalBarrel_empty_F"; + atlOffset=7.6293945e-06; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={9015.6865,119.42268,2145.6641}; + angles[]={0,5.3860278,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3907; + type="Land_MetalBarrel_empty_F"; + atlOffset=7.6293945e-06; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={9016.4932,119.42268,2145.9063}; + angles[]={0,4.0770307,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3908; + type="Land_MetalBarrel_empty_F"; + atlOffset=7.6293945e-06; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={9015.6055,120.35755,2142.5479}; + angles[]={0,2.2444348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3905; + type="Land_Ind_TankSmall2"; + atlOffset=7.6293945e-06; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={9027.6641,119.42957,2146.0374}; + angles[]={0,2.2444701,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3891; + type="Land_Pallets_stack_F"; + atlOffset=7.6293945e-06; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={9019.8281,119.48665,2135.0186}; + angles[]={0,2.2444348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3903; + type="Fort_Crate_wood"; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={9031.3594,119.4323,2143.2524}; + angles[]={0,5.3804235,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3890; + type="Land_WoodenTable_large_F"; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={9005.4326,119.57835,2109.793}; + angles[]={0,5.5896826,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3951; + type="Barrel4"; + atlOffset=-7.6293945e-06; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={9005.4795,119.57835,2108.9939}; + angles[]={0,2.9716887,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3952; + type="Barrel4"; + atlOffset=-7.6293945e-06; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={9033.7578,119.37771,2122.4819}; + angles[]={0,5.3835659,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3921; + type="Land_fort_bagfence_long"; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={9035.623,119.37771,2124.8308}; + angles[]={0,5.3835659,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3928; + type="Land_fort_bagfence_long"; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={9030.9121,119.37771,2120.9097}; + angles[]={0,5.3835659,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3926; + type="Land_fort_bagfence_corner"; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={9036.4111,119.37771,2128.0361}; + angles[]={0,3.8127694,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3927; + type="Land_fort_bagfence_corner"; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={8980.1611,119.85953,2257.8088}; + angles[]={0,2.8537569,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3930; + type="Land_Wreck_BMP2_F"; + atlOffset=-7.6293945e-06; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={9039.3291,119.6432,2154.4766}; + angles[]={0,0.93658751,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3933; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={9064.1934,119.6432,2187.022}; + angles[]={0,0.72738737,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3939; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={9038.0586,119.6432,2155.7192}; + angles[]={0,5.3871775,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3940; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={9010.6094,119.6432,2108.8875}; + angles[]={0,5.3278832,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3941; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={9065.4063,119.6432,2185.9417}; + angles[]={0,5.4397764,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3955; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={9077.1406,119.6432,2169.4304}; + angles[]={0,1.4905367,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3959; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={9076.8662,119.6432,2171.2893}; + angles[]={0,4.3703308,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3963; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={8970.1953,119.65319,2275.5554}; + angles[]={0,3.1155562,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3981; + type="Land_PaperBox_closed_F"; + atlOffset=-7.6293945e-06; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={9098.4053,119.88969,2178.666}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3932; + type="Land_BagBunker_Large_F"; + atlOffset=-7.6293945e-06; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={9055.9443,119.96563,2153.7932}; + angles[]={0,5.39218,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3982; + type="Land_BagBunker_Small_F"; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={9037.6855,120.25562,2154.5459}; + angles[]={0,3.8163812,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3931; + type="Land_CamoNet_EAST"; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={9011.1348,120.12267,2111.5781}; + angles[]={0,0.61549419,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3936; + type="Land_CamoNetVar_EAST"; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.4297,120.12267,2168.8364}; + angles[]={0,5.4175277,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3957; + type="Land_CamoNetVar_EAST"; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={8970.3066,120.13267,2271.3069}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3973; + type="Land_CamoNetVar_EAST"; + atlOffset=-7.6293945e-06; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={9074.8193,119.18517,2167.1121}; + angles[]={0,2.2759347,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3962; + type="Land_fort_artillery_nest"; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={9035.6289,119.13995,2151.5508}; + angles[]={0,0.67478824,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3920; + type="Land_fort_rampart"; + atlOffset=-0.34751129; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={9086.248,119.13995,2193.3245}; + angles[]={0,5.1374893,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3922; + type="Land_fort_rampart"; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={8977.1592,119.14995,2257.8557}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3929; + type="Land_fort_rampart"; + atlOffset=-7.6293945e-06; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={9062.0195,119.13995,2157.4219}; + angles[]={0,5.4397764,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3956; + type="Land_fort_rampart"; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={8976.4199,119.14995,2271.8413}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3964; + type="Land_fort_rampart"; + atlOffset=-7.6293945e-06; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={8969.1055,119.14995,2279.0283}; + angles[]={0,3.1155562,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3970; + type="Land_fort_rampart"; + atlOffset=-7.6293945e-06; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={9051.6553,119.13995,2148.4487}; + angles[]={0,5.6539793,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3983; + type="Land_fort_rampart"; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={9081.1201,119.13995,2184.3372}; + angles[]={0,5.3240724,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4091; + type="Land_fort_rampart"; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={9034.2559,119.03944,2158.5684}; + angles[]={0,6.172576,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3923; + type="Land_Garbage_square5_F"; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={9036.3682,119.03944,2157.1145}; + angles[]={0,6.172576,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3934; + type="Land_Garbage_square5_F"; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={9024.8955,119.03944,2119.0483}; + angles[]={0,2.216404,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3935; + type="Land_Garbage_square5_F"; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={8965.9385,119.04943,2274.2087}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3971; + type="Land_Garbage_square5_F"; + atlOffset=-7.6293945e-06; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={8968.8496,119.04943,2272.1511}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3972; + type="Land_Garbage_square5_F"; + atlOffset=-7.6293945e-06; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={9023.6826,119.43364,2117.9666}; + angles[]={0,2.216404,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3937; + type="Land_GarbageBags_F"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={8968.085,119.26631,2274.9993}; + angles[]={0,4.9481521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3975; + type="Land_GarbagePallet_F"; + atlOffset=-7.6293945e-06; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={8974.8926,119.46163,2277.6785}; + angles[]={0,4.6863527,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3965; + type="Land_GarbageWashingMachine_F"; + atlOffset=-7.6293945e-06; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={9015.9463,119.48471,2111.2378}; + angles[]={0,5.3278832,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3948; + type="GunrackTK_EP1"; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={9015.2969,119.48471,2110.3193}; + angles[]={0,5.3278832,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3949; + type="GunrackTK_EP1"; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={8972.0762,119.49471,2275.3542}; + angles[]={0,3.1155562,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3966; + type="GunrackTK_EP1"; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={8972.1094,119.49471,2274.1047}; + angles[]={0,3.1155562,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3967; + type="GunrackTK_EP1"; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={9015.7197,120.21,2106.8049}; + angles[]={0,5.3278832,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3943; + type="Land_HBarrier_Big_F"; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={9026.4492,120.21,2113.5356}; + angles[]={0,0.64560753,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3944; + type="Land_HBarrier_Big_F"; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={9009.8633,120.21,2106.9656}; + angles[]={0,0.61549419,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3945; + type="Land_HBarrier_Big_F"; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={9064.0654,120.21,2169.3958}; + angles[]={0,2.2981837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3960; + type="Land_HBarrier_Big_F"; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={9069.3643,120.21,2175.7241}; + angles[]={0,2.2981837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3961; + type="Land_HBarrier_Big_F"; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={9020.6992,120.21,2113.7979}; + angles[]={0,2.216404,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3978; + type="Land_HBarrier_Big_F"; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={8951.2822,131.89621,2272.0798}; + angles[]={0,3.0576262,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=3976; + type="Land_Cargo_Tower_V1_F"; + atlOffset=-0.48795319; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={9034.3047,119.27469,2156.6858}; + angles[]={0,3.2927823,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3925; + type="Land_JunkPile_F"; + }; + class Item211 + { + dataType="Object"; + class PositionInfo + { + position[]={9016.877,119.40475,2111.0388}; + angles[]={0,3.7567031,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3942; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-7.6293945e-06; + }; + class Item212 + { + dataType="Object"; + class PositionInfo + { + position[]={9011.3848,119.39727,2108.0332}; + angles[]={0,4.5424852,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3938; + type="Land_Sack_F"; + }; + class Item213 + { + dataType="Object"; + class PositionInfo + { + position[]={9063.4941,120.22804,2182.2888}; + angles[]={0,2.2981837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3946; + type="Barrack2"; + }; + class Item214 + { + dataType="Object"; + class PositionInfo + { + position[]={9056.502,120.22804,2174.6228}; + angles[]={0,2.2981837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3947; + type="Barrack2"; + }; + class Item215 + { + dataType="Object"; + class PositionInfo + { + position[]={9072.7119,119.27235,2163.6816}; + angles[]={0,3.0613329,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3958; + type="Land_Tyres_F"; + }; + class Item216 + { + dataType="Object"; + class PositionInfo + { + position[]={9006.5742,119.56675,2110.9753}; + angles[]={0,3.7569997,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3950; + type="Land_WaterBarrel_F"; + }; + class Item217 + { + dataType="Object"; + class PositionInfo + { + position[]={9013.9121,119.48665,2107.9304}; + angles[]={0,0.87729359,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3953; + type="Fort_Crate_wood"; + }; + class Item218 + { + dataType="Object"; + class PositionInfo + { + position[]={9013.2207,119.48665,2106.7349}; + angles[]={0,0.61549419,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3954; + type="Fort_Crate_wood"; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={9110.748,119.23678,2321.6055}; + angles[]={0,4.4890823,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4024; + type="AmmoCrate_NoInteractive_"; + atlOffset=0.015029907; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={9126.8711,120.36527,2351.1895}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3988; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.013679504; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={9109.9375,120.30642,2320.7866}; + angles[]={0,3.7036839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4009; + type="AmmoCrates_NoInteractive_Medium"; + atlOffset=0.015029907; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.0459,120.07417,2350.0059}; + angles[]={0,3.7036839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4000; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.011703491; + }; + class Item223 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.2949,119.17809,2339.001}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3992; + type="Body"; + atlOffset=0.005027771; + }; + class Item224 + { + dataType="Object"; + class PositionInfo + { + position[]={9107.418,119.26395,2333.0654}; + angles[]={0.00013546683,5.2744823,6.2816868}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4040; + type="Body"; + }; + class Item225 + { + dataType="Object"; + class PositionInfo + { + position[]={9108.9258,119.261,2338.4128}; + angles[]={0.00013546683,3.7036843,6.2816868}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4041; + type="Body"; + }; + class Item226 + { + dataType="Object"; + class PositionInfo + { + position[]={9109.916,119.26234,2337.6411}; + angles[]={0.00086294487,3.9654839,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4042; + type="Body"; + atlOffset=7.6293945e-06; + }; + class Item227 + { + dataType="Object"; + class PositionInfo + { + position[]={9123.5469,119.64747,2352.2485}; + angles[]={0.00086294487,3.7036846,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3990; + type="Land_PaperBox_closed_F"; + atlOffset=0.014274597; + }; + class Item228 + { + dataType="Object"; + class PositionInfo + { + position[]={9122.1729,119.64476,2353.1145}; + angles[]={0.00086294487,0.56209177,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3991; + type="Land_PaperBox_closed_F"; + atlOffset=0.011566162; + }; + class Item229 + { + dataType="Object"; + class PositionInfo + { + position[]={9107.7432,119.65823,2322.4636}; + angles[]={0,5.2744803,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4010; + type="Land_PaperBox_closed_F"; + atlOffset=0.013839722; + }; + class Item230 + { + dataType="Object"; + class PositionInfo + { + position[]={9108.6094,119.65823,2323.8386}; + angles[]={0,2.1328874,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4011; + type="Land_PaperBox_closed_F"; + atlOffset=0.01197052; + }; + class Item231 + { + dataType="Object"; + class PositionInfo + { + position[]={9119.9316,119.64205,2352.6052}; + angles[]={0.00086294487,5.2744808,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4031; + type="Land_PaperBox_closed_F"; + atlOffset=0.0087432861; + }; + class Item232 + { + dataType="Object"; + class PositionInfo + { + position[]={9120.7979,119.64204,2353.9802}; + angles[]={0.00086294487,2.1328881,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4032; + type="Land_PaperBox_closed_F"; + atlOffset=0.0088424683; + }; + class Item233 + { + dataType="Object"; + class PositionInfo + { + position[]={9096.873,119.64822,2324.4358}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4038; + type="Land_PaperBox_closed_F"; + atlOffset=-0.014976501; + }; + class Item234 + { + dataType="Object"; + class PositionInfo + { + position[]={9098.2461,119.64822,2323.5703}; + angles[]={0,3.7036839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4039; + type="Land_PaperBox_closed_F"; + atlOffset=-0.014976501; + }; + class Item235 + { + dataType="Object"; + class PositionInfo + { + position[]={9124.4502,120.26065,2352.2708}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3985; + type="Land_CamoNet_NATO"; + atlOffset=0.015029907; + }; + class Item236 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.3184,119.42155,2332.9756}; + angles[]={0,0.54485095,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4012; + type="Land_CampingTable_F"; + atlOffset=-7.6293945e-06; + }; + class Item237 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.5732,119.42155,2331.3379}; + angles[]={0,3.7063229,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4013; + type="Land_CampingTable_F"; + atlOffset=-7.6293945e-06; + }; + class Item238 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.9893,119.42155,2332.0142}; + angles[]={0,0.5357281,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4014; + type="Land_CampingTable_F"; + atlOffset=-7.6293945e-06; + }; + class Item239 + { + dataType="Object"; + class PositionInfo + { + position[]={9115.6709,119.42155,2332.3511}; + angles[]={0,3.5990198,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4015; + type="Land_CampingTable_F"; + atlOffset=-7.6293945e-06; + }; + class Item240 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.9795,119.69131,2356.8286}; + angles[]={0,3.7036839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4033; + type="Misc_concrete_High"; + atlOffset=-1.5258789e-05; + }; + class Item241 + { + dataType="Object"; + class PositionInfo + { + position[]={9113.123,117.9576,2337.0986}; + angles[]={0.00086294487,3.7036846,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4001; + type="USMC_WarfareBFieldhHospital"; + }; + class Item242 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.0059,119.51766,2333.1448}; + angles[]={0,0.54423302,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4016; + type="Land_CampingChair_V1_F"; + }; + class Item243 + { + dataType="Object"; + class PositionInfo + { + position[]={9115.9688,119.51766,2331.4343}; + angles[]={0,2.8999803,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4017; + type="Land_CampingChair_V1_F"; + }; + class Item244 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.9189,119.51766,2332.8606}; + angles[]={0,1.067385,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4018; + type="Land_CampingChair_V1_F"; + }; + class Item245 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.8828,119.51766,2331.1511}; + angles[]={0,3.6858327,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4019; + type="Land_CampingChair_V1_F"; + }; + class Item246 + { + dataType="Object"; + class PositionInfo + { + position[]={9118.6416,119.51766,2332.127}; + angles[]={0,0.28253338,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4020; + type="Land_CampingChair_V1_F"; + }; + class Item247 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.6543,119.51766,2330.6116}; + angles[]={0,3.9478767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4021; + type="Land_CampingChair_V1_F"; + }; + class Item248 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.2334,119.51766,2333.6833}; + angles[]={0,0.020728286,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4022; + type="Land_CampingChair_V1_F"; + }; + class Item249 + { + dataType="Object"; + class PositionInfo + { + position[]={9115.1826,119.51766,2332.1836}; + angles[]={0,4.576858,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4023; + type="Land_CampingChair_V1_F"; + }; + class Item250 + { + dataType="Object"; + class PositionInfo + { + position[]={9106.0234,119.75555,2319.2629}; + angles[]={0,2.1328874,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4004; + type="Land_HBarrier_5_F"; + atlOffset=0.0084457397; + }; + class Item251 + { + dataType="Object"; + class PositionInfo + { + position[]={9114.7715,119.77554,2316.2646}; + angles[]={0,3.7036839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4005; + type="Land_HBarrier_5_F"; + atlOffset=0.03502655; + }; + class Item252 + { + dataType="Object"; + class PositionInfo + { + position[]={9110.0098,119.75449,2319.2634}; + angles[]={0.0017648689,3.7036865,0.0028019648}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4006; + type="Land_HBarrier_5_F"; + atlOffset=0.013977051; + }; + class Item253 + { + dataType="Object"; + class PositionInfo + { + position[]={9101.9287,119.75389,2319.3293}; + angles[]={6.2818151,3.7036834,0.00086309417}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4007; + type="Land_HBarrier_5_F"; + atlOffset=-0.0066223145; + }; + class Item254 + { + dataType="Object"; + class PositionInfo + { + position[]={9110.1182,119.75555,2323.1838}; + angles[]={0,2.1328874,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4008; + type="Land_HBarrier_5_F"; + atlOffset=0.013053894; + }; + class Item255 + { + dataType="Object"; + class PositionInfo + { + position[]={9099.3535,119.74554,2329.0784}; + angles[]={0,5.798079,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4035; + type="Land_HBarrier_5_F"; + atlOffset=-0.016777039; + }; + class Item256 + { + dataType="Object"; + class PositionInfo + { + position[]={9095.7637,119.74732,2325.7244}; + angles[]={6.2818151,5.2744799,0.00086309417}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4036; + type="Land_HBarrier_5_F"; + atlOffset=-0.013191223; + }; + class Item257 + { + dataType="Object"; + class PositionInfo + { + position[]={9097.4844,119.74149,2322.127}; + angles[]={6.2812505,3.7036836,0.0031756614}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4037; + type="Land_HBarrier_5_F"; + atlOffset=-0.019020081; + }; + class Item258 + { + dataType="Object"; + class PositionInfo + { + position[]={9130.1309,120.21503,2351.2041}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3986; + type="Land_HBarrier_Big_F"; + atlOffset=0.013702393; + }; + class Item259 + { + dataType="Object"; + class PositionInfo + { + position[]={9108.2002,120.20731,2350.3948}; + angles[]={0.0013700437,5.2744799,6.2823224}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4026; + type="Land_HBarrier_Big_F"; + atlOffset=-0.010040283; + }; + class Item260 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.6396,120.20553,2352.7197}; + angles[]={0.00086294487,5.2744808,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4027; + type="Land_HBarrier_Big_F"; + atlOffset=0.0015945435; + }; + class Item261 + { + dataType="Object"; + class PositionInfo + { + position[]={9123.0146,120.21072,2355.3906}; + angles[]={0.00086294487,0.56209177,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4028; + type="Land_HBarrier_Big_F"; + atlOffset=0.010719299; + }; + class Item262 + { + dataType="Object"; + class PositionInfo + { + position[]={9104.0117,120.21469,2343.2803}; + angles[]={0.00086294487,5.2744808,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4034; + type="Land_HBarrier_Big_F"; + atlOffset=-0.025306702; + }; + class Item263 + { + dataType="Object"; + class PositionInfo + { + position[]={9137.0703,120.35394,2342.8777}; + angles[]={0.0017648689,1.0856924,0.0028019648}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3987; + type="B_Slingload_01_Medevac_F"; + atlOffset=7.6293945e-06; + }; + class Item264 + { + dataType="Object"; + class PositionInfo + { + position[]={9124.7197,119.4277,2345.8967}; + angles[]={0,5.535861,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3994; + type="Land_MetalBarrel_F"; + atlOffset=0.0028839111; + }; + class Item265 + { + dataType="Object"; + class PositionInfo + { + position[]={9125.3701,119.4277,2346.2258}; + angles[]={0,3.1803119,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3995; + type="Land_MetalBarrel_F"; + atlOffset=0.0047225952; + }; + class Item266 + { + dataType="Object"; + class PositionInfo + { + position[]={9133.5498,119.4277,2347.7209}; + angles[]={0,6.060123,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3996; + type="Land_MetalBarrel_F"; + atlOffset=0.0078887939; + }; + class Item267 + { + dataType="Object"; + class PositionInfo + { + position[]={9125.499,119.4277,2345.2581}; + angles[]={0,4.2263613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3997; + type="Land_MetalBarrel_F"; + atlOffset=0.0041809082; + }; + class Item268 + { + dataType="Object"; + class PositionInfo + { + position[]={9124.5459,119.4277,2346.6736}; + angles[]={0,2.3949656,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3998; + type="Land_MetalBarrel_F"; + atlOffset=0.0048446655; + }; + class Item269 + { + dataType="Object"; + class PositionInfo + { + position[]={9125.624,119.4277,2347.0994}; + angles[]={0,3.7035267,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3999; + type="Land_MetalBarrel_F"; + atlOffset=0.0068511963; + }; + class Item270 + { + dataType="Object"; + class PositionInfo + { + position[]={9100.7559,119.4277,2328.4905}; + angles[]={0,4.2263613,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4043; + type="Land_MetalBarrel_F"; + atlOffset=-0.015792847; + }; + class Item271 + { + dataType="Object"; + class PositionInfo + { + position[]={9098.96,119.4277,2327.6299}; + angles[]={0,2.3949656,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4044; + type="Land_MetalBarrel_F"; + atlOffset=-0.014976501; + }; + class Item272 + { + dataType="Object"; + class PositionInfo + { + position[]={9100.0381,119.4277,2328.0557}; + angles[]={0,3.7035267,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4045; + type="Land_MetalBarrel_F"; + atlOffset=-0.015068054; + }; + class Item273 + { + dataType="Object"; + class PositionInfo + { + position[]={9123.2715,119.42722,2339.6985}; + angles[]={0.0013700437,4.7508812,6.2823224}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3993; + type="MetalBarrel_burning_F"; + }; + class Item274 + { + dataType="Object"; + class PositionInfo + { + position[]={9118.3477,119.46459,2316.0798}; + angles[]={0,0.82385552,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4025; + type="Land_Pallets_stack_F"; + atlOffset=0.03502655; + }; + class Item275 + { + dataType="Object"; + class PositionInfo + { + position[]={9103.8086,120.17342,2323.0217}; + angles[]={0.00086294487,0.56209177,0.0013700433}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4003; + type="Camp_EP1"; + atlOffset=-0.0015411377; + }; + class Item276 + { + dataType="Object"; + class PositionInfo + { + position[]={9110.3809,120.21716,2349.1646}; + angles[]={0.0013700437,5.2744832,6.2823224}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4029; + type="Land_ToiletBox_F"; + atlOffset=-0.0091552734; + }; + class Item277 + { + dataType="Object"; + class PositionInfo + { + position[]={9111.3135,120.21509,2350.6472}; + angles[]={0,5.012681,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4030; + type="Land_ToiletBox_F"; + atlOffset=-0.007232666; + }; + class Item278 + { + dataType="Object"; + class PositionInfo + { + position[]={9131.96,119.68994,2347.541}; + angles[]={0,0.56209117,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=3989; + type="Land_WaterTank_F"; + atlOffset=0.0075912476; + }; + class Item279 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.417,119.7132,2272.2268}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4083; + type="Wire"; + }; + class Item280 + { + dataType="Object"; + class PositionInfo + { + position[]={9132.542,119.7132,2268.3516}; + angles[]={0,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4084; + type="Wire"; + }; + class Item281 + { + dataType="Object"; + class PositionInfo + { + position[]={9123.543,119.34629,2269.7268}; + angles[]={0,1.5707964,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4087; + type="Land_fort_bagfence_corner"; + atlOffset=-0.015983582; + }; + class Item282 + { + dataType="Object"; + class PositionInfo + { + position[]={9123.4189,119.61218,2261.1013}; + angles[]={0,4.4505897,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4074; + type="Land_PaperBox_closed_F"; + atlOffset=0.0089874268; + }; + class Item283 + { + dataType="Object"; + class PositionInfo + { + position[]={9125.1689,119.60635,2261.2263}; + angles[]={0,1.5707964,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4075; + type="Land_PaperBox_closed_F"; + atlOffset=0.0031585693; + }; + class Item284 + { + dataType="Object"; + class PositionInfo + { + position[]={9119.167,119.01943,2268.8513}; + angles[]={0,2.3561945,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4086; + type="Land_Garbage_square5_F"; + atlOffset=-0.037223816; + }; + class Item285 + { + dataType="Object"; + class PositionInfo + { + position[]={9118.9893,119.23631,2269.0281}; + angles[]={0,2.3561945,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4085; + type="Land_GarbagePallet_F"; + atlOffset=-0.036628723; + }; + class Item286 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.667,119.44471,2261.7263}; + angles[]={0,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4082; + type="GunrackTK_EP1"; + }; + class Item287 + { + dataType="Object"; + class PositionInfo + { + position[]={9130.542,119.75834,2260.4768}; + angles[]={0,1.5707964,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4070; + type="Land_HBarrier_3_F"; + }; + class Item288 + { + dataType="Object"; + class PositionInfo + { + position[]={9125.1689,119.76151,2259.6018}; + angles[]={0,0,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4071; + type="Land_HBarrier_3_F"; + atlOffset=0.0031738281; + }; + class Item289 + { + dataType="Object"; + class PositionInfo + { + position[]={9130.542,119.75834,2263.4768}; + angles[]={0,1.5707964,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4072; + type="Land_HBarrier_3_F"; + }; + class Item290 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.292,119.75834,2259.6018}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4073; + type="Land_HBarrier_3_F"; + }; + class Item291 + { + dataType="Object"; + class PositionInfo + { + position[]={9128.293,121.14501,2266.6838}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4077; + type="Land_HBarrierTower_F"; + }; + class Item292 + { + dataType="Object"; + class PositionInfo + { + position[]={9116.3936,119.08103,2267.793}; + angles[]={0,3.9085777,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4088; + type="Land_Pallet_F"; + atlOffset=-0.043945313; + }; + class Item293 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.917,119.29832,2266.7266}; + angles[]={0,2.0943952,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4076; + type="Land_Pallets_F"; + atlOffset=-0.03074646; + }; + class Item294 + { + dataType="Object"; + class PositionInfo + { + position[]={9126.292,119.36475,2260.8513}; + angles[]={0,6.2828536,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4080; + type="Land_BarrelWater_grey_F"; + }; + class Item295 + { + dataType="Object"; + class PositionInfo + { + position[]={9117.2188,119.11292,2269.0315}; + angles[]={0,2.3561945,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4089; + type="Land_Pneu"; + atlOffset=-0.039466858; + }; + }; + id=3789; + atlOffset=-0.029159546; + }; + class Item170 + { + dataType="Layer"; + name="Susice Water Treatment Plant"; + class Entities + { + items=86; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2647.6301,4.4442778,3325.5405}; + angles[]={0,1.4128455,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4092; + type="Land_fort_rampart"; + atlOffset=0.024327755; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2648.7986,4.4442778,3335.9348}; + angles[]={0,1.9364443,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4093; + type="Land_fort_rampart"; + atlOffset=0.014436722; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2653.5237,6.6205931,3333.189}; + angles[]={6.2802072,0.62745893,6.2754068}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4094; + type="RU_WarfareBUAVterminal"; + atlOffset=0.012532711; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2703.4236,4.6764741,3320.7502}; + angles[]={0.0017847361,1.9364485,0.0046614944}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4095; + type="Land_fort_bagfence_corner"; + atlOffset=-0.0012350082; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2711.8516,4.9948244,3303.603}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4096; + type="Land_HBarrier_5_F"; + atlOffset=0.0033211708; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2708.978,8.0263405,3304.8369}; + angles[]={0,5.0780373,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4097; + type="Land_LampShabby_F"; + atlOffset=-0.015835762; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={2649.9739,4.7379661,3330.2644}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4098; + type="Land_GarbageBags_F"; + atlOffset=0.023887157; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={2649.7676,4.3437638,3330.0762}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4099; + type="Land_Garbage_square5_F"; + atlOffset=0.024200916; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={2711.8193,4.8473916,3315.3945}; + angles[]={6.2792549,0.36556593,6.2775502}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4100; + type="Land_WaterBarrel_F"; + atlOffset=-0.015017033; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={2652.0701,4.8783422,3330.1333}; + angles[]={6.2802072,0.36565953,6.2754068}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4101; + type="Barrel3"; + atlOffset=0.019766331; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={2712.5244,4.860148,3316.1914}; + angles[]={6.2763662,5.339828,0.00083770871}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4102; + type="Barrel3"; + atlOffset=-0.011707783; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={2656.3645,4.705091,3336.1169}; + angles[]={6.2826066,0.36531666,6.2816734}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4103; + type="Land_BarrelSand_F"; + atlOffset=0.010142803; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={2718.1602,5.5599356,3327.4219}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4104; + type="Land_CamoNet_EAST"; + atlOffset=-0.015956402; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.2729,4.4586401,3343.79}; + angles[]={0,3.8953297,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4105; + type="Land_fort_rampart"; + atlOffset=0.0077800751; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={2722.2959,4.4599495,3337.0266}; + angles[]={0.0022664166,3.8953326,0.0024146698}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4106; + type="Land_fort_rampart"; + atlOffset=-4.7683716e-07; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={2712.7764,8.2787571,3321.051}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4107; + type="FlagPole_F"; + atlOffset=-0.00192976; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={2702.5696,4.6777081,3341.7412}; + angles[]={6.2816644,1.9197656,0.00055340992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4108; + type="Land_fort_bagfence_corner"; + atlOffset=-9.5367432e-07; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={2712.4063,4.3437462,3328.6274}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4109; + type="Land_Garbage_square5_F"; + atlOffset=0.0029559135; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={2718.4614,4.3437462,3325.8328}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4110; + type="Land_Garbage_square5_F"; + atlOffset=-0.016458988; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={2712.5251,4.3109889,3320.7456}; + angles[]={6.2826066,5.0780373,6.2816734}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4112; + type="Land_TreeBin_F"; + atlOffset=-0.00063705444; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.4397,5.0433102,3327.0791}; + angles[]={0,4.2926388,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4113; + type="Land_CratesWooden_F"; + atlOffset=-0.0071563721; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.4331,4.6226363,3330.2712}; + angles[]={0,1.6746448,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4114; + type="Land_Pallets_F"; + atlOffset=-0.0071339607; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={2719.5151,4.7919025,3324.5115}; + angles[]={0.0017847361,3.5072451,0.0046614944}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4115; + type="GunrackTK_EP1"; + atlOffset=-0.015330791; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={2710.2471,5.1576705,3331.9238}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4116; + type="Misc_cargo_cont_net1"; + atlOffset=0.0043101311; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={2713.6248,4.4053469,3330.6282}; + angles[]={0,3.499125,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4117; + type="Land_Pallet_F"; + atlOffset=-0.0011062622; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={2714.5266,5.0641489,3326.6716}; + angles[]={0,2.7218425,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4118; + type="Land_CratesShabby_F"; + atlOffset=-0.0041127205; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.7761,4.8826628,3325.3901}; + angles[]={0,0.62744737,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4119; + type="Barrel1"; + atlOffset=-0.0082802773; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={2720.5378,4.8837819,3328.1665}; + angles[]={0.0017847361,6.1252384,0.0046614944}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4120; + type="Barrel1"; + atlOffset=-0.017626762; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={2719.8462,4.8826628,3328.5527}; + angles[]={0,2.9836419,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4121; + type="Barrel1"; + atlOffset=-0.018102169; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={2711.5037,4.8826628,3331.7107}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4122; + type="Barrel3"; + atlOffset=0.0043101311; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={2714.6089,4.536777,3325.8374}; + angles[]={0,2.7218425,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4123; + type="Land_CratesPlastic_F"; + atlOffset=-0.0043859482; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={2711.1907,4.8826628,3330.8936}; + angles[]={0,4.0308394,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4124; + type="Barrel3"; + atlOffset=0.0043101311; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={2718.2878,4.7331495,3322.1536}; + angles[]={6.2792549,4.2872338,6.2775502}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4125; + type="Land_WoodenTable_large_F"; + atlOffset=-0.022224426; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={2717.5273,4.8094077,3322.6182}; + angles[]={6.2816734,5.8635745,0.00057893916}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4126; + type="Land_CampingChair_V2_F"; + atlOffset=-0.017809391; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={2718.3386,4.8107963,3323.2546}; + angles[]={0,0.10400565,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4127; + type="Land_CampingChair_V2_F"; + atlOffset=-0.016932487; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={2719.0432,4.8000269,3321.3767}; + angles[]={6.2792549,1.4124269,6.2775502}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4128; + type="Land_CampingChair_V2_F"; + atlOffset=-0.030831814; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={2718.0156,4.8040032,3320.9177}; + angles[]={6.2792549,1.6747953,6.2775502}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4129; + type="Land_CampingChair_V2_F"; + atlOffset=-0.027620316; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.6187,8.1323967,3310.9951}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4130; + type="Land_Cargo_HQ_V1_F"; + atlOffset=-0.0088787079; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={2724.7612,4.9948244,3306.5574}; + angles[]={0,1.9364443,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4131; + type="Land_HBarrier_5_F"; + atlOffset=0.0043101311; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={2726.7244,4.9714932,3311.6848}; + angles[]={6.2707391,1.9364146,0.0047651571}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4132; + type="Land_HBarrier_5_F"; + atlOffset=-0.019021034; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={2717.5518,4.9948244,3302.7593}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4133; + type="Land_HBarrier_5_F"; + atlOffset=0.0043101311; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={2723.197,5.0526519,3302.4714}; + angles[]={0,1.9364443,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4134; + type="Land_HBarrier_3_F"; + atlOffset=0.0043101311; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={2720.7756,4.9564157,3301.3911}; + angles[]={0,5.0780373,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4135; + type="Land_HBarrier_1_F"; + atlOffset=0.0043101311; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={2715.0037,4.9564157,3302.3967}; + angles[]={0,0.36564794,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4136; + type="Land_HBarrier_1_F"; + atlOffset=0.0043101311; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={2722.1042,4.9564157,3301.0164}; + angles[]={0,4.8162379,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4137; + type="Land_HBarrier_1_F"; + atlOffset=0.0043101311; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={2723.0874,4.5824404,3327.0085}; + angles[]={0.0027369054,0.36564866,0.0025174676}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4141; + type="Misc_Backpackheap"; + atlOffset=-0.0093736649; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={2720.4492,4.7969022,3324.1541}; + angles[]={0.0017847361,3.5072451,0.0046614944}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4142; + type="GunrackTK_EP1"; + atlOffset=-0.01188755; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={2589.6345,4.8706155,3284.873}; + angles[]={6.2801418,5.1174884,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4186; + type="Barrel1"; + atlOffset=0.0022630692; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.6165,4.6761861,3294.4231}; + angles[]={0,3.5466938,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4172; + type="Land_fort_bagfence_long"; + atlOffset=0.017066002; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.8606,4.676271,3287.3826}; + angles[]={0.0021744252,5.1174927,0.0008692689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4179; + type="Land_fort_bagfence_corner"; + atlOffset=0.028562069; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={2599.1348,4.597477,3281.3413}; + angles[]={6.2801418,1.9758953,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4187; + type="Land_fort_bagfence_round"; + atlOffset=0.033930779; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={2589.8843,4.931973,3283.6243}; + angles[]={6.2801418,1.4522963,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4183; + type="Land_PaperBox_closed_F"; + atlOffset=-0.0012245178; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.3877,4.9308772,3282.6223}; + angles[]={6.2801418,0.66689831,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4184; + type="Land_PaperBox_closed_F"; + atlOffset=-0.0023202896; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={2594.3616,6.5085006,3293.9978}; + angles[]={0,1.9758973,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4169; + type="Land_BagBunker_Tower_F"; + atlOffset=0.0063529015; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={2593.1265,5.5453796,3282.5542}; + angles[]={6.2801418,3.5466919,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4181; + type="Land_CamoNet_EAST"; + atlOffset=0.0035099983; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.6311,4.438427,3288.4517}; + angles[]={0,1.9758973,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4168; + type="Land_fort_rampart"; + atlOffset=0.008477211; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.5515,4.4164295,3278.8813}; + angles[]={6.2801418,0.40509894,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4182; + type="Land_fort_rampart"; + atlOffset=-0.0031247139; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.344,4.3381925,3284.24}; + angles[]={6.2807779,1.9758911,0.0028340756}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4170; + type="Land_Garbage_square5_F"; + atlOffset=0.01990366; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={2592.5803,4.337913,3287.1094}; + angles[]={0,1.9758973,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4171; + type="Land_Garbage_square5_F"; + atlOffset=0.010412216; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={2598.8079,5.0968189,3285.9707}; + angles[]={0,1.9758973,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4173; + type="Land_HBarrier_3_F"; + atlOffset=0.028477192; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={2593.5557,4.7211523,3285.7749}; + angles[]={0,1.9756528,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4175; + type="Land_MetalBarrel_F"; + atlOffset=0.013660431; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={2594.2778,4.7211523,3285.8733}; + angles[]={0,5.3789754,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4176; + type="Land_MetalBarrel_F"; + atlOffset=0.016067505; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={2593.7209,4.720355,3284.8887}; + angles[]={6.2801418,4.8555489,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4177; + type="Land_MetalBarrel_F"; + atlOffset=0.013413906; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={2599.4331,4.7211523,3292.5032}; + angles[]={0,4.5936294,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4178; + type="Land_MetalBarrel_F"; + atlOffset=0.020970821; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={2599.0569,4.7211523,3291.7537}; + angles[]={0,0.40510094,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4174; + type="Land_MetalBarrel_empty_F"; + atlOffset=0.022220135; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={2592.717,4.7739124,3281.9165}; + angles[]={6.2801418,5.6410871,0.0013050821}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4185; + type="Fort_Crate_wood"; + atlOffset=-0.00034666061; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={2548.2393,4.8683534,3215.5498}; + angles[]={0,4.4881268,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4247; + type="Barrel1"; + atlOffset=9.5367432e-07; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={2548.9429,4.6319423,3208.5305}; + angles[]={0,1.3465335,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4250; + type="Land_fort_bagfence_long"; + atlOffset=-0.025971889; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={2546.3728,4.6677098,3214.7393}; + angles[]={0,2.91733,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4245; + type="Land_fort_bagfence_corner"; + atlOffset=9.5367432e-07; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={2547.179,4.6677098,3211.2051}; + angles[]={0,6.0589228,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4249; + type="Land_fort_bagfence_corner"; + atlOffset=9.5367432e-07; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={2544.2903,5.2556319,3213.7515}; + angles[]={0,1.3465335,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4244; + type="Land_BagBunker_Small_F"; + atlOffset=9.5367432e-07; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={2546.3577,5.412674,3212.5566}; + angles[]={0,1.3465335,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4248; + type="Land_CamoNetVar_EAST"; + atlOffset=9.5367432e-07; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={2548.6775,4.77665,3214.7522}; + angles[]={0,4.4881268,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4246; + type="Fort_Crate_wood"; + atlOffset=9.5367432e-07; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={2682.7441,5.6702456,3365.6892}; + angles[]={0,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4264; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00051689148; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.9509,5.0632071,3371.7039}; + angles[]={0,2.4651935,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4258; + type="Wire"; + atlOffset=-4.7683716e-07; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={2679.9939,5.0632071,3374.9399}; + angles[]={0,2.9887924,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4259; + type="Wire"; + atlOffset=-4.7683716e-07; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={2679.6191,4.6877084,3366.9399}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4255; + type="Land_fort_bagfence_long"; + atlOffset=-4.7683716e-07; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.6191,4.6877084,3368.0649}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4260; + type="Land_fort_bagfence_long"; + atlOffset=-4.7683716e-07; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={2683.7441,4.6875105,3362.8142}; + angles[]={6.2815661,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4263; + type="Land_fort_bagfence_long"; + atlOffset=0.0051107407; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.4941,4.6850419,3361.3142}; + angles[]={6.2815661,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4254; + type="Land_fort_bagfence_corner"; + atlOffset=0.0051422119; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={2682.4941,4.6829181,3360.0642}; + angles[]={6.2815661,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4261; + type="Land_fort_bagfence_corner"; + atlOffset=0.0051016808; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={2682.4941,4.6877084,3365.6899}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4262; + type="Land_fort_bagfence_corner"; + atlOffset=0.00051593781; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={2669.9941,4.6035457,3365.3149}; + angles[]={0,4.712389,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4256; + type="Land_fort_bagfence_round"; + atlOffset=0.0011410713; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={2676.1191,5.2756305,3367.4399}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4253; + type="Land_BagBunker_Small_F"; + atlOffset=-4.7683716e-07; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.1191,4.345283,3360.4395}; + angles[]={6.2815661,0,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4252; + type="Land_Garbage_square5_F"; + atlOffset=0.0051145554; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.2444,4.7398567,3360.6887}; + angles[]={6.2815661,0,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4257; + type="Land_GarbageBags_F"; + atlOffset=0.0050702095; + }; + }; + id=4143; + atlOffset=0.0037517548; + }; + class Item171 + { + dataType="Marker"; + position[]={946.07941,81.452454,9579.4023}; + name="tower_9"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4266; + atlOffset=0.077720642; + }; + class Item172 + { + dataType="Logic"; + class PositionInfo + { + position[]={944.99567,81.350441,9581.4102}; + angles[]={0.054942966,4.9574504,6.25985}; + }; + areaSize[]={15,0,15}; + flags=1; + id=4267; + type="ModuleHideTerrainObjects_F"; + atlOffset=0.061897278; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item173 + { + dataType="Marker"; + position[]={3124.468,38.416,12089.016}; + name="factory_14"; + text="Fuel Hoarder"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=4316; + atlOffset=-0.00033950806; + }; + class Item174 + { + dataType="Marker"; + position[]={2606.48,15.41,11503.659}; + name="capture_32"; + text="Nalzovské Hory Agricultural Co-op"; + type="n_art"; + colorName="ColorEAST"; + id=4317; + }; + class Item175 + { + dataType="Marker"; + position[]={2631.105,3.01,11792.36}; + name="capture_33"; + text="Nalzovské Hory Suburbs"; + type="n_art"; + colorName="ColorEAST"; + id=4318; + }; + class Item176 + { + dataType="Marker"; + position[]={628.88025,68.069473,11964.37}; + name="military_16"; + text="Nalzovské Hory Airfield"; + type="o_support"; + colorName="ColorEAST"; + id=4319; + atlOffset=1.4294739; + }; + class Item177 + { + dataType="Layer"; + name="Nalzovské Hory Airfield"; + class Entities + { + items=203; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={634.97607,66.823677,11948.343}; + angles[]={6.2795753,4.6991277,0.0060658171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4320; + type="Land_fort_rampart"; + atlOffset=0.04372406; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={630.96216,67.363914,11943.688}; + angles[]={0.0012278118,4.4373298,0.0048379889}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4321; + type="Barrels"; + atlOffset=0.022399902; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={631.64893,67.234245,11949.449}; + angles[]={6.2795753,5.4843688,0.0060658171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4322; + type="Land_WaterBarrel_F"; + atlOffset=0.027496338; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={631.46259,67.228622,11948.207}; + angles[]={6.2795753,4.175344,0.0060658171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4323; + type="Land_WaterBarrel_F"; + atlOffset=0.021873474; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={626.02374,67.08268,11945.586}; + angles[]={0,5.7463236,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4324; + type="MetalBarrel_burning_F"; + atlOffset=0.020004272; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={631.75403,67.250458,11950.547}; + angles[]={6.2795753,1.033936,0.0060658171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4325; + type="Barrel1"; + atlOffset=0.032104492; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={631.04688,67.246475,11950.634}; + angles[]={6.2795753,2.8665316,0.0060658171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4326; + type="Barrel4"; + atlOffset=0.028121948; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={628.91504,67.915627,11940.209}; + angles[]={0,2.0811322,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4327; + type="Land_CamoNet_EAST"; + atlOffset=0.020004272; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={619.34625,66.779953,11926.389}; + angles[]={0,0.24853656,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4328; + type="Land_fort_rampart"; + atlOffset=-0.04044342; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={632.39417,66.799957,11938.166}; + angles[]={0,5.2227249,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4329; + type="Land_fort_rampart"; + atlOffset=0.020004272; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={630.04175,67.361519,11941.6}; + angles[]={0,5.2227249,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4330; + type="Barrels"; + atlOffset=0.020004272; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={628.69794,67.089569,11938.846}; + angles[]={0,3.651927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4331; + type="Land_Pallets_stack_F"; + atlOffset=0.020004272; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={628.2077,67.395378,11937.967}; + angles[]={0,3.6518712,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4332; + type="Land_Pallet_vertical_F"; + atlOffset=0.020004272; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={625.52087,67.082329,11938.075}; + angles[]={6.280777,0.51033658,0.0040463153}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4333; + type="Land_Pallets_stack_F"; + atlOffset=0.011413574; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={621.60382,67.339134,11929.685}; + angles[]={0.00081457436,4.960927,0.0032097097}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4334; + type="Misc_concrete_High"; + atlOffset=-0.019538879; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={608.96832,72.730827,11932.246}; + angles[]={0.0016558425,3.3901293,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4344; + type="RU_WarfareBAircraftFactory"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={599.73004,66.779953,11943.103}; + angles[]={0,1.2957342,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4345; + type="Land_fort_rampart"; + atlOffset=-0.050003052; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={602.46973,68.000244,11946.276}; + angles[]={0,2.8665302,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4346; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=-0.036277771; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={601.41187,67.931389,11947.189}; + angles[]={0,2.8665302,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4347; + type="AmmoCrates_NoInteractive_Medium"; + atlOffset=-0.037002563; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={603.49133,67.218353,11943.695}; + angles[]={0,6.2699223,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4348; + type="Barrel4"; + atlOffset=-0.044082642; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={602.89392,67.218353,11944.326}; + angles[]={0,4.4373269,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4349; + type="Barrel4"; + atlOffset=-0.043914795; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={602.77368,67.218353,11943.595}; + angles[]={0,4.4373269,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4350; + type="Barrel4"; + atlOffset=-0.048171997; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={603.17493,67.218353,11942.165}; + angles[]={0,1.8193328,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4351; + type="Barrel1"; + atlOffset=-0.050003052; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={603.8042,67.218353,11942.65}; + angles[]={0,4.9609256,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4352; + type="Barrel1"; + atlOffset=-0.047744751; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={603.013,67.218353,11942.961}; + angles[]={0,2.6047308,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4353; + type="Barrel1"; + atlOffset=-0.050003052; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={602.68677,66.861748,11947.64}; + angles[]={0,4.9609256,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4354; + type="AmmoCrate_NoInteractive_"; + atlOffset=-0.028366089; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={749.38232,67.907883,12017.194}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4526; + type="Land_Misc_Cargo1C"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={752.64691,67.849243,12015.154}; + angles[]={0,0.18555695,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=4528; + type="Land_Misc_CargoMarket1a_EP1"; + }; + class Item28 + { + dataType="Logic"; + class PositionInfo + { + position[]={463.10199,69.335449,11974.842}; + angles[]={6.2748604,5.9814706,6.2515249}; + }; + areaSize[]={20,0,7}; + flags=1; + id=4643; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={591.50018,68.040039,11986.059}; + angles[]={0,3.4709163,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4360; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.015625; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={592.06342,68.037125,11987.32}; + angles[]={0,1.9001197,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4371; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.013648987; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={592.84753,67.739326,11981.502}; + angles[]={0,1.1147209,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4364; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.0063400269; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={605.20697,67.711769,11977.669}; + angles[]={0,0.59112,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4365; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.0026245117; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={593.12067,67.740402,11986.166}; + angles[]={0,1.9001197,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4366; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.0097885132; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={609.15204,83.031967,11989.8}; + angles[]={0,0.329319,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4370; + type="RU_WarfareBAntiAirRadar"; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={596.74701,67.240776,11989.556}; + angles[]={0,1.1147176,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4356; + type="Barrel4"; + atlOffset=0.011581421; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={595.71167,67.244095,11989.507}; + angles[]={0,5.8271079,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4357; + type="Barrel4"; + atlOffset=0.011444092; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={597.06116,67.240723,11990.365}; + angles[]={0,5.5653071,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4358; + type="Barrel4"; + atlOffset=0.012573242; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={596.34833,67.24173,11990.16}; + angles[]={0,3.2091126,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4359; + type="Barrel4"; + atlOffset=0.011199951; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={616.75208,67.218353,11980.729}; + angles[]={0,0.85291779,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4374; + type="Barrel4"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={616.21039,67.218353,11981.211}; + angles[]={0,5.3035073,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4375; + type="Barrel4"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={616.84576,67.218353,11981.594}; + angles[]={0,5.3035073,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4376; + type="Barrel4"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={615.2229,67.218353,11981.193}; + angles[]={0,5.3035073,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4377; + type="Barrel4"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={594.03693,67.250214,11989.401}; + angles[]={0,2.4237158,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4367; + type="Barrel1"; + atlOffset=0.011978149; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={593.37445,67.251022,11988.852}; + angles[]={0,3.732713,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4368; + type="Barrel1"; + atlOffset=0.011619568; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={615.88312,67.218353,11980.619}; + angles[]={0,3.470912,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4379; + type="Barrel1"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={614.62805,67.218353,11980.801}; + angles[]={0,3.470912,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4380; + type="Barrel1"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={609.31793,67.017708,11975.211}; + angles[]={0,0.329319,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4381; + type="Land_fort_bagfence_long"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={612.15668,67.017708,11974.241}; + angles[]={0,0.329319,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4382; + type="Land_fort_bagfence_long"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={615.44019,67.017708,11974.572}; + angles[]={0,5.041708,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4383; + type="Land_fort_bagfence_corner"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={613.19617,67.895622,11975.736}; + angles[]={0,0.067519359,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4384; + type="Land_CamoNet_EAST"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={593.41516,66.855743,11983.95}; + angles[]={0,4.5181131,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4361; + type="Land_fort_artillery_nest"; + atlOffset=0.0095901489; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={602.53345,66.968407,11975.031}; + angles[]={0,0.33083978,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4369; + type="Land_fort_rampart"; + atlOffset=0.17689514; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={615.85223,67.062675,11981.962}; + angles[]={0,2.6855135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4378; + type="MetalBarrel_burning_F"; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={617.94086,67.030785,11981.116}; + angles[]={0,2.6855135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4385; + type="Land_Sacks_heap_F"; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={608.6109,67.069565,11997.702}; + angles[]={0,3.7326763,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4372; + type="Land_Pallets_stack_F"; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={607.63971,67.069565,11998.903}; + angles[]={0,5.3035073,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4373; + type="Land_Pallets_stack_F"; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={594.4491,67.226753,11979.634}; + angles[]={0,2.423557,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4362; + type="Land_WaterBarrel_F"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={593.30951,67.232353,11980.156}; + angles[]={0,5.8269529,6.2798738}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4363; + type="Land_WaterBarrel_F"; + atlOffset=0.0032958984; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={693.85193,68.000267,12021.147}; + angles[]={0,4.8803167,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4401; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=2.2888184e-05; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={695.10217,68.000267,12020.302}; + angles[]={0,3.3095205,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4402; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=2.2888184e-05; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={728.00964,68.000244,12024.492}; + angles[]={0,1.7387239,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4422; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={708.95911,66.639999,12023.538}; + angles[]={0,0.16792756,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4425; + type="Land_i_Barracks_V1_F"; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={754.13348,67.218353,12011.236}; + angles[]={0,1.724777,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4478; + type="Barrel1"; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={754.36353,67.218353,12012.72}; + angles[]={0,4.6045704,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4479; + type="Barrel1"; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={763.98389,67.017708,12004.692}; + angles[]={0,4.8803167,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4438; + type="Land_fort_bagfence_long"; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={764.09369,67.017708,12007.589}; + angles[]={0,4.6185174,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4439; + type="Land_fort_bagfence_long"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={761.75952,67.017708,12009.853}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4480; + type="Land_fort_bagfence_long"; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={756.3537,67.017708,12019.041}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4481; + type="Land_fort_bagfence_long"; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={755.95111,67.017708,12016.447}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4482; + type="Land_fort_bagfence_long"; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={755.06927,67.017708,12010.765}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4483; + type="Land_fort_bagfence_long"; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={762.20056,67.017708,12012.694}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4484; + type="Land_fort_bagfence_long"; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={755.51019,67.017708,12013.605}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4485; + type="Land_fort_bagfence_long"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={763.04407,67.017708,12018.129}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4486; + type="Land_fort_bagfence_long"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={762.64142,67.017708,12015.534}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4488; + type="Land_fort_bagfence_long"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={745.70007,67.017708,12014.217}; + angles[]={0,4.8803167,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4525; + type="Land_fort_bagfence_long"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={670.86188,67.017715,12038.445}; + angles[]={0,0.16792756,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4388; + type="Land_fort_bagfence_corner"; + atlOffset=7.6293945e-06; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={725.68781,67.017723,12024.252}; + angles[]={0,3.3095205,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4419; + type="Land_fort_bagfence_corner"; + atlOffset=1.5258789e-05; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={719.79083,67.017708,12015.514}; + angles[]={0,0.16792756,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4420; + type="Land_fort_bagfence_corner"; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={672.77942,66.933556,12040.782}; + angles[]={0,0.16792756,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4387; + type="Land_fort_bagfence_round"; + atlOffset=7.6293945e-06; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={735.85883,66.933548,12020.749}; + angles[]={0,1.425492,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4531; + type="Land_fort_bagfence_round"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={732.06732,66.933548,12021.293}; + angles[]={0,5.1387224,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4532; + type="Land_fort_bagfence_round"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={699.74066,67.248001,12019.268}; + angles[]={0,1.7387239,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4405; + type="Land_PaperBox_open_full_F"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={679.2373,68.850021,12035.505}; + angles[]={0,1.7387239,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4389; + type="Land_BagBunker_Tower_F"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={697.40253,67.379021,12019.661}; + angles[]={0,3.3095205,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4403; + type="Land_CratesWooden_F"; + atlOffset=2.2888184e-05; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={727.88104,67.378998,12022.232}; + angles[]={0,1.7387239,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4424; + type="Land_CratesWooden_F"; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={691.36188,66.779953,12037.174}; + angles[]={0,3.3095281,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4393; + type="Land_fort_rampart"; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={701.10199,66.779953,12035.52}; + angles[]={0,3.3095281,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4394; + type="Land_fort_rampart"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={736.06244,66.779953,12030.236}; + angles[]={0,3.3095281,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4409; + type="Land_fort_rampart"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={726.10052,66.779953,12031.916}; + angles[]={0,3.2902,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4410; + type="Land_fort_rampart"; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={767.00195,66.779953,12015.11}; + angles[]={0,4.8663702,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4443; + type="Land_fort_rampart"; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={762.31915,66.779953,12024.061}; + angles[]={0,3.5573728,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4463; + type="Land_fort_rampart"; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={488.97357,68.660431,11984.731}; + angles[]={6.2815294,2.9886136,6.2482009}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4642; + type="Land_fort_rampart"; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={636.3363,66.779953,12033.013}; + angles[]={0,2.1320336,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4717; + type="Land_fort_rampart"; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={641.59711,66.779953,12041.375}; + angles[]={0,2.1320336,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4718; + type="Land_fort_rampart"; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={693.23682,67.12471,12022.777}; + angles[]={0,3.3095205,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4398; + type="GunrackTK_EP1"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={693.46661,67.12471,12024.133}; + angles[]={0,3.3095205,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4399; + type="GunrackTK_EP1"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={760.29156,70.143188,12021.592}; + angles[]={0,2.0040295,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4497; + type="Land_Loudspeakers_F"; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={715.84326,67.062675,12028.1}; + angles[]={0,3.3092551,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4415; + type="Land_MetalBarrel_F"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={716.92474,67.062675,12027.895}; + angles[]={0,2.7856231,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4416; + type="Land_MetalBarrel_F"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={722.76422,67.062675,12012.854}; + angles[]={0,1.7378161,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4417; + type="Land_MetalBarrel_F"; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={722.10516,67.062675,12012.215}; + angles[]={0,0.952802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4418; + type="Land_MetalBarrel_F"; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={759.49286,67.062675,12021.336}; + angles[]={0,3.294945,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4468; + type="Land_MetalBarrel_F"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={758.95197,67.062675,12021.926}; + angles[]={0,5.1274104,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4469; + type="Land_MetalBarrel_F"; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={712.27087,66.640038,12028.732}; + angles[]={0,0.16784029,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4429; + type="Land_Pipes_large_F"; + atlOffset=3.8146973e-05; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={713.46783,66.639999,12030.558}; + angles[]={0,6.1892266,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4430; + type="Land_Pipes_large_F"; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={755.08356,66.639999,12015.976}; + angles[]={0,4.8662825,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4499; + type="Land_Pipes_large_F"; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={690.67676,67.997559,12026.379}; + angles[]={0,4.8803167,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4391; + type="Land_Tank_rust_F"; + atlOffset=1.5258789e-05; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={758.80682,67.868042,12012.841}; + angles[]={0,0.15398058,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4471; + type="Land_Barrack2"; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={713.54395,67.324913,12016.929}; + angles[]={0,3.3068378,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4421; + type="Land_WaterTank_F"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={748.72076,67.393204,12025.885}; + angles[]={0,0.4785592,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4520; + type="Wire"; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={743.26166,67.393204,12027.316}; + angles[]={0,3.3313107,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4521; + type="Wire"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={754.02466,67.393204,12025.139}; + angles[]={0,0.18447936,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4522; + type="Wire"; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={746.60309,67.218353,12014.903}; + angles[]={0,4.3886285,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4506; + type="Barrel3"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={746.40698,67.218353,12013.828}; + angles[]={0,0.98523617,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4507; + type="Barrel3"; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={747.1651,67.218353,12014.406}; + angles[]={0,5.4358258,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4508; + type="Barrel3"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={739.6358,67.017708,12015.314}; + angles[]={0,4.9021068,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4505; + type="Land_fort_bagfence_corner"; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={739.42456,67.895622,12010.899}; + angles[]={0,3.3313107,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4519; + type="Land_CamoNet_EAST"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={742.46716,67.139175,12010.49}; + angles[]={0,0.18971777,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4511; + type="FoldChair"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={741.4798,67.139175,12010.294}; + angles[]={0,5.9493041,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4512; + type="FoldChair"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={741.55951,67.139175,12009.171}; + angles[]={0,3.5931101,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4513; + type="FoldChair"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={742.57507,67.139175,12008.994}; + angles[]={0,4.9021068,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4514; + type="FoldChair"; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={742.01331,67.0401,12009.831}; + angles[]={0,6.2111034,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4510; + type="FoldTable"; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={741.4292,67.438339,12018.024}; + angles[]={0,1.7605141,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4501; + type="Land_HBarrier_3_F"; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={746.21674,67.438339,12017.105}; + angles[]={0,1.7605141,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4502; + type="Land_HBarrier_3_F"; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={744.12079,68.825012,12020.773}; + angles[]={0,3.3313107,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4509; + type="Land_HBarrierTower_F"; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={740.53906,67.044754,12009.413}; + angles[]={0,0.18938605,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4515; + type="Land_BarrelWater_F"; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={772.67151,67.393204,11946.973}; + angles[]={0,4.7949758,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4568; + type="Wire"; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={769.56525,67.393204,11951.875}; + angles[]={0,0.082587406,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4569; + type="Wire"; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={764.10449,67.017708,11951.072}; + angles[]={0,3.2241802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4564; + type="Land_fort_bagfence_long"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={757.35938,67.017708,11946.864}; + angles[]={0,1.6533837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4565; + type="Land_fort_bagfence_long"; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={759.59937,67.017708,11952.699}; + angles[]={0,4.7949767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4566; + type="Land_fort_bagfence_long"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={769.73608,67.017708,11943.332}; + angles[]={0,4.7949767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4570; + type="Land_fort_bagfence_long"; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={765.39911,67.017708,11939.426}; + angles[]={0,0.082587406,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4572; + type="Land_fort_bagfence_long"; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={759.55341,67.017715,11940.034}; + angles[]={0,3.2241797,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4573; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={761.34338,67.017708,11952.556}; + angles[]={0,3.2241802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4560; + type="Land_fort_bagfence_corner"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={768.25317,67.017708,11940.569}; + angles[]={0,4.7949767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4575; + type="Land_fort_bagfence_corner"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={756.38678,66.934319,11942.68}; + angles[]={0,4.5331764,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4574; + type="Land_fort_bagfence_round"; + atlOffset=0.00077056885; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={764.2735,67.283195,11944.035}; + angles[]={0,3.2241802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4557; + type="Land_PaperBox_closed_F"; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={759.48926,67.762672,11945.309}; + angles[]={0,4.2713776,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4563; + type="Land_CamoNetVar_EAST"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={763.5365,67.438339,11945.727}; + angles[]={0,3.2241802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4556; + type="Land_HBarrier_3_F"; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={762.53296,67.440002,11939.663}; + angles[]={0,3.2241802,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4571; + type="Land_HBarrier_3_F"; + atlOffset=0.001663208; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={767.04279,68.825012,11947.693}; + angles[]={0,4.7949767,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4561; + type="Land_HBarrierTower_F"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={761.29419,67.062675,11945.912}; + angles[]={0,1.6533837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4559; + type="MetalBarrel_burning_F"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={762.7796,67.134476,11944.158}; + angles[]={0,3.4859796,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4567; + type="Land_Sacks_goods_F"; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={758.45911,67.030785,11948.028}; + angles[]={0,4.5331769,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4562; + type="Land_Sacks_heap_F"; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={758.33533,67.126648,11946.533}; + angles[]={0,1.6533837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4558; + type="Fort_Crate_wood"; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={495.52933,68.585419,11950.621}; + angles[]={6.2814941,1.4368587,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4578; + type="Land_fort_bagfence_long"; + atlOffset=7.6293945e-06; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={495.91306,68.568756,11947.773}; + angles[]={6.278182,1.436866,6.2581916}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4579; + type="Land_fort_bagfence_long"; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={488.80096,68.747231,11942.527}; + angles[]={6.2815294,1.4368141,6.256525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4580; + type="Land_fort_bagfence_long"; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={490.36841,68.703934,11943.999}; + angles[]={0,6.1492138,6.2548623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4581; + type="Land_fort_bagfence_long"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={487.23346,68.786575,11941.055}; + angles[]={6.2815294,6.1492143,6.256525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4591; + type="Land_fort_bagfence_long"; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={487.08139,68.913902,11973.066}; + angles[]={6.2765174,3.0076456,6.2515287}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4599; + type="Land_fort_bagfence_long"; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={492.0881,68.742577,11971.473}; + angles[]={6.278182,3.0076849,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4600; + type="Land_fort_bagfence_long"; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={486.74701,69.098091,11951.211}; + angles[]={6.278182,1.4368498,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4577; + type="Land_PaperBox_closed_F"; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={488.2326,69.056999,11951.41}; + angles[]={6.278182,3.0076461,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4587; + type="Land_PaperBox_closed_F"; + atlOffset=7.6293945e-06; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={481.48248,69.611969,11974.339}; + angles[]={6.278194,1.4368733,6.249866}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4608; + type="Land_BagBunker_Large_F"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={482.7811,70.742508,11941.328}; + angles[]={0,6.1492505,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=4596; + type="Land_BagBunker_Tower_F"; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={491.15076,69.676575,11976.528}; + angles[]={6.278194,1.4368646,6.249866}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4601; + type="Land_CamoNet_EAST"; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={485.0296,69.616646,11948.972}; + angles[]={6.278182,3.0076461,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4592; + type="Land_CamoNetVar_EAST"; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={486.04459,68.962166,11951.743}; + angles[]={6.278182,6.1492391,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4585; + type="GunrackTK_EP1"; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={492.63193,68.860458,11977.727}; + angles[]={6.2798557,6.1492605,6.2515306}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4606; + type="GunrackTK_EP1"; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={486.45029,69.386658,11978.665}; + angles[]={6.278194,6.1492624,6.249866}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4604; + type="Land_HBarrier_3_F"; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={491.88382,69.527847,11953.302}; + angles[]={6.2798557,3.2695231,6.2531958}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4582; + type="Land_HBarrier_Big_F"; + atlOffset=2.2888184e-05; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={483.96634,69.756607,11953.118}; + angles[]={6.278182,3.0076461,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4593; + type="Land_HBarrier_Big_F"; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={478.6684,69.896843,11949.378}; + angles[]={6.278182,1.6986493,6.2531958}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4594; + type="Land_HBarrier_Big_F"; + atlOffset=7.6293945e-06; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={478.97781,69.848068,11941.479}; + angles[]={6.278182,4.5784149,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4595; + type="Land_HBarrier_Big_F"; + atlOffset=1.5258789e-05; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={493.81201,69.541786,11975.499}; + angles[]={6.2815294,4.578476,6.2515306}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4602; + type="Land_HBarrier_Big_F"; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={493.1795,68.271935,11950.283}; + angles[]={6.278182,3.2694442,6.2581916}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4583; + type="Land_Pipes_small_F"; + atlOffset=7.6293945e-06; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={493.31039,68.271484,11951.185}; + angles[]={6.2814941,6.1492267,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4584; + type="Land_Pipes_small_F"; + atlOffset=-3.0517578e-05; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={489.65872,68.751236,11944.65}; + angles[]={0,4.577981,6.2548623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4586; + type="Land_BarrelTrash_grey_F"; + atlOffset=-7.6293945e-06; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={476.77383,69.459297,11941.923}; + angles[]={6.2765174,1.4368194,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4589; + type="Land_Razorwire_F"; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={476.69653,69.504105,11949.985}; + angles[]={6.278182,1.6986183,6.2531958}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4590; + type="Land_Razorwire_F"; + atlOffset=7.6293945e-06; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={475.47284,69.683662,11974.03}; + angles[]={6.278182,4.5784292,6.2482009}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4607; + type="Land_Razorwire_F"; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={492.22369,68.776665,11975.147}; + angles[]={6.278182,3.2694788,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4598; + type="Land_Sack_F"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={492.4314,68.585373,11974.542}; + angles[]={6.278182,5.8874726,6.2548599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4605; + type="Land_Sack_EP1"; + atlOffset=-3.0517578e-05; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={481.58511,68.99894,11951.141}; + angles[]={6.278182,6.1492391,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4588; + type="Land_Sacks_heap_F"; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={480.67941,69.024536,11950.827}; + angles[]={6.278182,4.5784426,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4597; + type="Land_Sacks_heap_F"; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={491.59119,68.395393,11974.312}; + angles[]={6.278194,1.175065,6.249866}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4603; + type="Land_WoodenBox_F"; + atlOffset=0.00021362305; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={709.19672,67.218353,11937.348}; + angles[]={0,1.7467554,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4696; + type="Barrel2"; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={720.07428,67.218353,11936.572}; + angles[]={0,1.2231563,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4705; + type="Barrel2"; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={709.05536,67.017708,11943.055}; + angles[]={0,4.8883491,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4695; + type="Land_fort_bagfence_long"; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={718.55841,67.017708,11940.096}; + angles[]={0,3.3175521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4704; + type="Land_fort_bagfence_long"; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={710.82422,67.017708,11928.013}; + angles[]={0,3.3175521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4713; + type="Land_fort_bagfence_long"; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={715.823,67.017708,11941.852}; + angles[]={0,0.17595905,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4703; + type="Land_fort_bagfence_corner"; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={708.08875,67.017708,11929.769}; + angles[]={0,0.17595905,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4711; + type="Land_fort_bagfence_corner"; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={712.24408,66.933548,11945.28}; + angles[]={0,0.17595905,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4694; + type="Land_fort_bagfence_round"; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={710.29919,67.895622,11936.485}; + angles[]={0,4.8883491,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4692; + type="Land_CamoNet_EAST"; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={710.14874,67.146484,11939.811}; + angles[]={0,1.7463368,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4700; + type="Land_CampingChair_V2_F"; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={710.21796,67.146484,11938.783}; + angles[]={0,1.4850954,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4701; + type="Land_CampingChair_V2_F"; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={708.50049,67.399841,11933.505}; + angles[]={0,3.5793514,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4699; + type="Land_CratesShabby_F"; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={705.82538,66.779953,11937.027}; + angles[]={0,1.7467554,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4693; + type="Land_fort_rampart"; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={715.55048,68.926529,11931.743}; + angles[]={0,1.7467554,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4702; + type="CUP_A1_fuelstation_army"; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={713.64703,67.062675,11932.463}; + angles[]={0,2.2698951,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4708; + type="Land_MetalBarrel_F"; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={713.69897,67.062675,11933.469}; + angles[]={0,1.7465109,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4709; + type="Land_MetalBarrel_F"; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={713.89587,67.062675,11934.576}; + angles[]={0,4.3647494,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4706; + type="Land_MetalBarrel_empty_F"; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={720.90497,67.062675,11934.727}; + angles[]={0,3.3175521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4707; + type="Land_MetalBarrel_empty_F"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={714.90948,67.062675,11924.489}; + angles[]={0,3.3175521,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4714; + type="Land_MetalBarrel_empty_F"; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={714.30945,67.062675,11925.084}; + angles[]={0,2.0085547,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4715; + type="Land_MetalBarrel_empty_F"; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={717.68579,67.997543,11925.904}; + angles[]={0,0.17595905,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4712; + type="Land_Ind_TankSmall2"; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={708.8631,67.069565,11934.836}; + angles[]={0,0.17599431,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4698; + type="Land_Pallets_stack_F"; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={722.2865,67.126648,11933.212}; + angles[]={0,0.17595905,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4710; + type="Fort_Crate_wood"; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={709.54651,67.072296,11939.412}; + angles[]={0,3.3119478,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4697; + type="Land_WoodenTable_large_F"; + }; + }; + id=4355; + }; + class Item178 + { + dataType="Layer"; + name="Operations Base"; + class Entities + { + items=252; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6042.8252,44.864292,11970.272}; + angles[]={6.249866,4.1869912,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5116; + type="Land_Wreck_HMMWV_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={6100.7095,45.37738,11899.883}; + angles[]={6.2698536,3.116739,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4929; + type="Land_BagFenceLong"; + atlOffset=3.8146973e-06; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={6092.8589,45.004105,11899.329}; + angles[]={6.2698536,3.1167686,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4930; + type="Land_BagFenceLong"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={6077.2485,44.425156,11905.438}; + angles[]={6.2665191,3.6397502,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4931; + type="Land_BagFenceLong"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={6085.0679,46.895802,11996.704}; + angles[]={6.2548599,0.52024585,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5039; + type="Land_BagFenceLong"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={6082.5786,46.871944,11998.142}; + angles[]={6.2548599,0.52021247,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5081; + type="Land_BagFenceLong"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={6046.6709,45.517159,11995.213}; + angles[]={6.2465363,5.2340331,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5105; + type="Land_BagFenceLong"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={6045.2334,45.363293,11992.723}; + angles[]={6.2482009,5.2340536,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5106; + type="Land_BagFenceLong"; + atlOffset=-3.8146973e-06; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={6067.8252,44.167461,11913.464}; + angles[]={6.2681832,0.50502533,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5207; + type="Land_BagFenceLong"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={6064.9873,44.103157,11916.609}; + angles[]={6.2648535,5.2173753,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5209; + type="Land_BagFenceLong"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={6065.5288,44.094658,11914.733}; + angles[]={6.2681832,0.50491661,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5211; + type="Land_BagFenceLong"; + atlOffset=3.8146973e-06; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={6071.2681,44.242622,11909.293}; + angles[]={6.2681832,5.2173295,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5212; + type="Land_BagFenceLong"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={6068.7524,44.162861,11910.685}; + angles[]={6.2681832,5.21737,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5214; + type="Land_BagFenceLong"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={6069.4058,44.160076,11908.757}; + angles[]={6.2681832,3.6455359,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5215; + type="Land_BagFenceLong"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={6051.3262,43.7234,11926.615}; + angles[]={6.2631893,3.6459055,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5223; + type="Land_BagFenceLong"; + atlOffset=3.8146973e-06; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={6048.1563,43.641563,11929.934}; + angles[]={6.2715178,5.2169714,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5224; + type="Land_BagFenceLong"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={6048.8081,43.646248,11928.007}; + angles[]={6.2715178,3.6456652,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5225; + type="Land_BagFenceLong"; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={6117.4297,47.004776,11955.497}; + angles[]={6.2715178,5.2690573,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5279; + type="Land_BagFenceLong"; + atlOffset=3.8146973e-06; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={6122.2881,47.243015,11959.629}; + angles[]={6.2715178,3.6983764,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5316; + type="Land_BagFenceLong"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={6128.7988,47.544842,11966.927}; + angles[]={6.2748561,5.6378837,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5317; + type="Land_BagFenceLong"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.2954,47.197472,11967.885}; + angles[]={6.2698536,5.2689877,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5318; + type="Land_BagFenceLong"; + atlOffset=-3.8146973e-06; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={6116.77,47.111149,11965.447}; + angles[]={6.268187,5.2688131,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5319; + type="Land_BagFenceLong"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={6075.417,44.393528,11908.862}; + angles[]={6.2665191,5.2105684,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4915; + type="Land_BagFenceEnd"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={6103.9063,45.549946,11902.088}; + angles[]={6.2698536,4.6873169,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4934; + type="Land_BagFenceEnd"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={6086.8198,46.828426,11993.238}; + angles[]={6.2531939,2.0909133,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5037; + type="Land_BagFenceEnd"; + atlOffset=0.00067520142; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.834,47.082199,11981.385}; + angles[]={6.2648535,1.0969708,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5053; + type="Land_BagFenceEnd"; + atlOffset=0.024467468; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.7471,47.124435,11980.765}; + angles[]={6.2648568,2.6677201,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5054; + type="Land_BagFenceEnd"; + atlOffset=0.025802612; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={6050.1357,45.717754,11996.963}; + angles[]={6.2465348,0.52154779,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5102; + type="Land_BagFenceEnd"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={6045.4497,45.222137,11988.847}; + angles[]={6.2465348,0.52193391,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5115; + type="Land_BagFenceEnd"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.1489,47.038067,11957.049}; + angles[]={6.2715178,4.7454166,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5291; + type="Land_BagFenceEnd"; + atlOffset=3.8146973e-06; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={6115.8428,47.04409,11963.956}; + angles[]={6.2715178,2.1272204,0.034986377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5320; + type="Land_BagFenceEnd"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={6120.7856,47.181408,11960.56}; + angles[]={6.2715178,3.6982462,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5321; + type="Land_BagFenceEnd"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={6044.0938,43.363209,11923.824}; + angles[]={6.2631893,6.0111732,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5683; + type="Land_BagFenceRound"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={6041.0396,43.263035,11925.688}; + angles[]={6.2631893,1.2987442,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5684; + type="Land_BagFenceRound"; + atlOffset=-1.5258789e-05; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={6122.1284,46.775196,11920.724}; + angles[]={6.2715178,4.3959103,0.054945603}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5693; + type="Land_BagFenceRound"; + atlOffset=0.00052642822; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={6120.3911,46.655098,11917.597}; + angles[]={6.268187,5.9667425,0.058267377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5694; + type="Land_BagFenceRound"; + atlOffset=0.025844574; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={6075.2402,44.371628,11907.247}; + angles[]={6.2665191,1.2836021,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4907; + type="Land_BagFenceRound"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={6088.0332,44.812542,11900.399}; + angles[]={6.2698536,3.3785777,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4925; + type="Land_BagFenceRound"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={6103.3179,45.512665,11900.57}; + angles[]={6.2698536,5.4728627,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4926; + type="Land_BagFenceRound"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={6085.4512,44.701107,11900.382}; + angles[]={6.268187,0.23698471,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4927; + type="Land_BagFenceRound"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={6090.311,44.892021,11899.203}; + angles[]={6.2698536,0.23694932,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4928; + type="Land_BagFenceRound"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={6087.0293,46.892334,11994.851}; + angles[]={6.2548599,4.4471078,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5038; + type="Land_BagFenceRound"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.6494,47.170353,11981.968}; + angles[]={6.2681832,5.0236292,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5055; + type="Land_BagFenceRound"; + atlOffset=0.017112732; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.728,47.180504,11983.946}; + angles[]={6.2648535,3.4528339,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5056; + type="Land_BagFenceRound"; + atlOffset=0.014125824; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.7515,47.114338,11982.877}; + angles[]={6.2631893,1.8820366,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5057; + type="Land_BagFenceRound"; + atlOffset=0.017593384; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={6079.9922,46.824879,11998.915}; + angles[]={6.2548599,2.8765142,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5083; + type="Land_BagFenceRound"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={6048.5249,45.670708,11997.173}; + angles[]={6.2465348,2.8777859,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5103; + type="Land_BagFenceRound"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={6044.4629,45.235855,11990.139}; + angles[]={6.2465348,1.307332,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5104; + type="Land_BagFenceRound"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={6042.1709,43.284786,11924.204}; + angles[]={6.2631893,0.51338583,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5682; + type="Land_BagFenceShort"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.8271,46.731411,11918.787}; + angles[]={6.268187,5.1813087,0.058267377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5692; + type="Land_BagFenceShort"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={6083.7007,44.640198,11901.344}; + angles[]={6.268187,3.6398947,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4932; + type="Land_BagFenceShort"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={6080.9233,44.851185,11914.376}; + angles[]={6.2665191,5.7340107,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4912; + type="Barrel5"; + atlOffset=-0.0024833679; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={6081.3428,44.878902,11914.99}; + angles[]={6.2665191,0.4980723,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4913; + type="Barrel5"; + atlOffset=-0.002494812; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={6080.5645,44.848804,11915.131}; + angles[]={6.2665191,2.5924675,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4914; + type="Barrel5"; + atlOffset=-0.002494812; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.3628,47.061462,11936.346}; + angles[]={6.2715225,2.0886662,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5280; + type="Barrel5"; + atlOffset=-0.0031547546; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={6122.2227,47.102951,11936.217}; + angles[]={6.2715225,5.4923677,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5327; + type="Barrel5"; + atlOffset=-0.0031547546; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.7876,47.072346,11935.458}; + angles[]={6.2715225,1.5650014,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5328; + type="Barrel5"; + atlOffset=-0.0031547546; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={6075.4707,46.821823,11996.353}; + angles[]={6.2515287,0.52067494,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5042; + type="Land_PaperBox_closed_F"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={6067.8096,45.486397,11963.794}; + angles[]={6.2531958,3.6626122,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5052; + type="Land_PaperBox_closed_F"; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.7129,47.288967,11970.927}; + angles[]={6.268187,5.2580175,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5695; + type="Land_PaperBox_closed_F"; + atlOffset=-3.8146973e-06; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.769,43.582798,11940.764}; + angles[]={6.2581916,2.0842247,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5678; + type="Land_PaperBox_open_empty_F"; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={6073.8701,46.78426,11997.824}; + angles[]={6.2515287,0.52067494,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5041; + type="Land_PaperBox_open_empty_F"; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={6068.7002,45.540882,11965.589}; + angles[]={6.2515287,3.9241595,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5067; + type="Land_PaperBox_open_empty_F"; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={6115.4824,47.29628,11969.987}; + angles[]={6.2698536,5.5194845,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5696; + type="Land_PaperBox_open_empty_F"; + atlOffset=-3.8146973e-06; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={6058.9546,44.202766,11926.652}; + angles[]={6.2665191,5.2172079,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5226; + type="Land_PaperBox_open_empty_F"; + atlOffset=-3.8146973e-06; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.5669,47.038074,11957.301}; + angles[]={6.2665191,0.5567562,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5281; + type="Land_PaperBox_open_empty_F"; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={6104.7236,46.705173,11958.186}; + angles[]={6.2631893,3.6979065,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5282; + type="Land_PaperBox_open_empty_F"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={6115.5723,46.95092,11946.208}; + angles[]={6.268187,3.6982987,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5283; + type="Land_PaperBox_open_empty_F"; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.6836,46.906822,11953.979}; + angles[]={6.2648568,3.6981399,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5284; + type="Land_PaperBox_open_empty_F"; + atlOffset=1.5258789e-05; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.5986,46.839901,11961.504}; + angles[]={6.2648535,0.55640221,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5285; + type="Land_PaperBox_open_empty_F"; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={6125.895,47.396114,11944.379}; + angles[]={6.2731848,0.81875902,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5329; + type="Land_PaperBox_open_empty_F"; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={6125.0474,47.341415,11942.724}; + angles[]={6.2731848,5.2693768,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5330; + type="Land_PaperBox_open_empty_F"; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.0703,46.473156,11935.277}; + angles[]={6.2648535,5.0077353,0.048295192}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5278; + type="Land_PaperBox_open_full_F"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={6084.6807,45.993114,11960.436}; + angles[]={6.2548599,1.4737713,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5543; + type="Land_PaperBox_open_full_F"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.231,46.924889,12002.47}; + angles[]={6.2465348,2.8774846,0.034986377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5080; + type="Land_BagBunker_Small_F"; + atlOffset=0.00061798096; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={6044.9941,45.306591,11976.519}; + angles[]={6.2482009,1.5691059,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5091; + type="Land_BagBunker_Small_F"; + atlOffset=0.0080757141; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={6086.084,48.362816,11984.907}; + angles[]={0,3.6720107,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=5040; + type="Land_BagBunker_Tower_F"; + atlOffset=0.027885437; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={6060.624,46.682564,11960.919}; + angles[]={0,5.2361174,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=5109; + type="Land_BagBunker_Tower_F"; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={6124.3101,49.038521,11954.608}; + angles[]={0,3.7008731,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=5293; + type="Land_BagBunker_Tower_F"; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={6069.4985,46.222118,11965.653}; + angles[]={6.2515287,5.2330718,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5058; + type="Land_CamoNet_NATO"; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={6038.3271,44.192696,11943.566}; + angles[]={6.2581916,0.77534032,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5676; + type="Land_CamoNetVar_NATO"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={6066.6001,46.936935,11993.843}; + angles[]={6.2465363,3.6108837,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5082; + type="Land_CamoNetVar_NATO"; + atlOffset=3.8146973e-06; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.0542,45.926659,11969.533}; + angles[]={6.2515287,3.6626604,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5108; + type="Land_CamoNetVar_NATO"; + atlOffset=3.8146973e-06; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.5688,47.212677,11953.901}; + angles[]={6.2648535,3.6979384,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5267; + type="Land_CamoNetVar_NATO"; + atlOffset=3.8146973e-06; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.5801,47.548588,11961.643}; + angles[]={6.268187,0.5564903,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5268; + type="Land_CamoNetVar_NATO"; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={6128.7197,48.101013,11950.571}; + angles[]={6.276526,5.269228,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5269; + type="Land_CamoNetVar_NATO"; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={6029.5649,44.558819,11934.923}; + angles[]={6.2631893,0.51341677,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5679; + type="Land_CamoNetB_NATO"; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.7178,43.577877,11944.736}; + angles[]={6.2581892,5.7495403,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5649; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0020942688; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={6035.0752,43.532814,11947.582}; + angles[]={6.2581916,5.2259326,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5650; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0023117065; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={6036.9966,43.606457,11947.13}; + angles[]={6.2581892,1.2988983,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5651; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0021057129; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.6499,43.527863,11942.854}; + angles[]={6.2581916,3.3934033,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5652; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0021133423; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={6115.9663,46.605808,11928.46}; + angles[]={6.268187,4.1838226,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5288; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0032310486; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={6117.9912,46.740318,11930.251}; + angles[]={6.2698536,1.2994152,0.051620547}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5289; + type="Land_CampingChair_V2_F"; + atlOffset=-0.0031394958; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.5405,46.497154,11953.806}; + angles[]={6.2648535,2.9765584,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5295; + type="Land_CampingTable_F"; + atlOffset=-0.0019378662; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.8467,46.844666,11961.573}; + angles[]={6.268187,6.1180868,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5296; + type="Land_CampingTable_F"; + atlOffset=-0.0018615723; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={6060.5073,44.295372,11919.558}; + angles[]={6.2648535,5.2169733,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5222; + type="Land_CratesShabby_F"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={6100.728,46.544094,11950.756}; + angles[]={6.2631865,5.2686801,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5260; + type="Land_CratesShabby_F"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.4038,47.019306,11960.408}; + angles[]={6.2648535,3.6980836,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5275; + type="Land_CratesWooden_F"; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.7656,46.901997,11939.636}; + angles[]={6.2665191,2.1278906,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5276; + type="Land_CratesWooden_F"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.8486,46.982662,11955.089}; + angles[]={6.2648568,0.5563584,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5277; + type="Land_CratesWooden_F"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={6063.3896,44.538074,11927.609}; + angles[]={6.2631865,5.2174258,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5315; + type="Land_CratesWooden_F"; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={6080.1802,45.860825,11957.184}; + angles[]={6.2565274,4.8769674,0.038312979}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5541; + type="Land_CratesWooden_F"; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={6096.5049,45.063698,11972.487}; + angles[]={6.2581916,0.56436044,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + init="this setVariable [""ace_medical_isMedicalFacility"", true, true];"; + }; + id=5119; + type="USMC_WarfareBFieldhHospital"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.1089,46.924,11962.282}; + angles[]={6.268187,5.7917976,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5297; + type="Land_CampingChair_V1_F"; + atlOffset=-0.0022888184; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={6112.2637,46.962791,11962.045}; + angles[]={6.268187,0.033467393,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5298; + type="Land_CampingChair_V1_F"; + atlOffset=-0.0022888184; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={6107.2676,46.607433,11953.087}; + angles[]={6.2648535,2.6500421,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5299; + type="Land_CampingChair_V1_F"; + atlOffset=-0.0025634766; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.1118,46.565746,11953.327}; + angles[]={6.2615237,3.1748629,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5300; + type="Land_CampingChair_V1_F"; + atlOffset=-0.0025558472; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={6072.4434,45.253315,11970.229}; + angles[]={6.2498641,3.6624458,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5048; + type="Land_Garbage_square5_F"; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={6069.1035,45.255928,11973.98}; + angles[]={6.2498641,3.66241,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5092; + type="Land_Garbage_square5_F"; + atlOffset=3.8146973e-06; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.3745,45.30196,11982.694}; + angles[]={6.2465348,3.6626487,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5093; + type="Land_Garbage_square5_F"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={6065.9458,45.892761,11995.656}; + angles[]={6.2498641,3.6624947,0.034986377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5094; + type="Land_Garbage_square5_F"; + atlOffset=-3.8146973e-06; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={6051.7051,45.101051,11988.777}; + angles[]={6.248199,3.6630118,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5095; + type="Land_Garbage_square5_F"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={6094.5322,46.407272,11983.561}; + angles[]={6.2598543,5.6598921,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5128; + type="Land_Garbage_square5_F"; + atlOffset=0.030555725; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={6091.2671,46.278851,11981.881}; + angles[]={6.2581916,5.659358,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5129; + type="Land_Garbage_square5_F"; + atlOffset=0.044368744; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={6092.5596,46.751404,11983.778}; + angles[]={6.256525,5.6596832,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5130; + type="Land_GarbageBags_F"; + atlOffset=0.033550262; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={6112.2778,46.486507,11937.193}; + angles[]={6.2665191,2.1278906,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5286; + type="Land_GarbageBags_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={6079.8203,45.475494,11954.702}; + angles[]={6.2565274,4.87707,0.038312979}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5551; + type="Land_GarbageBags_F"; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={6070.0259,45.438046,11971.923}; + angles[]={6.249866,4.1847191,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5050; + type="Land_GarbagePallet_F"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={6058.7773,44.828815,11966.441}; + angles[]={6.2498641,2.3541558,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5100; + type="Land_GarbagePallet_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.5718,46.035172,11991.524}; + angles[]={6.2465348,3.6624177,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5097; + type="Land_GarbageWashingMachine_F"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={6127.4468,47.728157,11951.567}; + angles[]={6.276526,0.55683517,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5257; + type="Land_HBarrier_3_F"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={6116.665,47.239532,11949.427}; + angles[]={6.2698536,0.55649275,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5258; + type="Land_HBarrier_3_F"; + atlOffset=3.8146973e-06; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.2944,46.98307,11942.431}; + angles[]={6.268187,5.2691264,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5259; + type="Land_HBarrier_3_F"; + atlOffset=3.8146973e-06; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={6081.6787,45.91333,11954.773}; + angles[]={6.2565274,1.7355058,0.038312979}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5524; + type="Land_HBarrier_3_F"; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={6078.6729,44.893383,11912.396}; + angles[]={6.2681832,2.0687318,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4903; + type="Land_HBarrier_5_F"; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={6080.9634,44.848381,11903.297}; + angles[]={6.268187,3.6398685,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4923; + type="Land_HBarrier_5_F"; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={6096.6113,45.473923,11899.59}; + angles[]={6.268187,3.1167777,0.048295192}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4924; + type="Land_HBarrier_5_F"; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={6079.729,46.924393,11992.646}; + angles[]={6.2498641,3.6634333,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5028; + type="Land_HBarrier_5_F"; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={6058.936,46.470062,11999.36}; + angles[]={6.248199,2.6156659,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5075; + type="Land_HBarrier_5_F"; + atlOffset=0.0027084351; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={6076.7788,46.909863,11994.82}; + angles[]={6.2515287,5.2329726,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5076; + type="Land_HBarrier_5_F"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={6071.7202,46.94627,12000.71}; + angles[]={6.2498641,3.4005384,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5077; + type="Land_HBarrier_5_F"; + atlOffset=0.00046920776; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={6066.6089,46.810356,12001.437}; + angles[]={6.2482009,3.1388385,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5078; + type="Land_HBarrier_5_F"; + atlOffset=0.00026321411; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={6076.5605,47.020508,11998.692}; + angles[]={6.2531939,3.6619754,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5079; + type="Land_HBarrier_5_F"; + atlOffset=-3.8146973e-06; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={6049.1577,45.570393,11985.244}; + angles[]={6.248199,2.0925455,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5084; + type="Land_HBarrier_5_F"; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={6060.7393,45.419807,11967.291}; + angles[]={6.2498641,5.2339497,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5085; + type="Land_HBarrier_5_F"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={6047.1641,45.072861,11972.546}; + angles[]={6.249866,1.3073033,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5086; + type="Land_HBarrier_5_F"; + atlOffset=0.0350914; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={6047.1382,45.32058,11980.496}; + angles[]={6.2465363,1.8306983,0.046631888}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5087; + type="Land_HBarrier_5_F"; + atlOffset=0.0054130554; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={6055.3892,46.201618,11995.787}; + angles[]={6.2465348,2.0921376,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5088; + type="Land_HBarrier_5_F"; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={6049.7036,45.055084,11968.192}; + angles[]={6.2498641,0.78354055,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5089; + type="Land_HBarrier_5_F"; + atlOffset=0.053840637; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={6053.2495,45.7416,11985.337}; + angles[]={6.2465348,0.52175045,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5090; + type="Land_HBarrier_5_F"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={6060.4805,44.386761,11926.021}; + angles[]={6.2665191,5.2172079,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5221; + type="Land_HBarrier_5_F"; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={6122.6533,47.451,11949.992}; + angles[]={6.2731848,5.2691951,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5254; + type="Land_HBarrier_5_F"; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={6106.0269,47.002514,11964.2}; + angles[]={6.2615213,5.268856,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5255; + type="Land_HBarrier_5_F"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.022,46.760788,11938.755}; + angles[]={6.2665191,5.2695208,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5256; + type="Land_HBarrier_5_F"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={6082.3896,45.998402,11959.045}; + angles[]={6.2548599,1.7353609,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5521; + type="Land_HBarrier_5_F"; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.4209,44.88316,11966.977}; + angles[]={6.249866,3.6552804,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5613; + type="Land_HBarrier_Big_F"; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={6032.2583,44.553871,11964.074}; + angles[]={6.2531939,5.2260242,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5615; + type="Land_HBarrier_Big_F"; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={6026.0557,43.688847,11941.985}; + angles[]={6.2598543,2.6077917,0.044970755}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5667; + type="Land_HBarrier_Big_F"; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.2441,43.977459,11931.897}; + angles[]={6.2648535,2.0841768,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5668; + type="Land_HBarrier_Big_F"; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={6042.522,44.254505,11935.012}; + angles[]={6.2598543,3.6550958,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5669; + type="Land_HBarrier_Big_F"; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={6027.4819,43.947395,11949.796}; + angles[]={6.2581892,4.4404478,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5670; + type="Land_HBarrier_Big_F"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={6031.5781,43.974796,11943.351}; + angles[]={6.2581916,0.77527392,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5671; + type="Land_HBarrier_Big_F"; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={6021.7441,43.373253,11936.238}; + angles[]={6.2631893,1.8222964,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5672; + type="Land_HBarrier_Big_F"; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={6036.4561,44.09,11939.122}; + angles[]={6.2615237,0.77525461,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5673; + type="Land_HBarrier_Big_F"; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={6028.2832,44.159786,11956.796}; + angles[]={6.2581892,5.2258911,0.046634447}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5674; + type="Land_HBarrier_Big_F"; + atlOffset=3.8146973e-06; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={6112.9141,46.962215,11915.7}; + angles[]={6.2715225,5.2252693,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4921; + type="Land_HBarrier_Big_F"; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.0151,46.671249,11908.283}; + angles[]={6.2698536,5.2253528,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4922; + type="Land_HBarrier_Big_F"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={6066.3535,46.049736,11965.458}; + angles[]={6.2515287,2.0918622,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5059; + type="Land_HBarrier_Big_F"; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={6089.2749,47.405674,11982.509}; + angles[]={6.2548599,5.2861776,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5060; + type="Land_HBarrier_Big_F"; + atlOffset=0.043003082; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={6094.6997,47.609459,11985.083}; + angles[]={6.2598543,0.57369781,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5061; + type="Land_HBarrier_Big_F"; + atlOffset=0.02217865; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={6101.5645,47.710018,11980.737}; + angles[]={6.2598543,0.57344317,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5062; + type="Land_HBarrier_Big_F"; + atlOffset=0.03181839; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={6063.1069,46.72781,11989.116}; + angles[]={6.2482009,0.52120787,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5111; + type="Land_HBarrier_Big_F"; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={6057.8428,46.430573,11986.246}; + angles[]={6.2465363,5.2338262,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5112; + type="Land_HBarrier_Big_F"; + atlOffset=0.0011444092; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={6065.9868,46.23233,11971.585}; + angles[]={6.2498641,3.6626246,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5113; + type="Land_HBarrier_Big_F"; + atlOffset=3.8146973e-06; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={6058.8857,46.142895,11975.541}; + angles[]={6.249866,3.6628869,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5114; + type="Land_HBarrier_Big_F"; + atlOffset=0.05273819; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.8296,47.801083,11976.413}; + angles[]={6.2648568,0.57340676,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5126; + type="Land_HBarrier_Big_F"; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={6063.2993,44.864799,11919.972}; + angles[]={6.2648535,3.6462204,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5203; + type="Land_HBarrier_Big_F"; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={6056.1016,44.639099,11923.901}; + angles[]={6.2631865,0.50464404,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5219; + type="Land_HBarrier_Big_F"; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={6104.584,47.346439,11960.369}; + angles[]={6.2631893,0.55644709,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5244; + type="Land_HBarrier_Big_F"; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.9268,47.554409,11956.04}; + angles[]={6.2665191,0.55675638,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5245; + type="Land_HBarrier_Big_F"; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={6119.4287,47.486515,11927.773}; + angles[]={6.2698536,5.2308083,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5246; + type="Land_HBarrier_Big_F"; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={6114.5322,47.484844,11944.666}; + angles[]={6.268187,3.6982987,0.046631888}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5247; + type="Land_HBarrier_Big_F"; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={6114.3027,47.56358,11950.663}; + angles[]={6.268187,2.1272218,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5248; + type="Land_HBarrier_Big_F"; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={6101.5649,47.053623,11952.044}; + angles[]={6.2598543,3.6978633,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5249; + type="Land_HBarrier_Big_F"; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={6123.354,48.134556,11967.401}; + angles[]={6.2748561,3.6982734,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5302; + type="Land_HBarrier_Big_F"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={6127.7432,48.240475,11961.689}; + angles[]={6.2748561,4.4839416,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5303; + type="Land_HBarrier_Big_F"; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={6116.1509,47.950466,11971.917}; + angles[]={6.268187,3.698257,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5304; + type="Land_HBarrier_Big_F"; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={6131.8486,48.360931,11956.048}; + angles[]={6.276526,0.55676329,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5305; + type="Land_HBarrier_Big_F"; + atlOffset=-3.8146973e-06; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={6131.9878,48.325626,11949.922}; + angles[]={6.276526,2.1278024,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5324; + type="Land_HBarrier_Big_F"; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={6127.6323,48.068806,11942.718}; + angles[]={6.2731905,5.2694097,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5325; + type="Land_HBarrier_Big_F"; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={6123.4282,47.78574,11935.228}; + angles[]={6.2715225,5.2305031,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5326; + type="Land_HBarrier_Big_F"; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={6070.8667,45.096073,11916.076}; + angles[]={6.2648535,3.6461351,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5333; + type="Land_HBarrier_Big_F"; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={6081.3706,46.2453,11952.229}; + angles[]={6.2565274,0.16460924,0.038312979}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5512; + type="Land_HBarrier_Big_F"; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={6045.6318,43.70792,11924.641}; + angles[]={6.2648535,0.51343381,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5680; + type="Land_HBarrier_1_F"; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={6041.1011,43.56358,11927.596}; + angles[]={6.2631893,0.5133729,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5681; + type="Land_HBarrier_1_F"; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.251,47.028008,11922.228}; + angles[]={6.2698536,5.1812992,0.054944519}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5690; + type="Land_HBarrier_1_F"; + atlOffset=0.024059296; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.4814,46.849041,11917.581}; + angles[]={6.268187,5.1812634,0.054944519}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5691; + type="Land_HBarrier_1_F"; + atlOffset=0.06672287; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={6072.3496,44.575047,11911.225}; + angles[]={6.268187,3.6465635,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5205; + type="Land_HBarrier_1_F"; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={6069.3242,44.472088,11912.467}; + angles[]={6.2681832,5.479219,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5206; + type="Land_HBarrier_1_F"; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={6049.2632,43.964741,11931.428}; + angles[]={6.2715178,3.9078593,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5220; + type="Land_HBarrier_1_F"; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.3809,47.070015,11965.306}; + angles[]={6.2648535,5.2688622,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5252; + type="Land_HBarrier_1_F"; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.437,46.793037,11947.433}; + angles[]={6.2648535,2.127213,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5253; + type="Land_HBarrier_1_F"; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={6129.8687,47.845768,11968.23}; + angles[]={6.278194,3.0198865,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5306; + type="Land_HBarrier_1_F"; + atlOffset=3.8146973e-06; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={6086.7378,45.934921,11951.713}; + angles[]={6.2598543,4.8771858,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5518; + type="Land_HBarrier_1_F"; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={6093.0967,44.988972,11927.49}; + angles[]={6.2748561,2.0685148,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4918; + type="Land_HelipadCircle_F"; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={6053.1655,43.809109,11948.499}; + angles[]={6.2581892,2.0687604,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5686; + type="Land_HelipadCircle_F"; + atlOffset=3.8146973e-06; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={6065.2339,44.461544,11921.817}; + angles[]={6.2648535,0.50501591,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5218; + type="Land_IronPipes_F"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={6117.3706,49.653984,11926.577}; + angles[]={0,3.6789811,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=5290; + type="Land_Loudspeakers_F"; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={6041.6143,44.066692,11960.096}; + angles[]={6.2531939,5.7487321,0.044970755}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5624; + type="Land_MetalBarrel_F"; + atlOffset=-0.0021286011; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={6044.3218,43.591259,11937.303}; + angles[]={6.2598543,2.6069803,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5675; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018196106; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={6070.0483,45.62682,11969.062}; + angles[]={6.2531939,1.0445381,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5069; + type="Land_MetalBarrel_F"; + atlOffset=0.1133728; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={6070.7476,45.665234,11969.524}; + angles[]={6.2531939,4.4477944,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5070; + type="Land_MetalBarrel_F"; + atlOffset=0.11226273; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={6086.3447,46.42944,11978.482}; + angles[]={6.2531958,4.185461,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5071; + type="Land_MetalBarrel_F"; + atlOffset=0.053695679; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={6085.647,46.396748,11978.131}; + angles[]={6.2531958,1.3054595,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5072; + type="Land_MetalBarrel_F"; + atlOffset=0.054813385; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={6112.1426,47.04137,11972.187}; + angles[]={6.268187,2.7407937,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5131; + type="Land_MetalBarrel_F"; + atlOffset=-0.0017089844; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={6112.4009,47.036747,11971.448}; + angles[]={6.2631865,6.1439776,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5132; + type="Land_MetalBarrel_F"; + atlOffset=-0.0019264221; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.8506,47.186428,11967.271}; + angles[]={6.2698536,2.6398873,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5698; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018310547; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={6119.2407,47.190578,11966.608}; + angles[]={6.2698536,6.0431433,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5699; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018539429; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.0923,47.002544,11945.229}; + angles[]={6.2731848,0.81793272,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5261; + type="Land_MetalBarrel_F"; + atlOffset=-0.0020217896; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={6110.0273,46.844311,11965.028}; + angles[]={6.2648535,6.0535789,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5262; + type="Land_MetalBarrel_F"; + atlOffset=-0.0019264221; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.459,46.763741,11952.288}; + angles[]={6.2648568,3.6971109,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5263; + type="Land_MetalBarrel_F"; + atlOffset=-0.002117157; + }; + class Item211 + { + dataType="Object"; + class PositionInfo + { + position[]={6120.3354,46.963398,11944.96}; + angles[]={6.2698536,5.2684736,0.048295192}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5264; + type="Land_MetalBarrel_F"; + atlOffset=-0.0021629333; + }; + class Item212 + { + dataType="Object"; + class PositionInfo + { + position[]={6113.1191,46.764801,11953.141}; + angles[]={6.2665191,2.9120963,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5265; + type="Land_MetalBarrel_F"; + atlOffset=-0.0020637512; + }; + class Item213 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.3682,47.142853,11965.259}; + angles[]={6.268187,1.3416051,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5309; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018844604; + }; + class Item214 + { + dataType="Object"; + class PositionInfo + { + position[]={6109.6875,46.847569,11965.882}; + angles[]={6.2648535,0.55591369,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5310; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018463135; + }; + class Item215 + { + dataType="Object"; + class PositionInfo + { + position[]={6118.1489,47.148331,11966.17}; + angles[]={6.2698536,2.1271276,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5311; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018539429; + }; + class Item216 + { + dataType="Object"; + class PositionInfo + { + position[]={6117.353,47.107346,11965.261}; + angles[]={6.268187,6.0537052,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5312; + type="Land_MetalBarrel_F"; + atlOffset=-0.0018920898; + }; + class Item217 + { + dataType="Object"; + class PositionInfo + { + position[]={6064.5703,44.268387,11927.442}; + angles[]={6.2631865,5.216538,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5313; + type="Land_MetalBarrel_F"; + atlOffset=-0.0016746521; + }; + class Item218 + { + dataType="Object"; + class PositionInfo + { + position[]={6064.0171,44.225334,11926.489}; + angles[]={6.2631865,4.6935701,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5314; + type="Land_MetalBarrel_F"; + atlOffset=-0.0016937256; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={6064.7275,58.200867,11980.778}; + angles[]={0,3.6653211,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=5101; + type="Land_Cargo_Tower_V1_F"; + atlOffset=0.032028198; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={6121.5313,46.487381,11935.783}; + angles[]={6.2715225,2.0886002,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5251; + type="Oil_Spill_F"; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={6069.8848,45.492321,11967.659}; + angles[]={6.2531939,0.52077568,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5068; + type="Land_Pallet_MilBoxes_F"; + atlOffset=-3.8146973e-06; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={6117.5195,47.190697,11968.745}; + angles[]={6.2698536,2.1161003,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5697; + type="Land_Pallet_MilBoxes_F"; + atlOffset=-3.8146973e-06; + }; + class Item223 + { + dataType="Object"; + class PositionInfo + { + position[]={6100.7437,46.836792,11985.962}; + angles[]={6.2631893,1.4065824,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5034; + type="Land_JunkPile_F"; + atlOffset=0.0042610168; + }; + class Item224 + { + dataType="Object"; + class PositionInfo + { + position[]={6060.9053,45.456917,11981.377}; + angles[]={6.2498641,3.1392717,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5098; + type="Land_JunkPile_F"; + atlOffset=0.019790649; + }; + class Item225 + { + dataType="Object"; + class PositionInfo + { + position[]={6052.4824,45.324669,11987.542}; + angles[]={6.2465348,3.6632035,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5099; + type="Land_JunkPile_F"; + }; + class Item226 + { + dataType="Object"; + class PositionInfo + { + position[]={6090.3271,46.378822,11989.293}; + angles[]={6.2531939,4.1852946,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5036; + type="Land_Pipes_small_F"; + atlOffset=0.011306763; + }; + class Item227 + { + dataType="Object"; + class PositionInfo + { + position[]={6067.0024,44.75024,11961.707}; + angles[]={6.2531939,4.971518,0.03831609}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5051; + type="Land_Pipes_small_F"; + atlOffset=0.00059890747; + }; + class Item228 + { + dataType="Object"; + class PositionInfo + { + position[]={6090.0381,46.159206,11979.999}; + angles[]={6.256525,4.9713478,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5127; + type="Land_Pipes_small_F"; + atlOffset=0.051345825; + }; + class Item229 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.6079,43.604507,11918.715}; + angles[]={6.2648535,3.6461413,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5217; + type="Land_Pipes_small_F"; + atlOffset=0.00040817261; + }; + class Item230 + { + dataType="Object"; + class PositionInfo + { + position[]={6102.8228,45.849812,11949.67}; + angles[]={6.2631865,3.6979623,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5292; + type="Land_Pipes_small_F"; + atlOffset=0.00073623657; + }; + class Item231 + { + dataType="Object"; + class PositionInfo + { + position[]={6119.9893,46.796448,11934.334}; + angles[]={6.2715225,2.0882161,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5266; + type="Land_BarrelTrash_F"; + atlOffset=-0.0022125244; + }; + class Item232 + { + dataType="Object"; + class PositionInfo + { + position[]={6085.2563,44.893013,11914.437}; + angles[]={6.268187,2.0684586,0.041643124}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4935; + type="Land_BarrelWater_grey_F"; + atlOffset=0.029426575; + }; + class Item233 + { + dataType="Object"; + class PositionInfo + { + position[]={6120.8232,47.199768,11934.269}; + angles[]={6.2715225,0.51780361,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5250; + type="PowerGenerator"; + atlOffset=-0.0042266846; + }; + class Item234 + { + dataType="Object"; + class PositionInfo + { + position[]={6099.3374,47.707729,11985.257}; + angles[]={6.2631893,5.3336506,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5035; + type="Land_Wreck_Ural_F"; + atlOffset=0.011631012; + }; + class Item235 + { + dataType="Object"; + class PositionInfo + { + position[]={6108.793,47.167995,11942.951}; + angles[]={6.2665191,5.2688727,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5273; + type="Camp_EP1"; + atlOffset=0.0013961792; + }; + class Item236 + { + dataType="Object"; + class PositionInfo + { + position[]={6086.0356,46.479008,11955.999}; + angles[]={6.2581916,1.7355006,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5538; + type="Camp_EP1"; + atlOffset=3.8146973e-06; + }; + class Item237 + { + dataType="Object"; + class PositionInfo + { + position[]={6084.833,45.710579,11909.503}; + angles[]={6.268187,3.6400239,0.043305151}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4919; + type="CampEast_EP1"; + }; + class Item238 + { + dataType="Object"; + class PositionInfo + { + position[]={6096.4038,46.190617,11907.738}; + angles[]={6.2698536,2.8546829,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4936; + type="CampEast_EP1"; + }; + class Item239 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.2114,44.67802,11957.556}; + angles[]={6.256525,0.51360947,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5635; + type="CUP_A2_tent_west"; + atlOffset=-0.23045731; + }; + class Item240 + { + dataType="Object"; + class PositionInfo + { + position[]={6124.3926,48.13805,11964.096}; + angles[]={6.2748561,1.4219317,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5322; + type="Land_ToiletBox_F"; + atlOffset=-0.0053024292; + }; + class Item241 + { + dataType="Object"; + class PositionInfo + { + position[]={6124.9702,48.145245,11962.438}; + angles[]={6.2748561,1.1598752,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5323; + type="Land_ToiletBox_F"; + atlOffset=-0.0049209595; + }; + class Item242 + { + dataType="Object"; + class PositionInfo + { + position[]={6131.0107,48.314064,11953.15}; + angles[]={6.276526,1.3422513,0.039977662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5331; + type="Land_ToiletBox_F"; + atlOffset=-0.0051040649; + }; + class Item243 + { + dataType="Object"; + class PositionInfo + { + position[]={6062.4414,46.370846,11979.7}; + angles[]={6.2498641,1.3066454,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5096; + type="Land_Wreck_Truck_dropside_F"; + atlOffset=0.034061432; + }; + class Item244 + { + dataType="Object"; + class PositionInfo + { + position[]={6107.0161,46.817467,11912.311}; + angles[]={6.2698536,0.51282936,0.048295192}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4920; + type="USMC_WarfareBVehicleServicePoint"; + }; + class Item245 + { + dataType="Object"; + class PositionInfo + { + position[]={6111.6724,46.396542,11917.895}; + angles[]={6.2715225,2.0837777,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=4881; + type="Land_WaterTank_F"; + atlOffset=-0.0050163269; + }; + class Item246 + { + dataType="Object"; + class PositionInfo + { + position[]={6103.3608,46.924408,11953.968}; + angles[]={6.2615237,4.7449903,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5270; + type="MapBoard_stratis_F"; + atlOffset=-0.0048866272; + }; + class Item247 + { + dataType="Object"; + class PositionInfo + { + position[]={6114.9707,47.513149,11961.373}; + angles[]={6.268187,1.6031851,0.038312979}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5271; + type="MapBoard_stratis_F"; + atlOffset=-0.0043678284; + }; + class Item248 + { + dataType="Object"; + class PositionInfo + { + position[]={6035.9839,43.491653,11947.26}; + angles[]={6.2581892,0.25164849,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5647; + type="Land_WoodenTable_large_F"; + atlOffset=-0.0019989014; + }; + class Item249 + { + dataType="Object"; + class PositionInfo + { + position[]={6037.8394,43.486347,11943.823}; + angles[]={6.2581916,4.7021422,0.043306526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5648; + type="Land_WoodenTable_large_F"; + atlOffset=-0.0017852783; + }; + class Item250 + { + dataType="Object"; + class PositionInfo + { + position[]={6116.6924,46.586922,11929.542}; + angles[]={6.268187,5.4936528,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5287; + type="Land_WoodenTable_large_F"; + atlOffset=-0.0027732849; + }; + class Item251 + { + dataType="Object"; + class PositionInfo + { + position[]={6071.6426,44.30209,11938.987}; + angles[]={6.2598543,2.0687208,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=5687; + type="Land_HelipadCircle_F"; + atlOffset=3.8146973e-06; + }; + }; + id=4716; + atlOffset=0.068782806; + }; + class Item179 + { + dataType="Marker"; + position[]={11814.996,41.439999,9905.6035}; + name="factory_15"; + text="Práchen Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=4721; + }; + class Item180 + { + dataType="Marker"; + position[]={11872.179,130.29697,8501.2324}; + name="tower_10"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4722; + atlOffset=1.5258789e-05; + }; + class Item181 + { + dataType="Logic"; + class PositionInfo + { + position[]={11872.131,130.29819,8501.2568}; + angles[]={0.041643124,0,6.2365499}; + }; + areaSize[]={15,0,15}; + flags=1; + id=4723; + type="ModuleHideTerrainObjects_F"; + atlOffset=1.5258789e-05; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item182 + { + dataType="Marker"; + position[]={3370.6819,211.74207,1694.8953}; + name="tower_11"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4724; + }; + class Item183 + { + dataType="Marker"; + position[]={7300.6553,181.74167,2364.8091}; + name="tower_12"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4726; + atlOffset=1.5258789e-05; + }; + class Item184 + { + dataType="Marker"; + position[]={8503.5908,59.302643,4434.6465}; + name="tower_13"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4728; + }; + class Item185 + { + dataType="Logic"; + class PositionInfo + { + position[]={8503.543,59.304996,4434.6709}; + angles[]={6.2548599,0,6.2482009}; + }; + areaSize[]={15,0,15}; + flags=1; + id=4729; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item186 + { + dataType="Marker"; + position[]={5380.4292,28.173,8740.9111}; + name="factory_16"; + text="Vlkonice Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=4730; + atlOffset=0.00038146973; + }; + class Item187 + { + dataType="Marker"; + position[]={9638.0713,58.296909,12138.364}; + name="tower_14"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4731; + }; + class Item188 + { + dataType="Logic"; + class PositionInfo + { + position[]={9640.8916,58.081425,12134.751}; + angles[]={6.218277,0,0.0066682254}; + }; + areaSize[]={5,0,5}; + flags=1; + id=4732; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item189 + { + dataType="Marker"; + position[]={7745.7021,10.647,5850.626}; + name="factory_7"; + text="Rábí Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=4733; + atlOffset=-0.00025749207; + }; + class Item190 + { + dataType="Marker"; + position[]={2423.3518,37.134613,10300.408}; + name="tower_15"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=4734; + }; + class Item191 + { + dataType="Marker"; + position[]={6614.1924,34.780666,3401.7036}; + name="factory_13"; + text="Cimice Livestock Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=4735; + }; + class Item192 + { + dataType="Trigger"; + position[]={5725.1846,36.159103,13754.59}; + angle=6.1939669; + class Attributes + { + condition="true"; + timeout[]={1.5,1.5,1.5}; + interuptable=1; + effectMusic="LeadTrack01_F"; + }; + id=6022; + type="EmptyDetector"; + }; + class Item193 + { + dataType="Trigger"; + position[]={5737.0244,36.622486,13750.965}; + angle=6.1939669; + class Attributes + { + condition="!(player in thislist)"; + sizeA=250; + sizeB=250; + timeout[]={0.2,0.2,0.2}; + interuptable=1; + activationBy="WEST"; + effectMusic="EventTrack01_F_Curator"; + }; + id=6023; + type="EmptyDetector"; + }; + class Item194 + { + dataType="Trigger"; + position[]={5749.2432,37.224903,13758.084}; + angle=6.1939669; + class Attributes + { + condition="GRLIB_endgame == 1"; + timeout[]={17,17,17}; + interuptable=1; + effectMusic="LeadTrack03_F"; + }; + id=6024; + type="EmptyDetector"; + }; + class Item195 + { + dataType="Logic"; + class PositionInfo + { + position[]={5726.6924,36.034374,13736.998}; + angles[]={6.2720242,0,0.040494796}; + }; + name="zm1"; + id=6025; + type="ModuleCurator_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value="commandant"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value="OVERLORD"; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + nAttributes=5; + }; + }; + class Item196 + { + dataType="Logic"; + class PositionInfo + { + position[]={5722.8057,35.891418,13738.106}; + angles[]={6.2720242,0,0.038706213}; + }; + id=6026; + type="ModuleCuratorSetAttributesObject_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_Lock"; + expression="_this setVariable ['Lock',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleCuratorSetAttributesObject_F_Exec"; + expression="_this setVariable ['Exec',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesObject_F_Fuel"; + expression="_this setVariable ['Fuel',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_Damage"; + expression="_this setVariable ['Damage',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Rank"; + expression="_this setVariable ['Rank',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute7 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_RespawnVehicle"; + expression="_this setVariable ['RespawnVehicle',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute9 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute10 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=11; + }; + }; + class Item197 + { + dataType="Logic"; + class PositionInfo + { + position[]={5722.9658,35.940739,13742.088}; + angles[]={6.2725773,0,0.038863007}; + }; + id=6027; + type="ModuleCuratorSetAttributesGroup_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesGroup_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_SpeedMode"; + expression="_this setVariable ['SpeedMode',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_GroupID"; + expression="_this setVariable ['GroupID',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Formation"; + expression="_this setVariable ['Formation',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute7 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_Behaviour"; + expression="_this setVariable ['Behaviour',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=9; + }; + }; + class Item198 + { + dataType="Logic"; + class PositionInfo + { + position[]={5722.9092,35.975689,13745.59}; + angles[]={6.2725773,0,0.038863007}; + }; + id=6028; + type="ModuleCuratorSetAttributesPlayer_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_Lock"; + expression="_this setVariable ['Lock',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleCuratorSetAttributesObject_F_Exec"; + expression="_this setVariable ['Exec',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesObject_F_Fuel"; + expression="_this setVariable ['Fuel',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_Damage"; + expression="_this setVariable ['Damage',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Rank"; + expression="_this setVariable ['Rank',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute7 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_RespawnVehicle"; + expression="_this setVariable ['RespawnVehicle',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute9 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute10 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=11; + }; + }; + class Item199 + { + dataType="Logic"; + class PositionInfo + { + position[]={5749.6084,37.093391,13746.209}; + angles[]={6.2708135,0,0.039462816}; + }; + name="gamelogic"; + id=6029; + type="Logic"; + }; + class Item200 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5736.1436,36.541599,13746.998}; + angles[]={6.2720027,6.0991402,0.042438731}; + }; + side="West"; + flags=6; + class Attributes + { + rank="COLONEL"; + init="removeallWeapons this; removebackpack this; this setVariable ['ace_medical_medicClass', 1]; this setVariable ['ACE_isEngineer', 1];"; + name="commandant"; + description="Platoon Leader (Commander)"; + isPlayer=1; + isPlayable=1; + }; + id=6031; + type="B_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5737.4893,36.590137,13746.229}; + angles[]={6.2720027,6.1139932,0.042438731}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CAPTAIN"; + init="removeallWeapons this; removebackpack this;"; + description="Platoon Sergeant"; + isPlayable=1; + }; + id=6032; + type="B_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6030; + }; + class Item201 + { + dataType="Group"; + side="West"; + class Entities + { + items=11; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5729.8174,36.239399,13743.873}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="Squad 1 Leader"; + isPlayable=1; + }; + id=6034; + type="B_Soldier_SL_F"; + atlOffset=-3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5728.1963,36.170635,13743.687}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Medic"; + isPlayable=1; + }; + id=6035; + type="B_medic_F"; + atlOffset=-3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={5731.6377,36.317459,13744.057}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Engineer"; + isPlayable=1; + }; + id=6036; + type="B_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={5729.0146,36.18742,13742.147}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Team 1 Leader"; + isPlayable=1; + }; + id=6037; + type="B_Soldier_TL_F"; + atlOffset=-3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={5728.2119,36.143845,13741.164}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=6038; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={5729.0713,36.166321,13739.984}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=6039; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={5728.2471,36.121597,13739.013}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=6040; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={5730.9814,36.272579,13742.471}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Team 2 Leader"; + isPlayable=1; + }; + id=6041; + type="B_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={5730.6553,36.247379,13741.418}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=6042; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={5731.4072,36.269112,13740.531}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=6043; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={5730.7158,36.228439,13739.503}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=6044; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6033; + atlOffset=-3.8146973e-06; + }; + class Item202 + { + dataType="Group"; + side="West"; + class Entities + { + items=11; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5734.8701,36.448288,13743.544}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="Squad 2 Leader"; + isPlayable=1; + }; + id=6046; + type="B_Soldier_SL_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5733.251,36.377571,13743.357}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Medic"; + isPlayable=1; + }; + id=6047; + type="B_medic_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={5736.6904,36.527187,13743.729}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Engineer"; + isPlayable=1; + }; + id=6048; + type="B_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={5734.0674,36.394554,13741.818}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Team 1 Leader"; + isPlayable=1; + }; + id=6049; + type="B_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={5733.2666,36.350239,13740.835}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=6050; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={5734.126,36.372929,13739.655}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=6051; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={5733.2979,36.32682,13738.684}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=6052; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={5736.0322,36.481365,13742.142}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Team 2 Leader"; + isPlayable=1; + }; + id=6053; + type="B_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={5735.708,36.455582,13741.089}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=6054; + type="B_Soldier_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={5736.4619,36.477112,13740.202}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=6055; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={5735.7686,36.435966,13739.174}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=6056; + type="B_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6045; + atlOffset=3.8146973e-06; + }; + class Item203 + { + dataType="Logic"; + class PositionInfo + { + position[]={5757.8779,37.480198,13751.748}; + angles[]={6.2700515,0,0.036652431}; + }; + name="HC1"; + isPlayable=1; + id=6057; + type="HeadlessClient_F"; + atlOffset=-3.8146973e-06; + }; + class Item204 + { + dataType="Logic"; + class PositionInfo + { + position[]={5758.1182,37.395176,13744.579}; + angles[]={6.2699027,0,0.036371585}; + }; + name="HC2"; + isPlayable=1; + id=6058; + type="HeadlessClient_F"; + }; + class Item205 + { + dataType="Logic"; + class PositionInfo + { + position[]={5758.165,37.29554,13736.894}; + angles[]={6.2699881,0,0.036108371}; + }; + name="HC3"; + isPlayable=1; + id=6059; + type="HeadlessClient_F"; + }; + class Item206 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5739.2158,36.642162,13744.447}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="MedEvac Pilot"; + isPlayable=1; + }; + id=6061; + type="B_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5739.4619,36.631634,13742.705}; + }; + side="West"; + flags=5; + class Attributes + { + rank="SERGEANT"; + description="MedEvac Co-Pilot"; + isPlayable=1; + }; + id=6062; + type="B_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={5739.6416,36.62006,13741.049}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="MedEvac Medic"; + isPlayable=1; + }; + id=6063; + type="B_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={5739.8213,36.608543,13739.43}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="MedEvac Medic"; + isPlayable=1; + }; + id=6064; + type="B_medic_F"; + atlOffset=-3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6060; + }; + class Item207 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5741.458,36.741211,13744.766}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="Logistics Pilot"; + isPlayable=1; + }; + id=6066; + type="B_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5741.7881,36.729919,13742.664}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Logistics Engineer"; + isPlayable=1; + }; + id=6067; + type="B_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={5741.8838,36.712807,13740.906}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Logistics Demolition Expert"; + isPlayable=1; + }; + id=6068; + type="B_soldier_exp_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6065; + }; + class Item208 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5743.6299,36.835438,13745.104}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="CAS Pilot"; + isPlayable=1; + }; + id=6070; + type="B_Helipilot_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5743.9893,36.821907,13742.788}; + }; + side="West"; + flags=5; + class Attributes + { + rank="LIEUTENANT"; + description="CAS Pilot"; + isPlayable=1; + }; + id=6071; + type="B_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6069; + atlOffset=3.8146973e-06; + }; + class Item209 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5745.7666,36.928333,13745.437}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="UAV and Intelligence"; + isPlayable=1; + }; + id=6073; + type="B_soldier_UAV_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=6072; + atlOffset=3.8146973e-06; + }; + class Item210 + { + dataType="Marker"; + position[]={5737.2607,36.60656,13748.644}; + name="respawn"; + type="Empty"; + id=6074; + }; + class Item211 + { + dataType="Marker"; + position[]={5553.4771,32.470543,10394.362}; + name="capture_34"; + text="Hradesice Suburbs"; + type="n_art"; + colorName="ColorEAST"; + id=6120; + }; + class Item212 + { + dataType="Marker"; + position[]={5519.8418,34.07,10180.266}; + name="military_17"; + text="Seized Farm"; + type="o_support"; + colorName="ColorEAST"; + id=6121; + }; + class Item213 + { + dataType="Layer"; + name="Seized Farm"; + class Entities + { + items=223; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={5461.9634,34.477276,10213.118}; + angles[]={0,5.5206461,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6331; + type="Land_Sack_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={5461.7388,34.723228,10214.431}; + angles[]={0,2.6408529,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6332; + type="Land_PaperBox_closed_F"; + atlOffset=3.0517578e-05; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={5459.1162,34.45771,10213.973}; + angles[]={0,0.54645771,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6333; + type="Land_fort_bagfence_corner"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={5462.6079,34.477276,10213.458}; + angles[]={0,4.7352481,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6334; + type="Land_Sack_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={5459.6055,34.45771,10217.184}; + angles[]={0,5.2588468,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6335; + type="Land_fort_bagfence_long"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={5459.8521,35.202675,10214.675}; + angles[]={0,5.2588468,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6336; + type="Land_CamoNetVar_EAST"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={5462.3433,35.045631,10218.306}; + angles[]={0,3.688051,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6337; + type="Land_BagBunker_Small_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={5477.4097,33.999355,10292.206}; + angles[]={0.0066682254,3.729671,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6338; + type="Land_fort_bagfence_long"; + atlOffset=0.0033988953; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={5475.6172,33.990143,10294.922}; + angles[]={0.0066682254,3.729671,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6339; + type="Land_fort_bagfence_corner"; + atlOffset=0.0033340454; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={5477.9326,34.385155,10289.11}; + angles[]={0.0083294781,5.3128786,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6340; + type="Land_HBarrier_5_F"; + atlOffset=0.0068969727; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={5472.1187,34.468948,10291.934}; + angles[]={0.0066682254,2.4229355,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6341; + type="Misc_cargo_cont_tiny"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.7114,34.27486,10292.967}; + angles[]={0.0066682254,2.6847348,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6342; + type="Land_PaperBox_closed_F"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={5474.2231,34.218941,10291.247}; + angles[]={0.0066682254,1.3757379,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6343; + type="Barrel1"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.2666,34.22583,10290.931}; + angles[]={0.0066682254,5.8263278,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6344; + type="Barrel1"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={5468.9795,34.053135,10289.96}; + angles[]={0.0083294781,3.7319326,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6345; + type="Land_fort_bagfence_long"; + atlOffset=-3.8146973e-06; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={5466.5845,34.051731,10291.566}; + angles[]={0.0083294781,3.7323167,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6346; + type="Land_fort_bagfence_long"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={5465.9336,33.944458,10295.309}; + angles[]={0.0083294781,5.3031864,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6347; + type="Land_fort_bagfence_round"; + atlOffset=0.0049324036; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={5471.1177,34.576778,10297.415}; + angles[]={0.0083294781,2.1614671,6.2798557}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6348; + type="Land_BagBunker_Small_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.9521,33.974548,10297.607}; + angles[]={0.0083294781,3.7322633,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6349; + type="Land_fort_bagfence_long"; + }; + class Item19 + { + dataType="Logic"; + class PositionInfo + { + position[]={5569.3081,34.07,10133.16}; + angles[]={0,3.6692057,0}; + }; + areaSize[]={10,0,20}; + flags=1; + id=6350; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={5501.833,34.107166,10190.327}; + angles[]={0,2.6928935,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6139; + type="Land_Axe_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={5492.605,34.45771,10187.855}; + angles[]={0,3.5677049,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6128; + type="Land_fort_bagfence_long"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={5494.8975,34.45771,10200.153}; + angles[]={0,0.16431274,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6131; + type="Land_fort_bagfence_long"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={5497.6709,34.45771,10199.308}; + angles[]={0,0.42611212,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6132; + type="Land_fort_bagfence_long"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={5500.1333,34.45771,10197.776}; + angles[]={0,0.68791151,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6140; + type="Land_fort_bagfence_long"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={5490.0132,34.45771,10189.806}; + angles[]={0,0.16431274,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6124; + type="Land_fort_bagfence_corner"; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={5496.5249,35.202675,10193.161}; + angles[]={0,0.16431274,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6123; + type="Land_CamoNetVar_EAST"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={5496.1538,34.427826,10189.99}; + angles[]={0,3.813046,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6129; + type="Land_CanisterPlastic_F"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={5496.4048,34.427826,10189.381}; + angles[]={0,1.5331936,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6130; + type="Land_CanisterPlastic_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={5494,34.141163,10195.892}; + angles[]={6.2810569,0.16431274,6.2799649}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6136; + type="FirePlace_burning_F"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={5495.415,34.119438,10192.793}; + angles[]={0,3.4701061,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6127; + type="Land_Garbage_square5_F"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={5499.4497,34.119438,10192.882}; + angles[]={0,3.4701061,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6135; + type="Land_Garbage_square5_F"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={5492.6392,34.662689,10191.907}; + angles[]={0,4.6149025,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6125; + type="Land_TentA_F"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={5495.6211,34.662689,10195.255}; + angles[]={0,5.6620998,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6126; + type="Land_TentA_F"; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={5502.1563,34.662434,10193.495}; + angles[]={0,0.94971114,6.2815661}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6134; + type="Land_TentA_F"; + atlOffset=3.8146973e-06; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={5496.7485,34.179379,10189.399}; + angles[]={0,4.8699999,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6137; + type="Land_TinContainer_F"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={5501.7065,34.339939,10189.261}; + angles[]={0,0.82271576,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6138; + type="Land_WoodPile_F"; + atlOffset=3.8146973e-06; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={5492.6797,34.448723,10196.713}; + angles[]={0,3.8295043,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6133; + type="Land_WoodPile_large_F"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={5528.1035,34.291748,10096.064}; + angles[]={0,0.50837332,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6149; + type="AmmoCrate_NoInteractive_"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={5529.0273,35.361393,10096.694}; + angles[]={0,0.50837332,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6147; + type="AmmoCrates_NoInteractive_Medium"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={5543.9316,45.905262,10093.398}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6152; + type="RU_WarfareBArtilleryRadar"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={5530.8599,34.648354,10100.878}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6165; + type="Barrel4"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={5530.2583,34.648354,10100.444}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6166; + type="Barrel4"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={5530.8374,34.648354,10100.01}; + angles[]={0,0.77017266,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6167; + type="Barrel4"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={5529.5342,34.648354,10099.149}; + angles[]={0,2.6027684,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6150; + type="Barrel1"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={5530.3223,34.648354,10099.049}; + angles[]={0,5.7443614,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6163; + type="Barrel1"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={5529.9805,34.648354,10099.827}; + angles[]={0,3.3881669,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6164; + type="Barrel1"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={5544.4937,34.648354,10103.005}; + angles[]={0,3.6499662,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6168; + type="Barrel1"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={5544.8022,34.648354,10102.271}; + angles[]={0,0.50837332,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6169; + type="Barrel1"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={5556.9316,34.447708,10100.034}; + angles[]={0,3.6499662,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6156; + type="Land_fort_bagfence_long"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.2378,34.447708,10101.106}; + angles[]={0,3.3881669,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6157; + type="Land_fort_bagfence_long"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={5542.2231,34.447708,10105.226}; + angles[]={0,3.3881669,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6160; + type="Land_fort_bagfence_long"; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={5539.3906,34.447708,10105.595}; + angles[]={0,3.1263673,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6161; + type="Land_fort_bagfence_long"; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={5558.9443,34.447708,10097.481}; + angles[]={0,3.6499662,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6154; + type="Land_fort_bagfence_corner"; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={5550.9346,34.447708,10101.087}; + angles[]={0,2.0791698,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6155; + type="Land_fort_bagfence_corner"; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={5544.8271,34.447708,10103.281}; + angles[]={0,3.3881669,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6158; + type="Land_fort_bagfence_corner"; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={5536.9121,34.447708,10103.972}; + angles[]={0,1.2937715,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6159; + type="Land_fort_bagfence_corner"; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={5530.5566,35.192673,10095.843}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6145; + type="Land_CamoNetVar_EAST"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.4316,34.209949,10081.68}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6142; + type="Land_fort_rampart"; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={5544.6162,34.209949,10077.419}; + angles[]={0,0.24657387,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6143; + type="Land_fort_rampart"; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={5525.6904,34.209949,10098.411}; + angles[]={0,2.0791698,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6146; + type="Land_fort_rampart"; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={5559.1167,34.209949,10090.088}; + angles[]={0,5.2207623,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6153; + type="Land_fort_rampart"; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.3608,34.027058,10297.058}; + angles[]={0.0083294781,5.2207623,6.278194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6162; + type="MetalBarrel_burning_F"; + atlOffset=-1.9073486e-05; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={5529.7646,34.499569,10093.648}; + angles[]={0,2.340934,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6151; + type="Land_Pallets_stack_F"; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={5550.3633,34.636749,10080.799}; + angles[]={0,1.0318151,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6144; + type="Land_WaterBarrel_F"; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={5527.5352,34.636749,10095.046}; + angles[]={0,1.032234,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6148; + type="Land_WaterBarrel_F"; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={5630.0908,34.771515,10112.21}; + angles[]={0,6.0287075,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6182; + type="Barrels"; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={5631.0591,34.447708,10119.228}; + angles[]={0,5.2433095,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6174; + type="Land_fort_bagfence_long"; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={5636.9395,34.447708,10120.849}; + angles[]={0,3.6725132,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6175; + type="Land_fort_bagfence_long"; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={5630.0156,34.447708,10104.04}; + angles[]={0,2.4441104,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6180; + type="Land_fort_bagfence_long"; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={5622.3667,34.447708,10104.671}; + angles[]={0,4.0149069,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6181; + type="Land_fort_bagfence_long"; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={5622.436,34.447708,10124.492}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6189; + type="Land_fort_bagfence_long"; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={5619.8491,34.447708,10126.012}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6190; + type="Land_fort_bagfence_long"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={5638.5269,34.447708,10114.948}; + angles[]={0,5.2433095,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6202; + type="Land_fort_bagfence_long"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={5636.9775,34.447708,10112.303}; + angles[]={0,5.2433095,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6203; + type="Land_fort_bagfence_long"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={5638.8936,34.447708,10118.252}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6172; + type="Land_fort_bagfence_corner"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={5633.6572,34.447708,10121.183}; + angles[]={0,2.1017165,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6173; + type="Land_fort_bagfence_corner"; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={5616.5669,34.447708,10126.345}; + angles[]={0,2.1017165,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6188; + type="Land_fort_bagfence_corner"; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={5625.9487,34.363544,10102.159}; + angles[]={0,3.2295089,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6177; + type="Land_fort_bagfence_round"; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={5612.4292,34.363544,10123.99}; + angles[]={0,5.2433095,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6187; + type="Land_fort_bagfence_round"; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={5619.918,35.325626,10118.724}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6185; + type="Land_CamoNet_EAST"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={5545.7183,34.576485,10142.389}; + angles[]={0,0.0074086268,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6184; + type="Land_CampingChair_V2_F"; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={5624.8301,34.576485,10119.606}; + angles[]={0,1.0546584,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6199; + type="Land_CampingChair_V2_F"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={5623.8696,34.576485,10118.323}; + angles[]={0,4.4570875,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6200; + type="Land_CampingChair_V2_F"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={5623.3774,34.576485,10119.229}; + angles[]={0,4.1962428,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6201; + type="Land_CampingChair_V2_F"; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={5615.4868,34.829838,10120.311}; + angles[]={0,0.26912072,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6197; + type="Land_CratesShabby_F"; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={5617.0781,34.808998,10119.811}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6191; + type="Land_CratesWooden_F"; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={5618.0005,34.209949,10115.21}; + angles[]={0,0.53092027,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6186; + type="Land_fort_rampart"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={5631.9375,34.109436,10114.158}; + angles[]={0,4.457911,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6178; + type="Land_Garbage_square5_F"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={5632.1792,34.326313,10114.223}; + angles[]={0,4.457911,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6179; + type="Land_GarbagePallet_F"; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={5629.7046,34.772106,10117.414}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6176; + type="Land_HBarrier_1_F"; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={5624.2686,34.772106,10123.416}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6192; + type="Land_HBarrier_1_F"; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={5634.2319,40.2794,10114.756}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6171; + type="Land_Vysilac_FM"; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={5619.1001,34.467274,10119.059}; + angles[]={0,2.3635159,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6195; + type="Land_Sack_F"; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={5619.6992,34.284836,10118.846}; + angles[]={0,4.9815102,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6196; + type="Land_Sack_EP1"; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={5619.1519,34.460789,10118.158}; + angles[]={0,3.672513,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6193; + type="Land_Sacks_heap_F"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={5632.4785,34.499569,10112.017}; + angles[]={0,2.1017518,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6183; + type="Land_Pallets_stack_F"; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={5620.5088,34.636749,10117.507}; + angles[]={0,3.6724255,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6194; + type="Land_WaterBarrel_F"; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={5624.25,34.502296,10118.936}; + angles[]={0,6.0230875,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6198; + type="Land_WoodenTable_large_F"; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={5471.6016,34.781517,10166.405}; + angles[]={0,0.017365156,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6216; + type="Barrels"; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={5472.7544,34.45771,10150.273}; + angles[]={0,0.54096341,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6206; + type="Land_fort_bagfence_long"; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={5477.71,34.45771,10155.609}; + angles[]={0,2.1117599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6215; + type="Land_fort_bagfence_long"; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={5455.354,34.45771,10163.061}; + angles[]={0,0.54096341,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6210; + type="Land_fort_bagfence_corner"; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={5456.792,34.45771,10165.696}; + angles[]={0,2.1117599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6211; + type="Land_fort_bagfence_corner"; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={5476.4209,34.373547,10151.278}; + angles[]={0,2.1117599,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6205; + type="Land_fort_bagfence_round"; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={5461.0542,35.347885,10158.469}; + angles[]={0,4.9915528,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6209; + type="Land_Misc_Cargo1F"; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.479,35.8433,10159.876}; + angles[]={0,2.8841202,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=6214; + type="Land_Cargo40_military_green_F"; + atlOffset=0.43498993; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={5463.3784,35.839314,10164.044}; + angles[]={0,0.54096341,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=6213; + type="Land_Cargo20_orange_F"; + atlOffset=0.43500137; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={5466.0332,35.839314,10168.455}; + angles[]={0,0.54096341,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=6220; + type="Land_Cargo20_white_F"; + atlOffset=0.43500137; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={5469.2632,35.347885,10155.87}; + angles[]={0,1.5881608,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6207; + type="Land_Misc_Cargo1A_EP1"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={5464.6816,36.622887,10166.205}; + angles[]={0,5.2533526,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6221; + type="Land_Misc_Cargo2E"; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={5467.7227,37.415295,10161.316}; + angles[]={0,5.2533526,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6208; + type="Land_Ind_Shed_01_EP1"; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={5471.2407,34.502678,10165.473}; + angles[]={0,5.7764921,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6217; + type="Land_MetalBarrel_F"; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={5470.791,34.502678,10166.181}; + angles[]={0,5.2533727,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6222; + type="Land_MetalBarrel_F"; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={5459.3188,34.502678,10160.677}; + angles[]={0,1.5881608,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6212; + type="Land_MetalBarrel_empty_F"; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={5473.1685,34.509571,10162.128}; + angles[]={0,0.27917784,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6218; + type="Land_Pallets_stack_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={5474.8193,34.509571,10162.448}; + angles[]={0,4.4679718,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6219; + type="Land_Pallets_stack_F"; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={5576.4175,35.430244,10148.907}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6233; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.2935,35.430244,10144.757}; + angles[]={0,5.2864313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6261; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={5557.1157,35.430244,10164.019}; + angles[]={0,3.4538355,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6294; + type="AmmoCrates_NoInteractive_Large"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={5575.7676,35.139145,10147.839}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6238; + type="AmmoCrates_NoInteractive_Small"; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.2515,34.648354,10163.043}; + angles[]={0,5.8093667,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6289; + type="Barrel4"; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={5536.8086,34.648354,10153.334}; + angles[]={0,6.0718293,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6265; + type="Barrel1"; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={5537.6479,34.648354,10152.791}; + angles[]={0,3.4538355,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6266; + type="Barrel1"; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.1147,34.648354,10163.806}; + angles[]={0,1.8825504,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6300; + type="Barrel1"; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={5555.0806,34.648354,10163.012}; + angles[]={0,1.3589514,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6301; + type="Barrel1"; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={5444.0801,34.658356,10171.836}; + angles[]={0,3.1369638,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6302; + type="Barrel1"; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={5443.626,34.658356,10170.671}; + angles[]={0,2.6133652,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6303; + type="Barrel1"; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.4321,34.648354,10163.328}; + angles[]={0,2.9299047,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6284; + type="Barrel3"; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={5444.3276,34.658356,10171.081}; + angles[]={0,3.6607201,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6285; + type="Barrel3"; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={5444.2803,34.658356,10172.641}; + angles[]={0,1.3041945,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6286; + type="Barrel3"; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.7285,34.648354,10162.257}; + angles[]={0,2.4063063,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6287; + type="Barrel3"; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.4131,34.648354,10164.245}; + angles[]={0,0.049780007,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6288; + type="Barrel3"; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={5437.2598,34.658356,10178.713}; + angles[]={0,5.2315168,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6326; + type="Barrel3"; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={5437.9561,34.658356,10178.114}; + angles[]={0,2.3513913,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6327; + type="Barrel3"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={5435.5972,34.658356,10178.462}; + angles[]={0,4.7079177,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6328; + type="Barrel3"; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={5581.0415,34.447708,10147.854}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6239; + type="Land_fort_bagfence_long"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={5579.6533,34.447708,10148.696}; + angles[]={0,5.2581797,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6240; + type="Land_fort_bagfence_long"; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={5578.1567,34.447708,10149.605}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6241; + type="Land_fort_bagfence_long"; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={5547.147,34.447708,10162.874}; + angles[]={0,5.2864313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6309; + type="Land_fort_bagfence_long"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={5555.2095,34.366756,10212.682}; + angles[]={0.0033296358,3.6929533,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6321; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={5560.939,34.373734,10209.149}; + angles[]={0.0049914722,3.6929517,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6322; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={5582.7437,34.447708,10145.357}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6230; + type="Land_fort_bagfence_corner"; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={5575.0923,34.447708,10149.857}; + angles[]={0,2.1165872,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6231; + type="Land_fort_bagfence_corner"; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={5581.3584,34.447708,10142.835}; + angles[]={0,5.2581797,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6232; + type="Land_fort_bagfence_corner"; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={5549.7573,34.447708,10164.609}; + angles[]={0,2.1448386,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6291; + type="Land_fort_bagfence_corner"; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={5576.208,34.363544,10090.325}; + angles[]={0,3.1415927,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6224; + type="Land_fort_bagfence_round"; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={5592.958,34.363544,10096.2}; + angles[]={0,2.6179938,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6270; + type="Land_fort_bagfence_round"; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={5562.5264,34.305931,10205.285}; + angles[]={0.003311686,1.8603557,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6274; + type="Land_fort_bagfence_round"; + atlOffset=3.8146973e-06; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={5551.0059,34.288467,10213.021}; + angles[]={0.0033296358,5.7873483,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6319; + type="Land_fort_bagfence_round"; + atlOffset=3.8146973e-06; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={5582.8257,34.921024,10121.105}; + angles[]={0.0016194459,5.2359877,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6269; + type="Land_Wreck_BMP2_F"; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={5551.7188,34.713196,10145.775}; + angles[]={0,5.2864313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6263; + type="Land_PaperBox_closed_F"; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={5443.1021,34.723198,10159.404}; + angles[]={0,5.7554469,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6296; + type="Land_PaperBox_closed_F"; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={5556.4082,34.713196,10162.69}; + angles[]={0,3.4538355,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6297; + type="Land_PaperBox_closed_F"; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={5573.519,34.677998,10140.992}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6234; + type="Land_PaperBox_open_full_F"; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={5550.3174,34.677998,10146.83}; + angles[]={0,0.57404208,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6264; + type="Land_PaperBox_open_full_F"; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={5555.2021,34.677998,10164.512}; + angles[]={0,0.57404208,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6298; + type="Land_PaperBox_open_full_F"; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={5558.457,34.954914,10211.324}; + angles[]={0.0049914722,3.6929533,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6320; + type="Land_BagBunker_Small_F"; + atlOffset=3.8146973e-06; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={5555.0146,35.128796,10207.654}; + angles[]={0.0033296358,3.6929533,6.2815294}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6280; + type="Land_CamoNetVar_EAST"; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={5555.4897,35.192673,10153.906}; + angles[]={0,3.7156348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6281; + type="Land_CamoNetVar_EAST"; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={5436.8545,36.14994,10170.603}; + angles[]={0,0.51945925,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6310; + type="Land_CamoNetB_EAST"; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={5556.7246,34.576485,10152.843}; + angles[]={0,3.9774518,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6313; + type="Land_CampingChair_V2_F"; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={5558.3374,34.576485,10153.379}; + angles[]={0,1.6213268,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6314; + type="Land_CampingChair_V2_F"; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.5718,34.576485,10155.448}; + angles[]={0,6.0719829,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6315; + type="Land_CampingChair_V2_F"; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.4238,34.576485,10154.143}; + angles[]={0,2.1447859,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6316; + type="Land_CampingChair_V2_F"; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={5574.3232,34.481552,10145.935}; + angles[]={0,5.845757,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6245; + type="Land_CampingTable_F"; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={5577.4404,34.766289,10151.796}; + angles[]={0,5.2581797,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6237; + type="Misc_concrete_High"; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={5583.958,34.209949,10095.824}; + angles[]={0,6.0213857,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6225; + type="Land_fort_rampart"; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={5568.333,34.209949,10094.949}; + angles[]={0,0.2617994,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6226; + type="Land_fort_rampart"; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={5532.1074,34.209949,10144.911}; + angles[]={0,1.3594402,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6250; + type="Land_fort_rampart"; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={5529.7388,34.209949,10122.327}; + angles[]={0,1.7952765,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6251; + type="Land_fort_rampart"; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={5534.0493,34.209949,10154.82}; + angles[]={0,2.1448386,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6252; + type="Land_fort_rampart"; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={5531.4233,34.209949,10131.824}; + angles[]={0,1.6907991,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6253; + type="Land_fort_rampart"; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={5605.1875,34.209949,10105.361}; + angles[]={0,6.2420831,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6271; + type="Land_fort_rampart"; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={5597.333,34.218407,10103.074}; + angles[]={6.2815661,5.7595863,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6272; + type="Land_fort_rampart"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={5541.3066,34.209949,10161.44}; + angles[]={0,2.6684372,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6276; + type="Land_fort_rampart"; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={5446.624,34.219952,10165.012}; + angles[]={0,5.2318482,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6277; + type="Land_fort_rampart"; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={5447.2749,34.219952,10174.072}; + angles[]={0,4.1846504,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6278; + type="Land_fort_rampart"; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.2773,34.209949,10149.065}; + angles[]={0,3.7156348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6279; + type="Land_fort_rampart"; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={5425.5986,34.219952,10172.288}; + angles[]={0,1.828454,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6323; + type="Land_fort_rampart"; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={5431.8091,34.219952,10180.249}; + angles[]={0,2.6138544,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6324; + type="Land_fort_rampart"; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={5441.8428,34.219952,10180.165}; + angles[]={0,3.6610518,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6325; + type="Land_fort_rampart"; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={5574.6006,34.577656,10146.504}; + angles[]={0,6.0437088,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6247; + type="Land_CampingChair_V1_F"; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={5573.4238,34.577656,10146.422}; + angles[]={0,5.5193753,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6248; + type="Land_CampingChair_V1_F"; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={5541.2656,34.503639,10157.001}; + angles[]={0,0.57404208,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6307; + type="Land_GarbageBags_F"; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={5538.4502,34.326313,10154.952}; + angles[]={0,4.7628322,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6268; + type="Land_GarbagePallet_F"; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={5537.2944,34.326313,10160.76}; + angles[]={0,1.3594402,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6308; + type="Land_GarbagePallet_F"; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={5551.9419,34.554707,10167.067}; + angles[]={0,5.2864313,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6292; + type="GunrackTK_EP1"; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={5550.3364,34.554707,10167.808}; + angles[]={0,4.5010328,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6293; + type="GunrackTK_EP1"; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={5448.7402,34.775532,10175.414}; + angles[]={0,4.1846504,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6318; + type="Land_IronPipes_F"; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={5578.4512,34.492676,10148.403}; + angles[]={0,2.0931473,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6227; + type="Land_MetalBarrel_F"; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={5577.5967,34.492676,10148.922}; + angles[]={0,4.9729934,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6228; + type="Land_MetalBarrel_F"; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={5557.6279,34.492676,10144.782}; + angles[]={0,2.1439135,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6254; + type="Land_MetalBarrel_F"; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={5557.2813,34.492676,10143.987}; + angles[]={0,4.5000906,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6255; + type="Land_MetalBarrel_F"; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={5547.7046,34.492676,10132.89}; + angles[]={0,0.57321137,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6256; + type="Land_MetalBarrel_F"; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={5546.7925,34.492676,10133.505}; + angles[]={0,0.049963251,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6257; + type="Land_MetalBarrel_F"; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={5548.4541,34.492676,10132.395}; + angles[]={0,0.075214773,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6258; + type="Land_MetalBarrel_F"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.6953,34.492676,10166.03}; + angles[]={0,5.2855058,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6282; + type="Land_MetalBarrel_F"; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.2202,34.492676,10165.296}; + angles[]={0,2.4053113,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6283; + type="Land_MetalBarrel_F"; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={5460.3921,34.502678,10217.073}; + angles[]={0,5.2581797,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6235; + type="MetalBarrel_burning_F"; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={5554.644,34.492676,10152.391}; + angles[]={0,5.7751293,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6299; + type="MetalBarrel_burning_F"; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={5549.5112,34.388325,10137.527}; + angles[]={0,3.4538703,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6262; + type="Land_Pallets_F"; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={5557.8652,34.388325,10159.239}; + angles[]={0,3.4538703,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6295; + type="Land_Pallets_F"; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={5441.5981,34.080002,10161.263}; + angles[]={0,0.78136331,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6317; + type="Land_Pipes_small_F"; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={5573.7666,35.298038,10139.233}; + angles[]={0,2.1165872,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6229; + type="Land_Barrack2"; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={5564.5889,35.298038,10124.063}; + angles[]={0,2.1099374,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6273; + type="Land_Barrack2"; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={5569.1714,35.298038,10131.764}; + angles[]={0,2.1099374,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6290; + type="Land_Barrack2"; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={5575.084,34.499569,10149.819}; + angles[]={0,3.6585684,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6236; + type="Land_Pallets_stack_F"; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={5550.7402,34.499569,10136.107}; + angles[]={0,3.4611483,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6267; + type="Land_Pallets_stack_F"; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={5543.4312,34.499569,10158.28}; + angles[]={0,2.637475,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6304; + type="Land_Pallets_stack_F"; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={5544.9116,34.499569,10159.194}; + angles[]={0,6.0515695,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6305; + type="Land_Pallets_stack_F"; + }; + class Item211 + { + dataType="Object"; + class PositionInfo + { + position[]={5559.0933,34.499569,10157.82}; + angles[]={0,3.4610434,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6306; + type="Land_Pallets_stack_F"; + }; + class Item212 + { + dataType="Object"; + class PositionInfo + { + position[]={5433.5698,34.509571,10176.944}; + angles[]={0,4.4464431,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6329; + type="Land_Pallets_stack_F"; + }; + class Item213 + { + dataType="Object"; + class PositionInfo + { + position[]={5542.9019,35.875114,10131.679}; + angles[]={0,3.7156348,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6259; + type="Land_tent_east"; + atlOffset=0.04933548; + }; + class Item214 + { + dataType="Object"; + class PositionInfo + { + position[]={5541.0518,35.875114,10144.933}; + angles[]={0,1.3594402,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6260; + type="Land_tent_east"; + atlOffset=0.04933548; + }; + class Item215 + { + dataType="Object"; + class PositionInfo + { + position[]={5582.0757,34.342346,10148.834}; + angles[]={0,3.6873837,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6246; + type="Land_Tyres_F"; + }; + class Item216 + { + dataType="Object"; + class PositionInfo + { + position[]={5582.1055,35.290062,10144.953}; + angles[]={0,1.0694768,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6242; + type="Land_ToiletBox_F"; + }; + class Item217 + { + dataType="Object"; + class PositionInfo + { + position[]={5579.7485,35.290062,10146.445}; + angles[]={0,0.284049,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6243; + type="Land_ToiletBox_F"; + }; + class Item218 + { + dataType="Object"; + class PositionInfo + { + position[]={5580.9878,35.290062,10145.839}; + angles[]={0,0.54587972,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6244; + type="Land_ToiletBox_F"; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={5549.0342,34.07,10135.625}; + angles[]={0,3.9774342,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6249; + type="Land_WoodenBox_F"; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={5559.6523,34.07,10159.87}; + angles[]={0,3.9774342,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6275; + type="Land_WoodenBox_F"; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={5557.3662,34.502296,10153.585}; + angles[]={0,2.9302189,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6311; + type="Land_WoodenTable_large_F"; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={5553.5376,34.502296,10154.572}; + angles[]={0,1.0975362,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6312; + type="Land_WoodenTable_large_F"; + }; + }; + id=6330; + atlOffset=0.00014877319; + }; + class Item214 + { + dataType="Marker"; + position[]={7934.6392,1.773,6993.9121}; + name="military_18"; + text="Checkpoint Delta"; + type="o_support"; + colorName="ColorEAST"; + id=6373; + atlOffset=0.00023877621; + }; + class Item215 + { + dataType="Marker"; + position[]={2495.6526,21.246861,10420.339}; + name="factory_17"; + text="Rock Farm"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=6383; + }; + class Item216 + { + dataType="Layer"; + name="FOB Hurcí"; + class Entities + { + items=64; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={3808.1206,56.214092,6963.5132}; + angles[]={0.011667843,5.6001582,0.16190368}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6424; + type="Land_fort_rampart"; + atlOffset=0.01210022; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={3795.71,54.358223,6955.8447}; + angles[]={6.2631893,6.1218448,0.15865555}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6425; + type="Land_fort_bagfence_long"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={3783.6685,52.39172,6960.2925}; + angles[]={6.278194,0.098632418,0.14888947}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6426; + type="Land_fort_rampart"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={3800.9873,54.93914,6963.6694}; + angles[]={0.0050033992,4.8126621,0.15540366}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6427; + type="Land_Garbage_square5_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={3778.7122,52.069492,6960.291}; + angles[]={6.2748489,5.33354,0.13909611}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6428; + type="Land_Wreck_BRDM2_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={3802.8044,55.460896,6963.3047}; + angles[]={0.0050033992,1.9341247,0.15540366}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6429; + type="Land_JunkPile_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={3792.5479,53.867573,6956.6099}; + angles[]={6.2631893,6.1206479,0.15865555}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6430; + type="Land_fort_bagfence_corner"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={3801.4216,55.320667,6958.1436}; + angles[]={6.2715225,4.5522547,0.16352627}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6431; + type="Land_fort_bagfence_corner"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={3798.6724,54.835632,6956.3154}; + angles[]={6.268187,6.1218448,0.1667694}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6432; + type="Land_fort_bagfence_long"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={3813.3464,55.783051,6988.481}; + angles[]={0.079829417,4.8129721,0.11942901}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6433; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={3816.2231,56.881344,6988.0288}; + angles[]={0.079829417,2.9834514,0.12763602}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6434; + type="Land_Wreck_BMP2_F"; + atlOffset=0.0054664612; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={3805.4907,56.862713,6966.1128}; + angles[]={0.024993783,2.4577234,0.16190368}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6435; + type="Land_CamoNet_EAST"; + atlOffset=0.006401062; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={3812.5044,57.218666,6976.3418}; + angles[]={0.054944519,4.8142781,0.14399718}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6436; + type="Land_BagBunker_Large_F"; + atlOffset=0.0046195984; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={3805.9883,56.285305,6967.728}; + angles[]={0.024993783,5.8608828,0.16190368}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6437; + type="Land_PaperBox_closed_F"; + atlOffset=0.00053024292; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={3802.8582,55.223427,6965.4233}; + angles[]={0.0050033992,4.8139181,0.15540366}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6438; + type="Land_Garbage_square5_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={3789.2192,52.26318,6991.1685}; + angles[]={5.4953089,4.8071356,0.42799541}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6439; + type="Land_Garbage_square5_F"; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={3797.9995,55.019524,6983.4023}; + angles[]={0.049958061,4.8098021,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6440; + type="Land_CamoNetVar_EAST"; + atlOffset=0.007019043; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={3789.6531,52.619579,6992.7202}; + angles[]={0.064908728,4.806324,0.12599599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6441; + type="Land_GarbageBags_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={3801.0696,54.613861,6985.3613}; + angles[]={0.064908728,2.4528384,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6442; + type="Land_Sack_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={3784.3933,52.937767,6972.7695}; + angles[]={0.023330973,3.2388186,0.1407305}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6443; + type="Land_PaperBox_closed_F"; + atlOffset=0.00012588501; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={3804.5037,56.067104,6966.7524}; + angles[]={0.024993783,4.0282869,0.16190368}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6444; + type="Land_PaperBox_closed_F"; + atlOffset=0.0004234314; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={3800.6672,54.87426,6984.2661}; + angles[]={0.064908728,3.2390058,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6445; + type="Land_PaperBox_closed_F"; + atlOffset=0.0016098022; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={3795.8123,53.661827,6988.7427}; + angles[]={0.064908728,1.6659758,0.13418922}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6446; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-0.0038375854; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={3799.895,54.971672,6989.7476}; + angles[]={0.06988623,3.2378404,0.13909611}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6447; + type="Land_HBarrier_Big_F"; + atlOffset=0.0087165833; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={3784.8811,52.642509,6995.1079}; + angles[]={0.059928458,3.2345421,0.12271336}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6448; + type="Land_HBarrier_Big_F"; + atlOffset=0.0069694519; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={3802.6211,55.712879,6984.5503}; + angles[]={0.064908728,4.8098021,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6449; + type="Land_HBarrier_Big_F"; + atlOffset=0.008605957; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={3782.1213,53.103859,6977.02}; + angles[]={0.024996169,4.8082447,0.13909611}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6450; + type="Barrack2"; + atlOffset=0.0043182373; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={3783.3076,52.891754,6987.3438}; + angles[]={0.049958061,4.8065343,0.12763602}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6451; + type="Barrack2"; + atlOffset=0.0064506531; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={3796.0386,53.834644,6987.7734}; + angles[]={0.064908728,3.2371564,0.13418922}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6452; + type="GunrackTK_EP1"; + atlOffset=3.8146973e-06; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={3797.1575,53.993347,6987.6563}; + angles[]={0.064908728,3.2371564,0.13418922}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6453; + type="GunrackTK_EP1"; + atlOffset=3.8146973e-06; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={3800.897,55.042606,6979.8101}; + angles[]={0.049958061,1.6687927,0.13909568}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6454; + type="Land_WaterBarrel_F"; + atlOffset=-0.0054130554; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={3802.4871,55.297092,6979.3979}; + angles[]={0.049958061,3.501476,0.13909568}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6455; + type="Barrel4"; + atlOffset=-0.0059280396; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={3803.1606,55.374397,6979.8301}; + angles[]={0.044969428,0.88463795,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6456; + type="Barrel4"; + atlOffset=-0.0065383911; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={3799.908,54.388073,6987.6201}; + angles[]={0.064908728,5.070436,0.14399634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6457; + type="Fort_Crate_wood"; + atlOffset=9.5367432e-05; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={3801.2905,54.585468,6987.5981}; + angles[]={0.06988623,4.8090334,0.13909611}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6458; + type="Fort_Crate_wood"; + atlOffset=-3.8146973e-06; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={3782.7859,52.706005,6972.938}; + angles[]={0.023330973,1.6674615,0.1407305}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6459; + type="Land_PaperBox_closed_F"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={3767.8801,49.487045,6995.5068}; + angles[]={0.044969428,1.6649481,0.11449757}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6460; + type="Land_fort_rampart"; + atlOffset=0.008682251; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={3769.4717,51.402634,6971.0698}; + angles[]={0.0083366306,0.88124245,0.12927477}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6461; + type="Land_CamoNetVar_EAST"; + atlOffset=0.00087356567; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={3764.8088,49.925346,6973.7085}; + angles[]={0.013332055,4.808176,0.12599599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6462; + type="Land_Tyres_F"; + atlOffset=-3.8146973e-06; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={3769.6118,50.956661,6968.2949}; + angles[]={0.0050033992,3.2378573,0.13255134}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6463; + type="Land_PaperBox_closed_F"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={3774.1345,51.691204,6987.1792}; + angles[]={0.038314536,4.8067613,0.13091321}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6464; + type="Land_HBarrier_Big_F"; + atlOffset=0.0053367615; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={3773.53,51.896675,6978.9473}; + angles[]={0.03165498,4.8078985,0.12271336}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6465; + type="Land_HBarrier_Big_F"; + atlOffset=0.0046348572; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={3767.7913,50.243706,6971.0049}; + angles[]={0.0050033992,4.0228348,0.12599599}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6466; + type="Land_fort_artillery_nest"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={3771.4873,51.207081,6968.2202}; + angles[]={0.0050033992,6.1182418,0.13255134}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6467; + type="Land_PaperBox_closed_F"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={3814.4241,54.499199,7002.4478}; + angles[]={0.11942901,4.8101473,0.10296748}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6468; + type="Land_fort_rampart"; + atlOffset=0.0058746338; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={3813.647,53.96851,7008.4351}; + angles[]={0.12435512,4.8094783,0.093064293}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6469; + type="Land_GarbageWashingMachine_F"; + atlOffset=0.00085830688; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={3810.5598,53.954273,7006.4956}; + angles[]={0.11942901,3.2379451,0.10296748}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6470; + type="GunrackTK_EP1"; + atlOffset=0.0011787415; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={3810.4294,54.089794,7005.251}; + angles[]={0.11942901,3.2379451,0.10296748}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6471; + type="GunrackTK_EP1"; + atlOffset=0.00084686279; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={3792.0771,51.306622,7012.3325}; + angles[]={0.089758366,3.235965,0.11449653}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6472; + type="Land_fort_bagfence_long"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={3789.0935,50.949966,7012.645}; + angles[]={0.089758366,3.235939,0.10955941}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6473; + type="Land_fort_bagfence_long"; + atlOffset=-3.8146973e-06; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={3808.1367,52.886948,7010.522}; + angles[]={0.12435512,3.2363079,0.089757703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6474; + type="Land_fort_rampart"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={3804.3882,52.915165,7006.1538}; + angles[]={0.10955995,4.807725,0.10955995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6475; + type="Land_Garbage_square5_F"; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={3807.0061,53.469181,7003.7354}; + angles[]={0.10955995,4.8087416,0.10955995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6476; + type="Land_Garbage_square5_F"; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={3808.1738,54.802467,7002.7168}; + angles[]={0.10955995,4.8087416,0.10955995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6477; + type="Land_CamoNetVar_EAST"; + atlOffset=0.0095176697; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={3794.3552,53.096394,7005.4292}; + angles[]={0.084795304,5.5922351,0.11942901}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6478; + type="Land_Wreck_Truck_F"; + atlOffset=0.010620117; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={3806.5798,53.304798,7006.6621}; + angles[]={0.11942901,5.0697517,0.099667974}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6479; + type="Land_GarbagePallet_F"; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={3797.5562,65.707878,6998.0591}; + angles[]={0,4.8166842,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6480; + type="Land_Cargo_Tower_V1_F"; + atlOffset=-3.8146973e-06; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={3785.9604,50.688377,7011.5903}; + angles[]={0.084796004,1.661575,0.10461687}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6481; + type="Land_fort_bagfence_corner"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={3789.9343,53.097713,6997.8462}; + angles[]={0.069885373,4.8059349,0.12599647}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6482; + type="Land_HBarrier_Big_F"; + atlOffset=0.0085868835; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={3790.491,52.560928,7005.582}; + angles[]={0.084796004,4.8061066,0.11449809}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6483; + type="Land_HBarrier_Big_F"; + atlOffset=0.008934021; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={3798.2126,52.139023,7015.3403}; + angles[]={0.10955995,3.2349267,0.09471602}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6484; + type="Land_BagBunker_Large_F"; + atlOffset=0.0065574646; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={3808.6843,53.871639,7006.9448}; + angles[]={0.11942901,3.2371564,0.099667974}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6485; + type="Land_PaperBox_closed_F"; + atlOffset=0.0034217834; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={3770.5508,50.26228,7002.0254}; + angles[]={0.059927464,1.9261816,0.11449705}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6486; + type="Land_BagBunker_Small_F"; + atlOffset=0.0048217773; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={3773.1277,49.315487,7008.4067}; + angles[]={0.069885373,2.1875415,0.10955995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6487; + type="Land_fort_rampart"; + }; + }; + id=6488; + atlOffset=-0.013160706; + }; + class Item217 + { + dataType="Layer"; + name="FOB Zebrácek"; + class Entities + { + items=322; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2107.7551,49.888866,7822.4292}; + angles[]={0.0033296358,0.34159496,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6538; + type="Misc_Backpackheap"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2100.4771,50.000893,7820.6172}; + angles[]={0,0.60331297,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6516; + type="Barrel1"; + atlOffset=-0.00038909912; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2105.1838,50.126175,7823.5044}; + angles[]={0,6.1008754,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6517; + type="Barrel1"; + atlOffset=-0.00062179565; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2104.48,50.107407,7823.874}; + angles[]={0,2.9592826,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6518; + type="Barrel1"; + atlOffset=-0.00061798096; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2086.2209,49.882698,7805.1499}; + angles[]={0.02666023,0.34152886,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6498; + type="Barrel3"; + atlOffset=-0.00012207031; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.448,49.98901,7811.3677}; + angles[]={0.018331951,5.3157988,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6499; + type="Barrel3"; + atlOffset=-0.00011444092; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={2096.0627,49.924568,7826.8286}; + angles[]={6.2731848,0.34127972,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6519; + type="Barrel3"; + atlOffset=-0.00039291382; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={2095.7698,49.909649,7826.0083}; + angles[]={6.2731848,4.0065489,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6521; + type="Barrel3"; + atlOffset=-0.00027084351; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={2091.2578,49.636257,7827.8813}; + angles[]={6.2731848,1.9119966,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6508; + type="Land_fort_bagfence_long"; + atlOffset=3.8146973e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={2112.6924,50.137432,7820.2764}; + angles[]={0.0033296358,1.9123884,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6536; + type="Land_fort_bagfence_long"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={2111.4631,50.099949,7822.0322}; + angles[]={0.0033296358,0.34141734,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6537; + type="Land_fort_bagfence_long"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={2088.2512,49.571453,7815.7026}; + angles[]={0.0083366306,1.9123486,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6492; + type="Land_fort_bagfence_corner"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={2091.4336,49.610245,7824.6367}; + angles[]={6.2748489,0.34125888,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6505; + type="Land_fort_bagfence_corner"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={2113.2471,50.08979,7816.2334}; + angles[]={0.0050033992,1.650589,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6535; + type="Land_fort_bagfence_round"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={2102.8103,50.740562,7822.708}; + angles[]={0,0.34149191,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6501; + type="Land_CamoNet_EAST"; + atlOffset=-3.8146973e-06; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={2102.2964,49.978622,7817.9038}; + angles[]={0.0083294781,5.839561,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6523; + type="Land_CampingChair_V2_F"; + atlOffset=-9.9182129e-05; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={2103.092,49.998783,7818.5464}; + angles[]={0,0.079871282,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6524; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00033569336; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={2103.8374,50.029755,7816.6992}; + angles[]={0.0083294781,1.3884233,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6525; + type="Land_CampingChair_V2_F"; + atlOffset=-0.00010299683; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={2102.822,50.00671,7816.2158}; + angles[]={0.0083294781,1.6507758,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6526; + type="Land_CampingChair_V2_F"; + atlOffset=-9.9182129e-05; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={2094.7891,50.171875,7827.0098}; + angles[]={6.2731848,0.34135744,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6513; + type="Misc_cargo_cont_net1"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={2099.3052,49.626259,7821.0508}; + angles[]={0,2.6977081,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6520; + type="Land_CratesPlastic_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={2099.1841,50.150799,7821.8691}; + angles[]={0,2.6977081,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6515; + type="Land_CratesShabby_F"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={2100.0879,50.15134,7822.2993}; + angles[]={0,4.2685041,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6510; + type="Land_CratesWooden_F"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={2081.9041,49.457539,7800.4492}; + angles[]={0.023330973,1.3886968,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6489; + type="Land_fort_rampart"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={2082.8218,49.282856,7810.8672}; + angles[]={0.013332055,1.9123253,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6490; + type="Land_fort_rampart"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.27,49.550148,7829.8667}; + angles[]={6.2715225,3.4828727,0.024991399}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6502; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={2106.415,49.741718,7826.4834}; + angles[]={6.2748561,3.4828727,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6503; + type="Land_fort_rampart"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.5972,53.34256,7816.2275}; + angles[]={0,0.34152421,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6504; + type="FlagPole_F"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={2083.9329,49.297092,7805.0332}; + angles[]={0.02666023,0.34149918,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6496; + type="Land_Garbage_square5_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.0437,49.380459,7823.792}; + angles[]={0,0.34135744,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6506; + type="Land_Garbage_square5_F"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={2103.165,49.533836,7821.145}; + angles[]={0,0.34149191,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6507; + type="Land_Garbage_square5_F"; + atlOffset=-3.8146973e-06; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={2084.1296,49.69017,7805.2354}; + angles[]={0.02666023,0.34149918,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6495; + type="Land_GarbageBags_F"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={2104.2395,50.007759,7819.8447}; + angles[]={0,3.4831979,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6512; + type="GunrackTK_EP1"; + atlOffset=-3.8146973e-06; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={2105.1819,50.032887,7819.5098}; + angles[]={0,3.4831979,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6539; + type="GunrackTK_EP1"; + atlOffset=-3.8146973e-06; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={2108.4419,50.795761,7797.917}; + angles[]={0.036650803,1.9124417,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6531; + type="Land_HBarrier_3_F"; + atlOffset=-3.8146973e-06; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.0837,50.454048,7798.7813}; + angles[]={0.038314536,0.34149316,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6493; + type="Land_HBarrier_5_F"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={2109.9104,50.643955,7802.0366}; + angles[]={0.02666023,1.9124211,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6528; + type="Land_HBarrier_5_F"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={2111.7512,50.585709,7807.2114}; + angles[]={0.014998405,1.9124309,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6529; + type="Land_HBarrier_5_F"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={2102.7952,50.604889,7798.0742}; + angles[]={0.038314536,0.34158039,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6530; + type="Land_HBarrier_5_F"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={2106.0542,50.686684,7796.7832}; + angles[]={0.038314536,5.0539451,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6532; + type="Land_HBarrier_1_F"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={2100.2581,50.527878,7797.6475}; + angles[]={0.038314536,0.34158039,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6533; + type="Land_HBarrier_1_F"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={2107.3914,50.731026,7796.4404}; + angles[]={0.038314536,4.7921457,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6534; + type="Land_HBarrier_1_F"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={2094.1912,53.378952,7799.9272}; + angles[]={0,5.0539131,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6494; + type="Land_LampShabby_F"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={2100.6812,53.446835,7806.2432}; + angles[]={0,0.34152421,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6527; + type="Land_Cargo_HQ_V1_F"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={2098.2136,49.487595,7825.8188}; + angles[]={6.2715225,3.4748347,0.024991399}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6514; + type="Land_Pallet_F"; + atlOffset=-4.196167e-05; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={2100.0234,49.746418,7825.4971}; + angles[]={6.2715225,1.6502767,0.026657995}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6511; + type="Land_Pallets_F"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={2090.375,49.683743,7811.231}; + angles[]={0.019999012,0.34123629,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6500; + type="Land_BarrelSand_F"; + atlOffset=-8.0108643e-05; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={2097.3533,49.371132,7815.9165}; + angles[]={0.0066592805,5.0540094,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6509; + type="Land_TreeBin_F"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={2087.572,51.597057,7808.2705}; + angles[]={0.016662678,0.60332823,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6491; + type="RU_WarfareBUAVterminal"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={2096.76,49.978622,7810.5508}; + angles[]={0.018331951,0.34152251,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6497; + type="Land_WaterBarrel_F"; + atlOffset=-9.5367432e-05; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={2103.0669,49.928669,7817.4585}; + angles[]={0.0083294781,4.2632146,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6522; + type="Land_WoodenTable_large_F"; + atlOffset=-8.7738037e-05; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.5166,51.909607,7831.7056}; + angles[]={6.2815294,3.5013685,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6604; + type="Barrel4"; + atlOffset=-2.6702881e-05; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.9138,51.921864,7830.7188}; + angles[]={6.2815294,1.6687725,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6605; + type="Barrel4"; + atlOffset=-3.4332275e-05; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.2107,51.897682,7830.9819}; + angles[]={6.2815294,1.6687965,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6606; + type="Barrel4"; + atlOffset=-4.196167e-05; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.2217,51.934002,7831.5381}; + angles[]={6.2815294,1.6687725,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6607; + type="Barrel4"; + atlOffset=-3.4332275e-05; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.8359,52.113346,7853.0078}; + angles[]={6.268187,3.239296,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6626; + type="Barrel2"; + atlOffset=-0.0012435913; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={2134.6387,50.87735,7836.1592}; + angles[]={6.2731848,2.1922152,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6561; + type="Barrel1"; + atlOffset=-1.9073486e-05; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={2134.5232,50.882393,7836.8564}; + angles[]={6.2731848,2.9776134,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6562; + type="Barrel1"; + atlOffset=-2.6702881e-05; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.4158,52.175224,7857.0659}; + angles[]={6.2631893,2.9774208,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6623; + type="Barrel1"; + atlOffset=-0.00020599365; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.9805,52.227913,7856.8892}; + angles[]={6.2631893,0.35922432,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6624; + type="Barrel1"; + atlOffset=-0.0013542175; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.064,52.143604,7856.1299}; + angles[]={6.2631893,0.35942701,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6625; + type="Barrel1"; + atlOffset=-0.00020599365; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.1904,52.199528,7856.9189}; + angles[]={6.2631893,1.4064219,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6622; + type="Barrel3"; + atlOffset=-0.0013809204; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={2140.5974,50.890362,7815.7769}; + angles[]={0.0099949092,4.0247717,0.028323364}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6541; + type="Land_fort_bagfence_long"; + atlOffset=0.00016403198; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.5271,50.967434,7813.4497}; + angles[]={0.0099949092,4.0247593,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6542; + type="Land_fort_bagfence_long"; + atlOffset=0.00017166138; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={2122.3208,50.393147,7830.3867}; + angles[]={6.2715225,3.5012062,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6556; + type="Land_fort_bagfence_long"; + atlOffset=0.00010299683; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={2123.1467,50.491413,7837.5522}; + angles[]={6.2698536,1.9303826,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6557; + type="Land_fort_bagfence_long"; + atlOffset=6.8664551e-05; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={2155.9255,52.31356,7870.7559}; + angles[]={6.2432065,3.5010004,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6582; + type="Land_fort_bagfence_long"; + atlOffset=0.00029754639; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={2148.7581,52.223869,7871.5811}; + angles[]={6.2432065,5.0717983,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6583; + type="Land_fort_bagfence_long"; + atlOffset=0.00028610229; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={2174.1792,51.766914,7831.5889}; + angles[]={6.2815294,1.9305719,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6602; + type="Land_fort_bagfence_long"; + atlOffset=0.0002822876; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.123,51.72921,7828.7798}; + angles[]={0,1.930596,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6603; + type="Land_fort_bagfence_long"; + atlOffset=0.00031661987; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={2175.0779,51.943939,7849.542}; + angles[]={6.268187,5.0718918,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6617; + type="Land_fort_bagfence_long"; + atlOffset=0.00023269653; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={2129.5754,50.900928,7851.813}; + angles[]={6.249866,0.35938868,0.0099949092}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6549; + type="Land_fort_bagfence_corner"; + atlOffset=0.00036621094; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={2139.6216,50.836308,7818.8359}; + angles[]={0.0050033992,0.88317865,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6550; + type="Land_fort_bagfence_corner"; + atlOffset=0.00016784668; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={2125.3708,50.565182,7839.918}; + angles[]={6.2698536,1.9303764,0.018328698}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6551; + type="Land_fort_bagfence_corner"; + atlOffset=9.1552734e-05; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={2130.4736,51.03381,7854.5508}; + angles[]={6.1934271,1.930195,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6552; + type="Land_fort_bagfence_corner"; + atlOffset=0.00021362305; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={2158.2937,52.26799,7868.5308}; + angles[]={6.2432065,3.5010169,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6578; + type="Land_fort_bagfence_corner"; + atlOffset=0.00031280518; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.3228,51.055664,7812.0845}; + angles[]={0.0099949092,5.5956059,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6597; + type="Land_fort_bagfence_corner"; + atlOffset=0.00019836426; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={2174.0647,51.768322,7834.8364}; + angles[]={6.2815294,3.501369,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6601; + type="Land_fort_bagfence_corner"; + atlOffset=0.00028610229; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.8318,51.828667,7847.1816}; + angles[]={6.2715178,5.0720692,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6613; + type="Land_fort_bagfence_corner"; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={2125.865,50.407063,7831.9927}; + angles[]={6.2731848,1.9303924,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6546; + type="Land_fort_bagfence_round"; + atlOffset=7.2479248e-05; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.7148,50.313438,7833.9277}; + angles[]={6.2731848,5.0720205,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6547; + type="Land_fort_bagfence_round"; + atlOffset=0.0017929077; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={2152.3015,52.26141,7873.1909}; + angles[]={6.2465348,0.35943976,0.016666256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6577; + type="Land_fort_bagfence_round"; + atlOffset=0.0025062561; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.3157,51.555904,7823.4307}; + angles[]={0.0099949092,3.5013249,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6599; + type="Land_fort_bagfence_round"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.5674,51.624352,7824.4521}; + angles[]={0,1.9306624,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6600; + type="Land_fort_bagfence_round"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={2177.4841,52.002197,7853.1621}; + angles[]={6.268187,1.9296595,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6612; + type="Land_fort_bagfence_round"; + atlOffset=0.0001335144; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={2169.321,52.165421,7858.0962}; + angles[]={6.2631865,0.35942531,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6620; + type="Land_PaperBox_closed_F"; + atlOffset=0.00065994263; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={2165.2549,52.041592,7858.29}; + angles[]={6.2598572,2.715601,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6621; + type="Land_PaperBox_closed_F"; + atlOffset=0.00063323975; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.051,51.4161,7863.1333}; + angles[]={6.2432065,6.1189642,0.015018263}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6585; + type="CUP_vojenska_palanda"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={2157.2437,51.348057,7859.3247}; + angles[]={6.2615213,0.3593699,6.2531857}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6586; + type="CUP_vojenska_palanda"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={2159.072,51.275433,7858.5044}; + angles[]={6.2615213,0.3593699,6.2531857}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6587; + type="CUP_vojenska_palanda"; + }; + class Item90 + { + dataType="Object"; + class PositionInfo + { + position[]={2144.0444,51.454151,7863.3364}; + angles[]={6.2432065,6.1189642,0.015018263}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6588; + type="CUP_vojenska_palanda"; + atlOffset=3.8146973e-06; + }; + class Item91 + { + dataType="Object"; + class PositionInfo + { + position[]={2136.7126,52.628464,7841.4492}; + angles[]={0,1.93032,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6572; + type="Land_BagBunker_Tower_F"; + atlOffset=0.00061416626; + }; + class Item92 + { + dataType="Object"; + class PositionInfo + { + position[]={2168.1738,52.732578,7857.5669}; + angles[]={6.2598572,0.35942531,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6609; + type="Land_CamoNet_EAST"; + atlOffset=0.0012626648; + }; + class Item93 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.7439,51.802841,7849.9233}; + angles[]={6.2598543,0.35950184,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6544; + type="Land_CamoNetVar_EAST"; + atlOffset=0.0004119873; + }; + class Item94 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.7708,51.190559,7850.0752}; + angles[]={6.2598543,0.097824238,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6563; + type="Land_CampingChair_V2_F"; + atlOffset=-1.1444092e-05; + }; + class Item95 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.1125,51.222744,7849.4468}; + angles[]={6.2598543,5.5956507,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6564; + type="Land_CampingChair_V2_F"; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.2432,51.147247,7848.6714}; + angles[]={6.2598543,3.2394524,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6565; + type="Land_CampingChair_V2_F"; + atlOffset=-1.1444092e-05; + }; + class Item97 + { + dataType="Object"; + class PositionInfo + { + position[]={2141.219,51.134678,7848.7891}; + angles[]={6.2598572,2.1922545,0.013327583}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6566; + type="Land_CampingChair_V2_F"; + atlOffset=3.8146973e-06; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={2144.0627,51.210964,7849.8428}; + angles[]={6.2598543,5.3332887,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6567; + type="Land_CampingChair_V2_F"; + atlOffset=-7.6293945e-06; + }; + class Item99 + { + dataType="Object"; + class PositionInfo + { + position[]={2143.2419,51.15189,7848.0146}; + angles[]={6.2598543,4.0248327,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6568; + type="Land_CampingChair_V2_F"; + atlOffset=-1.5258789e-05; + }; + class Item100 + { + dataType="Object"; + class PositionInfo + { + position[]={2141.7473,51.174503,7850.1943}; + angles[]={6.2598572,0.35911769,0.013327583}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6569; + type="Land_CampingChair_V2_F"; + atlOffset=3.8146973e-06; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={2144.2629,51.170647,7847.897}; + angles[]={6.2715178,3.5013077,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6570; + type="Land_CampingChair_V2_F"; + atlOffset=-3.8146973e-05; + }; + class Item102 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.9302,52.546494,7857.0742}; + angles[]={6.2631865,0.35942701,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6618; + type="Misc_cargo_cont_small2"; + atlOffset=0.0010795593; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={2147.3218,51.006218,7850.3462}; + angles[]={6.2648568,4.2854366,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6595; + type="Land_CratesPlastic_F"; + atlOffset=0.00090026855; + }; + class Item104 + { + dataType="Object"; + class PositionInfo + { + position[]={2126.6394,50.446369,7846.1211}; + angles[]={6.2631893,1.9303412,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6545; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item105 + { + dataType="Object"; + class PositionInfo + { + position[]={2141.3601,51.828751,7870.3628}; + angles[]={6.2448711,2.9773345,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6575; + type="Land_fort_rampart"; + atlOffset=8.392334e-05; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={2134.113,51.444023,7862.8071}; + angles[]={6.2465348,1.6683527,0.010000871}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6576; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item107 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.7271,51.849964,7860.1987}; + angles[]={6.2615213,3.50102,0.036650803}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6610; + type="Land_fort_rampart"; + atlOffset=0.0023727417; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={2164.7178,51.861332,7863.5854}; + angles[]={6.2033553,3.5009995,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6611; + type="Land_fort_rampart"; + atlOffset=0.00015258789; + }; + class Item109 + { + dataType="Object"; + class PositionInfo + { + position[]={2126.811,50.228256,7838.0464}; + angles[]={6.2698536,0.35958627,0.018328698}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6554; + type="Land_Garbage_square5_F"; + }; + class Item110 + { + dataType="Object"; + class PositionInfo + { + position[]={2156.2832,51.888859,7868.438}; + angles[]={6.2432065,0.3594076,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6580; + type="Land_Garbage_square5_F"; + atlOffset=3.0517578e-05; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={2137.6433,51.510391,7866.1563}; + angles[]={6.2432065,0.35935572,0.015002378}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6581; + type="Land_Garbage_square5_F"; + atlOffset=3.4332275e-05; + }; + class Item112 + { + dataType="Object"; + class PositionInfo + { + position[]={2169.3413,51.474129,7854.1362}; + angles[]={6.2598572,0.35873723,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6614; + type="Land_Garbage_square5_F"; + atlOffset=0.0001373291; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={2163.8774,51.346619,7856.1733}; + angles[]={6.2598572,0.35845542,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6615; + type="Land_Garbage_square5_F"; + atlOffset=0.0001373291; + }; + class Item114 + { + dataType="Object"; + class PositionInfo + { + position[]={2137.8381,51.914577,7866.332}; + angles[]={6.2432065,0.35934064,0.015002378}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6579; + type="Land_GarbageBags_F"; + atlOffset=6.4849854e-05; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={2125.5776,50.435783,7839.0405}; + angles[]={6.2698536,5.3337684,0.018328698}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6555; + type="Land_GarbagePallet_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={2157.1399,50.839981,7829.6953}; + angles[]={0.0033296358,0.35968241,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6598; + type="Land_HelipadCircle_F"; + atlOffset=3.8146973e-06; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.4827,54.386982,7842.2461}; + angles[]={0,1.93032,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=6553; + type="Land_LampShabby_F"; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.4705,51.762539,7836.6304}; + angles[]={6.278182,0.35977605,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6608; + type="MetalBarrel_burning_F"; + atlOffset=-2.6702881e-05; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.1711,51.514465,7861.6274}; + angles[]={6.2432065,4.548151,0.015018263}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6591; + type="Land_MetalCase_01_small_F"; + atlOffset=-1.5258789e-05; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={2158.4246,51.42181,7857.1377}; + angles[]={6.2615213,5.0717068,6.2531857}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6592; + type="Land_MetalCase_01_small_F"; + atlOffset=-0.00020599365; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={2144.1646,51.552509,7861.8306}; + angles[]={6.2432065,4.548151,0.015018263}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6593; + type="Land_MetalCase_01_small_F"; + atlOffset=1.5258789e-05; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={2156.5964,51.494442,7857.9585}; + angles[]={6.2615213,5.0717068,6.2531857}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6594; + type="Land_MetalCase_01_small_F"; + atlOffset=-0.00020599365; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={2147.3328,50.906994,7852.1553}; + angles[]={6.2648568,4.2745633,0.014998405}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6589; + type="Land_Pallet_F"; + atlOffset=-0.00024414063; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={2148.3574,51.116001,7850.6182}; + angles[]={6.2648535,2.4528408,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6584; + type="Land_Pallets_F"; + atlOffset=0.0013313293; + }; + class Item125 + { + dataType="Object"; + class PositionInfo + { + position[]={2157.5178,51.455395,7852.2207}; + angles[]={6.2648535,0.35724416,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6596; + type="Land_BarrelEmpty_F"; + atlOffset=-0.00076293945; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={2131.0027,51.599159,7836.4712}; + angles[]={6.2731848,3.5011623,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6548; + type="Land_Tank_rust_F"; + atlOffset=0.00018692017; + }; + class Item127 + { + dataType="Object"; + class PositionInfo + { + position[]={2140.8721,51.054794,7850.2451}; + angles[]={6.2598572,1.4066994,0.013327583}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6560; + type="Land_Sack_F"; + atlOffset=0.00016021729; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={2141.2903,50.886864,7850.6318}; + angles[]={6.2598572,1.6684988,0.013327583}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6571; + type="Land_Sack_EP1"; + atlOffset=3.8146973e-06; + }; + class Item129 + { + dataType="Object"; + class PositionInfo + { + position[]={2154.8423,52.291004,7870.3613}; + angles[]={6.2432065,0.3594076,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6590; + type="Land_Sacks_heap_F"; + atlOffset=0.00030899048; + }; + class Item130 + { + dataType="Object"; + class PositionInfo + { + position[]={2143.2559,52.725441,7861.5918}; + angles[]={6.2432065,6.1189642,0.015002378}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6573; + type="CampEast_EP1"; + atlOffset=0.00098800659; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={2157.3181,52.650894,7857.0996}; + angles[]={6.2615213,0.35936972,6.2531939}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6574; + type="CampEast_EP1"; + atlOffset=0.0013580322; + }; + class Item132 + { + dataType="Object"; + class PositionInfo + { + position[]={2143.6836,52.244572,7815.5645}; + angles[]={0.0099949092,0.88320309,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6543; + type="RU_WarfareBVehicleServicePoint"; + atlOffset=0.00073623657; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={2163.1213,52.250557,7850.6733}; + angles[]={6.2648568,4.2862048,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6616; + type="WaterPump_01_forest_F"; + atlOffset=-0.0022125244; + }; + class Item134 + { + dataType="Object"; + class PositionInfo + { + position[]={2168.5071,51.472664,7856.9609}; + angles[]={6.2598572,3.5010183,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6619; + type="CUP_hromada_beden_dekorativniX"; + }; + class Item135 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.0303,51.088871,7849.5327}; + angles[]={6.2598543,1.9249383,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6558; + type="Land_WoodenTable_large_F"; + atlOffset=-3.8146973e-06; + }; + class Item136 + { + dataType="Object"; + class PositionInfo + { + position[]={2144.0515,51.111305,7848.7612}; + angles[]={6.2598543,1.9249575,0.019999012}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6559; + type="Land_WoodenTable_large_F"; + }; + class Item137 + { + dataType="Object"; + class PositionInfo + { + position[]={2216.218,53.597412,7833.4517}; + angles[]={6.2748561,1.4225608,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6654; + type="Land_Ammobox_rounds_F"; + atlOffset=7.6293945e-06; + }; + class Item138 + { + dataType="Object"; + class PositionInfo + { + position[]={2216.4717,53.61554,7833.7539}; + angles[]={6.2731848,4.0405025,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6655; + type="Land_Ammobox_rounds_F"; + atlOffset=3.8146973e-06; + }; + class Item139 + { + dataType="Object"; + class PositionInfo + { + position[]={2217.1746,53.554562,7833.8789}; + angles[]={6.2731848,1.9464849,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6653; + type="CUP_ammobednaX"; + }; + class Item140 + { + dataType="Object"; + class PositionInfo + { + position[]={2197.9075,52.91238,7845.2617}; + angles[]={6.2731848,3.5167413,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6630; + type="Land_fort_bagfence_long"; + atlOffset=0.00031280518; + }; + class Item141 + { + dataType="Object"; + class PositionInfo + { + position[]={2190.7546,52.571758,7846.2012}; + angles[]={6.2698536,5.0874724,0.049959254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6631; + type="Land_fort_bagfence_long"; + atlOffset=0.00029754639; + }; + class Item142 + { + dataType="Object"; + class PositionInfo + { + position[]={2208.5676,53.515522,7844.0127}; + angles[]={6.2715225,0.37523341,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6642; + type="Land_fort_bagfence_long"; + atlOffset=0.0002746582; + }; + class Item143 + { + dataType="Object"; + class PositionInfo + { + position[]={2211.3564,53.670017,7842.9126}; + angles[]={6.2715225,0.37539253,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6643; + type="Land_fort_bagfence_long"; + atlOffset=0.00027084351; + }; + class Item144 + { + dataType="Object"; + class PositionInfo + { + position[]={2213.5413,53.65263,7818.1416}; + angles[]={6.2815294,1.9462347,0.056606073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6665; + type="Land_fort_bagfence_long"; + atlOffset=0.00067901611; + }; + class Item145 + { + dataType="Object"; + class PositionInfo + { + position[]={2198.7874,52.875233,7811.7344}; + angles[]={0.0050033992,3.5167918,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6666; + type="Land_fort_bagfence_long"; + atlOffset=0.00076293945; + }; + class Item146 + { + dataType="Object"; + class PositionInfo + { + position[]={2216.6016,53.861916,7828.6191}; + angles[]={6.2815294,5.0877156,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6639; + type="Land_fort_bagfence_corner"; + atlOffset=0.0004119873; + }; + class Item147 + { + dataType="Object"; + class PositionInfo + { + position[]={2205.6465,53.333462,7843.4204}; + angles[]={6.2715225,5.0874901,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6640; + type="Land_fort_bagfence_corner"; + atlOffset=0.00038146973; + }; + class Item148 + { + dataType="Object"; + class PositionInfo + { + position[]={2196.572,52.764378,7813.9492}; + angles[]={0.0050033992,0.37508458,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6661; + type="Land_fort_bagfence_corner"; + atlOffset=0.00067520142; + }; + class Item149 + { + dataType="Object"; + class PositionInfo + { + position[]={2194.3201,52.672863,7847.7485}; + angles[]={6.2731848,0.37513238,0.046633169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6628; + type="Land_fort_bagfence_round"; + atlOffset=0.00022506714; + }; + class Item150 + { + dataType="Object"; + class PositionInfo + { + position[]={2218.2544,54.254791,7832.8237}; + angles[]={6.2731848,3.5171833,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6645; + type="Land_PaperBox_closed_F"; + atlOffset=0.00099563599; + }; + class Item151 + { + dataType="Object"; + class PositionInfo + { + position[]={2218.8025,54.302155,7834.2134}; + angles[]={6.2731848,1.9464849,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6646; + type="Land_PaperBox_closed_F"; + atlOffset=0.00066757202; + }; + class Item152 + { + dataType="Object"; + class PositionInfo + { + position[]={2209.4495,53.708504,7810.501}; + angles[]={0.0049914722,0.37552825,0.066567369}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6667; + type="Land_PaperBox_closed_F"; + atlOffset=0.0011863708; + }; + class Item153 + { + dataType="Object"; + class PositionInfo + { + position[]={2208.8528,53.676353,7808.9902}; + angles[]={0.0049914722,1.9463964,0.066567369}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6668; + type="Land_PaperBox_closed_F"; + atlOffset=0.001247406; + }; + class Item154 + { + dataType="Object"; + class PositionInfo + { + position[]={2214.8772,54.559223,7836.1821}; + angles[]={6.2731848,4.564332,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6636; + type="Land_CamoNetVar_EAST"; + atlOffset=0.00062942505; + }; + class Item155 + { + dataType="Object"; + class PositionInfo + { + position[]={2207.4424,54.05476,7814.2749}; + angles[]={0,6.1350718,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6657; + type="Land_CamoNetVar_EAST"; + atlOffset=0.0018234253; + }; + class Item156 + { + dataType="Object"; + class PositionInfo + { + position[]={2213.4265,54.538261,7821.5967}; + angles[]={0,5.0876508,0.054943435}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6660; + type="Land_Misc_Cargo1D"; + atlOffset=0.0019187927; + }; + class Item157 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.8965,53.44281,7811.1206}; + angles[]={0.0049914722,5.0875602,0.053281568}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6664; + type="Misc_concrete_High"; + atlOffset=-1.9073486e-05; + }; + class Item158 + { + dataType="Object"; + class PositionInfo + { + position[]={2189.2893,52.297268,7841.1304}; + angles[]={6.276526,5.8729,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6634; + type="Land_CratesPlastic_F"; + atlOffset=0.00020599365; + }; + class Item159 + { + dataType="Object"; + class PositionInfo + { + position[]={2214.4617,54.190594,7840.231}; + angles[]={6.2731848,3.5169878,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6644; + type="Land_CratesWooden_F"; + atlOffset=0.00080871582; + }; + class Item160 + { + dataType="Object"; + class PositionInfo + { + position[]={2222.1917,54.01228,7833.2554}; + angles[]={6.2731848,5.0880775,0.068226837}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6637; + type="Land_fort_rampart"; + }; + class Item161 + { + dataType="Object"; + class PositionInfo + { + position[]={2218.1536,53.84523,7842.7734}; + angles[]={6.2715178,3.5170557,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6638; + type="Land_fort_rampart"; + atlOffset=0.00012207031; + }; + class Item162 + { + dataType="Object"; + class PositionInfo + { + position[]={2213.4075,53.416706,7811.3257}; + angles[]={0.014998405,5.0879393,0.056606073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6658; + type="Land_fort_rampart"; + atlOffset=0.00022506714; + }; + class Item163 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.8875,52.904396,7807.2915}; + angles[]={0.0049914722,0.37552825,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6659; + type="Land_fort_rampart"; + atlOffset=0.00024032593; + }; + class Item164 + { + dataType="Object"; + class PositionInfo + { + position[]={2189.4963,52.109398,7840.6367}; + angles[]={6.276526,1.9459093,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6629; + type="Land_Garbage_square5_F"; + atlOffset=3.0517578e-05; + }; + class Item165 + { + dataType="Object"; + class PositionInfo + { + position[]={2214.1089,53.416855,7834.9014}; + angles[]={6.2748561,1.9460522,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6641; + type="Land_Garbage_square5_F"; + atlOffset=3.4332275e-05; + }; + class Item166 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.9041,52.781036,7817.8896}; + angles[]={0,1.9461387,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6662; + type="Land_Garbage_square5_F"; + atlOffset=4.9591064e-05; + }; + class Item167 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.675,52.986034,7817.9927}; + angles[]={0,1.9461387,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6663; + type="Land_GarbagePallet_F"; + atlOffset=0.00038528442; + }; + class Item168 + { + dataType="Object"; + class PositionInfo + { + position[]={2194.5801,52.267761,7830.7021}; + angles[]={6.2748489,1.9460678,0.054944519}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6656; + type="Land_HelipadCircle_F"; + }; + class Item169 + { + dataType="Object"; + class PositionInfo + { + position[]={2212.7683,53.772812,7840.3296}; + angles[]={6.2731848,2.9934568,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6651; + type="Land_MetalBarrel_F"; + atlOffset=-4.9591064e-05; + }; + class Item170 + { + dataType="Object"; + class PositionInfo + { + position[]={2213.0286,53.796398,7841.127}; + angles[]={6.2731848,3.5165272,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6652; + type="Land_MetalBarrel_F"; + atlOffset=-5.3405762e-05; + }; + class Item171 + { + dataType="Object"; + class PositionInfo + { + position[]={2202.4465,53.087093,7816.4194}; + angles[]={0,4.3024731,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6673; + type="Land_MetalBarrel_F"; + }; + class Item172 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.2839,53.131752,7816.3745}; + angles[]={0,4.8254609,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6674; + type="Land_MetalBarrel_F"; + }; + class Item173 + { + dataType="Object"; + class PositionInfo + { + position[]={2213.1443,53.787083,7839.501}; + angles[]={6.2731848,5.611383,0.059927464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6650; + type="Land_MetalBarrel_empty_F"; + atlOffset=-5.3405762e-05; + }; + class Item174 + { + dataType="Object"; + class PositionInfo + { + position[]={2202.7446,53.102989,7815.731}; + angles[]={0,0.63719875,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6672; + type="Land_MetalBarrel_empty_F"; + }; + class Item175 + { + dataType="Object"; + class PositionInfo + { + position[]={2191.0796,52.246048,7841.0918}; + angles[]={6.2731905,5.8621316,0.049958061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6633; + type="Land_Pallet_F"; + atlOffset=-2.6702881e-05; + }; + class Item176 + { + dataType="Object"; + class PositionInfo + { + position[]={2209.9187,53.805248,7813.5088}; + angles[]={0,3.7788548,0.056606073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6671; + type="Land_Pallet_vertical_F"; + atlOffset=-3.0517578e-05; + }; + class Item177 + { + dataType="Object"; + class PositionInfo + { + position[]={2189.5522,52.387238,7840.0908}; + angles[]={6.276526,4.0403047,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6632; + type="Land_Pallets_F"; + atlOffset=0.00028991699; + }; + class Item178 + { + dataType="Object"; + class PositionInfo + { + position[]={2189.937,52.501125,7841.8018}; + angles[]={6.276526,1.9455775,0.04164169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6635; + type="Land_BarrelEmpty_F"; + atlOffset=-4.5776367e-05; + }; + class Item179 + { + dataType="Object"; + class PositionInfo + { + position[]={2219.2065,54.104706,7836.5952}; + angles[]={6.2731848,6.1352754,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6649; + type="Land_Sack_F"; + atlOffset=0.00040435791; + }; + class Item180 + { + dataType="Object"; + class PositionInfo + { + position[]={2210.5339,53.533829,7814.3203}; + angles[]={0,3.7789421,0.056606073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6670; + type="Land_Pallets_stack_F"; + atlOffset=-2.2888184e-05; + }; + class Item181 + { + dataType="Object"; + class PositionInfo + { + position[]={2205.6775,52.836159,7817.5845}; + angles[]={0,5.3495312,0.053282689}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6669; + type="Land_WoodenBox_F"; + atlOffset=2.2888184e-05; + }; + class Item182 + { + dataType="Object"; + class PositionInfo + { + position[]={2219.728,54.217381,7835.7002}; + angles[]={6.2731848,5.0880775,0.061589338}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6647; + type="Fort_Crate_wood"; + atlOffset=0.00049591064; + }; + class Item183 + { + dataType="Object"; + class PositionInfo + { + position[]={2220.0642,54.252018,7837.0674}; + angles[]={6.2731848,1.4228859,0.064908728}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6648; + type="Fort_Crate_wood"; + atlOffset=0.00051498413; + }; + class Item184 + { + dataType="Object"; + class PositionInfo + { + position[]={2174.2554,52.992722,7803.8774}; + angles[]={0.014998405,3.5159142,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6693; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.0016975403; + }; + class Item185 + { + dataType="Object"; + class PositionInfo + { + position[]={2174.6426,52.986393,7805.2026}; + angles[]={0.014998405,1.9451177,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6700; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.0017051697; + }; + class Item186 + { + dataType="Object"; + class PositionInfo + { + position[]={2187.3728,52.837109,7792.4331}; + angles[]={0.019996032,4.5629148,0.031656861}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6679; + type="Barrel4"; + atlOffset=0.00020980835; + }; + class Item187 + { + dataType="Object"; + class PositionInfo + { + position[]={2187.7168,52.815044,7794.0879}; + angles[]={0.018331951,4.5628366,0.031656861}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6680; + type="Barrel4"; + atlOffset=0.00022125244; + }; + class Item188 + { + dataType="Object"; + class PositionInfo + { + position[]={2187.9285,52.808727,7794.7983}; + angles[]={0.018331951,4.5628366,0.031656861}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6690; + type="Barrel4"; + atlOffset=0.00022888184; + }; + class Item189 + { + dataType="Object"; + class PositionInfo + { + position[]={2187.198,52.845402,7791.7422}; + angles[]={0.019996032,2.7303193,0.031656861}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6678; + type="Barrel1"; + atlOffset=0.00022125244; + }; + class Item190 + { + dataType="Object"; + class PositionInfo + { + position[]={2178.707,52.53286,7787.5376}; + angles[]={0.036650803,0.37438688,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6677; + type="Land_fort_bagfence_long"; + atlOffset=0.00053024292; + }; + class Item191 + { + dataType="Object"; + class PositionInfo + { + position[]={2175.9167,52.420204,7788.6338}; + angles[]={0.02999169,0.37432784,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6682; + type="Land_fort_bagfence_long"; + atlOffset=0.00054931641; + }; + class Item192 + { + dataType="Object"; + class PositionInfo + { + position[]={2178.1475,52.124866,7805.2139}; + angles[]={0.014998405,3.5158546,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6694; + type="Land_fort_bagfence_long"; + atlOffset=0.0006980896; + }; + class Item193 + { + dataType="Object"; + class PositionInfo + { + position[]={2175.5896,52.021088,7806.2207}; + angles[]={0.013332055,0.37432131,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6695; + type="Land_fort_bagfence_long"; + atlOffset=0.00069046021; + }; + class Item194 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.3967,51.970051,7802.978}; + angles[]={0.019999012,5.0835567,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6785; + type="Land_fort_bagfence_long"; + }; + class Item195 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.4504,51.952301,7805.7446}; + angles[]={0.014998405,1.9420279,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6786; + type="Land_fort_bagfence_long"; + }; + class Item196 + { + dataType="Object"; + class PositionInfo + { + position[]={2171.2668,51.992359,7800.1675}; + angles[]={0.019999012,5.0835567,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6787; + type="Land_fort_bagfence_long"; + }; + class Item197 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.1589,52.01926,7797.3794}; + angles[]={0.021664379,5.0835567,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6788; + type="Land_fort_bagfence_long"; + }; + class Item198 + { + dataType="Object"; + class PositionInfo + { + position[]={2181.999,52.608604,7787.7192}; + angles[]={0.036650803,5.086647,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6676; + type="Land_fort_bagfence_corner"; + atlOffset=0.00063705444; + }; + class Item199 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.5828,52.286213,7790.8955}; + angles[]={0.02999169,0.37436259,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6681; + type="Land_fort_bagfence_corner"; + atlOffset=0.00053787231; + }; + class Item200 + { + dataType="Object"; + class PositionInfo + { + position[]={2190.6313,52.599258,7802.165}; + angles[]={0.011667843,3.5105247,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6685; + type="Land_fort_bagfence_corner"; + atlOffset=0.0026054382; + }; + class Item201 + { + dataType="Object"; + class PositionInfo + { + position[]={2188.0857,52.48745,7803.1606}; + angles[]={0.011667843,1.9429514,0.038314536}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6686; + type="Land_fort_bagfence_corner"; + }; + class Item202 + { + dataType="Object"; + class PositionInfo + { + position[]={2183.6458,52.164139,7799.8979}; + angles[]={0.018331951,3.7776172,0.031660628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6689; + type="Body"; + atlOffset=0.00042724609; + }; + class Item203 + { + dataType="Object"; + class PositionInfo + { + position[]={2181.8794,52.004059,7806.8398}; + angles[]={0.014998405,3.7767851,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6698; + type="Body"; + atlOffset=0.00074768066; + }; + class Item204 + { + dataType="Object"; + class PositionInfo + { + position[]={2180.1846,51.948425,7806.9697}; + angles[]={0.014998405,2.9913869,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6699; + type="Body"; + atlOffset=0.00072860718; + }; + class Item205 + { + dataType="Object"; + class PositionInfo + { + position[]={2191.6208,52.49044,7795.082}; + angles[]={0.014998405,5.0846171,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6684; + type="Land_fort_rampart"; + }; + class Item206 + { + dataType="Object"; + class PositionInfo + { + position[]={2181.384,51.602463,7798.7329}; + angles[]={0.018331951,5.0866141,0.03165498}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6691; + type="RU_WarfareBFieldhHospital"; + atlOffset=3.8146973e-06; + }; + class Item207 + { + dataType="Object"; + class PositionInfo + { + position[]={2188.3767,53.420372,7797.5322}; + angles[]={0.014998405,1.6812426,0.034986377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6687; + type="Land_FieldToilet_F"; + atlOffset=-0.00077438354; + }; + class Item208 + { + dataType="Object"; + class PositionInfo + { + position[]={2187.7769,53.426537,7795.8037}; + angles[]={0.018331951,1.1576612,0.031656861}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6688; + type="Land_FieldToilet_F"; + atlOffset=-0.00087738037; + }; + class Item209 + { + dataType="Object"; + class PositionInfo + { + position[]={2174.97,52.245548,7795.4678}; + angles[]={0.021664379,0.6361534,0.028327573}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6683; + type="MetalBarrel_burning_F"; + atlOffset=0.00026321411; + }; + class Item210 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.9561,52.216839,7800.9565}; + angles[]={0.019999012,0.89776301,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6696; + type="Land_WaterBarrel_F"; + atlOffset=0.00016784668; + }; + class Item211 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.4597,52.206364,7802.2363}; + angles[]={0.019999012,1.1595623,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6697; + type="Land_WaterBarrel_F"; + atlOffset=0.00017547607; + }; + class Item212 + { + dataType="Object"; + class PositionInfo + { + position[]={2137.4734,51.995502,7803.7461}; + angles[]={0.023330973,5.5862083,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6711; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.00092315674; + }; + class Item213 + { + dataType="Object"; + class PositionInfo + { + position[]={2138.4875,51.695103,7805.2363}; + angles[]={0.024993783,5.8482237,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6718; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.00053787231; + }; + class Item214 + { + dataType="Object"; + class PositionInfo + { + position[]={2131.1636,50.887825,7812.1782}; + angles[]={0.0099949092,0.350436,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6703; + type="Barrel4"; + atlOffset=-3.8146973e-06; + }; + class Item215 + { + dataType="Object"; + class PositionInfo + { + position[]={2130.6406,50.868519,7812.709}; + angles[]={0.0099949092,0.35022014,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6704; + type="Barrel4"; + atlOffset=-6.1035156e-05; + }; + class Item216 + { + dataType="Object"; + class PositionInfo + { + position[]={2130.302,50.865894,7812.0684}; + angles[]={0.0099949092,2.182816,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6705; + type="Barrel4"; + atlOffset=-6.1035156e-05; + }; + class Item217 + { + dataType="Object"; + class PositionInfo + { + position[]={2139.9043,51.112598,7812.2695}; + angles[]={0.013332055,0.87418336,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6721; + type="Barrel1"; + }; + class Item218 + { + dataType="Object"; + class PositionInfo + { + position[]={2140.6194,51.124344,7812.729}; + angles[]={0.013332055,4.8011742,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6722; + type="Barrel1"; + atlOffset=-3.8146973e-06; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={2139.8789,51.101368,7813.064}; + angles[]={0.013332055,4.0157766,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6723; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={2132.4783,50.883797,7803.4443}; + angles[]={0.024996169,0.87386489,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6712; + type="Land_fort_bagfence_long"; + atlOffset=0.00024414063; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={2135.4573,50.99622,7802.0259}; + angles[]={0.023330973,5.5862536,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6709; + type="Land_fort_bagfence_corner"; + atlOffset=0.00025558472; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={2129.6682,50.78339,7804.6216}; + angles[]={0.024993783,5.5860705,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6710; + type="Land_fort_bagfence_corner"; + atlOffset=6.8664551e-05; + }; + class Item223 + { + dataType="Object"; + class PositionInfo + { + position[]={2135.9775,52.543427,7810.0161}; + angles[]={0.016666256,0.874035,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6708; + type="Land_CamoNetB_EAST"; + atlOffset=0.0010261536; + }; + class Item224 + { + dataType="Object"; + class PositionInfo + { + position[]={2142.145,50.909023,7803.3745}; + angles[]={0.024993783,5.5863805,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6719; + type="Land_fort_rampart"; + atlOffset=6.4849854e-05; + }; + class Item225 + { + dataType="Object"; + class PositionInfo + { + position[]={2136.9951,51.041828,7807.4482}; + angles[]={0.016666256,0.088636719,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6714; + type="FoldChair"; + atlOffset=3.8146973e-06; + }; + class Item226 + { + dataType="Object"; + class PositionInfo + { + position[]={2135.635,51.016079,7806.8164}; + angles[]={0.016666256,4.5392265,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6715; + type="FoldChair"; + atlOffset=3.8146973e-06; + }; + class Item227 + { + dataType="Object"; + class PositionInfo + { + position[]={2137.1897,51.063889,7806.4355}; + angles[]={0.016666256,1.6594332,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6716; + type="FoldChair"; + atlOffset=3.8146973e-06; + }; + class Item228 + { + dataType="Object"; + class PositionInfo + { + position[]={2136.168,51.044819,7805.9668}; + angles[]={0.024993783,4.0154119,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6717; + type="FoldChair"; + atlOffset=3.8146973e-06; + }; + class Item229 + { + dataType="Object"; + class PositionInfo + { + position[]={2136.4148,50.940952,7806.6245}; + angles[]={0.016666256,4.2774272,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6713; + type="FoldTable"; + atlOffset=3.8146973e-06; + }; + class Item230 + { + dataType="Object"; + class PositionInfo + { + position[]={2134.1184,51.905994,7813.0044}; + angles[]={0.0099949092,1.9212326,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6706; + type="PowGen_Big"; + atlOffset=0.00075149536; + }; + class Item231 + { + dataType="Object"; + class PositionInfo + { + position[]={2131.8169,50.799816,7809.0903}; + angles[]={0.016666256,0.35022336,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6702; + type="MetalBarrel_burning_F"; + atlOffset=-1.1444092e-05; + }; + class Item232 + { + dataType="Object"; + class PositionInfo + { + position[]={2139.9934,51.035046,7806.146}; + angles[]={0.016666256,3.2302296,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6724; + type="Land_Sacks_heap_F"; + atlOffset=0.00020217896; + }; + class Item233 + { + dataType="Object"; + class PositionInfo + { + position[]={2141.46,51.147583,7811.7778}; + angles[]={0.018331951,2.9683352,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6720; + type="Land_WaterBarrel_F"; + atlOffset=-7.6293945e-06; + }; + class Item234 + { + dataType="Object"; + class PositionInfo + { + position[]={2152.6477,53.320427,7778.4639}; + angles[]={0.058267377,4.7631016,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6727; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.013206482; + }; + class Item235 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.8191,52.042545,7788.9146}; + angles[]={0.044969428,1.6217059,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6748; + type="AmmoCrates_NoInteractive_Large"; + atlOffset=0.012382507; + }; + class Item236 + { + dataType="Object"; + class PositionInfo + { + position[]={2151.8389,52.919842,7780.0444}; + angles[]={0.058267377,4.5010662,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6730; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.013442993; + }; + class Item237 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.7405,51.822769,7787.4316}; + angles[]={0.056606073,3.192502,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6760; + type="AmmoCrates_NoInteractive_Small"; + atlOffset=0.012039185; + }; + class Item238 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.991,54.687965,7781.1719}; + angles[]={0.068227716,4.7634358,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6759; + type="Land_Antenna"; + atlOffset=0.013721466; + }; + class Item239 + { + dataType="Object"; + class PositionInfo + { + position[]={2135.6086,51.070461,7782.7612}; + angles[]={0.046633169,3.4541919,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6758; + type="RU_WarfareBBarracks"; + }; + class Item240 + { + dataType="Object"; + class PositionInfo + { + position[]={2121.4128,51.402187,7786.4434}; + angles[]={0.056606073,0.31270897,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6750; + type="Barrel4"; + atlOffset=0.010616302; + }; + class Item241 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.9824,51.422203,7785.9258}; + angles[]={0.056606073,2.9307027,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6751; + type="Barrel4"; + atlOffset=0.010658264; + }; + class Item242 + { + dataType="Object"; + class PositionInfo + { + position[]={2121.6826,51.444843,7785.7939}; + angles[]={0.056606073,1.098107,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6754; + type="Barrel1"; + atlOffset=0.010658264; + }; + class Item243 + { + dataType="Object"; + class PositionInfo + { + position[]={2120.8723,51.364162,7786.9077}; + angles[]={0.056606073,4.7632985,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6755; + type="Barrel1"; + atlOffset=0.010616302; + }; + class Item244 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.5864,51.712669,7787.9707}; + angles[]={0.044970755,0.30567941,0.023330973}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6729; + type="Land_fort_bagfence_long"; + atlOffset=0.019958496; + }; + class Item245 + { + dataType="Object"; + class PositionInfo + { + position[]={2143.3882,52.673328,7771.7983}; + angles[]={0.089758366,2.6605084,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6734; + type="Land_fort_bagfence_long"; + atlOffset=0.0020637512; + }; + class Item246 + { + dataType="Object"; + class PositionInfo + { + position[]={2121.147,50.963894,7791.2144}; + angles[]={0.041643124,5.5484686,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6745; + type="Land_fort_bagfence_long"; + atlOffset=0.011451721; + }; + class Item247 + { + dataType="Object"; + class PositionInfo + { + position[]={2139.1914,52.781017,7771.4614}; + angles[]={0.26215777,3.7163546,6.1261554}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6733; + type="Land_fort_bagfence_round"; + atlOffset=0.0050773621; + }; + class Item248 + { + dataType="Object"; + class PositionInfo + { + position[]={2112.5146,50.503056,7794.9092}; + angles[]={0.036650803,5.1796322,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6746; + type="Land_fort_bagfence_round"; + }; + class Item249 + { + dataType="Object"; + class PositionInfo + { + position[]={2115.1829,50.673721,7792.4312}; + angles[]={0.044969428,2.5616333,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6747; + type="Land_fort_bagfence_round"; + atlOffset=3.8146973e-06; + }; + class Item250 + { + dataType="Object"; + class PositionInfo + { + position[]={2150.3699,53.139557,7776.7202}; + angles[]={0.059928458,1.8833083,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6732; + type="Land_CamoNetVar_EAST"; + atlOffset=0.012729645; + }; + class Item251 + { + dataType="Object"; + class PositionInfo + { + position[]={2150.4436,52.18885,7777.0098}; + angles[]={0.059928458,1.8833103,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6731; + type="Land_fort_artillery_nest"; + atlOffset=0.015407562; + }; + class Item252 + { + dataType="Object"; + class PositionInfo + { + position[]={2117.4802,50.924686,7785.584}; + angles[]={0.056606073,1.6217059,0.023330973}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6756; + type="Land_fort_rampart"; + atlOffset=0.0099830627; + }; + class Item253 + { + dataType="Object"; + class PositionInfo + { + position[]={2123.5669,51.617619,7776.7866}; + angles[]={0.068227716,0.31285807,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6757; + type="Land_fort_rampart"; + atlOffset=0.010807037; + }; + class Item254 + { + dataType="Object"; + class PositionInfo + { + position[]={2124.991,52.478531,7780.5059}; + angles[]={0.068227716,3.2006352,0.023330973}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6752; + type="Land_FieldToilet_F"; + atlOffset=0.010101318; + }; + class Item255 + { + dataType="Object"; + class PositionInfo + { + position[]={2147.6729,52.438854,7777.0732}; + angles[]={0.059928458,6.0720987,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6736; + type="FoldChair"; + atlOffset=0.010688782; + }; + class Item256 + { + dataType="Object"; + class PositionInfo + { + position[]={2146.8398,52.456642,7776.5083}; + angles[]={0.064908728,5.5485001,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6737; + type="FoldChair"; + atlOffset=0.01064682; + }; + class Item257 + { + dataType="Object"; + class PositionInfo + { + position[]={2147.3511,52.544312,7775.5054}; + angles[]={0.089758366,3.1923051,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6738; + type="FoldChair"; + atlOffset=0.010440826; + }; + class Item258 + { + dataType="Object"; + class PositionInfo + { + position[]={2148.3552,52.542374,7775.7378}; + angles[]={0.089758366,4.5013022,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6739; + type="FoldChair"; + atlOffset=0.010379791; + }; + class Item259 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.8792,52.730602,7773.1323}; + angles[]={0.089758366,2.9307613,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6742; + type="FoldChair"; + atlOffset=0.01014328; + }; + class Item260 + { + dataType="Object"; + class PositionInfo + { + position[]={2151.5796,52.525738,7776.9448}; + angles[]={0.059928458,1.3597096,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6743; + type="FoldChair"; + atlOffset=0.010692596; + }; + class Item261 + { + dataType="Object"; + class PositionInfo + { + position[]={2151.4922,52.467125,7777.8931}; + angles[]={0.059928458,0.83611077,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6744; + type="FoldChair"; + atlOffset=0.010692596; + }; + class Item262 + { + dataType="Object"; + class PositionInfo + { + position[]={2147.5142,52.384354,7776.2832}; + angles[]={0.064908728,5.8102994,0.018331951}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6735; + type="FoldTable"; + atlOffset=0.010688782; + }; + class Item263 + { + dataType="Object"; + class PositionInfo + { + position[]={2145.8872,52.044151,7781.6792}; + angles[]={0.059928458,0.050439324,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6726; + type="MetalBarrel_burning_F"; + atlOffset=0.010677338; + }; + class Item264 + { + dataType="Object"; + class PositionInfo + { + position[]={2124.7568,51.213978,7788.6455}; + angles[]={0.04164169,0.57424498,0.02666023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6749; + type="Land_Pallets_stack_F"; + atlOffset=0.010601044; + }; + class Item265 + { + dataType="Object"; + class PositionInfo + { + position[]={2125.4063,51.331364,7786.5903}; + angles[]={0.056606073,2.6688895,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6761; + type="Land_Pallets_stack_F"; + atlOffset=0.010650635; + }; + class Item266 + { + dataType="Object"; + class PositionInfo + { + position[]={2150.7427,52.273499,7782.0869}; + angles[]={0.044969428,5.5481067,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6728; + type="Land_WaterBarrel_F"; + atlOffset=0.010532379; + }; + class Item267 + { + dataType="Object"; + class PositionInfo + { + position[]={2126.5095,51.950653,7779.1689}; + angles[]={0.068227716,5.5615072,0.023330973}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6753; + type="Land_WaterBarrel_F"; + atlOffset=0.010421753; + }; + class Item268 + { + dataType="Object"; + class PositionInfo + { + position[]={2151.9033,53.101761,7775.5493}; + angles[]={0.089758366,1.8841461,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6740; + type="Land_MapBoard_F"; + atlOffset=0.010131836; + }; + class Item269 + { + dataType="Object"; + class PositionInfo + { + position[]={2149.7839,53.246887,7773.4609}; + angles[]={0.089758366,2.6691654,0.019996032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6741; + type="MapBoard_altis_F"; + atlOffset=0.0097160339; + }; + class Item270 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.2241,52.119541,7802.2949}; + angles[]={0.019999012,5.4128752,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6771; + type="Barrel1"; + atlOffset=-3.8146973e-06; + }; + class Item271 + { + dataType="Object"; + class PositionInfo + { + position[]={2169.7922,52.119095,7801.6694}; + angles[]={0.019999012,3.5802796,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6772; + type="Barrel1"; + atlOffset=-7.6293945e-06; + }; + class Item272 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.4709,52.145847,7801.3506}; + angles[]={0.019999012,0.96228546,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6773; + type="Barrel1"; + }; + class Item273 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.9504,52.135086,7802.6074}; + angles[]={0.019999012,1.4858841,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6774; + type="Barrel1"; + atlOffset=-1.1444092e-05; + }; + class Item274 + { + dataType="Object"; + class PositionInfo + { + position[]={2170.2651,52.15432,7800.6182}; + angles[]={0.019999012,4.8892765,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6782; + type="Barrel1"; + atlOffset=-3.8146973e-06; + }; + class Item275 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.1914,51.883419,7807.5923}; + angles[]={0.013332055,3.5802345,0.034984674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6768; + type="Land_fort_bagfence_long"; + atlOffset=0.00024032593; + }; + class Item276 + { + dataType="Object"; + class PositionInfo + { + position[]={2165.9722,51.720829,7805.8164}; + angles[]={0.019996032,0.43869147,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6763; + type="Land_fort_bagfence_corner"; + atlOffset=0.00024795532; + }; + class Item277 + { + dataType="Object"; + class PositionInfo + { + position[]={2168.124,51.64912,7809.2246}; + angles[]={0.014998405,6.1981878,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6764; + type="Land_fort_bagfence_round"; + atlOffset=0.00022888184; + }; + class Item278 + { + dataType="Object"; + class PositionInfo + { + position[]={2162.2544,51.708267,7797.6182}; + angles[]={0.028325468,4.1038122,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6775; + type="Land_fort_bagfence_round"; + atlOffset=0.00087356567; + }; + class Item279 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.0405,52.186649,7804.9063}; + angles[]={0.019999012,2.0095339,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6769; + type="Land_PaperBox_closed_F"; + atlOffset=0.00036239624; + }; + class Item280 + { + dataType="Object"; + class PositionInfo + { + position[]={2168.1846,52.585415,7803.1396}; + angles[]={0.019999012,2.0095339,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6766; + type="Land_CamoNetVar_EAST"; + }; + class Item281 + { + dataType="Object"; + class PositionInfo + { + position[]={2166.1775,51.928516,7802.1812}; + angles[]={0.019999012,1.2242244,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6777; + type="Land_CampingChair_V2_F"; + }; + class Item282 + { + dataType="Object"; + class PositionInfo + { + position[]={2166.51,51.958012,7801.2056}; + angles[]={0.019999012,0.17699938,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6778; + type="Land_CampingChair_V2_F"; + atlOffset=7.6293945e-06; + }; + class Item283 + { + dataType="Object"; + class PositionInfo + { + position[]={2165.0134,51.917271,7801.0786}; + angles[]={0.019996032,4.6269784,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6779; + type="Land_CampingChair_V2_F"; + atlOffset=3.8146973e-06; + }; + class Item284 + { + dataType="Object"; + class PositionInfo + { + position[]={2164.6819,51.888294,7802.0571}; + angles[]={0.019996032,4.3656821,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6780; + type="Land_CampingChair_V2_F"; + atlOffset=-7.6293945e-06; + }; + class Item285 + { + dataType="Object"; + class PositionInfo + { + position[]={2169.3323,52.318012,7799.1416}; + angles[]={0.021664379,2.009438,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6783; + type="Land_CratesWooden_F"; + atlOffset=0.00044250488; + }; + class Item286 + { + dataType="Object"; + class PositionInfo + { + position[]={2164.0811,51.720749,7804.4927}; + angles[]={0.019996032,2.0091388,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6765; + type="Land_BarrelSand_F"; + atlOffset=-2.6702881e-05; + }; + class Item287 + { + dataType="Object"; + class PositionInfo + { + position[]={2171.1416,52.108173,7803.6592}; + angles[]={0.019999012,2.0093956,0.02999169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6770; + type="Land_WaterBarrel_F"; + atlOffset=-1.1444092e-05; + }; + class Item288 + { + dataType="Object"; + class PositionInfo + { + position[]={2165.4941,51.845882,7801.6172}; + angles[]={0.019996032,6.1926613,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6776; + type="Land_WoodenTable_large_F"; + atlOffset=3.8146973e-06; + }; + class Item289 + { + dataType="Object"; + class PositionInfo + { + position[]={2180.5872,54.56794,7763.5029}; + angles[]={0.16677012,5.0705843,0.026662467}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6997; + type="Land_fort_bagfence_long"; + atlOffset=0.027648926; + }; + class Item290 + { + dataType="Object"; + class PositionInfo + { + position[]={2161.4238,53.004452,7772.4346}; + angles[]={0.09141089,0.89543688,0.023328418}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7003; + type="Land_fort_bagfence_long"; + atlOffset=0.026687622; + }; + class Item291 + { + dataType="Object"; + class PositionInfo + { + position[]={2198.2314,53.23222,7786.6782}; + angles[]={0.068226837,5.0593138,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7016; + type="Land_fort_bagfence_long"; + atlOffset=0.052402496; + }; + class Item292 + { + dataType="Object"; + class PositionInfo + { + position[]={2173.9424,53.664776,7769.0933}; + angles[]={0.12435512,2.2008727,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6995; + type="Land_fort_bagfence_corner"; + atlOffset=0.028690338; + }; + class Item293 + { + dataType="Object"; + class PositionInfo + { + position[]={2178.3962,54.881767,7761.2661}; + angles[]={0.17647885,5.0685806,0.016662678}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6996; + type="Land_fort_bagfence_corner"; + }; + class Item294 + { + dataType="Object"; + class PositionInfo + { + position[]={2196.0801,53.179985,7784.4004}; + angles[]={0.03165498,5.0592451,0.073201545}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7015; + type="Land_fort_bagfence_corner"; + atlOffset=0.05242157; + }; + class Item295 + { + dataType="Object"; + class PositionInfo + { + position[]={2161.9399,52.590893,7776.2036}; + angles[]={0.054945603,5.6077151,0.021661628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7004; + type="Land_fort_bagfence_round"; + atlOffset=0.026512146; + }; + class Item296 + { + dataType="Object"; + class PositionInfo + { + position[]={2186.2092,56.085876,7758.188}; + angles[]={0.16677012,0.33745098,0.021664379}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7009; + type="Land_BagBunker_Large_F"; + }; + class Item297 + { + dataType="Object"; + class PositionInfo + { + position[]={2194.4033,53.406834,7779.6836}; + angles[]={0.073202357,5.9080262,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7012; + type="Land_CampingTable_F"; + atlOffset=0.052009583; + }; + class Item298 + { + dataType="Object"; + class PositionInfo + { + position[]={2172.1406,53.798492,7770.7202}; + angles[]={0.091411546,2.2011085,0.028325468}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7000; + type="Land_CratesWooden_F"; + atlOffset=0.031574249; + }; + class Item299 + { + dataType="Object"; + class PositionInfo + { + position[]={2192.877,55.580856,7761.7285}; + angles[]={0.16027936,6.101984,0.024996169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7007; + type="Land_CratesWooden_F"; + atlOffset=0.062747955; + }; + class Item300 + { + dataType="Object"; + class PositionInfo + { + position[]={2171.4697,55.312508,7760.209}; + angles[]={0.34112221,0.36419889,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7001; + type="Land_fort_rampart"; + atlOffset=3.8146973e-06; + }; + class Item301 + { + dataType="Object"; + class PositionInfo + { + position[]={2163.5039,53.517132,7766.2402}; + angles[]={0.13746068,0.89364028,0.011667843}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7002; + type="Land_fort_rampart"; + atlOffset=0.026237488; + }; + class Item302 + { + dataType="Object"; + class PositionInfo + { + position[]={2209.5413,55.626938,7764.6606}; + angles[]={0.1046163,5.5818071,0.054944519}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7010; + type="Land_fort_rampart"; + atlOffset=0.051578522; + }; + class Item303 + { + dataType="Object"; + class PositionInfo + { + position[]={2196.5481,55.563389,7758.8804}; + angles[]={0.16027974,6.1035771,0.058268402}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7011; + type="Land_fort_rampart"; + atlOffset=0.073787689; + }; + class Item304 + { + dataType="Object"; + class PositionInfo + { + position[]={2214.9353,54.8055,7778.1147}; + angles[]={0.06988623,4.5357733,0.069885373}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7022; + type="Land_fort_rampart"; + atlOffset=0.048145294; + }; + class Item305 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.9446,53.233032,7788.8555}; + angles[]={0.011667843,3.4887054,0.10296806}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7023; + type="Land_fort_rampart"; + atlOffset=0.052124023; + }; + class Item306 + { + dataType="Object"; + class PositionInfo + { + position[]={2193.5332,53.436935,7780.2314}; + angles[]={0.073202357,5.5814295,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7024; + type="Land_CampingChair_V1_F"; + atlOffset=0.052017212; + }; + class Item307 + { + dataType="Object"; + class PositionInfo + { + position[]={2194.7141,53.4716,7780.2417}; + angles[]={0.073202357,6.1064701,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7025; + type="Land_CampingChair_V1_F"; + atlOffset=0.052009583; + }; + class Item308 + { + dataType="Object"; + class PositionInfo + { + position[]={2198.0984,53.47644,7783.0103}; + angles[]={0.03165498,0.34685597,0.073201545}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7017; + type="GunrackTK_EP1"; + atlOffset=0.049858093; + }; + class Item309 + { + dataType="Object"; + class PositionInfo + { + position[]={2171.3069,53.393253,7771.3906}; + angles[]={0.091411546,4.8193111,0.028327573}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6998; + type="Land_MetalBarrel_F"; + atlOffset=0.025749207; + }; + class Item310 + { + dataType="Object"; + class PositionInfo + { + position[]={2171.9773,53.332294,7772.2632}; + angles[]={0.091411546,5.3428221,0.028327573}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=6999; + type="Land_MetalBarrel_F"; + atlOffset=0.025821686; + }; + class Item311 + { + dataType="Object"; + class PositionInfo + { + position[]={2204.2908,54.184685,7778.9092}; + angles[]={0.081486531,5.8439422,0.084796004}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7020; + type="Land_MetalBarrel_F"; + atlOffset=0.051994324; + }; + class Item312 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.7791,54.078976,7779.6709}; + angles[]={0.081486531,0.34577075,0.084796004}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7021; + type="Land_MetalBarrel_F"; + atlOffset=0.051990509; + }; + class Item313 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.8689,54.07439,7784.6548}; + angles[]={0.068226837,3.4878037,0.091412194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7026; + type="PowerGenerator"; + atlOffset=0.050827026; + }; + class Item314 + { + dataType="Object"; + class PositionInfo + { + position[]={2203.4619,55.626953,7772.4077}; + angles[]={0.098017827,2.4404697,0.074860021}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7005; + type="CampEast_EP1"; + atlOffset=0.06219101; + }; + class Item315 + { + dataType="Object"; + class PositionInfo + { + position[]={2192.4749,55.179615,7769.374}; + angles[]={0.11449757,3.2244759,0.029989703}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7006; + type="CampEast_EP1"; + atlOffset=0.061515808; + }; + class Item316 + { + dataType="Object"; + class PositionInfo + { + position[]={2176.3423,54.160381,7774.3169}; + angles[]={0.094715387,3.808928,0.024993783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7028; + type="CampEast_EP1"; + }; + class Item317 + { + dataType="Object"; + class PositionInfo + { + position[]={2197.0283,54.982872,7763.4194}; + angles[]={0.13418877,6.1045499,0.084796004}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7008; + type="Land_Tyres_F"; + atlOffset=0.054805756; + }; + class Item318 + { + dataType="Object"; + class PositionInfo + { + position[]={2202.5435,54.371174,7785.1729}; + angles[]={0.068226837,0.34630099,0.091412194}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7018; + type="Land_ToiletBox_F"; + atlOffset=0.050163269; + }; + class Item319 + { + dataType="Object"; + class PositionInfo + { + position[]={2200.7361,54.23037,7785.7666}; + angles[]={0.068226837,0.60936779,0.036649179}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7019; + type="Land_ToiletBox_F"; + atlOffset=0.050411224; + }; + class Item320 + { + dataType="Object"; + class PositionInfo + { + position[]={2204.4329,61.826389,7785.479}; + angles[]={0,0.34702921,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7013; + type="Land_TTowerSmall_2_F"; + atlOffset=0.1023674; + }; + class Item321 + { + dataType="Object"; + class PositionInfo + { + position[]={2198.0044,54.215603,7779.2017}; + angles[]={0.073202357,1.3936322,0.0814858}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7014; + type="MapBoard_stratis_F"; + atlOffset=0.052009583; + }; + }; + id=6994; + atlOffset=0.12051773; + }; + class Item218 + { + dataType="Logic"; + class PositionInfo + { + position[]={5467.3335,34.080002,10161.036}; + angles[]={0,5.2157054,0}; + }; + areaSize[]={8,0,15}; + flags=1; + id=7029; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item219 + { + dataType="Object"; + class PositionInfo + { + position[]={6074.7905,44.123535,11919.923}; + angles[]={6.2648535,2.0387301,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="base_boxspawn"; + }; + id=65; + type="Land_ClutterCutter_small_F"; + atlOffset=-3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item220 + { + dataType="Object"; + class PositionInfo + { + position[]={6093.0972,44.988987,11927.488}; + angles[]={6.2748561,2.0685148,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="huronspawn"; + }; + id=64; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item221 + { + dataType="Object"; + class PositionInfo + { + position[]={6071.6445,44.302074,11938.983}; + angles[]={6.2598543,2.0687208,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="littlebird_0"; + }; + id=63; + type="Land_ClutterCutter_small_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item222 + { + dataType="Object"; + class PositionInfo + { + position[]={6053.1572,43.808846,11948.502}; + angles[]={6.2581892,2.0701737,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="littlebird_1"; + }; + id=5688; + type="Land_ClutterCutter_small_F"; + atlOffset=3.8146973e-06; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item223 + { + dataType="Object"; + class PositionInfo + { + position[]={6081.2739,45.712971,11972.868}; + angles[]={6.2548599,4.3790483,0.033321146}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="startbase"; + }; + id=62; + type="Land_ClutterCutter_small_F"; + atlOffset=0.092575073; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item224 + { + dataType="Marker"; + position[]={7813.9946,130.3002,2147.4736}; + name="opfor_point_63"; + type="Empty"; + id=7031; + }; + class Item225 + { + dataType="Marker"; + position[]={7818.123,106.61121,2931.2966}; + name="opfor_point_64"; + type="Empty"; + id=7032; + atlOffset=7.6293945e-06; + }; + class Item226 + { + dataType="Marker"; + position[]={8093.5376,27.054695,4105.7114}; + name="opfor_point_65"; + type="Empty"; + id=7033; + atlOffset=1.9073486e-06; + }; + class Item227 + { + dataType="Marker"; + position[]={11504.842,145.02174,852.50073}; + name="opfor_point_66"; + type="Empty"; + id=7034; + }; + class Item228 + { + dataType="Marker"; + position[]={11313.405,149.53285,2794.7095}; + name="opfor_point_67"; + type="Empty"; + id=7035; + }; + class Item229 + { + dataType="Layer"; + name="Checkpoint Bravo"; + class Entities + { + items=33; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.124,20.507078,9789.7217}; + angles[]={6.2631893,2.5594904,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7036; + type="Land_PaperBox_closed_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={6739.3755,19.734983,9781.5479}; + angles[]={6.248199,2.5577576,6.1983886}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7037; + type="Land_fort_bagfence_long"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.9746,19.865116,9779.9697}; + angles[]={6.2515287,2.5564613,6.2166171}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7038; + type="Land_fort_bagfence_long"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={6729.1655,20.534761,9784.1094}; + angles[]={6.2448692,2.5568821,6.2199354}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7039; + type="Land_fort_bagfence_long"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.1714,20.378031,9783.335}; + angles[]={6.2448692,0.98616886,6.2199354}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7040; + type="Land_fort_bagfence_long"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={6740.2969,20.557457,9785.9922}; + angles[]={0.0033474891,4.3922749,6.1604714}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7041; + type="Land_HBarrier_Big_F"; + atlOffset=0.00071525574; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={6738.02,19.540985,9783.499}; + angles[]={6.248199,4.3921504,6.1983886}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7042; + type="Land_Pipes_small_F"; + atlOffset=0.00026130676; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={6738.8882,19.476749,9783.7715}; + angles[]={6.248199,0.98874766,6.1983886}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7043; + type="Land_Pipes_small_F"; + atlOffset=0.00026130676; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.2832,20.352219,9790.5791}; + angles[]={6.2631893,0.98878819,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7044; + type="GunrackTK_EP1"; + atlOffset=1.9073486e-06; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.46,20.421833,9784.2412}; + angles[]={6.2448692,5.698122,6.2199354}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7045; + type="Land_BarrelTrash_grey_F"; + atlOffset=-0.00080299377; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.9478,20.411976,9788.4688}; + angles[]={6.2631893,4.1302872,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7046; + type="Land_PaperBox_closed_F"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.8032,20.590912,9794.335}; + angles[]={6.2432065,0.98868996,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7047; + type="Land_Sacks_heap_F"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={6723.4565,21.678427,9794.6895}; + angles[]={6.2398791,2.5595846,6.2215962}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7048; + type="Land_Razorwire_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={6730.6851,21.355343,9798.25}; + angles[]={6.2415423,2.8197367,6.2149577}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7049; + type="Land_Razorwire_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={6727.1592,20.691545,9784.8848}; + angles[]={6.2448692,0.98489398,6.2199354}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7050; + type="Land_fort_bagfence_long"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.4155,21.224293,9790.3037}; + angles[]={6.248199,4.1303806,6.2132993}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7051; + type="Land_CamoNetVar_EAST"; + atlOffset=9.3460083e-05; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={6736.6929,21.113312,9793.0557}; + angles[]={6.2432065,4.1302824,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7052; + type="Land_HBarrier_Big_F"; + atlOffset=1.9073486e-06; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={6731.0273,21.705761,9796.2197}; + angles[]={6.2432079,2.8212857,6.2149587}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7053; + type="Land_HBarrier_Big_F"; + atlOffset=0.00048828125; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={6724.0464,22.008587,9792.5371}; + angles[]={6.2415423,5.7011771,6.2199364}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7054; + type="Land_HBarrier_Big_F"; + atlOffset=0.0024738312; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={6725.4414,22.785477,9789.0029}; + angles[]={0,0.98887759,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7055; + type="Land_BagBunker_Tower_F"; + atlOffset=-1.9073486e-06; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={6733.1279,20.675556,9795.0156}; + angles[]={6.2432065,5.7010789,6.1983895}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7056; + type="Land_Sacks_heap_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={6754.2793,19.793364,9808.2764}; + angles[]={6.2565231,1.3209338,6.183517}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7057; + type="Land_Sack_F"; + atlOffset=1.9073486e-06; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={6758.0942,19.267616,9804.2559}; + angles[]={6.2565231,1.0590781,6.1752734}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7058; + type="Land_fort_bagfence_long"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={6757.7529,19.442289,9809.498}; + angles[]={6.2581916,1.058789,6.1736259}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7059; + type="Land_fort_bagfence_long"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={6756.2412,20.438484,9807.7139}; + angles[]={6.2565231,5.771462,6.1752734}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7060; + type="Land_CamoNet_EAST"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={6753.3159,20.738518,9809.6309}; + angles[]={6.2565231,2.6298904,6.183517}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7061; + type="Land_HBarrier_Big_F"; + atlOffset=1.9073486e-06; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={6755.3354,19.282951,9807.9873}; + angles[]={6.2565231,5.5097241,6.183517}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7062; + type="Land_WoodenBox_F"; + atlOffset=0.00022888184; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={6753.0938,20.043205,9801.6289}; + angles[]={6.2033553,4.2010012,6.1719794}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7063; + type="Land_HBarrier_3_F"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={6754.8164,19.569202,9808.6846}; + angles[]={6.2565231,3.9389279,6.183517}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7064; + type="Land_Sack_EP1"; + atlOffset=-5.3405762e-05; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={6751.731,20.12711,9807.7158}; + angles[]={6.2681832,4.2006655,6.1719794}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7065; + type="GunrackTK_EP1"; + atlOffset=1.9073486e-06; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={6761.4238,18.74419,9793.0938}; + angles[]={6.2116408,2.6324482,6.2299027}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7066; + type="Land_Razorwire_F"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={6758.9302,19.410454,9798.5879}; + angles[]={6.2033553,5.7715368,6.2299018}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7067; + type="Land_BagBunker_Large_F"; + atlOffset=1.9073486e-06; + }; + class Item32 + { + dataType="Logic"; + class PositionInfo + { + position[]={6743.6177,19.614056,9797.6758}; + angles[]={6.2215972,5.7959719,6.2465363}; + }; + areaSize[]={20,0,30}; + flags=1; + id=633; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=7068; + atlOffset=-0.2109375; + }; + class Item230 + { + dataType="Layer"; + name="Checkpoint Charlie"; + class Entities + { + items=25; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1462.5892,58.584202,5546.6865}; + angles[]={6.2465363,0.82241911,0.078173891}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7069; + type="Land_CncBarrierMedium4_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.9194,57.938263,5542.4385}; + angles[]={6.2598543,5.2420716,0.044970755}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7070; + type="Land_Pallets_F"; + atlOffset=-3.8146973e-06; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.0946,58.841015,5547.3394}; + angles[]={6.2798557,0.82223326,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7071; + type="Land_CamoNet_EAST"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1459.3556,58.452114,5550.166}; + angles[]={0,0.82204717,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7072; + type="Land_CncBarrierMedium_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1458.171,58.356892,5551.6245}; + angles[]={0,0.82204717,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7073; + type="Land_CncBarrierMedium_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.0641,58.341797,5546.7217}; + angles[]={6.2798557,0.82223326,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7074; + type="Land_CratesShabby_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={1459.1339,58.283348,5547.9956}; + angles[]={6.2798557,3.9640381,0.044969428}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7075; + type="Land_CratesWooden_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={1458.318,58.096119,5549.772}; + angles[]={6.2465363,2.3932416,0.078173891}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7076; + type="Barrel1"; + atlOffset=-0.00094604492; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.6145,58.395927,5538.668}; + angles[]={0,6.0580349,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7077; + type="Land_CncBarrierMedium_F"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.8062,58.022705,5546.9048}; + angles[]={0,1.6074451,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7078; + type="Land_CncBarrierMedium_F"; + atlOffset=-3.8146973e-06; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={1459.7593,58.344975,5538.3711}; + angles[]={0,6.0580349,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7079; + type="Land_CncBarrierMedium_F"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.576,58.018074,5541.665}; + angles[]={6.278182,3.9641171,0.06988623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7080; + type="Barrel4"; + atlOffset=-0.00035476685; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.8721,57.78191,5544.2773}; + angles[]={6.2398806,5.7966685,0.069885373}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7081; + type="Barrel4"; + atlOffset=-0.0014762878; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.2607,57.336349,5540.561}; + angles[]={0.024993783,0.82251054,0.039979152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7082; + type="Land_fort_rampart"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.6622,58.019909,5540.8188}; + angles[]={6.278182,6.0585155,0.06988623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7083; + type="Barrel1"; + atlOffset=-0.00032043457; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.9418,57.971142,5541.1582}; + angles[]={6.278182,2.9168301,0.06988623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7084; + type="Barrel1"; + atlOffset=-0.00035476685; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.3569,57.69442,5545.2178}; + angles[]={6.2398806,1.0842792,0.069885373}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7085; + type="Fort_Crate_wood"; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.1696,57.682755,5543.0762}; + angles[]={6.278182,3.9635921,0.06988623}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7086; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-0.00025177002; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={1474.0916,60.097771,5526.4893}; + angles[]={0,3.9760313,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7087; + type="Land_BagBunker_Tower_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={1477.6843,58.978821,5522.1543}; + angles[]={0,2.4052343,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7088; + type="Land_CncBarrierMedium4_F"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={1481.1199,59.163136,5525.437}; + angles[]={0,2.143435,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7089; + type="Land_CncBarrierMedium_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={1480.0189,58.737228,5531.8618}; + angles[]={0,3.9760313,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7090; + type="Land_CncBarrierMedium4_F"; + atlOffset=0.00065612793; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={1468.246,58.432579,5521.0571}; + angles[]={0,3.9760313,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7092; + type="Land_CncBarrierMedium4_F"; + atlOffset=0.00065612793; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.4926,58.612907,5543.0483}; + angles[]={0,1.2837979,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7093; + type="Land_CncBarrierMedium_F"; + atlOffset=3.8146973e-06; + }; + class Item24 + { + dataType="Logic"; + class PositionInfo + { + position[]={1467.243,57.616489,5534.584}; + angles[]={6.2581921,0.8783893,0.028326694}; + }; + areaSize[]={25,0,35}; + flags=1; + id=656; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + }; + id=7091; + atlOffset=0.057529449; + }; + class Item231 + { + dataType="Layer"; + name="Checkpoint Delta"; + class Entities + { + items=50; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={7952.9185,2.122015,6991.4429}; + angles[]={0,5.4647832,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7095; + type="Land_fort_bagfence_long"; + atlOffset=0.59114802; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={7950.6611,2.9533958,6993.291}; + angles[]={0,5.4648175,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7096; + type="Land_CamoNetVar_EAST"; + atlOffset=0.0025959015; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={7950.1992,1.6121056,6985.979}; + angles[]={0,4.1557579,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7097; + type="Land_HBarrier_1_F"; + atlOffset=-5.9604645e-08; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={7946.833,2.071084,6989.8521}; + angles[]={0,0.22870794,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7098; + type="Land_GarbagePallet_F"; + atlOffset=0.43499994; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={7948.5537,2.2204719,6988.0938}; + angles[]={0,0.7522893,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7099; + type="Land_Pallets_stack_F"; + atlOffset=0.66174901; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={7960.9834,1.9306432,6996.6504}; + angles[]={6.1621137,5.4648571,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7100; + type="Land_Razorwire_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={7960.4683,2.1246593,7004.1523}; + angles[]={6.2000446,0.75223774,6.276526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7102; + type="Land_Razorwire_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={7954.8823,2.1014972,6993.542}; + angles[]={0,5.4648876,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7103; + type="Land_fort_bagfence_long"; + atlOffset=0.57530439; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={7956.0962,2.5413494,6999.8491}; + angles[]={0,3.8938122,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7104; + type="Land_BagBunker_Large_F"; + atlOffset=0.15199995; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={7959.4287,2.0719671,7009.6265}; + angles[]={0.0066682254,5.4854407,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7105; + type="Land_CncBarrier_F"; + atlOffset=-1.1920929e-07; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={7949.9946,2.4403419,6997.6855}; + angles[]={0,0.75225437,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7106; + type="Misc_concrete_High"; + atlOffset=-0.070352197; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={7947.1494,2.127265,7013.6118}; + angles[]={0.0066682254,5.4779,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7109; + type="Land_CncBarrier_F"; + atlOffset=-1.1920929e-07; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={7950.792,2.0706902,7017.564}; + angles[]={0.0083294781,5.4778056,6.2765174}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7110; + type="Land_CncBarrier_F"; + atlOffset=-1.1920929e-07; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={7941.2959,2.590445,7014.5894}; + angles[]={0,0.7460025,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7111; + type="Land_Razorwire_F"; + atlOffset=0.0059007406; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={7938.7085,3.0412135,7013.6792}; + angles[]={0,0.74338549,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7114; + type="Land_HBarrier_Big_F"; + atlOffset=0.0017361641; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={7940.4497,3.0053754,7007.8159}; + angles[]={0,2.3146987,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7115; + type="Land_HBarrier_Big_F"; + atlOffset=-0.013294101; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.582,2.3475156,7013.7632}; + angles[]={0,5.1974602,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7116; + type="Barrel1"; + atlOffset=0.47307909; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={7935.2598,2.2876267,7014.4985}; + angles[]={0,1.5322683,0}; + }; + side="Empty"; + class Attributes + { + skill=0.2; + }; + id=7117; + type="Barrel1"; + atlOffset=0.31490803; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={7943.2729,2.4915452,6992.3579}; + angles[]={0,4.1557512,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7121; + type="Land_HBarrier_1_F"; + atlOffset=-0.015999913; + }; + class Item19 + { + dataType="Logic"; + class PositionInfo + { + position[]={7934.1919,1.7674218,6993.4209}; + angles[]={6.2765183,0.79571307,0.0066671576}; + }; + areaSize[]={25,0,51}; + flags=1; + id=6374; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=2; + }; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={7937.0103,2.1365991,7003.0869}; + angles[]={0,5.454915,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7147; + type="Land_fort_bagfence_long"; + atlOffset=0.088964462; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={7937.3784,-22.030525,7009.5024}; + angles[]={0,2.3199258,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=7145; + type="land_nav_pier_c2_end"; + atlOffset=-5.8919144; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={7951.1782,-22.031876,6997.1797}; + angles[]={0,5.4615192,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=7146; + type="land_nav_pier_c2_end"; + atlOffset=-5.8327751; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.3135,2.0932026,6969.1997}; + angles[]={6.2581892,3.8882089,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7133; + type="Barrel4"; + atlOffset=-0.00069499016; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={7930.4219,2.1780248,6971.5244}; + angles[]={6.2581916,5.7207799,0.0050033992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7134; + type="Barrel4"; + atlOffset=-0.00074887276; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.4399,2.2242908,6977.3408}; + angles[]={6.2531958,2.3173394,0.0066682254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7129; + type="Barrel1"; + atlOffset=-0.00083458424; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.4619,2.0700545,6968.3623}; + angles[]={6.2581892,5.9826035,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7136; + type="Barrel1"; + atlOffset=-0.0006840229; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={7933.7192,2.0882807,6968.646}; + angles[]={6.2581892,2.8410106,6.2681832}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7137; + type="Barrel1"; + atlOffset=-0.00068414211; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={7918.2954,3.7771523,6989.7036}; + angles[]={0,0.74651808,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7140; + type="Land_BagBunker_Tower_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={7937.4448,2.8270507,6974.1704}; + angles[]={6.2531958,0.74659926,0.0066682254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7124; + type="Land_CamoNet_EAST"; + atlOffset=-1.1920929e-07; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={7935.3872,2.5130277,6977.8081}; + angles[]={0,0.74651808,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7125; + type="Land_CncBarrierMedium_F"; + atlOffset=-2.3841858e-07; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.0957,2.5179987,6979.1733}; + angles[]={0,0.74651808,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7126; + type="Land_CncBarrierMedium_F"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={7938.5073,2.2238069,6966.5142}; + angles[]={0,5.9825063,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7130; + type="Land_CncBarrierMedium_F"; + atlOffset=1.1920929e-07; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={7928.1055,2.4566622,6973.9863}; + angles[]={0,1.531916,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7131; + type="Land_CncBarrierMedium_F"; + atlOffset=1.1920929e-07; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={7936.6792,2.247951,6966.0776}; + angles[]={0,5.9825063,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7132; + type="Land_CncBarrierMedium_F"; + atlOffset=-1.1920929e-07; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={7911.2012,2.1870904,6990.1357}; + angles[]={0,5.1971078,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7142; + type="Land_CncBarrierMedium_F"; + atlOffset=-1.1920929e-07; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={7938.874,2.3841219,6974.5825}; + angles[]={0,0.74651808,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7122; + type="Land_CncBarrierMedium4_F"; + atlOffset=1.1920929e-07; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={7914.3354,2.4697978,6993.707}; + angles[]={0,5.4589076,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7141; + type="Land_CncBarrierMedium4_F"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={7912.8623,2.4078362,6983.8315}; + angles[]={0,0.74651808,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=7143; + type="Land_CncBarrierMedium4_F"; + atlOffset=0.00035142899; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={7936.2974,2.3329344,6974.481}; + angles[]={6.2531958,0.74659926,0.0066682254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7127; + type="Land_CratesShabby_F"; + atlOffset=-1.1920929e-07; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={7935.2754,2.3412266,6975.6797}; + angles[]={6.2531958,3.8881922,0.0066682254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7128; + type="Land_CratesWooden_F"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={7930.0239,1.6491469,6967.7813}; + angles[]={6.2815294,0.7466256,6.2648568}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7135; + type="Land_fort_rampart"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={7938.501,1.7786261,6970.3228}; + angles[]={6.2615237,5.1662951,6.256525}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7123; + type="Land_Pallets_F"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={7931.7896,1.9838783,6970.4243}; + angles[]={6.2581916,3.8877702,0.0050033992}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7139; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-0.00057327747; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={7929.7461,2.0976586,6972.4551}; + angles[]={6.278194,1.0083449,0.0049914722}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=7138; + type="Fort_Crate_wood"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={7947.1777,-18.894413,6973.894}; + angles[]={0,3.8938887,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=7148; + type="Land_PierWooden_02_16m_F"; + atlOffset=-1.1643012; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={7934.062,2.1912079,7014.2896}; + angles[]={0.0036606207,2.3183174,6.2797923}; + }; + side="Empty"; + class Attributes + { + }; + id=7152; + type="Land_BagFence_Long_F"; + atlOffset=0.55939651; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={7932.0415,2.240581,7012.146}; + angles[]={0.0036606207,2.3183174,6.2797923}; + }; + side="Empty"; + class Attributes + { + }; + id=7153; + type="Land_BagFence_Long_F"; + atlOffset=0.9049378; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={7930.0513,2.2407112,7010.0298}; + angles[]={0.0036606207,2.3183174,6.2797923}; + }; + side="Empty"; + class Attributes + { + }; + id=7154; + type="Land_BagFence_Long_F"; + atlOffset=0.63215172; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={7952.9141,-0.78977013,6987.4053}; + angles[]={0,2.3038347,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=7156; + type="Land_GH_Stairs_F"; + atlOffset=-3.2047632; + }; + }; + id=7118; + atlOffset=-2.1691654; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=6027; + item1=6025; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=6028; + item1=6025; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=6026; + item1=6025; + class CustomData + { + type="Sync"; + }; + }; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/onPlayerRespawn.sqf b/kp_liberation.brf_sumava/onPlayerRespawn.sqf new file mode 100644 index 0000000..c98d840 --- /dev/null +++ b/kp_liberation.brf_sumava/onPlayerRespawn.sqf @@ -0,0 +1,46 @@ +waitUntil {!isNil "KPLIB_initServer"}; + +params ["_newUnit", "_oldUnit"]; + +if (isNil "GRLIB_respawn_loadout") then { + removeAllWeapons player; + removeAllItems player; + removeAllAssignedItems player; + removeVest player; + removeBackpack player; + removeHeadgear player; + removeGoggles player; + player linkItem "ItemMap"; + player linkItem "ItemCompass"; + player linkItem "ItemWatch"; + player linkItem "ItemRadio"; +} else { + sleep 4; + [player, GRLIB_respawn_loadout] call KPLIB_fnc_setLoadout; +}; + +[] call KPLIB_fnc_addActionsPlayer; + +// Support Module handling +if ([ + false, + player isEqualTo ([] call KPLIB_fnc_getCommander) || (getPlayerUID player) in KP_liberation_suppMod_whitelist, + true +] select KP_liberation_suppMod) then { + waitUntil {!isNil "KPLIB_suppMod_req" && !isNil "KPLIB_suppMod_arty" && time > 5}; + + // Remove link to corpse, if respawned + if (!isNull _oldUnit) then { + KPLIB_suppMod_req synchronizeObjectsRemove [_oldUnit]; + _oldUnit synchronizeObjectsRemove [KPLIB_suppMod_req]; + }; + + // Link player to support modules + [player, KPLIB_suppMod_req, KPLIB_suppMod_arty] call BIS_fnc_addSupportLink; + + // Init modules, if newly joined and not client host + if (isNull _oldUnit && !isServer) then { + [KPLIB_suppMod_req] call BIS_fnc_moduleSupportsInitRequester; + [KPLIB_suppMod_arty] call BIS_fnc_moduleSupportsInitProvider; + }; +}; diff --git a/kp_liberation.brf_sumava/pbo.json b/kp_liberation.brf_sumava/pbo.json new file mode 100644 index 0000000..28dfbc7 --- /dev/null +++ b/kp_liberation.brf_sumava/pbo.json @@ -0,0 +1,11 @@ +{ + "compress": { + "exclude": [ + ], + "include": [ + "\\.xml$" + ] + }, + "headers": [ + ] +} diff --git a/kp_liberation.brf_sumava/presets/blufor/3cbBAF_des.sqf b/kp_liberation.brf_sumava/presets/blufor/3cbBAF_des.sqf new file mode 100644 index 0000000..cd382a9 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/3cbBAF_des.sqf @@ -0,0 +1,387 @@ +/* + Needed Mods: + - 3CB BAF Equipment + - 3CB BAF Vehicle + - 3CB BAF Weapons + - 3CB BAF Units + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM"; // This is the mobile respawn (and medical) truck. +huron_typename = "UK3CB_BAF_Merlin_HC3_18_DDPM"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "UK3CB_BAF_Crewman_DDPM"; // This defines the crew for vehicles. +pilot_classname = "UK3CB_BAF_HeliPilot_Army_DDPM"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "UK3CB_BAF_Wildcat_AH1_TRN_8A_DDPM"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["UK3CB_BAF_Pointman_DDPM",15,0,0], // Rifleman (Light) + ["UK3CB_BAF_Rifleman_DDPM",20,0,0], // Rifleman + ["UK3CB_BAF_LAT_ILAW_DDPM",30,0,0], // Rifleman (AT) + ["UK3CB_BAF_Grenadier_DDPM",25,0,0], // Grenadier + ["UK3CB_BAF_LSW_DDPM",25,0,0], // Autorifleman + ["UK3CB_BAF_MGLMG_DDPM",35,0,0], // Heavygunner + ["UK3CB_BAF_Marksman_DDPM",30,0,0], // Marksman + ["UK3CB_BAF_MAT_DDPM",50,10,0], // AT Specialist + ["B_soldier_AA_F",50,10,0], // AA Specialist (None in BAF mod.) + ["UK3CB_BAF_Medic_DDPM",30,0,0], // Combat Life Saver + ["UK3CB_BAF_Engineer_DDPM",30,0,0], // Engineer + ["UK3CB_BAF_Explosive_DDPM",30,0,0], // Explosives Specialist + ["UK3CB_BAF_Pointman_DDPM_REC",20,0,0], // Recon Rifleman + ["UK3CB_BAF_FAC_DDPM_REC",30,0,0], // Recon Rifleman (Grenadier) + ["UK3CB_BAF_MGLMG_DDPM_REC",35,0,0], // Recon Machine Gunner + ["UK3CB_BAF_Marksman_DDPM_REC",30,0,0], // Recon Marksman + ["UK3CB_BAF_Medic_DDPM_REC",30,0,0], // Recon Combat Life Saver + ["UK3CB_BAF_Explosive_DDPM_REC",30,0,0], // Recon Explosives Specialist + ["UK3CB_BAF_Sniper_DDPM_Ghillie_L115",70,5,0], // Sniper (L115) + ["UK3CB_BAF_Sniper_DDPM_Ghillie_L135",70,5,0], // Sniper (L135) + ["UK3CB_BAF_Spotter_DDPM_Ghillie_L129",70,5,0], // Sniper (L129) + ["UK3CB_BAF_Spotter_DDPM_Ghillie_L85",20,0,0], // Spotter (L85) + ["UK3CB_BAF_Crewman_DDPM",10,0,0], // Crewman + ["UK3CB_BAF_HeliCrew_DDPM",10,0,0], // Helicopter Crew + ["UK3CB_BAF_HeliMedic_DDPM",20,0,0], // Helicopter Crew + ["UK3CB_BAF_HeliPilot_Army_DDPM",10,0,0], // Helicopter Pilot + ["UK3CB_BAF_Pilot_Army",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["B_LSV_01_unarmed_F",75,0,50], // Prowler + ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) + ["UK3CB_BAF_LandRover_Soft_FFR_Sand_A_DDPM",75,0,50], // Land Rover SoftTop + ["UK3CB_BAF_LandRover_Hard_FFR_Sand_A_DDPM",75,0,50], // Land Rover HardTop + ["UK3CB_BAF_LandRover_WMIK_HMG_FFR_Sand_A_DDPM",100,40,50], // Land Rover WMIK (HMG) + ["UK3CB_BAF_LandRover_WMIK_GMG_FFR_Sand_A_DDPM",100,60,50], // Land Rover WMIK (GMG) + ["UK3CB_BAF_LandRover_WMIK_Milan_FFR_Sand_A_DDPM",100,100,50], // Land Rover WMIK (Milan) + ["UK3CB_BAF_Jackal2_L2A1_D_DDPM",100,80,50], // Jackal 2 (HMG) + ["UK3CB_BAF_Jackal2_GMG_D_DDPM",100,100,50], // Jackal 2 (GMG) + ["UK3CB_BAF_Coyote_Passenger_L111A1_D_DDPM",100,80,50], // Coyote Passenger (HMG) + ["UK3CB_BAF_Coyote_Passenger_L134A1_D_DDPM",100,100,50], // Coyote Passenger (GMG) + ["UK3CB_BAF_Coyote_Logistics_L111A1_D_DDPM",100,80,50], // Coyote Logistics (HMG) + ["UK3CB_BAF_Coyote_Logistics_L134A1_D_DDPM",100,100,50], // Coyote Logistics (GMG) + ["rhsusf_M1230a1_usarmy_d",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1237_M2_usarmy_d",125,40,75], // M1237 (HMG) + ["rhsusf_M1237_MK19_usarmy_d",125,60,75], // M1237 (GMG) + ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_d",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_d",125,40,75], // M977A4 BKIT (HMG) + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["RHS_M2A2_BUSKI",300,200,150], // M2A2ODS (Busk I) + ["RHS_M2A3_BUSKIII",300,250,175], // M2A3 (Busk III) + ["RHS_M6",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_d",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiid_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["UK3CB_BAF_Wildcat_AH1_TRN_8A_DDPM",225,0,125], // Wildcat AH1 8 Transport (Unarmed) + ["UK3CB_BAF_Wildcat_HMA2_TRN_8A_DDPM",250,0,125], // Wildcat HMA2 8 Transport (Unarmed) + ["UK3CB_BAF_Wildcat_AH1_CAS_6C_DDPM",275,200,150], // Wildcat AH1 6 (CAS/AT) + ["UK3CB_BAF_Wildcat_AH1_CAS_8C_DDPM",275,200,150], // Wildcat AH1 8 (CAS/AT) + ["UK3CB_BAF_Apache_AH1_DDPM",500,500,200], // Apache AH 1 (Multi-Role) + ["RHS_AH64D",750,750,250], // AH-64D (Multi-Role) + ["RHS_UH60M2_d",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M_d",250,80,150], // UH-60M + ["RHS_UH60M_MEV2_d",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["UK3CB_BAF_Merlin_HC3_32_DDPM",300,0,175], // Merlin HC3 32 + ["UK3CB_BAF_Merlin_HC3_CSAR_DDPM",300,80,175], // Merlin HC3 CSAR (Armed) + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["UK3CB_BAF_Static_L7A2_Deployed_Low_DDPM",25,25,0], // L7A2 LMG (Low) + ["UK3CB_BAF_Static_L7A2_Deployed_Mid_DDPM",25,25,0], // L7A2 LMG (Mid) + ["UK3CB_BAF_Static_L7A2_Deployed_High_DDPM",25,25,0], // L7A2 LMG (High) + ["UK3CB_BAF_Static_L111A1_Deployed_Low_DDPM",25,40,0], // L111A1 HMG (Low) + ["UK3CB_BAF_Static_L111A1_Deployed_Mid_DDPM",25,40,0], // L111A1 HMG (Mid) + ["UK3CB_BAF_Static_L111A1_Deployed_High_DDPM",25,40,0], // L111A1 HMG (High) + ["UK3CB_BAF_Static_L134A1_Deployed_Low_DDPM",25,60,0], // L134A1 GMG (Low) + ["UK3CB_BAF_Static_L134A1_Deployed_Mid_DDPM",25,60,0], // L134A1 GMG (Med) + ["UK3CB_BAF_Static_L134A1_Deployed_High_DDPM",25,60,0], // L134A1 GMG (High) + ["RHS_TOW_TriPod_D",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_D",50,100,0], // Stinger (AA) + ["UK3CB_BAF_Static_L16_Deployed_DDPM",80,150,0], // Mk6 Mortar + ["RHS_M119_D",100,200,0] // M119A2 +]; + +buildings = [ + ["Land_Cargo_House_V3_F",0,0,0], + ["Land_Cargo_Patrol_V3_F",0,0,0], + ["Land_Cargo_Tower_V3_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,75], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["UK3CB_BAF_Box_WpsStatic",300,300,0], + ["UK3CB_BAF_Box_L16_Ammo",0,0,0], + ["UK3CB_BAF_Box_M6_Ammo",0,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_d",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_d",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_d",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "UK3CB_BAF_FT_DDPM", + "UK3CB_BAF_Pointman_DDPM", + "UK3CB_BAF_Pointman_DDPM", + "UK3CB_BAF_LAT_ILAW_DDPM", + "UK3CB_BAF_Grenadier_DDPM", + "UK3CB_BAF_LSW_DDPM", + "UK3CB_BAF_LSW_DDPM", + "UK3CB_BAF_Marksman_DDPM", + "UK3CB_BAF_Medic_DDPM", + "UK3CB_BAF_Engineer_DDPM" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "UK3CB_BAF_FT_DDPM", + "UK3CB_BAF_LAT_ILAW_DDPM", + "UK3CB_BAF_LAT_ILAW_DDPM", + "UK3CB_BAF_Grenadier_DDPM", + "UK3CB_BAF_LSW_DDPM", + "UK3CB_BAF_LSW_DDPM", + "UK3CB_BAF_MGLMG_DDPM", + "UK3CB_BAF_Marksman_DDPM", + "UK3CB_BAF_Medic_DDPM", + "UK3CB_BAF_Engineer_DDPM" +]; + +// AT specialists squad. +blufor_squad_at = [ + "UK3CB_BAF_FT_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_MAT_DDPM", + "UK3CB_BAF_MAT_DDPM", + "UK3CB_BAF_MAT_DDPM", + "UK3CB_BAF_Medic_DDPM", + "UK3CB_BAF_Rifleman_DDPM" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "UK3CB_BAF_FT_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "UK3CB_BAF_Medic_DDPM", + "UK3CB_BAF_Rifleman_DDPM" +]; + +// Force recon squad. +blufor_squad_recon = [ + "UK3CB_BAF_SC_DDPM_REC", + "UK3CB_BAF_Pointman_DDPM_REC", + "UK3CB_BAF_Pointman_DDPM_REC", + "UK3CB_BAF_FAC_DDPM_REC", + "UK3CB_BAF_MGLMG_DDPM_REC", + "UK3CB_BAF_Marksman_DDPM_REC", + "UK3CB_BAF_Sniper_DDPM_Ghillie_L115", + "UK3CB_BAF_Spotter_DDPM_Ghillie_L85", + "UK3CB_BAF_Medic_DDPM_REC", + "UK3CB_BAF_Engineer_DDPM" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM", + "UK3CB_BAF_Rifleman_DDPM" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "RHS_M2A3_BUSKIII", // M2A3 (Busk III) + "RHS_M6", // M6A2 + "rhsusf_m1a1aim_tuski_d", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiid_usarmy", // M1A2SEPv1 (Tusk II) + "rhsusf_m109d_usarmy", // M109A6 + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "UK3CB_BAF_Wildcat_AH1_CAS_6C_DDPM", // Wildcat AH1 6 (CAS/AT) + "UK3CB_BAF_Wildcat_AH1_CAS_8C_DDPM", // Wildcat AH1 8 (CAS/AT) + "UK3CB_BAF_Apache_AH1_DDPM", // Apache AH 1 (Multi-Role) + "RHS_AH64D", // AH-64D (Multi-Role) + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F", // V-44 X Blackfish (Armed) + "RHS_M119_D" // M119A2 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/3cbBAF_mtp.sqf b/kp_liberation.brf_sumava/presets/blufor/3cbBAF_mtp.sqf new file mode 100644 index 0000000..9ae29e6 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/3cbBAF_mtp.sqf @@ -0,0 +1,387 @@ +/* + Needed Mods: + - 3CB BAF Equipment + - 3CB BAF Vehicle + - 3CB BAF Weapons + - 3CB BAF Units + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP"; // This is the mobile respawn (and medical) truck. +huron_typename = "UK3CB_BAF_Merlin_HC3_18_MTP"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "UK3CB_BAF_Crewman_MTP"; // This defines the crew for vehicles. +pilot_classname = "UK3CB_BAF_HeliPilot_Army_MTP"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "UK3CB_BAF_Wildcat_AH1_TRN_8A_MTP"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["UK3CB_BAF_Pointman_MTP",15,0,0], // Rifleman (Light) + ["UK3CB_BAF_Rifleman_MTP",20,0,0], // Rifleman + ["UK3CB_BAF_LAT_ILAW_MTP",30,0,0], // Rifleman (AT) + ["UK3CB_BAF_Grenadier_MTP",25,0,0], // Grenadier + ["UK3CB_BAF_LSW_MTP",25,0,0], // Autorifleman + ["UK3CB_BAF_MGLMG_MTP",35,0,0], // Heavygunner + ["UK3CB_BAF_Marksman_MTP",30,0,0], // Marksman + ["UK3CB_BAF_MAT_MTP",50,10,0], // AT Specialist + ["B_soldier_AA_F",50,10,0], // AA Specialist (None in BAF mod.) + ["UK3CB_BAF_Medic_MTP",30,0,0], // Combat Life Saver + ["UK3CB_BAF_Engineer_MTP",30,0,0], // Engineer + ["UK3CB_BAF_Explosive_MTP",30,0,0], // Explosives Specialist + ["UK3CB_BAF_Pointman_MTP_REC",20,0,0], // Recon Rifleman + ["UK3CB_BAF_FAC_MTP_REC",30,0,0], // Recon Rifleman (Grenadier) + ["UK3CB_BAF_MGLMG_MTP_REC",35,0,0], // Recon Machine Gunner + ["UK3CB_BAF_Marksman_MTP_REC",30,0,0], // Recon Marksman + ["UK3CB_BAF_Medic_MTP_REC",30,0,0], // Recon Combat Life Saver + ["UK3CB_BAF_Explosive_MTP_REC",30,0,0], // Recon Explosives Specialist + ["UK3CB_BAF_Sniper_MTP_Ghillie_L115",70,5,0], // Sniper (L115) + ["UK3CB_BAF_Sniper_MTP_Ghillie_L135",70,5,0], // Sniper (L135) + ["UK3CB_BAF_Spotter_MTP_Ghillie_L129",70,5,0], // Sniper (L129) + ["UK3CB_BAF_Spotter_MTP_Ghillie_L85",20,0,0], // Spotter (L85) + ["UK3CB_BAF_Crewman_MTP",10,0,0], // Crewman + ["UK3CB_BAF_HeliCrew_MTP",10,0,0], // Helicopter Crew + ["UK3CB_BAF_HeliMedic_MTP",20,0,0], // Helicopter Crew + ["UK3CB_BAF_HeliPilot_Army_MTP",10,0,0], // Helicopter Pilot + ["UK3CB_BAF_Pilot_Army",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["B_LSV_01_unarmed_F",75,0,50], // Prowler + ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) + ["UK3CB_BAF_LandRover_Soft_FFR_Green_A_MTP",75,0,50], // Land Rover SoftTop + ["UK3CB_BAF_LandRover_Hard_FFR_Green_A_MTP",75,0,50], // Land Rover HardTop + ["UK3CB_BAF_LandRover_WMIK_HMG_FFR_Green_A_MTP",100,40,50], // Land Rover WMIK (HMG) + ["UK3CB_BAF_LandRover_WMIK_GMG_FFR_Green_A_MTP",100,60,50], // Land Rover WMIK (GMG) + ["UK3CB_BAF_LandRover_WMIK_Milan_FFR_Green_A_MTP",100,100,50], // Land Rover WMIK (Milan) + ["UK3CB_BAF_Jackal2_L2A1_W_MTP",100,80,50], // Jackal 2 (HMG) + ["UK3CB_BAF_Jackal2_GMG_W_MTP",100,100,50], // Jackal 2 (GMG) + ["UK3CB_BAF_Coyote_Passenger_L111A1_W_MTP",100,80,50], // Coyote Passenger (HMG) + ["UK3CB_BAF_Coyote_Passenger_L134A1_W_MTP",100,100,50], // Coyote Passenger (GMG) + ["UK3CB_BAF_Coyote_Logistics_L111A1_W_MTP",100,80,50], // Coyote Logistics (HMG) + ["UK3CB_BAF_Coyote_Logistics_L134A1_W_MTP",100,100,50], // Coyote Logistics (GMG) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1237_M2_usarmy_wd",125,40,75], // M1237 (HMG) + ["rhsusf_M1237_MK19_usarmy_wd",125,60,75], // M1237 (GMG) + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_wd",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_wd",125,40,75], // M977A4 BKIT (HMG) + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) + ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) + ["RHS_M6_wd",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_wd",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiiwd_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["rhsusf_m109_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["UK3CB_BAF_Wildcat_AH1_TRN_8A_MTP",225,0,125], // Wildcat AH1 8 Transport (Unarmed) + ["UK3CB_BAF_Wildcat_HMA2_TRN_8A_MTP",250,0,125], // Wildcat HMA2 8 Transport (Unarmed) + ["UK3CB_BAF_Wildcat_AH1_CAS_6C_MTP",275,200,150], // Wildcat AH1 6 (CAS/AT) + ["UK3CB_BAF_Wildcat_AH1_CAS_8C_MTP",275,200,150], // Wildcat AH1 8 (CAS/AT) + ["UK3CB_BAF_Apache_AH1_MTP",500,500,200], // Apache AH 1 (Multi-Role) + ["RHS_AH64D_wd",750,750,250], // AH-64D (Multi-Role) + ["RHS_UH60M2",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M",250,80,150], // UH-60M + ["RHS_UH60M_MEV2",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["UK3CB_BAF_Merlin_HC3_32_MTP",300,0,175], // Merlin HC3 32 + ["UK3CB_BAF_Merlin_HC3_CSAR_MTP",300,80,175], // Merlin HC3 CSAR (Armed) + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["UK3CB_BAF_Static_L7A2_Deployed_Low_MTP",25,25,0], // L7A2 LMG (Low) + ["UK3CB_BAF_Static_L7A2_Deployed_Mid_MTP",25,25,0], // L7A2 LMG (Mid) + ["UK3CB_BAF_Static_L7A2_Deployed_High_MTP",25,25,0], // L7A2 LMG (High) + ["UK3CB_BAF_Static_L111A1_Deployed_Low_MTP",25,40,0], // L111A1 HMG (Low) + ["UK3CB_BAF_Static_L111A1_Deployed_Mid_MTP",25,40,0], // L111A1 HMG (Mid) + ["UK3CB_BAF_Static_L111A1_Deployed_High_MTP",25,40,0], // L111A1 HMG (High) + ["UK3CB_BAF_Static_L134A1_Deployed_Low_MTP",25,60,0], // L134A1 GMG (Low) + ["UK3CB_BAF_Static_L134A1_Deployed_Mid_MTP",25,60,0], // L134A1 GMG (Med) + ["UK3CB_BAF_Static_L134A1_Deployed_High_MTP",25,60,0], // L134A1 GMG (High) + ["RHS_TOW_TriPod_WD",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_WD",50,100,0], // Stinger (AA) + ["UK3CB_BAF_Static_L16_Deployed_MTP",80,150,0], // Mk6 Mortar + ["RHS_M119_WD",100,200,0] // M119A2 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,75], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["UK3CB_BAF_Box_WpsStatic",300,300,0], + ["UK3CB_BAF_Box_L16_Ammo",0,0,0], + ["UK3CB_BAF_Box_M6_Ammo",0,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_wd",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "UK3CB_BAF_FT_MTP", + "UK3CB_BAF_Pointman_MTP", + "UK3CB_BAF_Pointman_MTP", + "UK3CB_BAF_LAT_ILAW_MTP", + "UK3CB_BAF_Grenadier_MTP", + "UK3CB_BAF_LSW_MTP", + "UK3CB_BAF_LSW_MTP", + "UK3CB_BAF_Marksman_MTP", + "UK3CB_BAF_Medic_MTP", + "UK3CB_BAF_Engineer_MTP" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "UK3CB_BAF_FT_MTP", + "UK3CB_BAF_LAT_ILAW_MTP", + "UK3CB_BAF_LAT_ILAW_MTP", + "UK3CB_BAF_Grenadier_MTP", + "UK3CB_BAF_LSW_MTP", + "UK3CB_BAF_LSW_MTP", + "UK3CB_BAF_MGLMG_MTP", + "UK3CB_BAF_Marksman_MTP", + "UK3CB_BAF_Medic_MTP", + "UK3CB_BAF_Engineer_MTP" +]; + +// AT specialists squad. +blufor_squad_at = [ + "UK3CB_BAF_FT_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_MAT_MTP", + "UK3CB_BAF_MAT_MTP", + "UK3CB_BAF_MAT_MTP", + "UK3CB_BAF_Medic_MTP", + "UK3CB_BAF_Rifleman_MTP" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "UK3CB_BAF_FT_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "UK3CB_BAF_Medic_MTP", + "UK3CB_BAF_Rifleman_MTP" +]; + +// Force recon squad. +blufor_squad_recon = [ + "UK3CB_BAF_SC_MTP_REC", + "UK3CB_BAF_Pointman_MTP_REC", + "UK3CB_BAF_Pointman_MTP_REC", + "UK3CB_BAF_FAC_MTP_REC", + "UK3CB_BAF_MGLMG_MTP_REC", + "UK3CB_BAF_Marksman_MTP_REC", + "UK3CB_BAF_Sniper_MTP_Ghillie_L115", + "UK3CB_BAF_Spotter_MTP_Ghillie_L85", + "UK3CB_BAF_Medic_MTP", + "UK3CB_BAF_Engineer_MTP" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP", + "UK3CB_BAF_Rifleman_MTP" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "RHS_M2A3_BUSKIII_wd", // M2A3 (Busk III) + "RHS_M6_wd", // M6A2 + "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) + "rhsusf_m109_usarmy", // M109A6 + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "UK3CB_BAF_Wildcat_AH1_CAS_6C_MTP", // Wildcat AH1 6 (CAS/AT) + "UK3CB_BAF_Wildcat_AH1_CAS_8C_MTP", // Wildcat AH1 8 (CAS/AT) + "UK3CB_BAF_Apache_AH1_MTP", // Apache AH 1 (Multi-Role) + "RHS_AH64D_wd", // AH-64D (Multi-Role) + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F", // V-44 X Blackfish (Armed) + "RHS_M119_WD" // M119A2 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Desert.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Desert.sqf new file mode 100644 index 0000000..592a201 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Desert.sqf @@ -0,0 +1,330 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - Qinetix's Titus +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_B_T810_Repair_CZ_DES"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_LR_Ambulance_CZ_D"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_CZ_Crew_DES"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_CZ_Pilot_DES"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_T810_Unarmed_CZ_DES"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_CZ_Soldier_DES",15,0,0], // Rifleman + ["CUP_B_CZ_Soldier_backpack_DES",20,0,0], // Rifleman (Backpack) + ["CUP_B_CZ_Soldier_RPG_DES",30,0,0], // Rifleman (RPG) + ["CUP_B_CZ_Soldier_805_GL_DES",25,0,0], // Grenadier + ["CUP_B_CZ_Soldier_AR_DES",25,0,0], // Automatic Rifleman + ["CUP_B_CZ_Soldier_MG_DES",35,0,0], // Machinegunner + ["CUP_B_CZ_Soldier_Marksman_DES",30,0,0], // Marksman (SVD) + ["CUP_B_CZ_Soldier_AT_DES",50,10,0], // Rifleman (AT) + ["B_soldier_AA_F",50,10,0], // AA Specialist + ["CUP_B_CZ_Medic_DES",30,0,0], // Medic + ["CUP_B_CZ_Engineer_DES",30,0,0], // Engineer + ["CUP_B_CZ_ExplosiveSpecialist_DES",30,0,0], // Explosive Specialist + ["CUP_B_CZ_SpecOps_Scout_DES",20,0,0], // SF Scout + ["CUP_B_CZ_SpecOps_Exp_DES",30,0,0], // SF Saboteur + ["CUP_B_CZ_SpecOps_Recon_DES",30,0,0], // SF Recon + ["CUP_B_CZ_SpecOps_DES",40,0,0], // SF Rifleman + ["CUP_B_CZ_SpecOps_MG_DES",30,0,0], // SF Machinegunner + ["CUP_B_CZ_SpecOps_TL_DES",30,0,0], // SF Team Leader + ["CUP_B_CZ_Sniper_DES",70,5,0], // Sniper + ["CUP_B_CZ_Spotter_DES",20,0,0], // Spotter + ["CUP_B_CZ_Crew_DES",10,0,0], // Crewman + ["CUP_B_CZ_Soldier_DES",20,0,0], // Para Trooper + ["CUP_B_CZ_Pilot_DES",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_UAZ_Unarmed_ACR",100,0,50], // UAZ + ["CUP_B_UAZ_Open_ACR",100,0,50], // UAZ (Open) + ["CUP_B_UAZ_MG_ACR",100,40,50], // UAZ (DShKM) + ["CUP_B_UAZ_AGS30_ACR",100,60,50], // UAZ (AGS-30) + ["CUP_B_UAZ_SPG9_ACR",100,80,50], // UAZ (SPG-9) + ["CUP_B_UAZ_METIS_ACR",100,100,50], // UAZ (Metis-M) + ["CUP_B_LR_Transport_CZ_D",200,0,50], // Land Rover 110 (Transport) Desert + ["CUP_B_LR_MG_CZ_D",200,40,50], // Land Rover 110 (M2) Desert + ["CUP_B_LR_Special_CZ_D",250,100,50], // Land Rover 110 (Special) Desert + ["CUP_B_HMMWV_Ambulance_ACR",225,0,50], // HMMWV (Ambulance) + ["CUP_B_HMMWV_DSHKM_GPK_ACR",225,60,50], // HMMWV M1114 DSHKM + ["CUP_B_HMMWV_M2_GPK_ACR",225,60,50], // HMMWV M1114 M2 + ["CUP_B_HMMWV_AGS_GPK_ACR",225,80,50], // HMMWV M1114 AGS + ["CUP_B_Dingo_CZ_Des",250,40,100], // Dingo 2 (MG) (Desert) + ["CUP_B_Dingo_GL_CZ_Des",250,60,100], // Dingo 2 (GL) (Desert) + ["QIN_Titus_DES",350,0,50], // Nexter Titus + ["QIN_Titus_arx20_DES",350,225,50], // Nexter Titus ARX20 + ["CUP_B_T810_Unarmed_CZ_DES",125,0,75], // Tatra T810 (Covered) + ["CUP_B_T810_Armed_CZ_DES",125,60,75] // Tatra T810 (MG/Covered) +]; + +heavy_vehicles = [ + ["CUP_B_BRDM2_HQ_CZ_Des",200,25,200], // BRDM-2 (HQ) (Desert) + ["CUP_B_BRDM2_CZ_Des",200,200,200], // BRDM-2 (Desert) + ["I_APC_Wheeled_03_cannon_F",500,400,300], // Pandur II + ["CUP_I_BMP1_TK_GUE",300,300,200], // BVP-1 + ["CUP_B_BMP2_CZ_Des",400,350,200], // BVP-2 + ["CUP_B_BMP2_AMB_CZ_Des",350,0,200], // BVP-2 Ambulance + ["B_APC_Tracked_01_AA_F",500,450,400], // IFV-6a Cheetah + ["CUP_O_T72_RU",600,500,400], // T-72 + ["CUP_B_T72_CZ",800,500,450] // T-72M4CZ +]; + +air_vehicles = [ + ["CUP_B_Mi171Sh_ACR",700,600,500], // Mi-171Sh (Rockets) + ["CUP_B_Mi35_Dynamic_CZ",850,1000,550], // Mi-35 + ["CUP_B_Mi35_Dynamic_CZ_Dark",850,1000,550], // Mi-35 (Dark) + ["CUP_B_Mi35_Dynamic_CZ_Ram",850,1000,550], // Mi-35 (Ram) + ["CUP_B_Mi35_Dynamic_CZ_Tiger",850,1000,550], // Mi-35 (Tiger) + ["CUP_B_L39_CZ_GREY",1200,1250,650], // L-39ZA (Grey) + ["I_Plane_Fighter_03_dynamicLoadout_F",1200,1250,550], // L-159 Alca + ["I_Plane_Fighter_04_F",1500,1400,800] // JAS 39 Gripen +]; + +static_vehicles = [ + ["CUP_B_DSHKM_ACR",25,40,0], // DShKM + ["CUP_B_AGS_ACR",35,60,0], // AGS-30 + ["CUP_B_2b14_82mm_ACR",80,150,0], // Podnos 2B14 + ["CUP_B_RBS70_ACR",100,200,0] // RBS 70 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["FlagCarrierCzechRepublic_EP1",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_B_TowingTractor_CZ",50,0,25], // Towing Tractor + ["CUP_B_T810_Repair_CZ_DES",325,0,75], // Tatra T810 (Repair) + ["CUP_B_T810_Refuel_CZ_DES",125,0,275], // Tatra T810 (Fuel) + ["CUP_B_T810_Reammo_CZ_DES",125,200,75], // Tatra T810 (Ammo) + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_CZ_Soldier_SL_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_RPG_DES", + "CUP_B_CZ_Soldier_805_GL_DES", + "CUP_B_CZ_Soldier_AR_DES", + "CUP_B_CZ_Soldier_AR_DES", + "CUP_B_CZ_Soldier_Marksman_DES", + "CUP_B_CZ_Medic_DES", + "CUP_B_CZ_Engineer_DES" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_CZ_Soldier_SL_DES", + "CUP_B_CZ_Soldier_RPG_DES", + "CUP_B_CZ_Soldier_RPG_DES", + "CUP_B_CZ_Soldier_805_GL_DES", + "CUP_B_CZ_Soldier_AR_DES", + "CUP_B_CZ_Soldier_AR_DES", + "CUP_B_CZ_Soldier_MG_DES", + "CUP_B_CZ_Soldier_Marksman_DES", + "CUP_B_CZ_Medic_DES", + "CUP_B_CZ_Engineer_DES" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_CZ_Soldier_SL_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_AT_DES", + "CUP_B_CZ_Soldier_AT_DES", + "CUP_B_CZ_Soldier_AT_DES", + "CUP_B_CZ_Medic_DES", + "CUP_B_CZ_Engineer_DES" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_CZ_Soldier_SL_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "CUP_B_CZ_Medic_DES", + "CUP_B_CZ_Engineer_DES" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_CZ_SpecOps_TL_DES", + "CUP_B_CZ_SpecOps_Recon_DES", + "CUP_B_CZ_SpecOps_Recon_DES", + "CUP_B_CZ_Soldier_RPG_DES", + "CUP_B_CZ_SpecOps_MG_DES", + "CUP_B_CZ_SpecOps_MG_DES", + "CUP_B_CZ_SpecOps_GL_DES", + "CUP_B_CZ_SpecOps_GL_DES", + "CUP_B_CZ_Medic_DES", + "CUP_B_CZ_Engineer_DES" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES", + "CUP_B_CZ_Soldier_DES" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_Dingo_CZ_Des", // Dingo 2 (MG) (Desert) + "CUP_B_Dingo_GL_CZ_Des", // Dingo 2 (GL) (Desert) + "QIN_Titus_WDL", // Nexter Titus + "QIN_Titus_arx20_WDL", // Nexter Titus ARX20 + "I_APC_Wheeled_03_cannon_F", // Pandur II + "CUP_B_BMP2_CZ_Des", // BVP-2 + "B_APC_Tracked_01_AA_F", // IFV-6a Cheetah + "CUP_B_T72_CZ", // T-72M4CZ + "CUP_B_L39_CZ_GREY", // L-39ZA (Grey) + "I_Plane_Fighter_03_dynamicLoadout_F", // L-159 Alca + "I_Plane_Fighter_04_F" // JAS 39 Gripen +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Woodland.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Woodland.sqf new file mode 100644 index 0000000..770f6ea --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_ACR_Woodland.sqf @@ -0,0 +1,328 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - Qinetix's Titus +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_B_T810_Repair_CZ_WDL"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_LR_Ambulance_CZ_W"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_CZ_Crew_WDL"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_CZ_Pilot_WDL"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_T810_Unarmed_CZ_WDL"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_CZ_Soldier_WDL",15,0,0], // Rifleman + ["CUP_B_CZ_Soldier_backpack_WDL",20,0,0], // Rifleman (Backpack) + ["CUP_B_CZ_Soldier_RPG_WDL",30,0,0], // Rifleman (RPG) + ["CUP_B_CZ_Soldier_805_GL_WDL",25,0,0], // Grenadier + ["CUP_B_CZ_Soldier_AR_WDL",25,0,0], // Automatic Rifleman + ["CUP_B_CZ_Soldier_MG_WDL",35,0,0], // Machinegunner + ["CUP_B_CZ_Soldier_Marksman_WDL",30,0,0], // Marksman (SVD) + ["CUP_B_CZ_Soldier_AT_WDL",50,10,0], // Rifleman (AT) + ["B_soldier_AA_F",50,10,0], // AA Specialist + ["CUP_B_CZ_Medic_WDL",30,0,0], // Medic + ["CUP_B_CZ_Engineer_WDL",30,0,0], // Engineer + ["CUP_B_CZ_ExplosiveSpecialist_WDL",30,0,0], // Explosive Specialist + ["CUP_B_CZ_SpecOps_Scout_WDL",20,0,0], // SF Scout + ["CUP_B_CZ_SpecOps_Exp_WDL",30,0,0], // SF Saboteur + ["CUP_B_CZ_SpecOps_Recon_WDL",30,0,0], // SF Recon + ["CUP_B_CZ_SpecOps_WDL",40,0,0], // SF Rifleman + ["CUP_B_CZ_SpecOps_MG_WDL",30,0,0], // SF Machinegunner + ["CUP_B_CZ_SpecOps_TL_WDL",30,0,0], // SF Team Leader + ["CUP_B_CZ_Sniper_WDL",70,5,0], // Sniper + ["CUP_B_CZ_Spotter_WDL",20,0,0], // Spotter + ["CUP_B_CZ_Crew_WDL",10,0,0], // Crewman + ["CUP_B_CZ_Soldier_WDL",20,0,0], // Para Trooper + ["CUP_B_CZ_Pilot_WDL",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_UAZ_Unarmed_ACR",100,0,50], // UAZ + ["CUP_B_UAZ_Open_ACR",100,0,50], // UAZ (Open) + ["CUP_B_UAZ_MG_ACR",100,40,50], // UAZ (DShKM) + ["CUP_B_UAZ_AGS30_ACR",100,60,50], // UAZ (AGS-30) + ["CUP_B_UAZ_SPG9_ACR",100,80,50], // UAZ (SPG-9) + ["CUP_B_UAZ_METIS_ACR",100,100,50], // UAZ (Metis-M) + ["CUP_B_LR_Transport_CZ_W",200,0,50], // Land Rover 110 (Transport) Woodland + ["CUP_B_LR_MG_CZ_W",200,40,50], // Land Rover 110 (M2) Woodland + ["CUP_B_LR_Special_CZ_W",250,100,50], // Land Rover 110 (Special) Woodland + ["CUP_B_Dingo_CZ_Wdl",250,40,100], // Dingo 2 (MG) (Woodland) + ["CUP_B_Dingo_GL_CZ_Wdl",250,60,100], // Dingo 2 (GL) (Woodland) + ["QIN_Titus_WDL",350,0,50], // Nexter Titus + ["QIN_Titus_arx20_WDL",350,225,50], // Nexter Titus ARX20 + ["CUP_B_T810_Unarmed_CZ_WDL",125,0,75], // Tatra T810 (Covered) + ["CUP_B_T810_Armed_CZ_WDL",125,60,75] // Tatra T810 (MG/Covered) +]; + +heavy_vehicles = [ + ["CUP_B_BRDM2_HQ_CZ",200,25,200], // BRDM-2 (HQ) + ["CUP_B_BRDM2_CZ",200,200,200], // BRDM-2 + ["CUP_B_RM70_CZ",300,750,175], // RM-70 + ["I_APC_Wheeled_03_cannon_F",500,400,300], // Pandur II + ["CUP_I_BMP1_TK_GUE",300,300,200], // BVP-1 + ["CUP_B_BMP2_CZ",400,350,200], // BVP-2 + ["CUP_B_BMP2_AMB_CZ",350,0,200], // BVP-2 Ambulance + ["B_APC_Tracked_01_AA_F",500,450,400], // IFV-6a Cheetah + ["CUP_O_T72_RU",600,500,400], // T72 + ["CUP_B_T72_CZ",800,500,450] // T-72M4CZ +]; + +air_vehicles = [ + ["CUP_B_Mi171Sh_ACR",700,600,500], // Mi-171Sh (Rockets) + ["CUP_B_Mi35_Dynamic_CZ",850,1000,550], // Mi-35 + ["CUP_B_Mi35_Dynamic_CZ_Dark",850,1000,550], // Mi-35 (Dark) + ["CUP_B_Mi35_Dynamic_CZ_Ram",850,1000,550], // Mi-35 (Ram) + ["CUP_B_Mi35_Dynamic_CZ_Tiger",850,1000,550], // Mi-35 (Tiger) + ["CUP_B_L39_CZ_GREY",1200,1250,650], // L-39ZA (Grey) + ["I_Plane_Fighter_03_dynamicLoadout_F",1200,1250,550], // L-159 Alca + ["I_Plane_Fighter_04_F",1500,1400,800] // JAS 39 Gripen +]; + +static_vehicles = [ + ["CUP_B_DSHKM_ACR",25,40,0], // DShKM + ["CUP_B_AGS_ACR",35,60,0], // AGS-30 + ["CUP_B_2b14_82mm_ACR",80,150,0], // Podnos 2B14 + ["CUP_B_RBS70_ACR",100,200,0] // RBS 70 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["FlagCarrierCzechRepublic_EP1",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_B_TowingTractor_CZ",50,0,25], // Towing Tractor + ["CUP_B_T810_Repair_CZ_WDL",325,0,75], // Tatra T810 (Repair) + ["CUP_B_T810_Refuel_CZ_WDL",125,0,275], // Tatra T810 (Fuel) + ["CUP_B_T810_Reammo_CZ_WDL",125,200,75], // Tatra T810 (Ammo) + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_CZ_Soldier_SL_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_RPG_WDL", + "CUP_B_CZ_Soldier_805_GL_WDL", + "CUP_B_CZ_Soldier_AR_WDL", + "CUP_B_CZ_Soldier_AR_WDL", + "CUP_B_CZ_Soldier_Marksman_WDL", + "CUP_B_CZ_Medic_WDL", + "CUP_B_CZ_Engineer_WDL" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_CZ_Soldier_SL_WDL", + "CUP_B_CZ_Soldier_RPG_WDL", + "CUP_B_CZ_Soldier_RPG_WDL", + "CUP_B_CZ_Soldier_805_GL_WDL", + "CUP_B_CZ_Soldier_AR_WDL", + "CUP_B_CZ_Soldier_AR_WDL", + "CUP_B_CZ_Soldier_MG_WDL", + "CUP_B_CZ_Soldier_Marksman_WDL", + "CUP_B_CZ_Medic_WDL", + "CUP_B_CZ_Engineer_WDL" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_CZ_Soldier_SL_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_AT_WDL", + "CUP_B_CZ_Soldier_AT_WDL", + "CUP_B_CZ_Soldier_AT_WDL", + "CUP_B_CZ_Medic_WDL", + "CUP_B_CZ_Engineer_WDL" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_CZ_Soldier_SL_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "CUP_B_CZ_Medic_WDL", + "CUP_B_CZ_Engineer_WDL" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_CZ_SpecOps_TL_WDL", + "CUP_B_CZ_SpecOps_Recon_WDL", + "CUP_B_CZ_SpecOps_Recon_WDL", + "CUP_B_CZ_Soldier_RPG_WDL", + "CUP_B_CZ_SpecOps_MG_WDL", + "CUP_B_CZ_SpecOps_MG_WDL", + "CUP_B_CZ_SpecOps_GL_WDL", + "CUP_B_CZ_SpecOps_GL_WDL", + "CUP_B_CZ_Medic_WDL", + "CUP_B_CZ_Engineer_WDL" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL", + "CUP_B_CZ_Soldier_WDL" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_Dingo_CZ_Wdl", // Dingo 2 (MG) (Woodland) + "CUP_B_Dingo_GL_CZ_Wdl", // Dingo 2 (GL) (Woodland) + "QIN_Titus_WDL", // Nexter Titus + "QIN_Titus_arx20_WDL", // Nexter Titus ARX20 + "CUP_B_RM70_CZ", // RM-70 + "I_APC_Wheeled_03_cannon_F", // Pandur II + "CUP_B_BMP2_CZ", // BVP-2 + "B_APC_Tracked_01_AA_F", // IFV-6a Cheetah + "CUP_B_T72_CZ", // T-72M4CZ + "CUP_B_L39_CZ_GREY", // L-39ZA (Grey) + "I_Plane_Fighter_03_dynamicLoadout_F", // L-159 Alca + "I_Plane_Fighter_04_F" // JAS 39 Gripen +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Desert.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Desert.sqf new file mode 100644 index 0000000..64932a7 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Desert.sqf @@ -0,0 +1,333 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_LR_Ambulance_GB_D"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH47F_GB"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_BAF_Soldier_Crew_DDPM"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_BAF_Soldier_Helipilot_DDPM"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_SA330_Puma_HC2_BAF"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_BAF_DES"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_BAF_Soldier_RiflemanLite_DDPM",15,0,0], // Rifleman (Light) + ["CUP_B_BAF_Soldier_Rifleman_DDPM",20,0,0], // Rifleman + ["CUP_B_BAF_Soldier_RiflemanAT_DDPM",30,0,0], // Rifleman (AT) + ["CUP_B_BAF_Soldier_Grenadier_DDPM",25,0,0], // Grenadier + ["CUP_B_BAF_Soldier_AutoRifleman_DDPM",25,0,0], // Autorifleman + ["CUP_B_BAF_Soldier_HeavyGunner_DDPM",35,0,0], // Heavygunner + ["CUP_B_BAF_Soldier_Marksman_DDPM",30,0,0], // Marksman + ["CUP_B_BAF_Soldier_SharpShooter_DDPM",40,0,0], // Sharpshooter + ["CUP_B_BAF_Soldier_AT_DDPM",50,10,0], // AT Specialist + ["CUP_B_BAF_Soldier_AA_DDPM",50,10,0], // AA Specialist + ["CUP_B_BAF_Soldier_Medic_DDPM",30,0,0], // Combat Life Saver + ["CUP_B_BAF_Soldier_Engineer_DDPM",30,0,0], // Engineer + ["CUP_B_BAF_Soldier_Explosive_DDPM",30,0,0], // Explosives Specialist + ["CUP_B_BAF_Soldier_Rifleman_MTP",20,0,0], // Recon Scout + ["CUP_B_BAF_Soldier_RiflemanAT_MTP",30,0,0], // Recon Scout (AT) + ["CUP_B_BAF_Soldier_Marksman_MTP",30,0,0], // Recon Marksman + ["CUP_B_BAF_Soldier_SharpShooter_MTP",40,0,0], // Recon Sharpshooter + ["CUP_B_BAF_Soldier_Medic_MTP",30,0,0], // Recon Paramedic + ["CUP_B_BAF_Soldier_Explosive_MTP",30,0,0], // Recon Demolition Expert + ["CUP_B_BAF_Sniper_AS50_TWS_DDPM",70,5,0], // Sniper + ["CUP_B_BAF_Sniper_AS50_DDPM",70,5,0], // Sniper (Arid) + ["CUP_B_BAF_Sniper_DDPM",70,5,0], // Sniper (Lush) + ["CUP_B_BAF_Spotter_DDPM",20,0,0], // Spotter + ["CUP_B_BAF_Soldier_Crew_DDPM",10,0,0], // Crewman + ["CUP_B_BAF_Soldier_Paratrooper_DDPM",20,0,0], // Para Trooper + ["CUP_B_BAF_Soldier_Helicrew_DDPM",10,0,0], // Helicopter Crew + ["CUP_B_BAF_Soldier_Helipilot_DDPM",10,0,0], // Helicopter Pilot + ["CUP_B_BAF_Soldier_Pilot_DDPM",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_LR_Transport_GB_D",75,0,50], // Land Rover 110 Transport + ["CUP_B_LR_MG_GB_D",75,50,50], // Land Rover 110 (M2) + ["CUP_B_LR_Special_M2_GB_D",100,80,50], // Land Rover 110 (M2 Special) + ["CUP_B_LR_Special_GMG_GB_D",100,100,50], // Land Rover 110 (GMG Special) + ["CUP_B_BAF_Coyote_L2A1_D",200,40,50], // Coyote L2A1 + ["CUP_B_BAF_Coyote_GMG_D",200,60,50], // Coyote GMG + ["CUP_B_Mastiff_LMG_GB_D",250,20,150], // Mastiff PPV LMG + ["CUP_B_Mastiff_HMG_GB_D",250,40,150], // Mastiff PPV HMG + ["CUP_B_Mastiff_GMG_GB_D",250,60,150], // Mastiff PPV GMG + ["CUP_B_Wolfhound_LMG_GB_D",275,20,150], // Wolfhound TSV LMG + ["CUP_B_Wolfhound_HMG_GB_D",275,40,150], // Wolfhound TSV HMG + ["CUP_B_Wolfhound_GMG_GB_D",275,60,150], // Wolfhound TSV GMG + ["CUP_B_MTVR_BAF_DES",125,0,75] // MTVR Transport +]; + +heavy_vehicles = [ + ["CUP_B_FV432_Bulldog_GB_D",300,100,150], // FV432 Bulldog M240 + ["CUP_B_FV432_Bulldog_GB_D_RWS",300,250,150], // FV432 Bulldog M2 RWS + ["CUP_B_MCV80_GB_D",300,450,275], // MCV-80 Warrior + ["CUP_B_MCV80_GB_D_SLAT",400,450,275], // MCV-80 Warrior (SLAT) + ["CUP_B_FV510_GB_D",350,550,275], // FV510 Warrior + ["CUP_B_FV510_GB_D_SLAT",450,550,275], // FV510 Warrior (SLAT) + ["CUP_B_Challenger2_Desert_BAF",500,800,450], // FV4034 Challenger 2 + ["CUP_B_Challenger2_2CD_BAF",500,800,450] // FV4034 Challenger 2 (Two-Color Desert) +]; + +air_vehicles = [ + ["CUP_B_AW159_Unarmed_RN_Blackcat",225,0,125], // AW159 Wildcat (Black Cat, Unarmed) + ["CUP_B_AW159_Unarmed_GB",225,0,125], // AW159 Wildcat (Green, Unarmed) + ["CUP_B_AW159_Unarmed_RN_Grey",225,0,125], // AW159 Wildcat (Grey, Unarmed) + ["CUP_B_AW159_RN_Blackcat",350,400,125], // AW159 Wildcat (Black Cat) + ["CUP_B_AW159_GB",350,400,125], // AW159 Wildcat (Green) + ["CUP_B_AW159_RN_Grey",350,400,125], // AW159 Wildcat (Grey) + ["CUP_B_AH1_DL_BAF",750,600,325], // AH1 + ["CUP_B_GR9_DYN_GB",1000,1200,600], // Harrier GR.9 + ["CUP_B_F35B_BAF",1500,1750,450], // F-35B Lightning II + ["CUP_B_F35B_Stealth_BAF",1500,1750,450] // F-35B Lightning II (Stealth) +]; + +static_vehicles = [ + ["CUP_B_L111A1_BAF_DDPM",25,40,0], // L111A1 Machine Gun + ["CUP_B_L111A1_MiniTripod_BAF_DDPM",25,40,0], // L111A1 Minitripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_L16A2_BAF_DDPM",80,150,0] // L16A2 81mm Mortar +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_B_TowingTractor_GB",50,0,25], // Towing Tractor + ["CUP_B_MTVR_Repair_BAF_DES",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_BAF_DES",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_BAF_DES",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_BAF_Soldier_TeamLeader_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DDPM", + "CUP_B_BAF_Soldier_Grenadier_DDPM", + "CUP_B_BAF_Soldier_AutoRifleman_DDPM", + "CUP_B_BAF_Soldier_AutoRifleman_DDPM", + "CUP_B_BAF_Soldier_Marksman_DDPM", + "CUP_B_BAF_Soldier_Medic_DDPM", + "CUP_B_BAF_Soldier_Engineer_DDPM" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_BAF_Soldier_TeamLeader_DDPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DDPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DDPM", + "CUP_B_BAF_Soldier_Grenadier_DDPM", + "CUP_B_BAF_Soldier_AutoRifleman_DDPM", + "CUP_B_BAF_Soldier_AutoRifleman_DDPM", + "CUP_B_BAF_Soldier_HeavyGunner_DDPM", + "CUP_B_BAF_Soldier_SharpShooter_DDPM", + "CUP_B_BAF_Soldier_Medic_DDPM", + "CUP_B_BAF_Soldier_Engineer_DDPM" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_BAF_Soldier_TeamLeader_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_AT_DDPM", + "CUP_B_BAF_Soldier_AT_DDPM", + "CUP_B_BAF_Soldier_AT_DDPM", + "CUP_B_BAF_Soldier_Medic_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_BAF_Soldier_TeamLeader_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM", + "CUP_B_BAF_Soldier_AA_DDPM", + "CUP_B_BAF_Soldier_AA_DDPM", + "CUP_B_BAF_Soldier_AA_DDPM", + "CUP_B_BAF_Soldier_Medic_DDPM", + "CUP_B_BAF_Soldier_Rifleman_DDPM" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_BAF_Soldier_TeamLeader_MTP", + "CUP_B_BAF_Soldier_Rifleman_MTP", + "CUP_B_BAF_Soldier_Rifleman_MTP", + "CUP_B_BAF_Soldier_RiflemanLAT_MTP", + "CUP_B_BAF_Soldier_Marksman_MTP", + "CUP_B_BAF_Soldier_Marksman_MTP", + "CUP_B_BAF_Soldier_SharpShooter_MTP", + "CUP_B_BAF_Soldier_SharpShooter_MTP", + "CUP_B_BAF_Soldier_Medic_MTP", + "CUP_B_BAF_Soldier_Explosive_MTP" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM", + "CUP_B_BAF_Soldier_Paratrooper_DDPM" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_MCV80_GB_D_SLAT", // MCV-80 Warrior (SLAT) + "CUP_B_FV510_GB_D", // FV510 Warrior + "CUP_B_FV510_GB_D_SLAT", // FV510 Warrior (SLAT) + "CUP_B_Challenger2_Desert_BAF", // FV4034 Challenger 2 + "CUP_B_Challenger2_2CD_BAF", // FV4034 Challenger 2 (Two-Color Desert) + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_F35B_BAF", // F-35B Lightning II + "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher" // Mk-49 GMLS +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Woodland.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Woodland.sqf new file mode 100644 index 0000000..136e5ec --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_BAF_Woodland.sqf @@ -0,0 +1,337 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_FV432_GB_Ambulance"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH47F_GB"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_BAF_Soldier_Crew_DPM"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_BAF_Soldier_Helipilot_DPM"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_SA330_Puma_HC2_BAF"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_BAF_WOOD"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_BAF_Soldier_RiflemanLite_DPM",15,0,0], // Rifleman (Light) + ["CUP_B_BAF_Soldier_Rifleman_DPM",20,0,0], // Rifleman + ["CUP_B_BAF_Soldier_RiflemanAT_DPM",30,0,0], // Rifleman (AT) + ["CUP_B_BAF_Soldier_Grenadier_DPM",25,0,0], // Grenadier + ["CUP_B_BAF_Soldier_AutoRifleman_DPM",25,0,0], // Autorifleman + ["CUP_B_BAF_Soldier_HeavyGunner_DPM",35,0,0], // Heavygunner + ["CUP_B_BAF_Soldier_Marksman_DPM",30,0,0], // Marksman + ["CUP_B_BAF_Soldier_SharpShooter_DPM",40,0,0], // Sharpshooter + ["CUP_B_BAF_Soldier_AT_DPM",50,10,0], // AT Specialist + ["CUP_B_BAF_Soldier_AA_DPM",50,10,0], // AA Specialist + ["CUP_B_BAF_Soldier_Medic_DPM",30,0,0], // Combat Life Saver + ["CUP_B_BAF_Soldier_Engineer_DPM",30,0,0], // Engineer + ["CUP_B_BAF_Soldier_Explosive_DPM",30,0,0], // Explosives Specialist + ["CUP_B_BAF_Soldier_Rifleman_MTP",20,0,0], // Recon Scout + ["CUP_B_BAF_Soldier_RiflemanAT_MTP",30,0,0], // Recon Scout (AT) + ["CUP_B_BAF_Soldier_Marksman_MTP",30,0,0], // Recon Marksman + ["CUP_B_BAF_Soldier_SharpShooter_MTP",40,0,0], // Recon Sharpshooter + ["CUP_B_BAF_Soldier_Medic_MTP",30,0,0], // Recon Paramedic + ["CUP_B_BAF_Soldier_Explosive_MTP",30,0,0], // Recon Demolition Expert + ["CUP_B_BAF_Sniper_AS50_TWS_DPM",70,5,0], // Sniper + ["CUP_B_BAF_Sniper_AS50_DPM",70,5,0], // Sniper (Arid) + ["CUP_B_BAF_Sniper_DPM",70,5,0], // Sniper (Lush) + ["CUP_B_BAF_Spotter_DPM",20,0,0], // Spotter + ["CUP_B_BAF_Soldier_Crew_DPM",10,0,0], // Crewman + ["CUP_B_BAF_Soldier_Paratrooper_DPM",20,0,0], // Para Trooper + ["CUP_B_BAF_Soldier_Helicrew_DPM",10,0,0], // Helicopter Crew + ["CUP_B_BAF_Soldier_Helipilot_DPM",10,0,0], // Helicopter Pilot + ["CUP_B_BAF_Soldier_Pilot_DPM",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_LR_Transport_GB_W",75,0,50], // Land Rover 110 (Transport) Woodland + ["CUP_B_LR_Ambulance_GB_W",75,0,50], // Land Rover 110 (Ambulance) Woodland + ["CUP_B_LR_MG_GB_W",75,50,50], // Land Rover 110 (M2) Woodland + ["CUP_B_LR_Special_M2_GB_W",100,80,50], // Land Rover 110 (M2 Special) Woodland + ["CUP_B_LR_Special_GMG_GB_W",100,100,50], // Land Rover 110 (GMG Special) Woodland + ["CUP_B_BAF_Coyote_L2A1_W",200,40,50], // Coyote L2A1 Woodland + ["CUP_B_BAF_Coyote_GMG_W",200,60,50], // Coyote GMG Woodland + ["CUP_B_Mastiff_LMG_GB_W",250,20,150], // Mastiff PPV LMG Woodland + ["CUP_B_Mastiff_HMG_GB_W",250,40,150], // Mastiff PPV HMG Woodland + ["CUP_B_Mastiff_GMG_GB_W",250,60,150], // Mastiff PPV GMG Woodland + ["CUP_B_Wolfhound_LMG_GB_W",275,20,150], // Wolfhound TSV LMG Woodland + ["CUP_B_Wolfhound_HMG_GB_W",275,40,150], // Wolfhound TSV HMG Woodland + ["CUP_B_Wolfhound_GMG_GB_W",275,60,150], // Wolfhound TSV GMG Woodland + ["CUP_B_MTVR_BAF_WOOD",125,0,75] // MTVR Transport +]; + +heavy_vehicles = [ + ["CUP_B_FV432_Bulldog_GB_W",300,100,150], // FV432 Bulldog M240 [Woodland] + ["CUP_B_FV432_Bulldog_GB_W_RWS",300,250,150], // FV432 Bulldog M2 RWS [Woodland] + ["CUP_B_FV432_Mortar",350,500,150], // FV432 Mortar + ["CUP_B_MCV80_GB_W",300,450,275], // MCV-80 Warrior (Woodland) + ["CUP_B_MCV80_GB_W_SLAT",400,450,275], // MCV-80 Warrior (SLAT - Woodland) + ["CUP_B_FV510_GB_W",350,550,275], // FV510 Warrior (Woodland) + ["CUP_B_FV510_GB_W_SLAT",450,550,275], // FV510 Warrior (SLAT - Woodland) + ["CUP_B_Challenger2_Woodland_BAF",500,800,450], // FV4034 Challenger 2 (Woodland) + ["CUP_B_Challenger2_2CW_BAF",500,800,450] // FV4034 Challenger 2 (Two-Color Woodland) +]; + +air_vehicles = [ + ["CUP_B_AW159_Unarmed_RN_Blackcat",225,0,125], // AW159 Wildcat (Black Cat, Unarmed) + ["CUP_B_AW159_Unarmed_GB",225,0,125], // AW159 Wildcat (Green, Unarmed) + ["CUP_B_AW159_Unarmed_RN_Grey",225,0,125], // AW159 Wildcat (Grey, Unarmed) + ["CUP_B_AW159_RN_Blackcat",350,400,125], // AW159 Wildcat (Black Cat) + ["CUP_B_AW159_GB",350,400,125], // AW159 Wildcat (Green) + ["CUP_B_AW159_RN_Grey",350,400,125], // AW159 Wildcat (Grey) + ["CUP_B_AH1_DL_BAF",750,600,325], // AH1 + ["CUP_B_GR9_DYN_GB",1000,1200,600], // Harrier GR.9 + ["CUP_B_F35B_BAF",1500,1750,450], // F-35B Lightning II + ["CUP_B_F35B_Stealth_BAF",1500,1750,450] // F-35B Lightning II (Stealth) +]; + +static_vehicles = [ + ["CUP_B_L111A1_BAF_DPM",25,40,0], // L111A1 Machine Gun + ["CUP_B_L111A1_MiniTripod_BAF_DPM",25,40,0], // L111A1 Minitripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_L16A2_BAF_DPM",80,150,0] // L16A2 81mm Mortar +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_B_MK10_GB",100,0,50], // LCU Mk.10 + ["CUP_B_TowingTractor_GB",50,0,25], // Towing Tractor + ["CUP_B_MTVR_Repair_BAF_WOOD",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_BAF_WOOD",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_BAF_WOOD",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_BAF_Soldier_TeamLeader_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DPM", + "CUP_B_BAF_Soldier_Grenadier_DPM", + "CUP_B_BAF_Soldier_AutoRifleman_DPM", + "CUP_B_BAF_Soldier_AutoRifleman_DPM", + "CUP_B_BAF_Soldier_Marksman_DPM", + "CUP_B_BAF_Soldier_Medic_DPM", + "CUP_B_BAF_Soldier_Engineer_DPM" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_BAF_Soldier_TeamLeader_DPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DPM", + "CUP_B_BAF_Soldier_RiflemanLAT_DPM", + "CUP_B_BAF_Soldier_Grenadier_DPM", + "CUP_B_BAF_Soldier_AutoRifleman_DPM", + "CUP_B_BAF_Soldier_AutoRifleman_DPM", + "CUP_B_BAF_Soldier_HeavyGunner_DPM", + "CUP_B_BAF_Soldier_SharpShooter_DPM", + "CUP_B_BAF_Soldier_Medic_DPM", + "CUP_B_BAF_Soldier_Engineer_DPM" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_BAF_Soldier_TeamLeader_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_AT_DPM", + "CUP_B_BAF_Soldier_AT_DPM", + "CUP_B_BAF_Soldier_AT_DPM", + "CUP_B_BAF_Soldier_Medic_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_BAF_Soldier_TeamLeader_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM", + "CUP_B_BAF_Soldier_AA_DPM", + "CUP_B_BAF_Soldier_AA_DPM", + "CUP_B_BAF_Soldier_AA_DPM", + "CUP_B_BAF_Soldier_Medic_DPM", + "CUP_B_BAF_Soldier_Rifleman_DPM" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_BAF_Soldier_TeamLeader_MTP", + "CUP_B_BAF_Soldier_Rifleman_MTP", + "CUP_B_BAF_Soldier_Rifleman_MTP", + "CUP_B_BAF_Soldier_RiflemanLAT_MTP", + "CUP_B_BAF_Soldier_Marksman_MTP", + "CUP_B_BAF_Soldier_Marksman_MTP", + "CUP_B_BAF_Soldier_SharpShooter_MTP", + "CUP_B_BAF_Soldier_SharpShooter_MTP", + "CUP_B_BAF_Soldier_Medic_MTP", + "CUP_B_BAF_Soldier_Explosive_MTP" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM", + "CUP_B_BAF_Soldier_Paratrooper_DPM" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_MCV80_GB_W_SLAT", // MCV-80 Warrior (SLAT - Woodland) + "CUP_B_FV432_Mortar", // FV432 Mortar + "CUP_B_FV510_GB_W", // FV510 Warrior (Woodland) + "CUP_B_FV510_GB_W_SLAT", // FV510 Warrior (SLAT - Woodland) + "CUP_B_Challenger2_Woodland_BAF", // FV4034 Challenger 2 (Woodland) + "CUP_B_Challenger2_2CW_BAF", // FV4034 Challenger 2 (Two-Color Woodland) + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_F35B_BAF", // F-35B Lightning II + "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher" // Mk-49 GMLS +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_CDF.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_CDF.sqf new file mode 100644 index 0000000..71f85ba --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_CDF.sqf @@ -0,0 +1,327 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_BMP2_AMB_CDF"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_MI6A_CDF"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_CDF_Crew_FST"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_CDF_Pilot_FST"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera bas +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_Ural_Open_CDF"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_CDF_Soldier_FST",20,0,0], // Rifleman + ["CUP_B_CDF_Soldier_RPG18_FST",30,0,0], // Rifleman (RPG-18) + ["CUP_B_CDF_Soldier_GL_FST",25,0,0], // Grenadier + ["CUP_B_CDF_Soldier_AR_FST",25,0,0], // Automatic Rifleman + ["CUP_B_CDF_Soldier_MG_FST",35,0,0], // Machinegunner + ["CUP_B_CDF_Soldier_AMG_FST",35,0,0], // Asst. Machinegunner + ["CUP_B_CDF_Soldier_Marksman_FST",30,0,0], // Marksman + ["CUP_B_CDF_Soldier_LAT_FST",50,25,0], // AT Specialist + ["CUP_B_CDF_Soldier_AAT_FST",50,10,0], // Asst. AT Specialist + ["CUP_B_CDF_Soldier_AA_FST",50,10,0], // AA Specialist + ["CUP_B_CDF_Medic_FST",30,0,0], // Medic + ["CUP_B_CDF_Engineer_FST",30,0,0], // Engineer + ["CUP_B_CDF_Soldier_MNT",20,0,0], // Rifleman + ["CUP_B_CDF_Soldier_RPG18_MNT",30,0,0], // Rifleman (RPG-18 - TTsko Mountain) + ["CUP_B_CDF_Soldier_Marksman_MNT",30,0,0], // Marksman + ["CUP_B_CDF_Sniper_MNT",40,0,0], // Sniper + ["CUP_B_CDF_Medic_MNT",30,0,0], // Medic + ["CUP_B_CDF_Engineer_MNT",30,0,0], // Engineer + ["CUP_B_CDF_Sniper_FST",70,5,0], // Sniper + ["CUP_B_CDF_Spotter_FST",20,0,0], // Spotter + ["CUP_B_CDF_Crew_FST",10,0,0], // Crewman + ["CUP_B_CDF_Pilot_FST",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_S1203_Ambulance_CDF",75,0,50], // Škoda S1203 (Ambulance) + ["CUP_B_UAZ_Unarmed_CDF",75,0,50], // UAZ + ["CUP_B_UAZ_MG_CDF",100,60,50], // UAZ (DShKM) + ["CUP_B_UAZ_AGS30_CDF",100,80,50], // UAZ (AGS-30) + ["CUP_B_UAZ_SPG9_CDF",100,100,50], // UAZ (SPG-9) + ["CUP_B_UAZ_METIS_CDF",100,120,50], // UAZ (Metis-M) + ["CUP_B_UAZ_AA_CDF",100,160,50], // UAZ (AA) + ["CUP_B_Ural_ZU23_CDF",150,300,100], // Ural (ZU-23) + ["CUP_B_BM21_CDF",225,750,100], // BM-21 + ["CUP_B_Kamaz_CDF",125,0,75], // Kamaz 5350 + ["CUP_B_Kamaz_Open_CDF",125,0,75], // Kamaz 5350 (Open) + ["CUP_B_Ural_Open_CDF",125,0,75], // Ural (Open) + ["CUP_B_Ural_CDF",125,0,75] // Ural +]; + +heavy_vehicles = [ + ["CUP_B_BRDM2_CDF",200,200,125], // BRDM-2 + ["CUP_B_BRDM2_ATGM_CDF",200,400,125], // BRDM-2 (ATGM) + ["CUP_B_BTR60_CDF",300,200,125], // BTR-60PB + ["CUP_B_BTR80_CDF",400,200,150], // BTR-80 + ["CUP_B_BTR80A_CDF",450,300,150], // BTR-80A + ["CUP_B_MTLB_pk_CDF",150,50,100], // MT-LB LV + ["CUP_B_BMP2_CDF",500,400,200], // BMP-2 + ["CUP_B_ZSU23_Afghan_CDF",350,350,200], // ZSU-23-4 Afghanski + ["CUP_B_ZSU23_CDF",450,350,200], // ZSU-23-4 + ["CUP_B_T72_CDF",600,500,250] // T-72 +]; + +air_vehicles = [ + ["CUP_B_Mi17_CDF",300,100,300], // Mi-8MT + ["CUP_B_Pchela1T_CDF",100,0,50], // Pchela-1T + ["CUP_B_Mi24_D_Dynamic_CDF",700,600,300], // Mi-24D + ["CUP_B_Su25_Dyn_CDF",1000,800,400], // Su-25 Frogfoot + ["CUP_B_SU34_CDF",1200,1000,500] // Su-34 +]; + +static_vehicles = [ + ["CUP_B_DSHKM_CDF",25,40,0], // DShKM + ["CUP_B_DSHkM_MiniTripod_CDF",25,40,0], // DShKM Minitripod + ["CUP_B_AGS_CDF",25,60,0], // AGS-30 + ["CUP_B_SPG9_CDF",50,100,0], // SPG-9 + ["CUP_B_Igla_AA_pod_CDF",100,200,0], // Igla AA Pod + ["CUP_B_ZU23_CDF",100,300,0], // ZU-23 + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_2b14_82mm_CDF",80,150,0], // Podnos 2B14 + ["CUP_B_D30_AT_CDF",100,200,0], // D-30 AT + ["CUP_B_D30_CDF",200,250,0] // D-30 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["FlagCarrierCDFEnsign_EP1",0,0,0], + ["FlagCarrierCDF",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_B_Tractor_CDF",50,0,75], // Towing Tractor + ["CUP_B_Kamaz_Repair_CDF",425,0,75], // Kamaz 5350 (Repair) + ["CUP_B_Kamaz_Refuel_CDF",125,0,375], // Kamaz 5350 (Fuel) + ["CUP_B_Kamaz_Reammo_CDF",125,300,75], // Kamaz 5350 (Ammo) + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_CDF_Soldier_TL_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_RPG18_FST", + "CUP_B_CDF_Soldier_GL_FST", + "CUP_B_CDF_Soldier_AR_FST", + "CUP_B_CDF_Soldier_AR_FST", + "CUP_B_CDF_Soldier_Marksman_FST", + "CUP_B_CDF_Medic_FST", + "CUP_B_CDF_Engineer_FST" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_CDF_Soldier_TL_FST", + "CUP_B_CDF_Soldier_RPG18_FST", + "CUP_B_CDF_Soldier_RPG18_FST", + "CUP_B_CDF_Soldier_GL_FST", + "CUP_B_CDF_Soldier_AR_FST", + "CUP_B_CDF_Soldier_AR_FST", + "CUP_B_CDF_Soldier_MG_FST", + "CUP_B_CDF_Soldier_Marksman_FST", + "CUP_B_CDF_Medic_FST", + "CUP_B_CDF_Engineer_FST" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_CDF_Soldier_TL_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_LAT_FST", + "CUP_B_CDF_Soldier_LAT_FST", + "CUP_B_CDF_Soldier_AAT_FST", + "CUP_B_CDF_Medic_FST", + "CUP_B_CDF_Soldier_FST" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_CDF_Soldier_TL_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_AA_FST", + "CUP_B_CDF_Soldier_AA_FST", + "CUP_B_CDF_Soldier_AA_FST", + "CUP_B_CDF_Medic_FST", + "CUP_B_CDF_Soldier_FST" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_CDF_Soldier_TL_MNT", + "CUP_B_CDF_SOldier_MNT", + "CUP_B_CDF_Soldier_GL_MNT", + "CUP_B_CDF_Soldier_MG_MNT", + "CUP_B_CDF_Soldier_LAT_MNT", + "CUP_B_CDF_Soldier_RPG18_MNT", + "CUP_B_CDF_Soldier_MArksman_MNT", + "CUP_B_CDF_Sniper_MNT", + "CUP_B_CDF_Medic_MNT", + "CUP_B_CDF_Engineer_MNT" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST", + "CUP_B_CDF_Soldier_FST" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_BTR60_CDF", // BTR-60 PB + "CUP_B_BM21_CDF", // BM-21 + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_ZSU23_Afghan_CDF", // ZSU-23-4 Afghanski + "CUP_B_ZSU23_CDF", // ZSU-23-4 + "CUP_B_T72_CDF", // T-72 + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Su25_Dyn_CDF", // Su-25 Frogfoot + "CUP_B_SU34_CDF", // Su-34 + "CUP_B_D30_CDF" // D-30 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_ChDKZ.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_ChDKZ.sqf new file mode 100644 index 0000000..c9cf862 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_ChDKZ.sqf @@ -0,0 +1,317 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_O_BMP_HQ_CHDKZ"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_O_BMP2_AMB_CHDKZ"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_O_MI6A_CHDKZ"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_O_INS_Crew"; // This defines the crew for vehicles. +pilot_classname = "CUP_O_INS_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_O_Mi8_medevac_CHDKZ"; // These are the little birds which spawn on the Freedom or at Chimera bas +KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_O_Ural_Open_CHDKZ"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_O_INS_Soldier",20,0,0], // Rifleman + ["CUP_O_INS_Soldier_LAT",30,0,0], // Rifleman (RPG-18) + ["CUP_O_INS_Soldier_GL",25,0,0], // Grenadier + ["CUP_O_INS_Soldier_AR",25,0,0], // Autorifleman + ["CUP_O_INS_Soldier_MG",35,0,0], // Machine Gunner + ["CUP_O_INS_Soldier_Ammo",35,0,0], // Ammo Bearer + ["CUP_O_INS_Soldier_AT",50,25,0], // AT Specialist + ["CUP_O_INS_Soldier_AA",50,10,0], // AA Specialist + ["CUP_O_INS_Medic",30,0,0], // Medic + ["CUP_O_INS_Soldier_Engineer",30,0,0], // Engineer + ["CUP_O_INS_Villager3",10,0,0], // Farmer + ["CUP_O_INS_Woodlander3",10,0,0], // Forester + ["CUP_O_INS_Woodlander2",10,0,0], // Gamekeeper + ["CUP_O_INS_Worker2",10,0,0], // Local + ["CUP_O_INS_Villager4",10,0,0], // Villager + ["CUP_O_INS_Woodlander1",10,0,0], // Woodman + ["CUP_O_INS_Sniper",70,5,0], // Sniper + ["CUP_O_INS_Crew",10,0,0], // Crewman + ["CUP_O_INS_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_O_Datsun_4seat",50,0,25], // Datsun 620 Pickup Woodland + ["CUP_O_Datsun_PK",50,10,25], // Datsun 620 Pickup (PK) + ["CUP_O_Datsun_AA",75,150,25], // Datsun 620 Pickup (AA) + ["CUP_O_UAZ_Unarmed_CHDKZ",100,0,50], // UAZ + ["CUP_O_UAZ_MG_CHDKZ",125,60,50], // UAZ (DShKM) + ["CUP_O_UAZ_AGS30_CHDKZ",125,80,50], // UAZ (AGS-30) + ["CUP_O_UAZ_SPG9_CHDKZ",125,100,50], // UAZ (SPG-9) + ["CUP_O_UAZ_METIS_CHDKZ",150,120,50], // UAZ (Metis-M) + ["CUP_O_UAZ_AA_CHDKZ",200,160,50], // UAZ (AA) + ["CUP_O_Ural_ZU23_CHDKZ",250,300,100], // Ural (ZU-23) + ["CUP_O_BM21_CHDKZ",300,750,100], // BM-21 + ["CUP_O_Ural_Open_CHDKZ",150,0,75], // Ural (Open) + ["CUP_O_Ural_CHDKZ",150,0,75] // Ural +]; + +heavy_vehicles = [ + ["CUP_O_BRDM2_CHDKZ",200,200,150], // BRDM-2 + ["CUP_O_BRDM2_ATGM_CHDKZ",200,400,150], // BRDM-2 (ATGM) + ["CUP_O_BTR60_CHDKZ",300,200,200], // BTR-60PB + ["CUP_O_BTR80_CHDKZ",400,300,200], // BTR-80 + ["CUP_O_BTR80A_CHDKZ",425,500,200], // BTR-80A + ["CUP_O_MTLB_pk_CHDKZ",175,50,100], // MT-LB LV + ["CUP_O_BMP2_CHDKZ",500,600,200], // BMP-2 + ["CUP_O_ZSU23_Afghan_CHDKZ",350,500,200], // ZSU-23-4 Afghanski + ["CUP_O_ZSU23_CHDKZ",500,500,200], // ZSU-23-4 + ["CUP_O_T55_CHDKZ",500,350,250], // T-55 + ["CUP_O_T72_CHDKZ",700,500,300] // T-72 +]; + +air_vehicles = [ + ["CUP_O_Mi8_CHDKZ",400,100,400] // Mi-8MT +]; + +static_vehicles = [ + ["CUP_O_DSHKM_ChDKZ",25,40,0], // DShKM + ["CUP_O_DSHkM_MiniTripod_ChDKZ",25,40,0], // DShKM Minitripod + ["CUP_O_AGS_ChDKZ",25,60,0], // AGS-30 + ["CUP_O_SPG9_ChDKZ",50,100,0], // SPG-9 + ["CUP_O_Igla_AA_pod_ChDKZ",100,200,0], // Igla AA Pod + ["CUP_O_ZU23_ChDKZ",100,300,0], // ZU-23 + ["CUP_O_2b14_82mm_ChDKZ",80,150,0], // Podnos 2B14 + ["CUP_O_D30_AT_ChDKZ",100,200,0], // D-30 AT + ["CUP_O_D30_ChDKZ",200,250,0] // D-30 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["FlagCarrierINS",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_O_Tractor_Old_CHDKZ",50,0,75], // Towing Tractor + ["CUP_O_Ural_Repair_CHDKZ",425,0,75], // Ural (Repair) + ["CUP_O_Ural_Refuel_CHDKZ",125,0,375], // Ural (Refuel) + ["CUP_O_Ural_Reammo_CHDKZ",125,300,75], // Ural (Ammo) + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_O_INS_Officer", + "CUP_O_INS_Woodlander3", + "CUP_O_INS_Worker2", + "CUP_O_INS_Woodlander1", + "CUP_O_INS_Soldier_GL", + "CUP_O_INS_Soldier_AR", + "CUP_O_INS_Woodlander2", + "CUP_O_INS_Villager3", + "CUP_O_INS_Medic", + "CUP_O_INS_Soldier_LAT" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_O_INS_Officer", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_GL", + "CUP_O_INS_Soldier_AR", + "CUP_O_INS_Soldier_AR", + "CUP_O_INS_Soldier_MG", + "CUP_O_INS_Sniper", + "CUP_O_INS_Medic", + "CUP_O_INS_Soldier_Engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_O_INS_Officer", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_AT", + "CUP_O_INS_Soldier_AT", + "CUP_O_INS_Soldier_AT", + "CUP_O_INS_Medic", + "CUP_O_INS_Soldier_Engineer" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_O_INS_Officer", + "CUP_O_INS_Soldier", + "CUP_O_INS_Soldier", + "CUP_O_INS_Soldier_AA", + "CUP_O_INS_Soldier_AA", + "CUP_O_INS_Soldier_AA", + "CUP_O_INS_Medic", + "CUP_O_INS_Soldier_Engineer" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_O_RUS_Soldier_TL", + "CUP_O_RUS_SpecOps_Scout", + "CUP_O_RUS_SpecOps_Night", + "CUP_O_RUS_SpecOps_Night", + "CUP_O_RUS_Soldier_GL", + "CUP_O_RUS_Soldier_GL", + "CUP_O_RUS_Soldier_Marksman", + "CUP_O_RUS_SpecOps", + "CUP_O_RUS_Saboteur" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT", + "CUP_O_INS_Soldier_LAT" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_O_BTR60_CHDKZ", // BTR-60 PB + "CUP_O_BM21_CHDKZ", // BM-21 + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_ZSU23_Afghan_CHDKZ", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_CHDKZ", // ZSU-23-4 + "CUP_O_T72_CHDKZ", // T-72 + "CUP_O_BTR80_CHDKZ", // BTR-80 + "CUP_O_BTR80A_CHDKZ", // BTR-80A + "CUP_O_BRDM2_ATGM_CHDKZ", // BRDM-2 (ATGM) + "CUP_O_D30_ChDKZ" // D-30 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_SLA.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_SLA.sqf new file mode 100644 index 0000000..0ee153b --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_SLA.sqf @@ -0,0 +1,327 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_O_BMP_HQ_sla"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_O_BMP2_AMB_sla"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_O_Mi8_SLA_1"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_O_sla_Crew"; // This defines the crew for vehicles. +pilot_classname = "CUP_O_sla_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_O_UH1H_slick_SLA"; // These are the little birds which spawn on the Freedom or at Chimera bas +KP_liberation_boat_classname = "CUP_O_PBX_SLA"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_O_Ural_Open_SLA"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_O_sla_Soldier",15,0,0], // Rifleman + ["CUP_O_SLA_Soldier_Backpack",20,0,0], // Rifleman (Backpack) + ["CUP_O_sla_Soldier_AT",30,0,0], // Rifleman (RPG-7) + ["CUP_O_sla_Soldier_GL",25,0,0], // Grenadier + ["CUP_O_sla_Soldier_AR",25,0,0], // Autorifleman + ["CUP_O_sla_Soldier_MG",35,0,0], // Machinegunner + ["CUP_O_sla_Soldier_HAT",50,10,0], // AT Specialist + ["CUP_O_sla_Soldier_AA",50,10,0], // AA Specialist + ["CUP_O_sla_Medic",30,0,0], // Medic + ["CUP_O_sla_Engineer",30,0,0], // Engineer + ["CUP_O_sla_SpecOps_TL",20,0,0], // Especas Team Leader + ["CUP_O_sla_SpecOps_LAT",30,0,0], // Especas (RPG18) + ["CUP_O_sla_SpecOps_MG",40,0,0], // Especas Machinegunner + ["CUP_O_sla_SpecOps",30,0,0], // Especas Commando + ["CUP_O_sla_SpecOps_Demo",30,0,0], // Especas (Demolitions) + ["CUP_O_sla_Sniper",70,5,0], // Sniper + ["CUP_O_SLA_Sniper_SVD_Night",70,5,0], // Sniper (Night) + ["CUP_O_sla_Sniper_KSVK",70,5,0], // Sniper (KSVK) + ["CUP_O_sla_Soldier_AKS_Night",70,5,0], // Soldier (AKS-74 Night) + ["CUP_O_SLA_Spotter",20,0,0], // Spotter + ["CUP_O_sla_Crew",10,0,0], // Crewman + ["CUP_O_sla_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_O_UAZ_Unarmed_SLA",100,0,50], // UAZ + ["CUP_O_UAZ_MG_SLA",125,60,50], // UAZ (DShKM) + ["CUP_O_UAZ_AGS30_SLA",125,80,50], // UAZ (AGS-30) + ["CUP_O_UAZ_SPG9_SLA",125,100,50], // UAZ (SPG-9) + ["CUP_O_UAZ_METIS_SLA",150,120,50], // UAZ (Metis-M) + ["CUP_O_UAZ_AA_SLA",200,160,50], // UAZ (AA) + ["CUP_O_Ural_ZU23_SLA",250,300,100], // Ural (ZU-23) + ["CUP_O_BM21_SLA",300,750,100], // BM-21 + ["CUP_O_Ural_Open_SLA",150,0,75], // Ural (Open) + ["CUP_O_Ural_SLA",150,0,75] // Ural +]; + +heavy_vehicles = [ + ["CUP_O_BRDM2_SLA",200,200,150], // BRDM-2 + ["CUP_O_BRDM2_ATGM_SLA",200,400,150], // BRDM-2 (ATGM) + ["CUP_O_BTR60_SLA",300,200,200], // BTR-60PB + ["CUP_O_BTR80_SLA",400,300,200], // BTR-80 + ["CUP_O_BTR80A_SLA",425,500,200], // BTR-80A + ["CUP_O_MTLB_pk_SLA",175,50,100], // MT-LB LV + ["CUP_O_BMP2_SLA",500,600,200], // BMP-2 + ["CUP_O_ZSU23_Afghan_SLA",350,500,200], // ZSU-23-4 Afghanski + ["CUP_O_ZSU23_SLA",500,500,200], // ZSU-23-4 + ["CUP_O_T55_SLA",500,350,250], // T-55 + ["CUP_O_T72_SLA",700,500,300] // T-72 +]; + +air_vehicles = [ + ["CUP_O_UH1H_armed_SLA",400,250,250], // UH-1H (Armed) + ["CUP_O_UH1H_gunship_SLA",500,350,250], // UH-1H (Gunship) + ["CUP_O_Mi8_SLA_2",500,350,300], // Mi-8MTV3 + ["CUP_O_Mi24_D_Dynamic_SLA",600,650,300], // Mi-24D + ["CUP_O_Ka50_DL_SLA",800,750,350], // Ka-50 Black Shark + ["CUP_O_Su25_Dyn_SLA",1000,850,400], // Su-25 Frogfoot + ["CUP_O_SU34_SLA",1200,1000,500] // Su-34 +]; + +static_vehicles = [ + ["CUP_O_DSHKM_SLA",25,40,0], // DShKM + ["CUP_O_DSHkM_MiniTripod_SLA",25,40,0], // DShKM Minitripod + ["CUP_O_AGS_SLA",25,60,0], // AGS-30 + ["CUP_O_SPG9_SLA",50,100,0], // SPG-9 + ["CUP_O_Igla_AA_pod_SLA",100,200,0], // Igla AA Pod + ["CUP_O_ZU23_SLA",100,300,0], // ZU-23 + ["CUP_O_2b14_82mm_SLA",80,150,0], // Podnos 2B14 + ["CUP_O_D30_AT_SLA",100,200,0], // D-30 AT + ["CUP_O_D30_SLA",200,250,0] // D-30 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["FlagCarrierINS",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_O_LCVP_SLA",100,100,50], // LCVP + ["CUP_O_LCVP_VIV_SLA",100,100,50], // LCVP (VIV) + ["CUP_O_Tractor_SLA",50,0,75], // Towing Tractor + ["CUP_O_Ural_Repair_SLA",425,0,75], // Ural (Repair) + ["CUP_O_Ural_Refuel_SLA",125,0,375], // Ural (Refuel) + ["CUP_O_Ural_Reammo_SLA",125,300,75], // Ural (Ammo) + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_O_sla_Soldier_SL", + "CUP_O_sla_Soldier", + "CUP_O_sla_Soldier", + "CUP_O_sla_Soldier_LAT", + "CUP_O_sla_Soldier_GL", + "CUP_O_sla_Soldier_AR", + "CUP_O_sla_Soldier_AR", + "CUP_O_sla_Sniper", + "CUP_O_sla_Medic", + "CUP_O_sla_Engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_O_sla_Soldier_SL", + "CUP_O_sla_Soldier_LAT", + "CUP_O_sla_Soldier_LAT", + "CUP_O_sla_Soldier_GL", + "CUP_O_sla_Soldier_AR", + "CUP_O_sla_Soldier_AR", + "CUP_O_sla_Soldier_MG", + "CUP_O_sla_Sniper", + "CUP_O_sla_Medic", + "CUP_O_sla_Engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_O_sla_Soldier_SL", + "CUP_O_sla_Soldier_AAT", + "CUP_O_sla_Soldier_AAT", + "CUP_O_sla_Soldier_AT", + "CUP_O_sla_Soldier_AT", + "CUP_O_sla_Soldier_HAT", + "CUP_O_sla_Medic", + "CUP_O_sla_Engineer" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_O_sla_Soldier_SL", + "CUP_O_sla_Soldier_Backpack", + "CUP_O_sla_Soldier_Backpack", + "CUP_O_sla_Soldier_AA", + "CUP_O_sla_Soldier_AA", + "CUP_O_sla_Soldier_AA", + "CUP_O_sla_Medic", + "CUP_O_sla_Engineer" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_O_sla_SpecOps_TL", + "CUP_O_sla_SpecOps", + "CUP_O_sla_SpecOps_Demo", + "CUP_O_sla_SpecOps", + "CUP_O_sla_SpecOps_LAT", + "CUP_O_sla_SpecOps_LAT", + "CUP_O_sla_SpecOps_MG" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Officer_urban", + "CUP_O_sla_Soldier_LAT_urban", + "CUP_O_sla_Soldier_LAT_urban", + "CUP_O_sla_Soldier_LAT_urban", + "CUP_O_sla_Soldier_LAT_urban" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_O_BTR60_SLA", // BTR-60 PB + "CUP_O_BM21_SLA", // BM-21 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_SLA", // ZSU-23-4 + "CUP_O_T72_SLA", // T-72 + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_BRDM2_ATGM_SLA", // BRDM-2 (ATGM) + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark + "CUP_O_Su25_Dyn_SLA", // Su-25 Frogfoot + "CUP_O_SU34_SLA", // Su-34 + "CUP_O_D30_SLA" // D-30 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_TakiArmy.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_TakiArmy.sqf new file mode 100644 index 0000000..318a2e7 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_TakiArmy.sqf @@ -0,0 +1,343 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "CUP_O_BMP_HQ_TKA"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_O_M113_Med_TKA"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_O_MI6A_TKA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_O_TK_Crew"; // This defines the crew for vehicles. +pilot_classname = "CUP_O_TK_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_O_UH1H_slick_TKA"; // These are the little birds which spawn on the Freedom or at Chimera bas +KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_O_Ural_Open_TKA"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_O_TK_Soldier",15,0,0], // Rifleman + ["CUP_O_TK_Soldier_Backpack",20,0,0], // Rifleman (backpack) + ["CUP_O_TK_Soldier_AT",30,0,0], // Rifleman (RPG-7) + ["CUP_O_TK_Soldier_GL",25,0,0], // Grenadier + ["CUP_O_TK_Soldier_AR",25,0,0], // Automatic Rifleman + ["CUP_O_TK_Soldier_MG",35,0,0], // Machinegunner + ["CUP_O_TK_Soldier_M",30,0,0], // Marksman + ["CUP_O_TK_Soldier_HAT",50,10,0], // AT Specialist + ["CUP_O_TK_Soldier_AA",50,10,0], // AA Specialist + ["CUP_O_TK_Medic",30,0,0], // Medic + ["CUP_O_TK_Engineer",30,0,0], // Engineer + ["CUP_O_TK_SpecOps_TL",30,0,0], // Special Team Leader + ["CUP_O_TK_SpecOps",30,0,0], // Special Soldier + ["CUP_O_TK_SpecOps_MG",40,0,0], // Special Machinegunner + ["CUP_O_TK_Sniper",70,5,0], // Sniper + ["CUP_O_TK_Sniper_KSVK",70,5,0], // Sniper (KSVK) + ["CUP_O_TK_Sniper_SVD_Night",70,5,0], // Sniper (night) + ["CUP_O_TK_Spotter",20,0,0], // Spotter + ["CUP_O_TK_Crew",10,0,0], // Crewman + ["CUP_O_TK_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_O_Hilux_unarmed_TK_INS",50,0,50], // Hilux + ["CUP_O_Hilux_M2_TK_INS",50,60,50], // Hilux (M2) + ["CUP_O_Hilux_DSHKM_TK_INS",50,60,50], // Hilux (DShKM) + ["CUP_O_Hilux_AGS30_TK_INS",50,80,50], // Hilux (AGS-30) + ["CUP_O_Hilux_SPG9_TK_INS",50,100,50], // Hilux (SPG-9) + ["CUP_O_Hilux_metis_TK_INS",50,120,50], // Hilux (Metis) + ["CUP_O_Hilux_UB32_TK_INS",75,250,50], // Hilux (UB-32) + ["CUP_O_LR_Ambulance_TKA",75,0,50], // Land Rover 110 (Ambulance) + ["CUP_O_LR_Transport_TKA",75,0,50], // Land Rover 110 (Transport) + ["CUP_O_LR_MG_TKA",100,50,50], // Land Rover 110 (M2) + ["CUP_O_LR_SPG9_TKA",100,90,50], // Land Rover 110 (SPG-9) + ["CUP_O_UAZ_Unarmed_TKA",100,0,50], // UAZ + ["CUP_O_UAZ_MG_TKA",125,60,50], // UAZ (DShKM) + ["CUP_O_UAZ_AGS30_TKA",125,80,50], // UAZ (AGS-30) + ["CUP_O_UAZ_SPG9_TKA",125,100,50], // UAZ (SPG-9) + ["CUP_O_UAZ_METIS_TKA",150,120,50], // UAZ (Metis-M) + ["CUP_O_LR_AA_TKA",200,160,50], // Land Rover 110 (AA) + ["CUP_O_Ural_ZU23_TKA",250,300,100], // Ural (ZU-23) + ["CUP_O_BM21_TKA",300,750,100], // BM-21 + ["CUP_O_Ural_Open_TKA",150,0,75], // Ural (Open) + ["CUP_O_Ural_TKA",150,0,75] // Ural +]; + +heavy_vehicles = [ + ["CUP_O_Hilux_armored_zu23_TK_INS",100,150,75], // Hilux Armored (ZU-23-2) + ["CUP_O_Hilux_armored_BTR60_TK_INS",100,200,75], // Hilux Armored (BTR-60) + ["CUP_O_Hilux_armored_BMP1_TK_INS",100,350,75], // Hilux Armored (BMP-1) + ["CUP_O_BTR40_TKA",150,0,100], // BTR-40 (Unarmed) + ["CUP_O_BTR40_MG_TKA",150,60,100], // BTR-40 (DSHKM) + ["CUP_O_BRDM2_TKA",200,200,150], // BRDM-2 + ["CUP_O_BRDM2_ATGM_TKA",200,400,150], // BRDM-2 (ATGM) + ["CUP_O_BTR60_TKA",300,200,200], // BTR-60PB + ["CUP_O_BTR80_TKA",400,300,200], // BTR-80 + ["CUP_O_BTR80A_TKA",425,500,200], // BTR-80A + ["CUP_O_MTLB_pk_TKA",175,50,100], // MT-LB LV + ["CUP_O_M113_TKA",200,100,100], // M113 + ["CUP_O_BMP1_TKA",300,400,200], // BMP-1 + ["CUP_O_BMP1P_TKA",350,450,200], // BMP-1P + ["CUP_O_BMP2_TKA",500,600,200], // BMP-2 + ["CUP_O_BMP2_ZU_TKA",300,300,200], // BMP-2 ZU-23 + ["CUP_O_ZSU23_Afghan_TKA",350,500,200], // ZSU-23-4 Afghanski + ["CUP_O_ZSU23_TKA",500,500,200], // ZSU-23-4 + ["CUP_O_T55_TKA",500,350,250], // T-55 + ["CUP_O_T72_TKA",700,500,300] // T-72 +]; + +air_vehicles = [ + ["CUP_O_UH1H_armed_TKA",400,250,250], // UH-1H (Armed) + ["CUP_O_UH1H_gunship_TKA",500,350,250], // UH-1H (Gunship) + ["CUP_O_Mi17_TK",500,350,300], // Mi-8MT + ["CUP_O_Mi24_D_Dynamic_TK",600,650,300], // Mi-24D + ["CUP_O_C130J_TKA",200,0,250], // C-130J + ["CUP_O_C130J_Cargo_TKA",200,0,250], // C-130J (VIV) + ["CUP_O_L39_TK",800,750,350], // L-39ZA + ["CUP_O_Su25_Dyn_TKA",1000,850,400] // Su-25 Frogfoot +]; + +static_vehicles = [ + ["CUP_O_KORD_high_TK",25,40,0], // KORD + ["CUP_O_KORD_TK",25,40,0], // KORD Minitripod + ["CUP_O_AGS_TK",25,60,0], // AGS-30 + ["CUP_O_Igla_AA_pod_TK",100,200,0], // Igla AA Pod + ["CUP_O_ZU23_TK",100,300,0], // ZU-23 + ["CUP_O_2b14_82mm_TK",80,150,0], // Podnos 2B14 + ["CUP_O_D30_AT_TK",100,200,0], // D-30 AT + ["CUP_O_D30_TK",200,250,0] // D-30 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["FlagCarrierINS",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["CUP_O_Tractor_Old_TKA",50,0,75], // Towing Tractor + ["CUP_O_Ural_Repair_TKA",425,0,75], // Ural (Repair) + ["CUP_O_Ural_Refuel_TKA",125,0,375], // Ural (Refuel) + ["CUP_O_Ural_Reammo_TKA",125,300,75], // Ural (Ammo) + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_O_TK_Soldier_SL", + "CUP_O_TK_Soldier", + "CUP_O_TK_Soldier", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_GL", + "CUP_O_TK_Soldier_AR", + "CUP_O_TK_Soldier_AR", + "CUP_O_TK_Soldier_M", + "CUP_O_TK_Medic", + "CUP_O_TK_Engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_O_TK_Soldier_SL", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_GL", + "CUP_O_TK_Soldier_AR", + "CUP_O_TK_Soldier_AR", + "CUP_O_TK_Soldier_MG", + "CUP_O_TK_Soldier_M", + "CUP_O_TK_Medic", + "CUP_O_TK_Engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_O_TK_Soldier_SL", + "CUP_O_TK_Soldier_AAT", + "CUP_O_TK_Soldier_AAT", + "CUP_O_TK_Soldier_AT", + "CUP_O_TK_Soldier_AT", + "CUP_O_TK_Soldier_HAT", + "CUP_O_TK_Medic", + "CUP_O_TK_Engineer" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_O_TK_Soldier_SL", + "CUP_O_TK_Soldier_Backpack", + "CUP_O_TK_Soldier_Backpack", + "CUP_O_TK_Soldier_AA", + "CUP_O_TK_Soldier_AA", + "CUP_O_TK_Soldier_AA", + "CUP_O_TK_Medic", + "CUP_O_TK_Engineer" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_O_TK_SpecOps_TL", + "CUP_O_TK_SpecOps", + "CUP_O_TK_SpecOps", + "CUP_O_TK_SpecOps", + "CUP_O_TK_SpecOps_MG", + "CUP_O_TK_SpecOps_MG", + "CUP_O_TK_SpecOps_MG" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT", + "CUP_O_TK_Soldier_LAT" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_O_BTR60_TKA", // BTR-60 PB + "CUP_O_BM21_TKA", // BM-21 + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_ZSU23_Afghan_TKA", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_TKA", // ZSU-23-4 + "CUP_O_T72_TKA", // T-72 + "CUP_O_BTR80_TKA", // BTR-80 + "CUP_O_BTR80A_TKA", // BTR-80A + "CUP_O_BRDM2_ATGM_TKA", // BRDM-2 (ATGM) + "CUP_O_Mi24_D_Dynamic_TK", // Mi-24D + "CUP_O_L39_TK", // L-39ZA + "CUP_O_Su25_Dyn_TKA", // Su-25 Frogfoot + "CUP_O_Hilux_UB32_TK_INS", // Hilux (UB-32) + "CUP_O_D30_TKA" // D-30 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Desert.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Desert.sqf new file mode 100644 index 0000000..f125f75 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Desert.sqf @@ -0,0 +1,378 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH47F_USA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_US_Crew"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_MH6M_USA"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_US_Soldier",20,0,0], // Rifleman + ["CUP_B_US_Soldier_LAT",30,0,0], // Rifleman (AT) + ["CUP_B_US_Soldier_GL",25,0,0], // Grenadier + ["CUP_B_US_Soldier_AR",25,0,0], // Automatic Rifleman + ["CUP_B_US_Soldier_MG",35,0,0], // Machinegunner + ["CUP_B_US_Soldier_Marksman",30,0,0], // Marksman + ["CUP_B_US_Soldier_AT",50,25,0], // AT Specialist + ["CUP_B_US_Soldier_HAT",50,10,0], // AT Specialist (Javelin) + ["CUP_B_US_Soldier_AA",50,10,0], // AA Specialist + ["CUP_B_US_Medic",30,0,0], // Medic + ["CUP_B_US_Engineer",30,0,0], // Engineer + ["CUP_B_US_SpecOps_MG",30,0,0], // Machinegunner + ["CUP_B_US_SpecOps",20,0,0], // Operator + ["CUP_B_US_SpecOps_M",30,0,0], // Marksman + ["CUP_B_US_SpecOps_TL",40,0,0], // Team Leader + ["CUP_B_US_SpecOps_Medic",30,0,0], // Medic + ["CUP_B_US_Sniper",70,5,0], // Sniper + ["CUP_B_US_Sniper_M107",70,5,0], // Sniper (M107) + ["CUP_B_US_Spotter",20,0,0], // Spotter + ["CUP_B_US_Crew",10,0,0], // Crewman + ["CUP_B_US_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) + ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 + ["CUP_B_HMMWV_MK19_USA",75,80,50], // HMMWV MK19 + ["CUP_B_HMMWV_TOW_USA",75,100,50], // HMMWV TOW + ["CUP_B_HMMWV_SOV_M2_USA",100,80,50], // HMMWV SOV (M2) + ["CUP_B_HMMWV_SOV_USA",100,100,50], // HMMWV SOV (Mk19) + ["CUP_B_HMMWV_Avenger_USA",200,350,125], // HMMWV Avenger + ["CUP_B_RG31_M2_USA",150,75,100], // RG-31 Nyala M2 + ["CUP_B_RG31_M2_GC_USA",225,75,100], // RG-31 Nyala M2 GC + ["CUP_B_RG31E_M2_USA",200,75,100], // RG-31 Mk5E M2 + ["CUP_B_RG31_Mk19_USA",150,100,100], // RG-31 Mk.19 + ["CUP_B_MTVR_USA",125,0,75] // MTVR +]; + +heavy_vehicles = [ + ["CUP_B_M1126_ICV_M2_Desert_Slat",200,150,125], // M1126 ICV M2 CROWS (Desert - Slat) + ["CUP_B_M1126_ICV_MK19_Desert_Slat",200,200,125], // M1126 ICV MK19 CROWS (Desert - Slat) + ["CUP_B_M1128_MGS_Desert_Slat",200,500,125], // M1128 MGS (Desert - Slat) + ["CUP_B_M1135_ATGMV_Desert_Slat",200,300,125], // M1135 ATGMV (Desert - Slat) + ["CUP_B_M6LineBacker_USA_D",350,450,150], // M6 Linebacker (Desert) + ["CUP_B_M7Bradley_USA_D",300,300,150], // M7 Bradley (Desert) + ["CUP_B_M2Bradley_USA_D",300,400,150], // M2A2 Bradley IFV (Desert) + ["CUP_B_M2A3Bradley_USA_D",400,400,150], // M2A3 ERA Bradley IFV (Desert) + ["CUP_B_M1A1_DES_US_Army",500,500,200], // M1A1 Abrams (Desert) + ["CUP_B_M1A2_TUSK_MG_DES_US_Army",600,550,225], // M1A2 Abrams TUSK (Desert) + ["CUP_B_M1129_MC_MK19_Desert_Slat",600,800,300], // M1129 MC MK19 CROWS (Desert - Slat) + ["CUP_B_M270_HE_USA",600,1250,300], // M270 MLRS (HE) + ["CUP_B_M270_DPICM_USA",800,1750,400] // M270 MLRS (DPICM) +]; + +air_vehicles = [ + ["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV) + ["CUP_B_UH60M_US",300,25,200], // UH-60M + ["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["CUP_B_AH6M_USA",200,100,100], // AH-6M + ["CUP_B_MH60L_DAP_2x_US",400,250,225], // MH-60L DAP (2 Stores) + ["CUP_B_MH60L_DAP_4x_US",400,500,225], // MH-60L DAP (4 Stores) + ["CUP_B_AH64_DL_USA",500,600,300], // AH-64 + ["CUP_B_AH64D_DL_USA",700,600,200], // AH-64D + ["CUP_B_AH6X_USA",300,0,100], // AH-6X Littlebird ULB + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["CUP_B_A10_DYN_USA",1000,800,400], // A-10A Thunderbolt II + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB +]; + +static_vehicles = [ + ["CUP_B_M2StaticMG_US",25,40,0], // M2 Machine Gun + ["CUP_B_M2StaticMG_MiniTripod_US",25,40,0], // M2 Minitripod + ["CUP_B_TOW_TriPod_US",50,100,0], // TOW Tripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_M252_US",80,150,0], // M252 81mm Mortar + ["CUP_B_M119_US",100,200,0] // M119 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["FlagCarrierUSArmy_EP1",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_TowingTractor_USA",50,0,75], // Towing Tractor + ["CUP_B_MTVR_Repair_USA",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_USA",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_USA",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_GL", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_Marksman", + "CUP_B_US_Medic", + "CUP_B_US_Engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_GL", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_MG", + "CUP_B_US_Soldier_Marksman", + "CUP_B_US_Medic", + "CUP_B_US_Engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_HAT", + "CUP_B_US_Soldier_AT", + "CUP_B_US_Soldier_AT", + "CUP_B_US_Medic", + "CUP_B_US_Soldier" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Medic", + "CUP_B_US_Soldier" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_US_SpecOps_TL", + "CUP_B_US_SpecOps", + "CUP_B_US_SpecOps_Assault", + "CUP_B_US_SpecOps_MG", + "CUP_B_US_SpecOps_JTAC", + "CUP_B_US_SpecOps_M14", + "CUP_B_US_SpecOps_M", + "CUP_B_US_SpecOps_M", + "CUP_B_US_SpecOps_Medic", + "CUP_B_US_SpecOps_UAV" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS + "CUP_B_A10_DYN_USA", // A-10A Thunderbolt II + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "CUP_B_AH64D_DL_USA", // AH-64D + "CUP_B_MH60L_DAP_2x_US", // MH-60L DAP (2 Stores) + "CUP_B_MH60L_DAP_4x_US", // MH-60L DAP (4 Stores) + "CUP_B_M1A1_DES_US_Army", // M1A1 Abrams (Desert) + "CUP_B_M1A2_TUSK_MG_DES_US_Army", // M1A2 Abrams TUSK (Desert) + "CUP_B_M270_HE_USA", // M270 MLRS (HE) + "CUP_B_M270_DPICM_USA", // M270 MLRS (DPICM) + "CUP_B_M6LineBacker_USA_D", // M6 Linebacker (Desert) + "CUP_B_M1128_MGS_Desert_Slat", // M1128 MGS (Desert - Slat) + "CUP_B_M1135_ATGMV_Desert_Slat", // M1135 ATGMV (Desert - Slat) + "CUP_B_M1129_MC_MK19_Desert_Slat", // M1129 MC MK19 CROWS (Desert - Slat) + "CUP_B_M2A3Bradley_USA_D", // M2A3 ERA Bradley IFV (Desert) + "CUP_B_M119_US", // M119 + "CUP_B_RG31E_M2_USA", // RG-31 Mk5E M2 + "CUP_B_RG31_Mk19_USA" // RG-31 Mk.19 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Woodland.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Woodland.sqf new file mode 100644 index 0000000..3db0c2c --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_USA_Woodland.sqf @@ -0,0 +1,381 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH47F_USA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_US_Crew"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_MH6M_USA"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_US_Soldier",20,0,0], // Rifleman + ["CUP_B_US_Soldier_LAT",30,0,0], // Rifleman (AT) + ["CUP_B_US_Soldier_GL",25,0,0], // Grenadier + ["CUP_B_US_Soldier_AR",25,0,0], // Automatic Rifleman + ["CUP_B_US_Soldier_MG",35,0,0], // Machinegunner + ["CUP_B_US_Soldier_Marksman",30,0,0], // Marksman + ["CUP_B_US_Soldier_AT",50,25,0], // AT Specialist + ["CUP_B_US_Soldier_HAT",50,10,0], // AT Specialist (Javelin) + ["CUP_B_US_Soldier_AA",50,10,0], // AA Specialist + ["CUP_B_US_Medic",30,0,0], // Medic + ["CUP_B_US_Engineer",30,0,0], // Engineer + ["CUP_B_US_SpecOps_MG",30,0,0], // Machinegunner + ["CUP_B_US_SpecOps",20,0,0], // Operator + ["CUP_B_US_SpecOps_M",30,0,0], // Marksman + ["CUP_B_US_SpecOps_TL",40,0,0], // Team Leader + ["CUP_B_US_SpecOps_Medic",30,0,0], // Medic + ["CUP_B_US_Sniper",70,5,0], // Sniper + ["CUP_B_US_Sniper_M107",70,5,0], // Sniper (M107) + ["CUP_B_US_Spotter",20,0,0], // Spotter + ["CUP_B_US_Crew",10,0,0], // Crewman + ["CUP_B_US_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) + ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 + ["CUP_B_HMMWV_MK19_USA",75,80,50], // HMMWV MK19 + ["CUP_B_HMMWV_TOW_USA",75,100,50], // HMMWV TOW + ["CUP_B_HMMWV_SOV_M2_USA",100,80,50], // HMMWV SOV (M2) + ["CUP_B_HMMWV_SOV_USA",100,100,50], // HMMWV SOV (Mk19) + ["CUP_B_HMMWV_Avenger_USA",200,350,125], // HMMWV Avenger + ["CUP_B_RG31_M2_OD_USA",150,75,100], // RG-31 Nyala M2 + ["CUP_B_RG31_M2_OD_GC_USA",225,75,100], // RG-31 Nyala M2 GC + ["CUP_B_RG31E_M2_OD_USA",200,75,100], // RG-31 Mk5E M2 + ["CUP_B_RG31_Mk19_OD_USA",150,100,100], // RG-31 Mk.19 + ["CUP_B_MTVR_USA",125,0,75] // MTVR +]; + +heavy_vehicles = [ + ["CUP_B_M1126_ICV_M2_Woodland_Slat",200,150,125], // M1126 ICV M2 CROWS (Woodland - Slat) + ["CUP_B_M1126_ICV_MK19_Woodland_Slat",200,200,125], // M1126 ICV MK19 CROWS (Woodland - Slat) + ["CUP_B_M1128_MGS_Woodland_Slat",200,500,125], // M1128 MGS (Woodland - Slat) + ["CUP_B_M1135_ATGMV_Woodland_Slat",200,300,125], // M1135 ATGMV (Woodland - Slat) + ["CUP_B_M163_USA",250,600,200], // M163A1 VADS + ["CUP_B_M6LineBacker_USA_W",350,450,150], // M6 Linebacker (Woodland) + ["CUP_B_M7Bradley_USA_W",300,300,150], // M7 Bradley (Woodland) + ["CUP_B_M2Bradley_USA_W",300,400,150], // M2A2 Bradley IFV (Woodland) + ["CUP_B_M2A3Bradley_USA_W",400,400,150], // M2A3 ERA Bradley IFV (Woodland) + ["CUP_B_M1A1_Woodland_US_Army",500,500,200], // M1A1 Abrams (Woodland) + ["CUP_B_M1A2_TUSK_MG_US_Army",600,550,225], // M1A2 Abrams TUSK (Woodland) + ["CUP_B_M1129_MC_MK19_Woodland_Slat",600,800,400], // M1129 MC MK19 CROWS (Woodland - Slat) + ["CUP_B_M270_HE_USA",600,1250,300], // M270 MLRS (HE) + ["CUP_B_M270_DPICM_USA",800,1750,400] // M270 MLRS (DPICM) +]; + +air_vehicles = [ + ["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV) + ["CUP_B_UH60M_US",300,25,200], // UH-60M + ["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["CUP_B_AH6M_USA",200,100,100], // AH-6M + ["CUP_B_MH60L_DAP_2x_US",400,250,225], // MH-60L DAP (2 Stores) + ["CUP_B_MH60L_DAP_4x_US",400,500,225], // MH-60L DAP (4 Stores) + ["CUP_B_AH64_DL_USA",500,600,300], // AH-64 + ["CUP_B_AH64D_DL_USA",700,600,200], // AH-64D + ["CUP_B_AH6X_USA",300,0,100], // AH-6X Littlebird ULB + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["CUP_B_AC47_Spooky_USA",600,300,400], // AC-47D Spooky + ["CUP_B_A10_DYN_USA",1000,800,400], // A-10A Thunderbolt II + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB +]; + +static_vehicles = [ + ["CUP_B_M2StaticMG_US",25,40,0], // M2 Machine Gun + ["CUP_B_M2StaticMG_MiniTripod_US",25,40,0], // M2 Minitripod + ["CUP_B_TOW_TriPod_US",50,100,0], // TOW Tripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_M252_US",80,150,0], // M252 81mm Mortar + ["CUP_B_M119_US",100,200,0] // M119 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["FlagCarrierUSArmy_EP1",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_TowingTractor_USA",50,0,75], // Towing Tractor + ["CUP_B_MTVR_Repair_USMC",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_USMC",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_USMC",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_GL", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_Marksman", + "CUP_B_US_Medic", + "CUP_B_US_Engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_LAT", + "CUP_B_US_Soldier_GL", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_AR", + "CUP_B_US_Soldier_MG", + "CUP_B_US_Soldier_Marksman", + "CUP_B_US_Medic", + "CUP_B_US_Engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_HAT", + "CUP_B_US_Soldier_AT", + "CUP_B_US_Soldier_AT", + "CUP_B_US_Medic", + "CUP_B_US_Soldier" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_US_Soldier_SL", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Soldier_AA", + "CUP_B_US_Medic", + "CUP_B_US_Soldier" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_US_SpecOps_TL", + "CUP_B_US_SpecOps", + "CUP_B_US_SpecOps_Assault", + "CUP_B_US_SpecOps_MG", + "CUP_B_US_SpecOps_JTAC", + "CUP_B_US_SpecOps_M14", + "CUP_B_US_SpecOps_M", + "CUP_B_US_SpecOps_M", + "CUP_B_US_SpecOps_Medic", + "CUP_B_US_SpecOps_UAV" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier", + "CUP_B_US_Soldier" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS + "CUP_B_A10_DYN_USA", // A-10A Thunderbolt II + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "CUP_B_AH64D_DL_USA", // AH-64D + "CUP_B_MH60L_DAP_2x_US", // MH-60L DAP (2 Stores) + "CUP_B_MH60L_DAP_4x_US", // MH-60L DAP (4 Stores) + "CUP_B_M1A1_Woodland_US_Army", // M1A1 Abrams (Woodland) + "CUP_B_M1A2_TUSK_MG_US_Army", // M1A2 Abrams TUSK (Woodland) + "CUP_B_M270_HE_USA", // M270 MLRS (HE) + "CUP_B_M270_DPICM_USA", // M270 MLRS (DPICM) + "CUP_B_M6LineBacker_USA_W", // M6 Linebacker (Woodland) + "CUP_B_M163_USA", // M163A1 VADS + "CUP_B_M1128_MGS_Woodland_Slat", // M1128 MGS (Woodland - Slat) + "CUP_B_M1135_ATGMV_Woodland_Slat", // M1135 ATGMV (Woodland - Slat) + "CUP_B_M1129_MC_MK19_Woodland_Slat", // M1129 MC MK19 CROWS (Woodland - Slat) + "CUP_B_M2A3Bradley_USA_W", // M2A3 ERA Bradley IFV (Woodland) + "CUP_B_M119_US", // M119 + "CUP_B_RG31E_M2_USA", // RG-31 Mk5E M2 + "CUP_B_RG31_Mk19_USA" // RG-31 Mk.19 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Desert.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Desert.sqf new file mode 100644 index 0000000..4341999 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Desert.sqf @@ -0,0 +1,374 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH53E_USMC"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_USMC_Crewman_FROG_DES"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_USMC_Soldier_FROG_DES",20,0,0], // Rifleman + ["CUP_B_USMC_Soldier_LAT_FROG_DES",30,0,0], // Rifleman (M136) + ["CUP_B_USMC_Soldier_GL_FROG_DES",25,0,0], // Grenadier + ["CUP_B_USMC_Soldier_AR_FROG_DES",25,0,0], // Automatic Rifleman + ["CUP_B_USMC_Soldier_MG_FROG_DES",35,0,0], // Machinegunner + ["CUP_B_USMC_Soldier_Marksman_FROG_DES",30,0,0], // Designated Marksman + ["CUP_B_USMC_Soldier_HAT_FROG_DES",50,25,0], // AT Specialist (Javelin) + ["CUP_B_USMC_Soldier_AT_FROG_DES",50,10,0], // AT Specialist (SMAW) + ["CUP_B_USMC_Soldier_AA_FROG_DES",50,10,0], // AA Specialist (Stinger) + ["CUP_B_USMC_Soldier_Medic_FROG_DES",30,0,0], // Corpsman + ["CUP_B_USMC_Soldier_Engineer_FROG_DES",30,0,0], // Engineer + ["CUP_B_FR_Soldier_Exp_DES",30,0,0], // Force Recon Demolitions Specialist + ["CUP_B_FR_Soldier_Assault_DES",20,0,0], // Force Recon Assault Rifleman + ["CUP_B_FR_Soldier_Marksman_DES",30,0,0], // Force Recon Marksman + ["CUP_B_FR_Soldier_TL_DES",40,0,0], // Force Recon Team Leader + ["CUP_B_FR_Medic_DES",30,0,0], // Force Recon Corpsman + ["CUP_B_USMC_Soldier_M40A3",70,5,0], // Sniper M40A3 + ["CUP_B_USMC_Soldier_M107",70,5,0], // Sniper M107 + ["CUP_B_USMC_Spotter",20,0,0], // Spotter + ["CUP_B_USMC_Crewman_FROG_DES",10,0,0], // Crewman + ["CUP_B_USMC_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_M1030_USMC",50,0,25], // M1030 + ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) + ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 + ["CUP_B_HMMWV_TOW_USA",75,100,50], // HMMWV TOW + ["CUP_B_HMMWV_MK19_USA",75,80,50], // HMMWV MK19 + ["CUP_B_HMMWV_Avenger_USA",100,125,125], // HMMWV Avenger + ["CUP_B_RG31_M2_OD_USA",100,50,50], // RG-31 M2 + ["CUP_B_RG31E_M2_OD_USA",100,50,50], // RG-31 Mk5E M2 + ["CUP_B_RG31_Mk19_OD_USA",100,80,50], // RG-31 Mk.19 + ["CUP_B_MTVR_USA",125,0,75], // MTVR + ["CUP_B_RHIB_USMC",150,100,100], // RHIB + ["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19) +]; + +heavy_vehicles = [ + ["CUP_B_LAV25_desert_USMC",200,175,125], // LAV-25A1 (Desert) + ["CUP_B_LAV25M240_desert_USMC",200,200,125], // LAV-25A1 (M240) (Desert) + ["CUP_B_LAV25_HQ_desert_USMC",200,50,125], // LAV-C2 (Desert) + ["CUP_B_AAV_Unarmed_USMC",300,0,150], // AAVC7/A1 (Command) + ["CUP_B_AAV_USMC",300,150,150], // AAVP7/A1 + ["CUP_B_M60A3_TTS_USMC",400,350,200], // M60A3 TTS + ["CUP_B_M1A1_DES_USMC",500,500,200], // M1A1 Abrams (Desert) + ["CUP_B_M1A2_TUSK_MG_DES_USMC",600,550,225], // M1A2 Abrams TUSK (Desert) + ["CUP_B_M270_HE_USMC",600,1250,300], // M270 MLRS (HE) + ["CUP_B_M270_DPICM_USMC",800,1750,400] // M270 MLRS (DPICM) +]; + +air_vehicles = [ + ["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC) + ["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship) + ["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV) + ["CUP_B_UH60S_USN",250,50,200], // MH-60S Seahawk (M3M) + ["CUP_B_C130J_USMC",200,0,250], // C-130J + ["CUP_B_C130J_Cargo_USMC",200,0,250], // C-130J (VIV) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["CUP_B_AH1Z_Dynamic_USMC",500,500,200], // AH-1Z + ["CUP_B_MH60L_DAP_2x_USN",450,400,250], // MH-60S Knighthawk (ESSS x2) + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["CUP_B_USMC_DYN_MQ9",500,500,200], // MQ-9 Reaper + ["CUP_B_AV8B_DYN_USMC",1000,800,400], // AV-8B Harrier II + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["CUP_B_F35B_Stealth_USMC",2500,2000,750], // F-35B Lightning II (Stealth) + ["CUP_B_F35B_USMC",2500,2250,750], // F-35B Lightning II + ["CUP_B_MV22_USMC_RAMPGUN",750,100,500], // MV-22B Osprey (Ramp Gun) + ["CUP_B_MV22_USMC",750,0,500], // MV-22B Osprey + ["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV) +]; + +static_vehicles = [ + ["CUP_B_M2StaticMG_USMC",25,40,0], // M2 Machine Gun + ["CUP_B_M2StaticMG_MiniTripod_USMC",25,40,0], // M2 Minitripod + ["CUP_B_TOW_TriPod_USMC",50,100,0], // TOW Tripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_M252_USMC",80,150,0], // M252 81mm Mortar + ["CUP_B_M119_USMC",100,200,0] // M119 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_LCU1600_USMC",250,0,175], // LCU-1610 + ["CUP_B_TowingTractor_USMC",50,0,75], // Towing Tractor + ["CUP_B_MTVR_Repair_USA",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_USA",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_USA",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_USMC_Soldier_SL_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_LAT_FROG_DES", + "CUP_B_USMC_Soldier_GL_FROG_DES", + "CUP_B_USMC_Soldier_AR_FROG_DES", + "CUP_B_USMC_Soldier_AR_FROG_DES", + "CUP_B_USMC_Soldier_Marksman_FROG_DES", + "CUP_B_USMC_Medic_FROG_DES", + "CUP_B_USMC_Engineer_FROG_DES" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_USMC_Soldier_SL_FROG_DES", + "CUP_B_USMC_Soldier_LAT_FROG_DES", + "CUP_B_USMC_Soldier_LAT_FROG_DES", + "CUP_B_USMC_Soldier_GL_FROG_DES", + "CUP_B_USMC_Soldier_AR_FROG_DES", + "CUP_B_USMC_Soldier_AR_FROG_DES", + "CUP_B_USMC_Soldier_MG_FROG_DES", + "CUP_B_USMC_Soldier_Marksman_FROG_DES", + "CUP_B_USMC_Medic_FROG_DES", + "CUP_B_USMC_Engineer_FROG_DES" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_USMC_Soldier_SL_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_HAT_FROG_DES", + "CUP_B_USMC_Soldier_AT_FROG_DES", + "CUP_B_USMC_Soldier_AT_FROG_DES", + "CUP_B_USMC_Medic_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_USMC_Soldier_SL_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_AA_FROG_DES", + "CUP_B_USMC_Soldier_AA_FROG_DES", + "CUP_B_USMC_Soldier_AA_FROG_DES", + "CUP_B_USMC_Medic_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_FR_Soldier_TL_DES", + "CUP_B_FR_Soldier_Assault_DES", + "CUP_B_FR_Soldier_Assault_DES", + "CUP_B_FR_Soldier_AR_DES", + "CUP_B_FR_Soldier_Operator_DES", + "CUP_B_FR_Saboteur_DES", + "CUP_B_FR_Soldier_Marksman_DES", + "CUP_B_FR_Soldier_Marksman_DES", + "CUP_B_FR_Medic_DES", + "CUP_B_FR_Soldier_Exp_DES" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES", + "CUP_B_USMC_Soldier_FROG_DES" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_F35B_USMC", // F-35B Lightning II + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS + "CUP_B_F35B_Stealth_USMC", // F-35B Lightning II (Stealth) + "CUP_B_AV8B_DYN_USMC", // AV-8B Harrier II + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "CUP_B_AH1Z_Dynamic_USMC", // AH-1Z + "CUP_B_MH60L_DAP_2x_USN", // MH-60S Knighthawk (ESSS x2) + "CUP_B_M1A1_DES_USMC", // M1A1 Abrams (Desert) + "CUP_B_M1A2_TUSK_MG_DES_USMC", // M1A2 Abrams TUSK (Desert) + "CUP_B_M270_HE_USMC", // M270 MLRS (HE) + "CUP_B_M270_DPICM_USMC", // M270 MLRS (DPICM) + "CUP_B_LAV25M240_desert_USMC", // LAV-25A1 (M240) (Desert) + "CUP_B_HMMWV_TOW_USA", // HMMWV TOW + "CUP_B_RG31_M2_USA", // RG-31 M2 + "CUP_B_RG31E_M2_USA", // RG-31 Mk5E M2 + "CUP_B_RG31_Mk19_USA", // RG-31 Mk.19 + "CUP_B_LAV25_desert_USMC" // LAV-25A1 (Desert) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Woodland.sqf b/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Woodland.sqf new file mode 100644 index 0000000..072b4d9 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/CUP_USMC_Woodland.sqf @@ -0,0 +1,375 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USMC"; // This is the mobile respawn (and medical) truck. +huron_typename = "CUP_B_CH53E_USMC"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "CUP_B_USMC_Crewman_FROG_WDL"; // This defines the crew for vehicles. +pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "CUP_B_MTVR_USMC"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["CUP_B_USMC_Soldier_FROG_WDL",20,0,0], // Rifleman + ["CUP_B_USMC_Soldier_LAT_FROG_WDL",30,0,0], // Rifleman (M136) + ["CUP_B_USMC_Soldier_GL_FROG_WDL",25,0,0], // Grenadier + ["CUP_B_USMC_Soldier_AR_FROG_WDL",25,0,0], // Automatic Rifleman + ["CUP_B_USMC_Soldier_MG_FROG_WDL",35,0,0], // Machinegunner + ["CUP_B_USMC_Soldier_Marksman_FROG_WDL",30,0,0], // Designated Marksman + ["CUP_B_USMC_Soldier_HAT_FROG_WDL",50,25,0], // AT Specialist (Javelin) + ["CUP_B_USMC_Soldier_AT_FROG_WDL",50,10,0], // AT Specialist (SMAW) + ["CUP_B_USMC_Soldier_AA_FROG_WDL",50,10,0], // AA Specialist (Stinger) + ["CUP_B_USMC_Soldier_Medic_FROG_WDL",30,0,0], // Corpsman + ["CUP_B_USMC_Soldier_Engineer_FROG_WDL",30,0,0], // Engineer + ["CUP_B_FR_Soldier_Exp_WDL",30,0,0], // Force Recon Demolitions Specialist + ["CUP_B_FR_Soldier_Assault",20,0,0], // Force Recon Assault Rifleman + ["CUP_B_FR_Soldier_Marksman_WDL",30,0,0], // Force Recon Marksman + ["CUP_B_FR_Soldier_TL",40,0,0], // Force Recon Team Leader + ["CUP_B_FR_Medic_WDL",30,0,0], // Force Recon Corpsman + ["CUP_B_USMC_Soldier_M40A3",70,5,0], // Sniper M40A3 + ["CUP_B_USMC_Soldier_M107",70,5,0], // Sniper M107 + ["CUP_B_USMC_Spotter",20,0,0], // Spotter + ["CUP_B_USMC_Crewman_FROG_WDL",10,0,0], // Crewman + ["CUP_B_USMC_Pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["CUP_B_M1030_USMC",50,0,25], // M1030 + ["CUP_B_HMMWV_Unarmed_USMC",75,0,50], // HMMWV (Unarmed) + ["CUP_B_HMMWV_M1114_USMC",75,30,50], // HMMWV M240 + ["CUP_B_HMMWV_M2_USMC",75,60,50], // HMMWV M2 + ["CUP_B_HMMWV_TOW_USMC",75,100,50], // HMMWV TOW + ["CUP_B_HMMWV_MK19_USMC",75,80,50], // HMMWV MK19 + ["CUP_B_HMMWV_Avenger_USMC",100,125,125], // HMMWV Avenger + ["CUP_B_RG31_M2_OD_USMC",100,50,50], // RG-31 M2 + ["CUP_B_RG31E_M2_OD_USMC",100,50,50], // RG-31 Mk5E M2 + ["CUP_B_RG31_Mk19_OD_USMC",100,80,50], // RG-31 Mk.19 + ["CUP_B_MTVR_USMC",125,0,75], // MTVR + ["CUP_B_RHIB_USMC",150,100,100], // RHIB + ["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19) +]; + +heavy_vehicles = [ + ["CUP_B_LAV25_green",200,175,125], // LAV-25A1 (Olive) + ["CUP_B_LAV25M240_green",200,200,125], // LAV-25A1 (M240) (Olive) + ["CUP_B_LAV25_HQ_green",200,50,125], // LAV-C2 (Olive) + ["CUP_B_AAV_Unarmed_USMC",300,0,150], // AAVC7/A1 (Command) + ["CUP_B_AAV_USMC",300,150,150], // AAVP7/A1 + ["CUP_B_M60A3_TTS_USMC",400,350,200], // M60A3 TTS + ["CUP_B_M1A1_Woodland_USMC",500,500,200], // M1A1 Abrams (Woodland) + ["CUP_B_M1A2_TUSK_MG_USMC",600,550,225], // M1A2 Abrams TUSK (Woodland) + ["CUP_B_M270_HE_USMC",600,1250,300], // M270 MLRS (HE) + ["CUP_B_M270_DPICM_USMC",800,1750,400] // M270 MLRS (DPICM) +]; + +air_vehicles = [ + ["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC) + ["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship) + ["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV) + ["CUP_B_UH60S_USN",250,50,200], // MH-60S Seahawk (M3M) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["CUP_B_AH1Z_Dynamic_USMC",500,500,200], // AH-1Z + ["CUP_B_MH60L_DAP_2x_USN",450,400,250], // MH-60S Knighthawk (ESSS x2) + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["CUP_B_USMC_DYN_MQ9",500,500,200], // MQ-9 Reaper + ["CUP_B_AV8B_DYN_USMC",1000,800,400], // AV-8B Harrier II + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["CUP_B_F35B_Stealth_USMC",2500,2000,750], // F-35B Lightning II (Stealth) + ["CUP_B_F35B_USMC",2500,2250,750], // F-35B Lightning II + ["CUP_B_MV22_USMC_RAMPGUN",750,100,500], // MV-22B Osprey (Ramp Gun) + ["CUP_B_MV22_USMC",750,0,500], // MV-22B Osprey + ["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV) +]; + +static_vehicles = [ + ["CUP_B_M2StaticMG_USMC",25,40,0], // M2 Machine Gun + ["CUP_B_M2StaticMG_MiniTripod_USMC",25,40,0], // M2 Minitripod + ["CUP_B_TOW_TriPod_USMC",50,100,0], // TOW Tripod + ["CUP_WV_B_CRAM",500,500,0], // C-RAM + ["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS + ["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["CUP_B_M252_USMC",80,150,0], // M252 81mm Mortar + ["CUP_B_M119_USMC",100,200,0] // M119 +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_LCU1600_USMC",250,0,175], // LCU-1610 + ["CUP_B_TowingTractor_USMC",50,0,75], // Towing Tractor + ["CUP_B_MTVR_Repair_USMC",425,0,75], // MTVR Repair + ["CUP_B_MTVR_Refuel_USMC",125,0,375], // MTVR Refuel + ["CUP_B_MTVR_Ammo_USMC",125,300,75], // MTVR Ammo + ["B_Slingload_01_Repair_F",375,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,300], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,300,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "CUP_B_USMC_Soldier_SL_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_LAT_FROG_WDL", + "CUP_B_USMC_Soldier_GL_FROG_WDL", + "CUP_B_USMC_Soldier_AR_FROG_WDL", + "CUP_B_USMC_Soldier_AR_FROG_WDL", + "CUP_B_USMC_Soldier_Marksman_FROG_WDL", + "CUP_B_USMC_Medic_FROG_WDL", + "CUP_B_USMC_Engineer_FROG_WDL" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "CUP_B_USMC_Soldier_SL_FROG_WDL", + "CUP_B_USMC_Soldier_LAT_FROG_WDL", + "CUP_B_USMC_Soldier_LAT_FROG_WDL", + "CUP_B_USMC_Soldier_GL_FROG_WDL", + "CUP_B_USMC_Soldier_AR_FROG_WDL", + "CUP_B_USMC_Soldier_AR_FROG_WDL", + "CUP_B_USMC_Soldier_MG_FROG_WDL", + "CUP_B_USMC_Soldier_Marksman_FROG_WDL", + "CUP_B_USMC_Medic_FROG_WDL", + "CUP_B_USMC_Engineer_FROG_WDL" +]; + +// AT specialists squad. +blufor_squad_at = [ + "CUP_B_USMC_Soldier_SL_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_HAT_FROG_WDL", + "CUP_B_USMC_Soldier_AT_FROG_WDL", + "CUP_B_USMC_Soldier_AT_FROG_WDL", + "CUP_B_USMC_Medic_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "CUP_B_USMC_Soldier_SL_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_AA_FROG_WDL", + "CUP_B_USMC_Soldier_AA_FROG_WDL", + "CUP_B_USMC_Soldier_AA_FROG_WDL", + "CUP_B_USMC_Medic_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL" +]; + +// Force recon squad. +blufor_squad_recon = [ + "CUP_B_FR_Soldier_TL_WDL", + "CUP_B_FR_Soldier_Assault_WDL", + "CUP_B_FR_Soldier_Assault_WDL", + "CUP_B_FR_Soldier_AR_WDL", + "CUP_B_FR_Soldier_Operator_WDL", + "CUP_B_FR_Saboteur_WDL", + "CUP_B_FR_Soldier_Marksman_WDL", + "CUP_B_FR_Soldier_Marksman_WDL", + "CUP_B_FR_Medic_WDL", + "CUP_B_FR_Soldier_Exp_WDL" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL", + "CUP_B_USMC_Soldier_FROG_WDL" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "CUP_B_F35B_USMC", // F-35B Lightning II + "CUP_WV_B_CRAM", // C-RAM + "CUP_WV_B_SS_Launcher", // Mk-29 GMLS + "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS + "CUP_B_F35B_Stealth_USMC", // F-35B Lightning II (Stealth) + "CUP_B_AV8B_DYN_USMC", // AV-8B Harrier II + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "CUP_B_AH1Z_Dynamic_USMC", // AH-1Z + "CUP_B_MH60L_DAP_2x_USN", // MH-60S Knighthawk (ESSS x2) + "CUP_B_M1A1_Woodland_USMC", // M1A1 Abrams (Woodland) + "CUP_B_M1A2_TUSK_MG_USMC", // M1A2 Abrams TUSK (Woodland) + "CUP_B_M270_HE_USMC", // M270 MLRS (HE) + "CUP_B_M270_DPICM_USMC", // M270 MLRS (DPICM) + "CUP_B_LAV25M240_green", // LAV-25A1 (M240) (Olive) + "CUP_B_HMMWV_TOW_USMC", // HMMWV TOW + "CUP_B_RG31_M2_USMC", // RG-31 M2 + "CUP_B_RG31E_M2_USMC", // RG-31 Mk5E M2 + "CUP_B_RG31_Mk19_USMC", // RG-31 Mk.19 + "CUP_B_LAV25_green" // LAV-25A1 (Olive) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/apex.sqf b/kp_liberation.brf_sumava/presets/blufor/apex.sqf new file mode 100644 index 0000000..579cd21 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/apex.sqf @@ -0,0 +1,469 @@ +/* + Needed Mods: + - None + + Optional Mods: + - BWMod + - RHSUSAF + - F-15C + - F/A-18 + - CUP Weapons + - CUP Vehicles + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "B_T_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. +huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "B_T_crew_F"; // This defines the crew for vehicles. +pilot_classname = "B_T_Helipilot_F"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "B_T_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["B_T_Soldier_F",20,0,0], // Rifleman + ["B_T_Soldier_LAT_F",30,0,0], // Rifleman (AT) + ["B_T_Soldier_GL_F",25,0,0], // Grenadier + ["B_T_Soldier_AR_F",25,0,0], // Autorifleman + ["B_T_soldier_M_F",30,0,0], // Marksman + ["B_T_Soldier_AT_F",50,10,0], // AT Specialist + ["B_T_Soldier_AA_F",50,10,0], // AA Specialist + ["B_T_Medic_F",30,0,0], // Combat Life Saver + ["B_T_Engineer_F",30,0,0], // Engineer + ["B_T_Soldier_Exp_F",30,0,0], // Explosives Specialist + ["B_T_Recon_F",20,0,0], // Recon Scout + ["B_T_Recon_LAT_F",30,0,0], // Recon Scout (AT) + ["B_T_Recon_M_F",30,0,0], // Recon Marksman + ["B_T_Recon_Medic_F",30,0,0], // Recon Paramedic + ["B_T_Recon_exp_F",30,0,0], // Recon Demolition Expert + ["B_T_Sniper_F",70,5,0], // Sniper + ["B_T_ghillie_tna_F",70,5,0], // Sniper (Jungle) + ["B_T_Spotter_F",20,0,0], // Spotter + ["B_T_Crew_F",10,0,0], // Crewman + ["B_T_Soldier_PG_F",20,0,0], // Para Trooper + ["B_T_Helicrew_F",10,0,0], // Helicopter Crew + ["B_T_Helipilot_F",10,0,0], // Helicopter Pilot + ["B_T_Pilot_F",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_T_Quadbike_01_F",50,0,25], // Quad Bike + ["B_T_LSV_01_unarmed_F",75,0,50], // Prowler + ["B_T_LSV_01_armed_F",75,40,50], // Prowler (HMG) + ["B_T_LSV_01_AT_F",75,60,50], // Prowler (AT) + ["CUP_B_HMMWV_M2_NATO_T",75,40,50], // HMMWV M2 + ["CUP_B_HMMWV_MK19_NATO_T",75,60,50], // HMMWV MK19 + ["CUP_B_HMMWV_Avenger_NATO_T",200,350,125], // HMMWV Avenger + ["B_T_MRAP_01_F",100,0,50], // Hunter + ["B_T_MRAP_01_hmg_F",100,40,50], // Hunter (HMG) + ["B_T_MRAP_01_gmg_F",100,60,50], // Hunter (GMG) + ["I_MRAP_03_F",100,0,50], // Strider + ["I_MRAP_03_hmg_F",100,40,50], // Strider (HMG) + ["I_MRAP_03_gmg_F",100,60,50], // Strider (GMG) + ["rhsusf_m1025_w",100,0,50], // M1025A2 + ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_w_mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_w_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_w_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["BWA3_Eagle_Fleck",100,0,50], // Eagle IV + ["BWA3_Eagle_FLW100_Fleck",100,100,50], // Eagle IV (FLW 100) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["B_T_Truck_01_transport_F",125,0,75], // HEMTT Transport + ["B_T_Truck_01_covered_F",125,0,75], // HEMTT Transport (Covered) + ["rhsusf_M1083A1P2_wd_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_wd_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_wd",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_wd",125,40,75], // M977A4 BKIT (HMG) + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_T_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_T_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) + ["I_LT_01_scout_F",200,0,125], // AWC 302 Nyx (AA) + ["B_T_APC_Wheeled_01_cannon_F",200,75,125], // AMV-7 Marshall + ["I_APC_Wheeled_03_cannon_F",200,75,125], // AFV-4 Gorgon + ["B_T_APC_Tracked_01_rcws_F",300,100,150], // IFV-6c Panther + ["I_APC_tracked_03_cannon_F",300,150,150], // FV-720 Mora + ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) + ["CUP_B_M2Bradley_NATO_T",300,200,150], // M2A2 Bradley IFV + ["BWA3_Puma_Fleck",300,225,150], // IFV Puma + ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) + ["CUP_B_M2A3Bradley_NATO_T",300,250,175], // M2A3 ERA Bradley IFV + ["B_T_APC_Tracked_01_AA_F",300,250,175], // IFV-6a Cheetah + ["CUP_B_M6LineBacker_NATO_T",300,250,175], // M6 Linebacker + ["I_LT_01_AA_F",300,250,175], // AWC 302 Nyx (AA) + ["I_LT_01_AT_F",300,250,175], // AWC 302 Nyx (AT) + ["I_LT_01_cannon_F",300,250,175], // AWC 302 Nyx (Cannon) + ["RHS_M6_wd",300,250,175], // M6A2 + ["B_T_MBT_01_cannon_F",400,300,200], // M2A1 Slammer + ["CUP_B_M1A1_NATO_T",400,300,200], // M1A1 Abrams + ["I_MBT_03_cannon_F",400,300,200], // MBT-52 Kuma + ["rhsusf_m1a1aim_tuski_wd",400,350,225], // M1A1SA (Tusk I) + ["B_T_MBT_01_TUSK_F",500,350,225], // M2A4 Slammer UP + ["CUP_B_M1A_TUSK_NATO_T",500,350,225], // M1A2 Abrams TUSK + ["rhsusf_m1a2sep1tuskiiwd_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["BWA3_Leopard2_Fleck",500,400,250], // MBT Leopard 2A6M + ["B_T_AFV_Wheeled_01_cannon_F",500,500,250], // Rhino MGS + ["B_T_AFV_Wheeled_01_up_cannon_F",550,550,250], // Rhino MGS UP + ["B_T_MBT_01_arty_F",600,1250,300], // M4 Scorcher + ["rhsusf_m109_usarmy",600,1250,300], // M109A6 + ["B_T_MBT_01_mlrs_F",800,1750,400] // M5 Sandstorm MLRS +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird + ["B_Heli_Light_01_dynamicLoadout_F",200,100,100], // AH-9 Pawnee + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["I_Heli_light_03_unarmed_F",225,0,125], // WY-55 Hellcat + ["I_Heli_light_03_dynamicLoadout_F",225,200,125], // WY-55 Hellcat (Armed) + ["RHS_UH1Y_UNARMED",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_GS",225,200,125], // UH-1Y (Ground Suppression) + ["B_Heli_Attack_01_dynamicLoadout_F",500,400,200], // AH-99 Blackfoot + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D_wd",750,750,250], // AH-64D (Multi-Role) + ["BWA3_Tiger_RMK_Universal",750,750,250], // UH Tiger RMK (Universal) + ["B_Heli_Transport_01_F",250,80,150], // UH-80 Ghost Hawk + ["B_Heli_Transport_01_camo_F",250,80,150], // UH-80 Ghost Hawk (Camo) + ["RHS_UH60M2",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M",250,80,150], // UH-60M + ["RHS_UH60M_MEV2",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F",275,80,175], // CH-47 Chinook (Armed) + ["I_Heli_Transport_02_F",275,0,175], // CH-49 Mohawk + ["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21",300,100,175], // CH-53E Super Stallion (GAU-21) + ["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["I_Plane_Fighter_03_dynamicLoadout_F",500,400,350], // A-143 Buzzard (AA) + ["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS) + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["I_Plane_Fighter_04_F",1000,1200,400], // A-149 Gryphon + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["B_HMG_01_F",25,40,0], // Mk30A HMG .50 + ["B_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) + ["B_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) + ["B_GMG_01_F",35,60,0], // Mk32A GMG 20mm + ["B_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised) + ["B_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous) + ["B_T_Static_AT_F",50,100,0], // Static Titan Launcher (AT) + ["B_T_Static_AA_F",50,100,0], // Static Titan Launcher (AA) + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["RHS_M119_WD",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_TowingTractor_NATO",50,0,25], // Towing Tractor + ["B_T_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["B_T_Truck_01_Repair_F",325,0,75], // HEMTT Repair + ["B_T_Truck_01_fuel_F",125,0,275], // HEMTT Fuel + ["B_T_Truck_01_ammo_F",125,200,75], // HEMTT Ammo + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_wd",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "B_T_Soldier_TL_F", + "B_T_Soldier_F", + "B_T_Soldier_F", + "B_T_Soldier_LAT_F", + "B_T_Soldier_GL_F", + "B_T_Soldier_AR_F", + "B_T_Soldier_AR_F", + "B_T_soldier_M_F", + "B_T_Medic_F", + "B_T_Engineer_F" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "B_T_Soldier_TL_F", + "B_T_Soldier_LAT_F", + "B_T_Soldier_LAT_F", + "B_T_Soldier_GL_F", + "B_T_Soldier_AR_F", + "B_T_Soldier_AR_F", + "B_T_Soldier_AR_F", + "B_T_soldier_M_F", + "B_T_Medic_F", + "B_T_Engineer_F" +]; + +// AT specialists squad. +blufor_squad_at = [ + "B_T_Soldier_TL_F", + "B_T_Soldier_F", + "B_T_Soldier_F", + "B_T_Soldier_AT_F", + "B_T_Soldier_AT_F", + "B_T_Soldier_AT_F", + "B_T_Medic_F", + "B_T_Soldier_F" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "B_T_Soldier_TL_F", + "B_T_Soldier_F", + "B_T_Soldier_F", + "B_T_Soldier_AA_F", + "B_T_Soldier_AA_F", + "B_T_Soldier_AA_F", + "B_T_Medic_F", + "B_T_Soldier_F" +]; + +// Force recon squad. +blufor_squad_recon = [ + "B_T_Recon_TL_F", + "B_T_Recon_F", + "B_T_Recon_F", + "B_T_Recon_LAT_F", + "B_T_Recon_M_F", + "B_T_Recon_M_F", + "B_T_Sniper_F", + "B_T_Spotter_F", + "B_T_Recon_Medic_F", + "B_T_Recon_Exp_F" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) + "B_T_MBT_01_TUSK_F", // M2A4 Slammer UP + "CUP_B_M1A_TUSK_NATO_T", // M1A2 Abrams TUSK + "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) + "BWA3_Leopard2_Fleck", // MBT Leopard 2A6M + "B_T_MBT_01_arty_F", // M4 Scorcher + "rhsusf_m109_usarmy", // M109A6 + "B_T_MBT_01_mlrs_F", // M5 Sandstorm MLRS + "B_Heli_Attack_01_dynamicLoadout_F", // AH-99 Blackfoot + "RHS_AH64D_wd", // AH-64D (Multi-Role) + "BWA3_Tiger_RMK_Universal", // UH Tiger RMK (Universal) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS) + "I_Plane_Fighter_04_F", // A-149 Gryphon + "RHS_A10", // A-10A (CAS) + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/bwmod.sqf b/kp_liberation.brf_sumava/presets/blufor/bwmod.sqf new file mode 100644 index 0000000..7c8afea --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/bwmod.sqf @@ -0,0 +1,376 @@ +/* + Needed Mods: + - BWMod + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "BWA3_Crew_Fleck"; // This defines the crew for vehicles. +pilot_classname = "BWA3_Helipilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["BWA3_Rifleman_lite_Fleck",15,0,0], // Rifleman (Light) + ["BWA3_Rifleman_Fleck",20,0,0], // Rifleman + ["BWA3_RiflemanG27_Fleck",20,0,0], // Rifleman (G27) + ["BWA3_RiflemanG28_Fleck",20,0,0], // Rifleman (G28) + ["BWA3_RiflemanAT_Pzf3_Fleck",30,0,0], // Rifleman (AT) + ["BWA3_Grenadier_Fleck",25,0,0], // Grenadier + ["BWA3_Autorifleman_Fleck",25,0,0], // Autorifleman + ["BWA3_AutoriflemanMG5_Fleck",35,0,0], // Heavygunner + ["BWA3_Marksman_Fleck",30,0,0], // Marksman + ["BWA3_RiflemanAT_RGW90_Fleck",50,10,0], // AT Specialist + ["BWA3_RiflemanAA_Fliegerfaust_Fleck",50,10,0], // AA Specialist + ["BWA3_CombatLifeSaver_Fleck",30,0,0], // Combat Life Saver + ["BWA3_Engineer_Fleck",30,0,0], // Engineer + ["BWA3_recon_Fleck",20,0,0], // Recon Rifleman + ["BWA3_recon_LAT_Fleck",30,0,0], // Recon Rifleman (AT) + ["BWA3_recon_Radioman_Fleck",25,0,0], // Recon Radioman + ["BWA3_recon_Marksman_Fleck",30,0,0], // Recon Marksman + ["BWA3_recon_Medic_Fleck",30,0,0], // Recon Combat Life Saver + ["BWA3_recon_Pioneer_Fleck",30,0,0], // Recon Engineer + ["BWA3_SniperG82_Fleck",70,5,0], // Sniper + ["BWA3_Spotter_Fleck",20,0,0], // Spotter + ["BWA3_Crew_Fleck",10,0,0], // Crewman + ["rhsusf_army_ocp_rifleman_101st",20,0,0], // Para Trooper + ["BWA3_Helipilot",10,0,0], // Helicopter Pilot + ["rhsusf_airforce_jetpilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["rhsusf_m1025_w",100,0,50], // M1025A2 + ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_w_mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_w_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_w_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["BWA3_Eagle_Fleck",100,0,50], // Eagle IV + ["BWA3_Eagle_FLW100_Fleck",100,100,50], // Eagle IV (FLW 100) + ["rhsusf_M1220_usarmy_wd",120,0,60], // M1220 + ["rhsusf_M1220_M2_usarmy_wd",120,40,60], // M1220 (M2) + ["rhsusf_M1220_MK19_usarmy_wd",120,60,60], // M1220 (Mk19) + ["rhsusf_M1232_usarmy_wd",140,0,60], // M1232 + ["rhsusf_M1232_M2_usarmy_wd",140,40,60], // M1232 (M2) + ["rhsusf_M1232_MK19_usarmy_wd",140,60,60], // M1232 (Mk19) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1083A1P2_wd_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_wd_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_wd",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_wd",125,40,75], // M977A4 BKIT (HMG) + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) + ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) + ["BWA3_Puma_Fleck",300,225,150], // IFV Puma + ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) + ["RHS_M6_wd",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_wd",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiiwd_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["BWA3_Leopard2_Fleck",500,400,250], // MBT Leopard 2A6M + ["rhsusf_m109_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["RHS_UH1Y_UNARMED",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_GS",225,200,125], // UH-1Y (Ground Suppression) + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D_wd",750,750,250], // AH-64D (Multi-Role) + ["BWA3_Tiger_RMK_Universal",750,750,250], // UH Tiger RMK (Universal) + ["RHS_UH60M2",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M",250,80,150], // UH-60M + ["RHS_UH60M_MEV2",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21",300,100,175], // CH-53E Super Stallion (GAU-21) + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["RHS_M2StaticMG_MiniTripod_WD",25,40,0], // Mk2 HMG .50 + ["RHS_M2StaticMG_WD",25,40,0], // Mk2 HMG .50 (Raised) + ["RHS_MK19_TriPod_WD",25,60,0], // Mk19 GMG 20mm + ["RHS_TOW_TriPod_WD",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_WD",50,100,0], // Stinger (AA) + ["RHS_M252_WD",80,150,0], // Mk6 Mortar + ["RHS_M119_WD",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_wd",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "BWA3_TL_Fleck", + "BWA3_Rifleman_lite_Fleck", + "BWA3_Rifleman_lite_Fleck", + "BWA3_RiflemanAT_Pzf3_Fleck", + "BWA3_Grenadier_Fleck", + "BWA3_Autorifleman_Fleck", + "BWA3_Autorifleman_Fleck", + "BWA3_Marksman_Fleck", + "BWA3_CombatLifeSaver_Fleck", + "BWA3_Engineer_Fleck" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "BWA3_TL_Fleck", + "BWA3_RiflemanAT_Pzf3_Fleck", + "BWA3_RiflemanAT_Pzf3_Fleck", + "BWA3_Grenadier_Fleck", + "BWA3_Autorifleman_Fleck", + "BWA3_Autorifleman_Fleck", + "BWA3_AutoriflemanMG5_Fleck", + "BWA3_Marksman_Fleck", + "BWA3_CombatLifeSaver_Fleck", + "BWA3_Engineer_Fleck" +]; + +// AT specialists squad. +blufor_squad_at = [ + "BWA3_TL_Fleck", + "BWA3_Rifleman_Fleck", + "BWA3_Rifleman_Fleck", + "BWA3_RiflemanAT_RGW90_Fleck", + "BWA3_RiflemanAT_RGW90_Fleck", + "BWA3_RiflemanAT_RGW90_Fleck", + "BWA3_CombatLifeSaver_Fleck", + "BWA3_Rifleman_Fleck" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "BWA3_TL_Fleck", + "BWA3_Rifleman_Fleck", + "BWA3_Rifleman_Fleck", + "BWA3_RiflemanAA_Fliegerfaust_Fleck", + "BWA3_RiflemanAA_Fliegerfaust_Fleck", + "BWA3_RiflemanAA_Fliegerfaust_Fleck", + "BWA3_CombatLifeSaver_Fleck", + "BWA3_Rifleman_Fleck" +]; + +// Force recon squad. +blufor_squad_recon = [ + "BWA3_recon_TL_Fleck", + "BWA3_recon_Fleck", + "BWA3_recon_Fleck", + "BWA3_recon_LAT_Fleck", + "BWA3_recon_Radioman_Fleck", + "BWA3_recon_Marksman_Fleck", + "BWA3_SniperG82_Fleck", + "BWA3_Spotter_Fleck", + "BWA3_recon_Medic_Fleck", + "BWA3_recon_Pioneer_Fleck" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) + "BWA3_Leopard2_Fleck", // MBT Leopard 2A6M + "rhsusf_m109_usarmy", // M109A6 + "RHS_AH64D_wd", // AH-64D (Multi-Role) + "BWA3_Tiger_RMK_Universal", // UH Tiger RMK (Universal) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/bwmod_des.sqf b/kp_liberation.brf_sumava/presets/blufor/bwmod_des.sqf new file mode 100644 index 0000000..e7bd353 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/bwmod_des.sqf @@ -0,0 +1,378 @@ +/* + Needed Mods: + - BWMod + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "BWA3_Crew_Tropen"; // This defines the crew for vehicles. +pilot_classname = "BWA3_Helipilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["BWA3_Rifleman_lite_Tropen",15,0,0], // Rifleman (Light) + ["BWA3_Rifleman_Tropen",20,0,0], // Rifleman + ["BWA3_RiflemanG27_Tropen",20,0,0], // Rifleman (G27) + ["BWA3_RiflemanG28_Tropen",20,0,0], // Rifleman (G28) + ["BWA3_RiflemanAT_Pzf3_Tropen",30,0,0], // Rifleman (AT) + ["BWA3_Grenadier_Tropen",25,0,0], // Grenadier + ["BWA3_Autorifleman_Tropen",25,0,0], // Autorifleman + ["BWA3_AutoriflemanMG5_Tropen",35,0,0], // Heavygunner + ["BWA3_Marksman_Tropen",30,0,0], // Marksman + ["BWA3_RiflemanAT_RGW90_Tropen",50,10,0], // AT Specialist + ["BWA3_RiflemanAA_Fliegerfaust_Tropen",50,10,0], // AA Specialist + ["BWA3_CombatLifeSaver_Tropen",30,0,0], // Combat Life Saver + ["BWA3_Engineer_Tropen",30,0,0], // Engineer + ["BWA3_recon_Tropen",20,0,0], // Recon Rifleman + ["BWA3_recon_LAT_Tropen",30,0,0], // Recon Rifleman (AT) + ["BWA3_recon_Radioman_Tropen",25,0,0], // Recon Radioman + ["BWA3_recon_Marksman_Tropen",30,0,0], // Recon Marksman + ["BWA3_recon_Medic_Tropen",30,0,0], // Recon Combat Life Saver + ["BWA3_recon_Pioneer_Tropen",30,0,0], // Recon Engineer + ["BWA3_SniperG82_Tropen",70,5,0], // Sniper + ["BWA3_Spotter_Tropen",20,0,0], // Spotter + ["BWA3_Crew_Tropen",10,0,0], // Crewman + ["rhsusf_army_ocp_rifleman_101st",20,0,0], // Para Trooper + ["BWA3_Helipilot",10,0,0], // Helicopter Pilot + ["rhsusf_airforce_jetpilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["rhsusf_m1025_d",100,0,50], // M1025A2 + ["rhsusf_m1025_d_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_d_Mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_d_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_d_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["BWA3_Eagle_Tropen",100,0,50], // Eagle IV + ["BWA3_Eagle_FLW100_Tropen",100,100,50], // Eagle IV (FLW 100) + ["rhsusf_M1220_usarmy_d",120,0,60], // M1220 + ["rhsusf_M1220_M2_usarmy_d",120,40,60], // M1220 (M2) + ["rhsusf_M1220_MK19_usarmy_d",120,60,60], // M1220 (Mk19) + ["rhsusf_M1232_usarmy_d",140,0,60], // M1232 + ["rhsusf_M1232_M2_usarmy_d",140,40,60], // M1232 (M2) + ["rhsusf_M1232_MK19_usarmy_d",140,60,60], // M1232 (Mk19) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1083A1P2_D_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_D_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_d",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_d",125,40,75], // M977A4 BKIT (HMG) + ["rhsusf_M1117_D",150,50,50], // M1117 ASV + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113d_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113d_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113d_usarmy_medical",200,0,100], // M113A3 (Medical) + ["RHS_M2A2_BUSKI",300,200,150], // M2A2ODS (Busk I) + ["BWA3_Puma_Tropen",300,225,150], // IFV Puma + ["RHS_M2A3_BUSKIII",300,250,175], // M2A3 (Busk III) + ["RHS_M6",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_d",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiid_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["BWA3_Leopard2_Tropen",500,400,250], // MBT Leopard 2A6M + ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["RHS_UH1Y_UNARMED_d",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_d_GS",225,200,125], // UH-1Y (Ground Suppression) + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D",750,750,250], // AH-64D (Multi-Role) + ["BWA3_Tiger_RMK_Universal",750,750,250], // UH Tiger RMK (Universal) + ["RHS_UH60M2_d",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M_d",250,80,150], // UH-60M + ["RHS_UH60M_MEV2_d",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["rhsusf_CH53E_USMC_D",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21_D",300,100,175], // CH-53E Super Stallion (GAU-21) + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["RHS_M2StaticMG_MiniTripod_D",25,40,0], // Mk2 HMG .50 + ["RHS_M2StaticMG_D",25,40,0], // Mk2 HMG .50 (Raised) + ["RHS_MK19_TriPod_D",25,60,0], // Mk19 GMG 20mm + ["RHS_TOW_TriPod_D",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_D",50,100,0], // Stinger (AA) + ["RHS_M252_D",80,150,0], // Mk6 Mortar + ["RHS_M119_D",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V3_F",0,0,0], + ["Land_Cargo_Patrol_V3_F",0,0,0], + ["Land_Cargo_Tower_V3_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M1078A1R_SOV_M2_D_fmtv_socom",400,200,300], // M1078A1R SOV + ["rhsusf_M977A4_REPAIR_usarmy_d",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_usarmy_d",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_usarmy_d",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "BWA3_TL_Tropen", + "BWA3_Rifleman_lite_Tropen", + "BWA3_Rifleman_lite_Tropen", + "BWA3_RiflemanAT_Pzf3_Tropen", + "BWA3_Grenadier_Tropen", + "BWA3_Autorifleman_Tropen", + "BWA3_Autorifleman_Tropen", + "BWA3_Marksman_Tropen", + "BWA3_CombatLifeSaver_Tropen", + "BWA3_Engineer_Tropen" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "BWA3_TL_Tropen", + "BWA3_RiflemanAT_Pzf3_Tropen", + "BWA3_RiflemanAT_Pzf3_Tropen", + "BWA3_Grenadier_Tropen", + "BWA3_Autorifleman_Tropen", + "BWA3_Autorifleman_Tropen", + "BWA3_AutoriflemanMG5_Tropen", + "BWA3_Marksman_Tropen", + "BWA3_CombatLifeSaver_Tropen", + "BWA3_Engineer_Tropen" +]; + +// AT specialists squad. +blufor_squad_at = [ + "BWA3_TL_Tropen", + "BWA3_Rifleman_Tropen", + "BWA3_Rifleman_Tropen", + "BWA3_RiflemanAT_RGW90_Tropen", + "BWA3_RiflemanAT_RGW90_Tropen", + "BWA3_RiflemanAT_RGW90_Tropen", + "BWA3_CombatLifeSaver_Tropen", + "BWA3_Rifleman_Tropen" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "BWA3_TL_Tropen", + "BWA3_Rifleman_Tropen", + "BWA3_Rifleman_Tropen", + "BWA3_RiflemanAA_Fliegerfaust_Tropen", + "BWA3_RiflemanAA_Fliegerfaust_Tropen", + "BWA3_RiflemanAA_Fliegerfaust_Tropen", + "BWA3_CombatLifeSaver_Tropen", + "BWA3_Rifleman_Tropen" +]; + +// Force recon squad. +blufor_squad_recon = [ + "BWA3_recon_TL_Fleck", + "BWA3_recon_Fleck", + "BWA3_recon_Fleck", + "BWA3_recon_LAT_Fleck", + "BWA3_recon_Radioman_Fleck", + "BWA3_recon_Marksman_Fleck", + "BWA3_SniperG82_Fleck", + "BWA3_Spotter_Fleck", + "BWA3_recon_Medic_Tropen", + "BWA3_recon_Pioneer_Tropen" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_d", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiid_usarmy", // M1A2SEPv1 (Tusk II) + "BWA3_Leopard2_Tropen", // MBT Leopard 2A6M + "rhsusf_m109d_usarmy", // M109A6 + "RHS_AH64D", // AH-64D (Multi-Role) + "BWA3_Tiger_RMK_Universal", // UH Tiger RMK (Universal) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/csat.sqf b/kp_liberation.brf_sumava/presets/blufor/csat.sqf new file mode 100644 index 0000000..0012539 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/csat.sqf @@ -0,0 +1,334 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. +FOB_truck_typename = "O_Truck_03_device_F"; // This is the FOB as a vehicle. +Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "O_Truck_03_medical_F"; // This is the mobile respawn (and medical) truck. +huron_typename = "O_Heli_Transport_04_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "O_crew_F"; // This defines the crew for vehicles. +pilot_classname = "O_helipilot_F"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "O_Heli_Light_02_unarmed_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "O_Truck_03_transport_F"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["O_Soldier_lite_F",15,0,0], // Rifleman (Light) + ["O_Soldier_F",20,0,0], // Rifleman + ["O_Soldier_LAT_F",30,0,0], // Rifleman (AT) + ["O_Soldier_GL_F",25,0,0], // Grenadier + ["O_Soldier_AR_F",25,0,0], // Autorifleman + ["O_HeavyGunner_F",30,0,0], // Autorifleman Heavy + ["O_soldier_M_F",30,0,0], // Marksman + ["O_Soldier_AT_F",50,10,0], // AT Specialist + ["O_Soldier_AA_F",50,10,0], // AA Specialist + ["O_medic_F",30,0,0], // Combat Life Saver + ["O_engineer_F",30,0,0], // Engineer + ["O_sniper_F",70,5,0], // Sniper + ["O_spotter_F",20,0,0], // Spotter + ["O_crew_F",10,0,0], // Crewman + ["O_soldier_PG_F",20,0,0], // Para Trooper + ["O_helipilot_F",10,0,0], // Helicopter Pilot + ["O_Pilot_F",10,0,0] // Pilot +]; + +light_vehicles = [ + ["O_Quadbike_01_F",50,0,25], // Quad Bike + ["O_LSV_02_unarmed_F",75,0,50], // LSV Mk2 + ["O_LSV_02_armed_F",75,75,50], // LSV Mk2 (M134) + ["O_LSV_02_AT_F",75,75,50], // LSV Mk2 (Metis) + ["O_MRAP_02_F",100,0,50], // Karatel + ["O_MRAP_02_hmg_F",100,100,50], // Karatel HMG + ["O_MRAP_02_gmg_F",100,100,50], // Karatel GMG + ["O_Truck_03_transport_F",125,0,75], // Typhoon Transport + ["O_Truck_03_covered_F",125,0,75], // Typhoon Transport (Covered) + ["O_UGV_01_F",150,0,50], // UGV Saif + ["O_UGV_01_rcws_F",150,40,50], // UGV Saif (RCWS) + ["O_Boat_Transport_01_F",100,0,25], // Assault Boat + ["O_Boat_Armed_01_hmg_F",200,80,75], // Speedboat HMG + ["O_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["O_APC_Wheeled_02_rcws_v2_F",200,150,150], // Otokar + ["O_APC_Tracked_02_cannon_F",200,200,150], // Stalker + ["O_APC_Tracked_02_AA_F",300,250,175], // Tigris + ["O_MBT_02_cannon_F",500,400,250], // T-100 + ["O_MBT_04_cannon_F",550,450,250], // T-14 + ["O_MBT_04_command_F",550,500,250], // T-14K + ["O_MBT_02_arty_F",600,1250,300] // Sochor +]; + +air_vehicles = [ + ["O_UAV_01_F",75,0,25], // Tayran + ["O_UAV_06_F",80,0,30], // Jinaah + ["O_Heli_Light_02_unarmed_F",250,0,150], // Ka-60 Kasatka (unarmed) + ["O_Heli_Light_02_dynamicLoadout_F",250,100,150], // Ka-60 Kasatka + ["O_Heli_Transport_04_bench_F",250,0,150], // Taru Bench + ["O_Heli_Transport_04_covered_F",300,0,150], // Taru Covered + ["O_Heli_Transport_04_medevac_F",300,0,150], // Taru Medical + ["O_Heli_Attack_02_dynamicLoadout_F",800,800,250], // Kajman + ["O_UAV_02_dynamicLoadout_F",450,500,250], // YABHON + ["O_T_UAV_04_CAS_F",400,300,200], // Burraq + ["O_Plane_CAS_02_dynamicLoadout_F",1000,800,400], // YAK-130 + ["O_Plane_Fighter_02_F",1500,1750,450], // Shikra + ["O_T_VTOL_02_infantry_dynamicLoadout_F",950,800,500], // Xian (Infantry) + ["O_T_VTOL_02_vehicle_dynamicLoadout_F",950,800,500] // Xian (Vehicle) +]; + +static_vehicles = [ + ["O_Static_Designator_02_F",25,0,0], // Remote Designator + ["O_HMG_01_F",25,40,0], // Mk30A HMG .50 + ["O_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) + ["O_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) + ["O_GMG_01_F",35,60,0], // Mk32A GMG 20mm + ["O_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised) + ["O_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous) + ["O_static_AT_F",50,100,0], // Static Titan Launcher (AT) + ["O_static_AA_F",50,100,0], // Static Titan Launcher (AA) + ["O_Mortar_01_F",80,150,0], // Mk6 Mortar + ["O_SAM_System_04_F",250,500,0] // S-750 Rhea +]; + +buildings = [ + ["Land_Cargo_House_V3_F",0,0,0], + ["Land_Cargo_Patrol_V3_F",0,0,0], + ["Land_Cargo_Tower_V3_F",0,0,0], + ["Flag_CSAT_F",0,0,0], + ["Flag_Viper_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_OPFOR_F",0,0,0], + ["CamoNet_OPFOR_open_F",0,0,0], + ["CamoNet_OPFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0] +]; + +support_vehicles = [ + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,200,100,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + [Arsenal_typename,25,0,0], + ["ACE_medicalSupplyCrate_advanced",10,0,0], + ["Box_East_Support_F",10,0,0], + ["Box_CSAT_Equip_F",10,0,0], + ["Box_East_Grenades_F",10,0,0], + ["Box_East_WpsSpecial_F",10,0,0], + ["Box_East_Ammo_F",10,0,0], + ["Box_East_Wps_F",10,0,0], + ["Box_CSAT_Uniforms_F",10,0,0], + ["Box_East_AmmoOrd_F",10,0,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["Land_CanisterFuel_F",0,0,2], + ["O_Truck_03_repair_F",325,0,75], // Typhoon Repair + ["O_Truck_03_ammo_F",125,200,75], // Typhoon Ammo + ["O_Truck_03_fuel_F",125,0,275], // Typhoon Fuel + ["O_Heli_Transport_04_repair_F",500,0,150], // Taru Repair + ["O_Heli_Transport_04_ammo_F",300,200,150], // Taru Ammo + ["O_Heli_Transport_04_fuel_F",300,0,350], // Taru Fuel + ["Land_Pod_Heli_Transport_04_repair_F",275,0,0], // Taru Repaircontainer + ["Land_Pod_Heli_Transport_04_ammo_F",75,200,0], // Taru Ammocontainer + ["Land_Pod_Heli_Transport_04_fuel_F",75,0,200] // Taru Fuelcontainer +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "O_Soldier_SL_F", + "O_Soldier_TL_F", + "O_Soldier_TL_F", + "O_Soldier_AR_F", + "O_Soldier_AR_F", + "O_Soldier_GL_F", + "O_Soldier_GL_F", + "O_Soldier_LAT_F", + "O_medic_F", + "O_soldier_M_F" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "O_Soldier_TL_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_medic_F" +]; + +// AT specialists squad. +blufor_squad_at = [ + "O_Soldier_TL_F", + "O_Soldier_AT_F", + "O_Soldier_HAT_F", + "O_Soldier_AT_F", + "O_Soldier_HAT_F", + "O_Soldier_AT_F", + "O_Soldier_HAT_F", + "O_medic_F" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "O_Soldier_TL_F", + "O_Soldier_AA_F", + "O_Soldier_AAA_F", + "O_Soldier_AA_F", + "O_Soldier_AAA_F", + "O_Soldier_AA_F", + "O_Soldier_AAA_F", + "O_medic_F" +]; + +// Force recon squad. +blufor_squad_recon = [ + "O_recon_TL_F", + "O_recon_F", + "O_recon_F", + "O_recon_LAT_F", + "O_recon_JTAC_F", + "O_recon_M_F", + "O_sniper_F", + "O_spotter_F", + "O_recon_medic_F", + "O_recon_exp_F" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F", + "O_soldier_PG_F" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "O_MBT_04_cannon_F", // T-14 + "O_MBT_04_command_F", // T-14K + "O_MBT_02_arty_F", // Sochor + "O_Heli_Attack_02_dynamicLoadout_F", // Kajman + "O_UAV_02_dynamicLoadout_F", // YABHON + "O_T_UAV_04_CAS_F", // Burraq + "O_Plane_CAS_02_dynamicLoadout_F", // YAK-130 + "O_Plane_Fighter_02_F", // Shikra + "O_T_VTOL_02_infantry_dynamicLoadout_F", // Xian (Infantry) + "O_T_VTOL_02_vehicle_dynamicLoadout_F" // Xian (Vehicle) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/csat_apex.sqf b/kp_liberation.brf_sumava/presets/blufor/csat_apex.sqf new file mode 100644 index 0000000..b242d61 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/csat_apex.sqf @@ -0,0 +1,341 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. +FOB_truck_typename = "O_T_Truck_03_device_ghex_F"; // This is the FOB as a vehicle. +Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "O_T_Truck_03_medical_ghex_F"; // This is the mobile respawn (and medical) truck. +huron_typename = "O_Heli_Transport_04_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "O_T_Crew_F"; // This defines the crew for vehicles. +pilot_classname = "O_T_Helipilot_F"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "O_Heli_Light_02_unarmed_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "O_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "O_T_Truck_03_covered_ghex_F"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["O_Soldier_lite_F",15,0,0], // Rifleman (Light) + ["O_T_Soldier_F",20,0,0], // Rifleman + ["O_T_Soldier_LAT_F",30,0,0], // Rifleman (AT) + ["O_T_Soldier_GL_F",25,0,0], // Grenadier + ["O_T_Soldier_AR_F",25,0,0], // Autorifleman + ["O_HeavyGunner_F",30,0,0], // Autorifleman Heavy + ["O_T_Soldier_M_F",30,0,0], // Marksman + ["O_T_Soldier_AT_F",50,10,0], // AT Specialist + ["O_T_Soldier_AA_F",50,10,0], // AA Specialist + ["O_T_Medic_F",30,0,0], // Combat Life Saver + ["O_T_Engineer_F",30,0,0], // Engineer + ["O_T_Recon_F",20,0,0], // Recon Rifleman + ["O_T_Recon_LAT_F",30,0,0], // Recon Rifleman (AT) + ["O_T_Recon_TL_F",25,0,0], // Recon Radioman + ["O_T_Recon_M_F",30,0,0], // Recon Marksman + ["O_T_Recon_Medic_F",30,0,0], // Recon Combat Life Saver + ["O_T_Recon_Exp_F",30,0,0], // Recon Engineer + ["O_T_Sniper_F",70,5,0], // Sniper + ["O_T_Spotter_F",20,0,0], // Spotter + ["O_T_Crew_F",10,0,0], // Crewman + ["O_T_Soldier_PG_F",20,0,0], // Para Trooper + ["O_T_Helipilot_F",10,0,0], // Helicopter Pilot + ["O_T_Pilot_F",10,0,0] // Pilot +]; + +light_vehicles = [ + ["O_T_Quadbike_01_ghex_F",50,0,25], // Quad Bike + ["O_T_LSV_02_unarmed_F",75,0,50], // LSV Mk2 + ["O_T_LSV_02_armed_F",75,75,50], // LSV Mk2 (M134) + ["O_T_LSV_02_AT_F",75,75,50], // LSV Mk2 (Metis) + ["O_T_MRAP_02_ghex_F",100,0,50], // Karatel + ["O_T_MRAP_02_hmg_ghex_F",100,100,50], // Karatel HMG + ["O_T_MRAP_02_gmg_ghex_F",100,100,50], // Karatel GMG + ["O_T_Truck_03_transport_ghex_F",125,0,75], // Typhoon Transport + ["O_T_Truck_03_covered_ghex_F",125,0,75], // Typhoon Transport (Covered) + ["O_T_UGV_01_ghex_F",150,0,50], // UGV Saif + ["O_T_UGV_01_rcws_ghex_F",150,40,50], // UGV Saif (RCWS) + ["O_T_Boat_Transport_01_F",100,0,25], // Assault Boat + ["O_T_Boat_Armed_01_hmg_F",200,80,75], // Speedboat HMG + ["O_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["O_T_APC_Wheeled_02_rcws_v2_ghex_F",200,150,150], // Otokar + ["O_T_APC_Tracked_02_cannon_ghex_F",200,200,150], // Stalker + ["O_T_APC_Tracked_02_AA_ghex_F",300,250,175], // Tigris + ["O_T_MBT_02_cannon_ghex_F",500,400,250], // T-100 + ["O_T_MBT_04_cannon_F",550,450,250], // T-14 + ["O_T_MBT_04_command_F",550,500,250], // T-14K + ["O_T_MBT_02_arty_ghex_F",600,1250,300] // Sochor +]; + +air_vehicles = [ + ["O_UAV_01_F",75,0,25], // Tayran + ["O_UAV_06_F",80,0,30], // Jinaah + ["O_Heli_Light_02_unarmed_F",250,0,150], // Ka-60 Kasatka (unarmed) + ["O_Heli_Light_02_dynamicLoadout_F",250,100,150], // Ka-60 Kasatka + ["O_Heli_Transport_04_bench_F",250,0,150], // Taru Bench + ["O_Heli_Transport_04_covered_F",300,0,150], // Taru Covered + ["O_Heli_Transport_04_medevac_F",300,0,150], // Taru Medical + ["O_Heli_Attack_02_dynamicLoadout_F",800,800,250], // Kajman + ["O_UAV_02_dynamicLoadout_F",450,500,250], // YABHON + ["O_T_UAV_04_CAS_F",400,300,200], // Burraq + ["O_Plane_CAS_02_dynamicLoadout_F",1000,800,400], // YAK-130 + ["O_Plane_Fighter_02_F",1500,1750,450], // Shikra + ["O_T_VTOL_02_infantry_dynamicLoadout_F",950,800,500], // Xian (Infantry) + ["O_T_VTOL_02_vehicle_dynamicLoadout_F",950,800,500] // Xian (Vehicle) +]; + +static_vehicles = [ + ["O_Static_Designator_02_F",25,0,0], // Remote Designator + ["O_HMG_01_F",25,40,0], // Mk30A HMG .50 + ["O_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) + ["O_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) + ["O_GMG_01_F",35,60,0], // Mk32A GMG 20mm + ["O_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised) + ["O_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous) + ["O_static_AT_F",50,100,0], // Static Titan Launcher (AT) + ["O_static_AA_F",50,100,0], // Static Titan Launcher (AA) + ["O_Mortar_01_F",80,150,0], // Mk6 Mortar + ["O_SAM_System_04_F",250,500,0] // S-750 Rhea +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_CSAT_F",0,0,0], + ["Flag_Viper_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_OPFOR_F",0,0,0], + ["CamoNet_OPFOR_open_F",0,0,0], + ["CamoNet_OPFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,200,100,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + [Arsenal_typename,25,0,0], + ["ACE_medicalSupplyCrate_advanced",10,0,0], + ["Box_East_Support_F",10,0,0], + ["Box_CSAT_Equip_F",10,0,0], + ["Box_East_Grenades_F",10,0,0], + ["Box_East_WpsSpecial_F",10,0,0], + ["Box_East_Ammo_F",10,0,0], + ["Box_East_Wps_F",10,0,0], + ["Box_CSAT_Uniforms_F",10,0,0], + ["Box_East_AmmoOrd_F",10,0,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["Land_CanisterFuel_F",0,0,2], + ["O_T_Truck_03_repair_ghex_F",325,0,75], // Typhoon Repair + ["O_T_Truck_03_ammo_ghex_F",125,200,75], // Typhoon Ammo + ["O_T_Truck_03_fuel_ghex_F",125,0,275], // Typhoon Fuel + ["O_Heli_Transport_04_repair_F",500,0,150], // Taru Repair + ["O_Heli_Transport_04_ammo_F",300,200,150], // Taru Ammo + ["O_Heli_Transport_04_fuel_F",300,0,350], // Taru Fuel + ["Land_Pod_Heli_Transport_04_repair_F",275,0,0], // Taru Repaircontainer + ["Land_Pod_Heli_Transport_04_ammo_F",75,200,0], // Taru Ammocontainer + ["Land_Pod_Heli_Transport_04_fuel_F",75,0,200] // Taru Fuelcontainer +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "O_T_Soldier_SL_F", + "O_T_Soldier_TL_F", + "O_T_Soldier_TL_F", + "O_T_Soldier_AR_F", + "O_T_Soldier_AR_F", + "O_T_Soldier_GL_F", + "O_T_Soldier_GL_F", + "O_T_Soldier_LAT_F", + "O_T_Medic_F", + "O_T_Soldier_M_F" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "O_T_Soldier_TL_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_HeavyGunner_F", + "O_Soldier_A_F", + "O_T_Medic_F" +]; + +// AT specialists squad. +blufor_squad_at = [ + "O_T_Soldier_TL_F", + "O_T_Soldier_AT_F", + "O_T_Soldier_AAT_F", + "O_T_Soldier_AT_F", + "O_T_Soldier_AAT_F", + "O_T_Soldier_AT_F", + "O_T_Soldier_AAT_F", + "O_T_Medic_F" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "O_T_Soldier_TL_F", + "O_T_Soldier_AA_F", + "O_T_Soldier_AAA_F", + "O_T_Soldier_AA_F", + "O_T_Soldier_AAA_F", + "O_T_Soldier_AA_F", + "O_T_Soldier_AAA_F", + "O_T_Medic_F" +]; + +// Force recon squad. +blufor_squad_recon = [ + "O_T_Recon_TL_F", + "O_T_Recon_F", + "O_T_Recon_F", + "O_T_Recon_LAT_F", + "O_T_Recon_JTAC_F", + "O_T_Recon_M_F", + "O_T_Sniper_F", + "O_T_Spotter_F", + "O_T_Recon_Medic_F", + "O_T_Recon_Exp_F" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F", + "O_T_Soldier_PG_F" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "O_T_MBT_04_cannon_F", // T-14 + "O_T_MBT_04_command_F", // T-14K + "O_T_MBT_02_arty_ghex_F", // Sochor + "O_Heli_Attack_02_dynamicLoadout_F", // Kajman + "O_UAV_02_dynamicLoadout_F", // YABHON + "O_T_UAV_04_CAS_F", // Burraq + "O_Plane_CAS_02_dynamicLoadout_F", // YAK-130 + "O_Plane_Fighter_02_F", // Shikra + "O_T_VTOL_02_infantry_dynamicLoadout_F", // Xian (Infantry) + "O_T_VTOL_02_vehicle_dynamicLoadout_F" // Xian (Vehicle) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/custom.sqf b/kp_liberation.brf_sumava/presets/blufor/custom.sqf new file mode 100644 index 0000000..d657461 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/custom.sqf @@ -0,0 +1,474 @@ +/* + Needed Mods: + - None + + Optional Mods: + - BWMod + - RHSUSAF + - F-15C + - F/A-18 + - CUP Weapons + - CUP Vehicles + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "B_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. +huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "B_crew_F"; // This defines the crew for vehicles. +pilot_classname = "B_Helipilot_F"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "B_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["B_Soldier_lite_F",15,0,0], // Rifleman (Light) + ["B_Soldier_F",20,0,0], // Rifleman + ["B_soldier_LAT_F",30,0,0], // Rifleman (AT) + ["B_Soldier_GL_F",25,0,0], // Grenadier + ["B_soldier_AR_F",25,0,0], // Autorifleman + ["B_HeavyGunner_F",35,0,0], // Heavygunner + ["B_soldier_M_F",30,0,0], // Marksman + ["B_Sharpshooter_F",40,0,0], // Sharpshooter + ["B_soldier_AT_F",50,10,0], // AT Specialist + ["B_soldier_AA_F",50,10,0], // AA Specialist + ["B_medic_F",30,0,0], // Combat Life Saver + ["B_engineer_F",30,0,0], // Engineer + ["B_soldier_exp_F",30,0,0], // Explosives Specialist + ["B_recon_F",20,0,0], // Recon Scout + ["B_recon_LAT_F",30,0,0], // Recon Scout (AT) + ["B_recon_M_F",30,0,0], // Recon Marksman + ["B_Recon_Sharpshooter_F",40,0,0], // Recon Sharpshooter + ["B_recon_medic_F",30,0,0], // Recon Paramedic + ["B_recon_exp_F",30,0,0], // Recon Demolition Expert + ["B_sniper_F",70,5,0], // Sniper + ["B_ghillie_ard_F",70,5,0], // Sniper (Arid) + ["B_ghillie_lsh_F",70,5,0], // Sniper (Lush) + ["B_ghillie_sard_F",70,5,0], // Sniper (Semi-Arid) + ["B_spotter_F",20,0,0], // Spotter + ["B_crew_F",10,0,0], // Crewman + ["B_soldier_PG_F",20,0,0], // Para Trooper + ["B_helicrew_F",10,0,0], // Helicopter Crew + ["B_Helipilot_F",10,0,0], // Helicopter Pilot + ["B_Pilot_F",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["B_LSV_01_unarmed_F",75,0,50], // Prowler + ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) + ["B_LSV_01_AT_F",75,60,50], // Prowler (AT) + ["B_MRAP_01_F",100,0,50], // Hunter + ["B_MRAP_01_hmg_F",100,40,50], // Hunter (HMG) + ["B_MRAP_01_gmg_F",100,60,50], // Hunter (GMG) + ["I_MRAP_03_F",100,0,50], // Strider + ["I_MRAP_03_hmg_F",100,40,50], // Strider (HMG) + ["I_MRAP_03_gmg_F",100,60,50], // Strider (GMG) + ["rhsusf_m1025_w",100,0,50], // M1025A2 + ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_w_mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_w_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_w_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["rhsusf_M1220_usarmy_wd",120,0,60], // M1220 + ["rhsusf_M1220_M2_usarmy_wd",120,40,60], // M1220 (M2) + ["rhsusf_M1220_MK19_usarmy_wd",120,60,60], // M1220 (Mk19) + ["rhsusf_M1232_usarmy_wd",140,0,60], // M1220 + ["rhsusf_M1232_M2_usarmy_wd",140,40,60], // M1220 (M2) + ["rhsusf_M1232_MK19_usarmy_wd",140,60,60], // M1220 (Mk19) + ["BWA3_Eagle_Fleck",100,0,50], // Eagle IV + ["BWA3_Eagle_FLW100_Fleck",100,100,50], // Eagle IV (FLW 100) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["B_Truck_01_transport_F",125,0,75], // HEMTT Transport + ["B_Truck_01_covered_F",125,0,75], // HEMTT Transport (Covered) + ["rhsusf_M1083A1P2_wd_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_wd_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_wd",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_wd",125,40,75], // M977A4 BKIT (HMG) + ["rhsusf_M1117_W",150,50,50], // M1117 ASV + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) + ["I_LT_01_scout_F",200,0,125], // AWC 302 Nyx (AA) + ["B_APC_Wheeled_01_cannon_F",200,75,125], // AMV-7 Marshall + ["I_APC_Wheeled_03_cannon_F",200,75,125], // AFV-4 Gorgon + ["B_APC_Tracked_01_rcws_F",300,100,150], // IFV-6c Panther + ["I_APC_tracked_03_cannon_F",300,150,150], // FV-720 Mora + ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) + ["BWA3_Puma_Fleck",300,225,150], // IFV Puma + ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) + ["B_APC_Tracked_01_AA_F",300,250,175], // IFV-6a Cheetah + ["I_LT_01_AA_F",300,250,175], // AWC 302 Nyx (AA) + ["I_LT_01_AT_F",300,250,175], // AWC 302 Nyx (AT) + ["I_LT_01_cannon_F",300,250,175], // AWC 302 Nyx (Cannon) + ["RHS_M6_wd",300,250,175], // M6A2 + ["B_MBT_01_cannon_F",400,300,200], // M2A1 Slammer + ["CUP_B_Challenger2_NATO",400,300,200], // FV4034 Challenger 2 + ["I_MBT_03_cannon_F",400,300,200], // MBT-52 Kuma + ["rhsusf_m1a1aim_tuski_wd",400,350,225], // M1A1SA (Tusk I) + ["B_MBT_01_TUSK_F",500,350,225], // M2A4 Slammer UP + ["rhsusf_m1a2sep1tuskiiwd_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["BWA3_Leopard2_Fleck",500,400,250], // MBT Leopard 2A6M + ["B_AFV_Wheeled_01_cannon_F",500,500,250], // Rhino MGS + ["B_AFV_Wheeled_01_up_cannon_F",550,550,250], // Rhino MGS UP + ["B_MBT_01_arty_F",600,1250,300], // M4 Scorcher + ["rhsusf_m109_usarmy",600,1250,300], // M109A6 + ["B_MBT_01_mlrs_F",800,1750,400] // M5 Sandstorm MLRS +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird + ["B_Heli_Light_01_dynamicLoadout_F",200,100,100], // AH-9 Pawnee + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["I_Heli_light_03_unarmed_F",225,0,125], // WY-55 Hellcat + ["I_Heli_light_03_dynamicLoadout_F",225,200,125], // WY-55 Hellcat (Armed) + ["RHS_UH1Y_UNARMED",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_GS",225,200,125], // UH-1Y (Ground Suppression) + ["B_Heli_Attack_01_dynamicLoadout_F",500,400,200], // AH-99 Blackfoot + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D_wd",750,750,250], // AH-64D (Multi-Role) + ["BWA3_Tiger_RMK_Universal",750,750,250], // UH Tiger RMK (Universal) + ["B_Heli_Transport_01_F",250,80,150], // UH-80 Ghost Hawk + ["B_Heli_Transport_01_camo_F",250,80,150], // UH-80 Ghost Hawk (Camo) + ["RHS_UH60M2",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M",250,80,150], // UH-60M + ["RHS_UH60M_MEV2",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F",275,80,175], // CH-47 Chinook (Armed) + ["I_Heli_Transport_02_F",275,0,175], // CH-49 Mohawk + ["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21_D",300,100,175], // CH-53E Super Stallion (GAU-21) + ["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["B_UAV_02_dynamicLoadout_F",400,400,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["I_Plane_Fighter_03_dynamicLoadout_F",500,400,350], // A-143 Buzzard + ["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS) + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["I_Plane_Fighter_04_F",1000,1200,400], // A-149 Gryphon + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["B_HMG_01_F",25,40,0], // Mk30A HMG .50 + ["B_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) + ["B_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) + ["B_GMG_01_F",35,60,0], // Mk32A GMG 20mm + ["B_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised) + ["B_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous) + ["B_static_AT_F",50,100,0], // Static Titan Launcher (AT) + ["B_static_AA_F",50,100,0], // Static Titan Launcher (AA) + ["B_Mortar_01_F",80,150,0], // Mk6 Mortar + ["RHS_M119_WD",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["CUP_B_TowingTractor_NATO",50,0,25], // Towing Tractor + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["B_Truck_01_Repair_F",325,0,75], // HEMTT Repair + ["B_Truck_01_fuel_F",125,0,275], // HEMTT Fuel + ["B_Truck_01_ammo_F",125,200,75], // HEMTT Ammo + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_wd",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "B_Soldier_TL_F", + "B_Soldier_F", + "B_Soldier_F", + "B_Soldier_LAT_F", + "B_Soldier_GL_F", + "B_soldier_AR_F", + "B_soldier_AR_F", + "B_soldier_M_F", + "B_medic_F", + "B_engineer_F" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "B_Soldier_TL_F", + "B_Soldier_LAT_F", + "B_Soldier_LAT_F", + "B_Soldier_GL_F", + "B_soldier_AR_F", + "B_soldier_AR_F", + "B_HeavyGunner_F", + "B_Sharpshooter_F", + "B_medic_F", + "B_engineer_F" +]; + +// AT specialists squad. +blufor_squad_at = [ + "B_Soldier_TL_F", + "B_Soldier_F", + "B_Soldier_F", + "B_soldier_AT_F", + "B_soldier_AT_F", + "B_soldier_AT_F", + "B_medic_F", + "B_soldier_F" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "B_Soldier_TL_F", + "B_Soldier_F", + "B_Soldier_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_soldier_AA_F", + "B_medic_F", + "B_soldier_F" +]; + +// Force recon squad. +blufor_squad_recon = [ + "B_recon_TL_F", + "B_recon_F", + "B_recon_F", + "B_recon_LAT_F", + "B_recon_M_F", + "B_recon_M_F", + "B_Recon_Sharpshooter_F", + "B_Recon_Sharpshooter_F", + "B_recon_medic_F", + "B_recon_exp_F" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F", + "B_soldier_PG_F" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) + "B_MBT_01_TUSK_F", // M2A4 Slammer UP + "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) + "BWA3_Leopard2_Fleck", // MBT Leopard 2A6M + "B_MBT_01_arty_F", // M4 Scorcher + "rhsusf_m109_usarmy", // M109A6 + "B_MBT_01_mlrs_F", // M5 Sandstorm MLRS + "B_Heli_Attack_01_dynamicLoadout_F", // AH-99 Blackfoot + "RHS_AH64D_wd", // AH-64D (Multi-Role) + "BWA3_Tiger_RMK_Universal", // UH Tiger RMK (Universal) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS) + "I_Plane_Fighter_04_F", // A-149 Gryphon + "RHS_A10", // A-10A (CAS) + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/enoch.sqf b/kp_liberation.brf_sumava/presets/blufor/enoch.sqf new file mode 100644 index 0000000..a2c8cb4 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/enoch.sqf @@ -0,0 +1,350 @@ +/* + Needed Mods: + - Contact DLC + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "I_E_Truck_02_Medical_F"; // This is the mobile respawn (and medical) truck. +huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "I_E_Crew_F"; // This defines the crew for vehicles. +pilot_classname = "I_E_Helipilot_F"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "I_E_Truck_02_transport_F"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "I_E_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["I_E_Soldier_lite_F",15,0,0], // Rifleman (Light) + ["I_E_Soldier_F",20,0,0], // Rifleman + ["I_E_Soldier_LAT2_F",30,0,0], // Rifleman (AT) + ["I_E_Soldier_GL_F",25,0,0], // Grenadier + ["I_E_Soldier_AR_F",25,0,0], // Autorifleman + ["I_E_soldier_M_F",30,0,0], // Marksman + ["I_E_Soldier_AT_F",50,10,0], // AT Specialist + ["I_E_Soldier_AA_F",50,10,0], // AA Specialist + ["I_E_Medic_F",30,0,0], // Combat Life Saver + ["I_E_Engineer_F",30,0,0], // Engineer + ["I_E_Soldier_Exp_F",30,0,0], // Explosives Specialist + ["B_T_Recon_F",20,0,0], // Recon Scout + ["B_T_Recon_LAT_F",30,0,0], // Recon Scout (AT) + ["B_T_Recon_M_F",30,0,0], // Recon Marksman + ["B_T_Recon_Medic_F",30,0,0], // Recon Paramedic + ["B_T_Recon_exp_F",30,0,0], // Recon Demolition Expert + ["B_T_Sniper_F",70,5,0], // Sniper + ["B_ghillie_lsh_F",70,5,0], // Sniper (Green) + ["B_T_Spotter_F",20,0,0], // Spotter + ["I_E_Crew_F",10,0,0], // Crewman + ["B_T_Soldier_PG_F",20,0,0], // Para Trooper + ["I_E_Helicrew_F",10,0,0], // Helicopter Crew + ["I_E_Helipilot_F",10,0,0], // Helicopter Pilot + ["B_T_Pilot_F",10,0,0] // Pilot +]; + +light_vehicles = [ + ["I_E_Quadbike_01_F",50,0,25], // Quad Bike + ["I_E_Offroad_01_F",60,0,35], // Offroad + ["I_E_Offroad_01_covered_F",60,0,35], // Offroad (Covered) + ["I_E_Offroad_01_comms_F",60,0,35], // Offroad (Comms) + ["I_E_Van_02_vehicle_F",70,0,45], // Transporter + ["I_E_Van_02_transport_MP_F",70,0,45], // Transporter (MP) + ["I_E_Van_02_transport_F",70,0,45], // Transporter (Transporter) + ["B_T_LSV_01_unarmed_F",75,0,50], // Prowler + ["B_T_LSV_01_armed_F",75,40,50], // Prowler (HMG) + ["B_T_LSV_01_AT_F",75,60,50], // Prowler (AT) + ["I_E_Truck_02_transport_F",125,0,75], // Zamak Transport + ["I_E_Truck_02_F",125,0,75], // Zamak Transport (Covered) + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_T_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_T_Boat_Armed_01_minigun_F",200,80,75] // Speedboat Minigun +]; + +heavy_vehicles = [ + ["B_T_APC_Wheeled_01_cannon_F",200,75,125], // AMV-7 Marshall + ["I_E_APC_tracked_03_cannon_F",300,150,150], // FV-720 Odyniec + ["B_T_APC_Tracked_01_AA_F",300,250,175], // IFV-6a Cheetah + ["B_T_MBT_01_cannon_F",400,300,200], // M2A1 Slammer + ["B_T_MBT_01_TUSK_F",500,350,225], // M2A4 Slammer UP + ["B_T_AFV_Wheeled_01_cannon_F",500,500,250], // Rhino MGS + ["B_T_AFV_Wheeled_01_up_cannon_F",550,550,250], // Rhino MGS UP + ["I_E_Truck_02_MRL_F",600,1250,300] // Zamak MRL +]; + +air_vehicles = [ + ["I_E_UAV_01_F",75,0,25], // AR-2 Darter + ["I_E_UAV_06_F",80,0,30], // AL-6 Pelican + ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird + ["I_E_Heli_light_03_unarmed_F",225,0,125], // WY-55 Czapla + ["I_E_Heli_light_03_dynamicLoadout_F",225,200,125], // WY-55 Czapla (Armed) + ["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed) + ["B_Heli_Attack_01_dynamicLoadout_F",500,400,200], // AH-99 Blackfoot + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS) + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["B_W_Static_Designator_01_F",25,0,0], // Remote Designator + ["I_E_HMG_01_F",25,40,0], // Mk30A HMG .50 + ["I_E_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) + ["I_E_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) + ["I_E_GMG_01_F",35,60,0], // Mk32A GMG 20mm + ["I_E_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised) + ["I_E_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous) + ["I_E_Static_AT_F",50,100,0], // Static Titan Launcher (AT) + ["I_E_Static_AA_F",50,100,0], // Static Titan Launcher (AA) + ["I_E_Mortar_01_F",80,150,0], // Mk6 Mortar + ["I_E_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["Flag_EAF_F",0,0,0], + ["Flag_Enoch_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,200,100,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + [Arsenal_typename,25,0,0], + ["ACE_medicalSupplyCrate_advanced",10,0,0], + ["Box_East_Support_F",10,0,0], + ["Box_CSAT_Equip_F",10,0,0], + ["Box_East_Grenades_F",10,0,0], + ["Box_East_WpsSpecial_F",10,0,0], + ["Box_East_Ammo_F",10,0,0], + ["Box_East_Wps_F",10,0,0], + ["Box_CSAT_Uniforms_F",10,0,0], + ["Box_East_AmmoOrd_F",10,0,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["Land_CanisterFuel_F",0,0,2], + ["I_E_Van_02_medevac_F",150,0,80], // Transporter (Ambulance) + ["I_E_Truck_02_Box_F",325,0,75], // Zamak Repair + ["I_E_Truck_02_fuel_F",125,0,275], // Zamak Fuel + ["I_E_Truck_02_Ammo_F",125,200,75], // Zamak Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "I_E_Soldier_TL_F", + "I_E_Soldier_F", + "I_E_Soldier_F", + "I_E_Soldier_LAT2_F", + "I_E_Soldier_GL_F", + "I_E_Soldier_AR_F", + "I_E_Soldier_AR_F", + "I_E_soldier_M_F", + "I_E_Medic_F", + "I_E_Engineer_F" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "I_E_Soldier_TL_F", + "I_E_Soldier_LAT2_F", + "I_E_Soldier_LAT2_F", + "I_E_Soldier_GL_F", + "I_E_Soldier_AR_F", + "I_E_Soldier_AR_F", + "I_E_Soldier_AR_F", + "I_E_soldier_M_F", + "I_E_Medic_F", + "I_E_Engineer_F" +]; + +// AT specialists squad. +blufor_squad_at = [ + "I_E_Soldier_TL_F", + "I_E_Soldier_F", + "I_E_Soldier_F", + "I_E_Soldier_AT_F", + "I_E_Soldier_AT_F", + "I_E_Soldier_AT_F", + "I_E_Medic_F", + "I_E_Soldier_F" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "I_E_Soldier_TL_F", + "I_E_Soldier_F", + "I_E_Soldier_F", + "I_E_Soldier_AA_F", + "I_E_Soldier_AA_F", + "I_E_Soldier_AA_F", + "I_E_Medic_F", + "I_E_Soldier_F" +]; + +// Force recon squad. +blufor_squad_recon = [ + "B_T_Recon_TL_F", + "B_T_Recon_F", + "B_T_Recon_F", + "B_T_Recon_LAT_F", + "B_T_Recon_M_F", + "B_T_Recon_M_F", + "B_T_Sniper_F", + "B_T_Spotter_F", + "B_T_Recon_Medic_F", + "B_T_Recon_Exp_F" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F", + "B_T_Soldier_PG_F" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "B_T_MBT_01_TUSK_F", // M2A4 Slammer UP + "B_T_AFV_Wheeled_01_cannon_F", // Rhino MGS + "B_T_AFV_Wheeled_01_up_cannon_F", // Rhino MGS UP + "I_E_Truck_02_MRL_F", // Zamak MRL + "B_Heli_Attack_01_dynamicLoadout_F", // AH-99 Blackfoot + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS) + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/gm_east.sqf b/kp_liberation.brf_sumava/presets/blufor/gm_east.sqf new file mode 100644 index 0000000..f5664bb --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/gm_east.sqf @@ -0,0 +1,337 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +FOB_box_typename = "gm_gc_army_brdm2um"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). +FOB_truck_typename = "gm_gc_army_btr60pu12"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "gm_gc_army_ural375d_medic"; // This is the mobile respawn (and medical) truck. +huron_typename = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. +pilot_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["gm_gc_army_rifleman_mpiak74n_80_str",20,0,0], // Rifleman + ["gm_gc_army_antitank_mpiak74n_rpg7_80_str",30,0,0], // Rifleman (AT) + ["gm_gc_army_machinegunner_lmgrpk_80_str",25,0,0], // Light Machinegunner + ["gm_gc_army_machinegunner_pk_80_str",25,10,0], // Autorifleman + ["gm_gc_army_engineer_mpiaks74n_80_str",30,0,0], // Engineer + ["gm_gc_army_demolition_mpiaks74n_80_str",30,0,0], // Explosives Specialist + ["gm_gc_army_crew_mpiaks74nk_80_blk",10,0,0] // Crewman +]; + +light_vehicles = [ + ["gm_gc_army_bicycle_01_oli",10,0,0], // Service Bicycle + ["gm_gc_army_p601",50,0,25], // Trabant + ["gm_gc_army_uaz469_cargo",75,0,50], // UAZ-469 + ["gm_gc_army_uaz469_dshkm",75,100,50], // UAZ-469 (MG) + ["gm_gc_army_uaz469_spg9",75,125,50], // UAZ-469 (SPG-9) + ["gm_gc_army_ural4320_cargo",125,30,75], // Ural Transport + ["B_Boat_Transport_01_F",100,0,25] // Assault Boat +]; + +heavy_vehicles = [ + ["gm_gc_army_brdm2",200,40,100], // BRDM2 + ["gm_gc_army_brdm2um",200,0,100], // BRDM2UM + ["UK3CB_CW_SOV_O_LATE_BRDM2_ATGM",200,500,100], // BRDM2 "Spandrel" + ["UK3CB_CW_SOV_O_LATE_BMD1",175,200,125], // BMD-1 + ["UK3CB_CW_SOV_O_LATE_BMD1P",175,225,125], // BMD-1P + ["UK3CB_CW_SOV_O_LATE_BMD2",175,400,125], // BMD-2 + ["gm_gc_army_btr60pa",200,0,125], // BTR-60PA + ["gm_gc_army_btr60pa_dshkm",200,100,125], // BTR-60PA (MG) + ["UK3CB_CW_SOV_O_LATE_BTR40_MG",75,100,75], // BTR-40 + ["gm_gc_army_btr60pb",200,150,125], // BTR-60PB + ["rhs_btr70_vdv",225,150,125], // BTR-70 + ["rhs_btr80_vdv",250,150,125], // BTR-80 + ["UK3CB_CW_SOV_O_LATE_MTLB_PKT",225,100,100], // MT-LB (MG) + ["UK3CB_CW_SOV_O_LATE_MTLB_KPVT",225,150,100], // MT-LB (KPVT) + ["UK3CB_CW_SOV_O_LATE_MTLB_BMP",225,200,125], // MT-LB (BMP) + ["gm_pl_army_ot64a",275,150,125], // SKOT-2A (OT-64A) + ["mkk_zsu_23_4",300,250,200], // ZSU-23-4 "Shilka" + ["mkk_2s6_tunguska",350,300,200], // 2S6 "Tunguska" + ["gm_gc_army_bmp1sp2",300,300,175], // BMP-1 + ["rhs_bmp2_tv",300,400,175], // BMP-2 + ["rhs_bmp3_msv",325,450,175], // BMP-3 + ["gm_gc_army_t55",450,450,250], // T-55 + ["gm_gc_army_t55a",450,500,250], // T-55A + ["gm_gc_army_t55ak",450,500,250], // T-55AK + ["gm_gc_army_t55am2",500,525,250], // T-55AM2 + ["gm_gc_army_t55am2b",500,525,275], // T-55AM2B + ["t62m",500,550,300], // T-62M1 + ["rhs_t72ba_tv",525,575,350], // T-72A (1984) + ["rhs_t72bb_tv",550,575,350], // T-72B (1985) + ["rhs_t72bc_tv",575,575,350], // T-72B (1989) + ["mkk_t80b_r",600,600,400], // T-80B + ["mkk_t80bv_r",625,600,400], // T-80BV + ["mkk_t80_u_r",650,600,400], // T-80U + ["mkk_t80_ue1_r",675,600,400], // T-80UE-1 + ["UK3CB_CW_SOV_O_LATE_Gaz66_ZU23",150,200,75], // GAZ-66 + ["UK3CB_CW_SOV_O_LATE_Ural_Zu23",150,200,100], // ZU-23 URAL + ["UK3CB_CW_SOV_O_LATE_MTLB_ZU23",225,200,100], // MT-LB ZU-23 + ["gm_gc_army_ural375d_mlrs",150,900,100], // BM-21 + ["gm_gc_army_2s1",275,800,200], // 2S1 + ["UK3CB_CW_SOV_O_LATE_2S3",300,800,225], // 2S3 + ["gm_gc_army_2p16",300,1000,300], // 2P16 "LUNA" + ["UK3CB_CW_SOV_O_LATE_MAZ_543_SCUD",400,1200,400] // MAZ-543 SCUD +]; + +air_vehicles = [ + ["gm_gc_airforce_mi2p",300,0,175], // Mi-2P + ["gm_gc_airforce_mi2sr",300,0,175], // Mi-2SR + ["gm_gc_airforce_mi2us",300,100,175], // Mi-2US + ["gm_gc_airforce_mi2urn",300,120,175], // Mi-2URN + ["gm_pl_airforce_mi2urpg",300,200,175], // Mi-2URPG + ["gm_gc_airforce_l410s_salon",350,0,200], // L-410S + ["gm_gc_airforce_l410t",350,0,200], // L-410T + ["len_mi8amt_nva",225,0,125], // Mi8AMT + ["len_mi24d_CAS_nva",550,550,250], // Mi-24D (CAS) + ["len_mi24d_AT_nva",550,550,250], // Mi-24D (AT) + ["len_mi24d_FAB_nva",550,550,250], // Mi-24D (FAB) + ["len_mi24p_CAS_nva",550,550,250], // Mi-24P (CAS) + ["len_mi24p_AT_nva",550,550,250], // Mi-24P (AT) + ["len_mi24p_FAB_nva",550,550,250], // Mi-24P (FAB) + ["len_l39_nva",1200,1250,650], // Aero L-39 + ["pook_MIG21_OPFOR",1250,1250,700], // MiG-21 + ["pook_Mig23_OPFOR",1250,1300,725], // MiG-23 + ["len_mig29a_01_nva",1300,1100,750], // MiG-29A + ["pook_Su22_OPFOR",1225,1400,725], // SU-22 + ["UK3CB_CW_SOV_O_LATE_Su25SM_CAS",1225,1500,600] // SU-25 +]; + +static_vehicles = [ + ["gm_gc_army_fagot_launcher_tripod",50,100,0], // Static FAGOT + ["gm_gc_army_dshkm_aatripod",50,50,0], // DSHkM + ["gm_gc_army_spg9_tripod",50,75,0] // SPG-9 +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["land_gm_euro_furniture_mapboard_01",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0], + ["land_gm_sandbags_01_round_01",0,0,0], + ["land_gm_sandbags_01_wall_01",0,0,0], + ["land_gm_sandbags_01_short_01",0,0,0], + ["land_gm_sandbags_01_door_01",0,0,0], + ["land_gm_sandbags_01_door_02",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,200,500,0], + [FOB_truck_typename,300,500,100], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["gm_gc_army_ural4320_repair",325,30,75], // Ural Repair + ["gm_gc_army_ural375d_refuel",125,0,275], // Ural Fuel + ["gm_gc_army_ural4320_reammo",125,200,75], // Ural Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "gm_gc_army_squadleader_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_machinegunner_lmgrpk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_demolition_mpiaks74n_80_str", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_str", + "gm_gc_army_engineer_mpiaks74n_80_str" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "gm_gc_army_squadleader_mpiak74n_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_machinegunner_lmgrpk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_demolition_mpiaks74n_80_str", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_str", + "gm_gc_army_engineer_mpiaks74n_80_str" +]; + +// AT specialists squad. +blufor_squad_at = [ + "gm_gc_army_squadleader_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "gm_gc_army_squadleader_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str" +]; + +// Force recon squad. +blufor_squad_recon = [ + "gm_gc_army_squadleader_mpiak74n_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", + "gm_gc_army_machinegunner_lmgrpk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_machinegunner_pk_80_str", + "gm_gc_army_demolition_mpiaks74n_80_str", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_str", + "gm_gc_army_engineer_mpiaks74n_80_str" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str", + "gm_gc_army_rifleman_mpiak74n_80_str" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/gm_east_win.sqf b/kp_liberation.brf_sumava/presets/blufor/gm_east_win.sqf new file mode 100644 index 0000000..135d002 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/gm_east_win.sqf @@ -0,0 +1,293 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +FOB_box_typename = "gm_gc_army_brdm2um_win"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). +FOB_truck_typename = "gm_gc_army_btr60pu12_win"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "gm_gc_army_ural375d_medic_win"; // This is the mobile respawn (and medical) truck. +huron_typename = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. +pilot_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["gm_gc_army_rifleman_mpiak74n_80_win",20,0,0], // Rifleman + ["gm_gc_army_antitank_mpiak74n_rpg7_80_win",30,0,0], // Rifleman (AT) + ["gm_gc_army_machinegunner_lmgrpk_80_win",25,0,0], // Light Machinegunner + ["gm_gc_army_machinegunner_pk_80_win",25,10,0], // Autorifleman + ["gm_gc_army_engineer_mpiaks74n_80_win",30,0,0], // Engineer + ["gm_gc_army_demolition_mpiaks74n_80_win",30,0,0], // Explosives Specialist + ["gm_gc_army_crew_mpiaks74nk_80_blk",10,0,0] // Crewman +]; + +light_vehicles = [ + ["gm_gc_army_bicycle_01_oli",10,0,0], // Service Bicycle + ["gm_gc_army_p601",50,0,25], // Trabant + ["gm_gc_army_ural4320_cargo_win",125,30,75], // Ural Transport + ["B_Boat_Transport_01_F",100,0,25] // Assault Boat +]; + +heavy_vehicles = [ + ["gm_gc_army_brdm2_win",200,40,100], // BRDM2 + ["gm_gc_army_btr60pb_win",200,150,125], // BTR-60PB + ["gm_gc_army_zsu234v1_win",300,250,200], // Shilka + ["gm_gc_army_bmp1sp2_win",300,300,175], // BMP-1 + ["gm_gc_army_t55a_win",450,550,250] // T-55 +]; + +air_vehicles = [ + ["gm_gc_airforce_mi2p",300,0,175], // Mi-2P + ["gm_gc_airforce_mi2sr",300,0,175], // Mi-2SR + ["gm_gc_airforce_mi2us",300,100,175], // Mi-2US + ["gm_gc_airforce_mi2urn",300,120,175], // Mi-2URN + ["gm_gc_airforce_l410s_salon",350,0,200], // L-410S + ["gm_gc_airforce_l410t",350,0,200], // L-410T + ["len_mi8amt_nva",225,0,125], // Mi8AMT + ["len_mi24d_CAS_nva",550,550,250], // Mi-24D (CAS) + ["len_mi24d_AT_nva",550,550,250], // Mi-24D (AT) + ["len_mi24d_FAB_nva",550,550,250], // Mi-24D (FAB) + ["len_mi24p_CAS_nva",550,550,250], // Mi-24P (CAS) + ["len_mi24p_AT_nva",550,550,250], // Mi-24P (AT) + ["len_mi24p_FAB_nva",550,550,250], // Mi-24P (FAB) + ["len_l39_nva",1200,1250,650] // Aero L-39 +]; + +static_vehicles = [ + ["gm_gc_army_fagot_launcher_tripod",50,100,0] // Static FAGOT +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["land_gm_euro_furniture_mapboard_01",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0], + ["land_gm_sandbags_01_round_01",0,0,0], + ["land_gm_sandbags_01_wall_01",0,0,0], + ["land_gm_sandbags_01_short_01",0,0,0], + ["land_gm_sandbags_01_door_01",0,0,0], + ["land_gm_sandbags_01_door_02",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,200,500,0], + [FOB_truck_typename,300,500,100], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["gm_gc_army_ural4320_repair_win",325,30,75], // Ural Repair + ["gm_gc_army_ural375d_refuel_win",125,0,275], // Ural Fuel + ["gm_gc_army_ural4320_reammo_win",125,200,75], // Ural Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "gm_gc_army_squadleader_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_machinegunner_lmgrpk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_demolition_mpiaks74n_80_win", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_win", + "gm_gc_army_engineer_mpiaks74n_80_win" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "gm_gc_army_squadleader_mpiak74n_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_machinegunner_lmgrpk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_demolition_mpiaks74n_80_win", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_win", + "gm_gc_army_engineer_mpiaks74n_80_win" +]; + +// AT specialists squad. +blufor_squad_at = [ + "gm_gc_army_squadleader_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "gm_gc_army_squadleader_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win" +]; + +// Force recon squad. +blufor_squad_recon = [ + "gm_gc_army_squadleader_mpiak74n_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", + "gm_gc_army_machinegunner_lmgrpk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_machinegunner_pk_80_win", + "gm_gc_army_demolition_mpiaks74n_80_win", + "gm_gc_army_machinegunner_assistant_mpiak74n_lmgrpk_80_win", + "gm_gc_army_engineer_mpiaks74n_80_win" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win", + "gm_gc_army_rifleman_mpiak74n_80_win" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "gm_gc_army_t55a_win", // T-55, + "len_mi24d_AT_nva", // Mi-24D (AT) + "len_mi24p_AT_nva", // Mi-24P (AT) + "len_mi24d_FAB_nva", // Mi-24D (FAB) + "len_mi24p_FAB_nva" // Mi-24P (FAB) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/gm_west.sqf b/kp_liberation.brf_sumava/presets/blufor/gm_west.sqf new file mode 100644 index 0000000..dcff605 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/gm_west.sqf @@ -0,0 +1,296 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +FOB_box_typename = "gm_ge_army_shelteraceI_command"; // This is the FOB as a container. +FOB_truck_typename = "gm_ge_army_bpz2a0"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "gm_ge_army_u1300l_medic"; // This is the mobile respawn (and medical) truck. +huron_typename = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the crew for vehicles. +pilot_classname = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "gm_ge_army_bo105p1m_vbh_swooper";// These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "gm_ge_army_kat1_454_cargo"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["gm_ge_army_rifleman_g3a3_80_ols",20,0,0], // Rifleman + ["gm_ge_army_antitank_g3a3_pzf44_80_ols",30,0,0], // Rifleman (AT) + ["gm_ge_army_grenadier_g3a3_80_ols",25,0,0], // Grenadier + ["gm_ge_army_machinegunner_mg3_80_ols",25,0,0], // Autorifleman + ["gm_ge_army_antitank_g3a3_pzf84_80_ols",50,10,0], // AT Specialist + ["gm_ge_army_medic_g3a3_80_ols",30,0,0], // Combat Life Saver + ["gm_ge_army_engineer_g3a4_80_ols",30,0,0], // Engineer + ["gm_ge_army_demolition_g3a4_80_ols",30,0,0], // Explosives Specialist + ["gm_ge_army_crew_mp2a1_80_oli",10,0,0] // Crewman +]; + +light_vehicles = [ + ["gm_ge_army_bicycle_01_oli",10,0,0], // Service Bicycle + ["gm_ge_army_k125",50,0,25], // K125 Bike + ["gm_ge_army_iltis_cargo",100,0,50], // Truck 0.5t + ["gm_ge_army_iltis_milan",100,60,50], // Truck 0.5t MILAN + ["gm_ge_army_u1300l_cargo",125,30,75], // Truck 2t Transport + ["gm_ge_army_kat1_451_cargo",145,30,75], // Truck 5t Transport + ["gm_ge_army_u1300l_container",100,30,50], // Truck 2t Flatbed + ["B_Boat_Transport_01_F",100,0,25] // Assault Boat +]; + +heavy_vehicles = [ + ["gm_ge_army_m113a1g_apc",200,40,100], // M113A3 (MG3) + ["gm_ge_army_m113a1g_apc_milan",200,60,100], // M113A3 (MILAN) + ["gm_ge_army_m113a1g_medic",200,0,100], // M113A3 (Medical) + ["gm_ge_army_fuchsa0_engineer",200,75,125], // Fuchs (Engineer) + ["gm_ge_army_fuchsa0_reconnaissance",200,150,125], // Fuchs (Recon, MILAN) + ["gm_ge_army_gepard1a1",300,250,175], // Gepard 1A1 + ["gm_ge_army_Leopard1a1a1",400,300,200], // Leopard 1A1A1 + ["gm_ge_army_Leopard1a1a2",400,350,225], // Leopard 1A1A2 + ["gm_ge_army_Leopard1a3",500,500,250], // Leopard 1A3 + ["gm_ge_army_Leopard1a3a1",550,550,250] // Leopard 1A3A1 +]; + +air_vehicles = [ + ["gm_ge_army_bo105m_vbh",200,0,100], // VBH 1 + ["gm_ge_army_bo105p1m_vbh",200,0,100], // VBH 1A1 + ["gm_ge_army_bo105p1m_vbh_swooper",200,0,100], // VBH 1A1 Swooper + ["gm_ge_army_bo105p_pah1",200,100,100], // PAH 1 + ["gm_ge_army_bo105p_pah1a1",200,120,100], // PAH 1A1 + ["len_uh1d_bw",225,0,125], // BW UH-1D + ["gm_ge_army_ch53g",300,0,175], // CH-53G + ["gm_ge_airforce_do28d2",350,0,200], // Do 28 D2 + ["gm_ge_airforce_do28d2_medevac",350,0,200] // Do 28 D2 (Medevac) +]; + +static_vehicles = [ + ["gm_ge_army_milan_launcher_tripod",50,100,0] // Static MILAN +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["land_gm_euro_furniture_mapboard_01",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0], + ["land_gm_sandbags_01_round_01",0,0,0], + ["land_gm_sandbags_01_wall_01",0,0,0], + ["land_gm_sandbags_01_short_01",0,0,0], + ["land_gm_sandbags_01_door_01",0,0,0], + ["land_gm_sandbags_01_door_02",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,200,500,0], + [FOB_truck_typename,300,500,100], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["gm_ge_army_u1300l_repair",325,30,75], // Truck 2t repair + ["gm_ge_army_kat1_451_refuel",125,0,275], // Truck 5t fuel + ["gm_ge_army_kat1_451_reammo",125,200,75], // Truck 5t ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "gm_ge_army_squadleader_g3a3_p2a1_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_antitank_g3a3_pzf44_80_ols", + "gm_ge_army_grenadier_g3a3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_demolition_g3a4_80_ols", + "gm_ge_army_medic_g3a3_80_ols", + "gm_ge_army_engineer_g3a4_80_ols" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "gm_ge_army_squadleader_g3a3_p2a1_80_ols", + "gm_ge_army_antitank_g3a3_pzf44_80_ols", + "gm_ge_army_antitank_g3a3_pzf44_80_ols", + "gm_ge_army_grenadier_g3a3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_demolition_g3a4_80_ols", + "gm_ge_army_medic_g3a3_80_ols", + "gm_ge_army_engineer_g3a4_80_ols" +]; + +// AT specialists squad. +blufor_squad_at = [ + "gm_ge_army_squadleader_g3a3_p2a1_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_medic_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "gm_ge_army_squadleader_g3a3_p2a1_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols", + "gm_ge_army_medic_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols" +]; + +// Force recon squad. +blufor_squad_recon = [ + "gm_ge_army_squadleader_g3a3_p2a1_80_ols", + "gm_ge_army_antitank_g3a3_pzf44_80_ols", + "gm_ge_army_antitank_g3a3_pzf44_80_ols", + "gm_ge_army_grenadier_g3a3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_machinegunner_mg3_80_ols", + "gm_ge_army_demolition_g3a4_80_ols", + "gm_ge_army_medic_g3a3_80_ols", + "gm_ge_army_engineer_g3a4_80_ols", + "gm_ge_army_antitank_g3a3_pzf84_80_ols" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols", + "gm_ge_army_rifleman_g3a3_80_ols" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "gm_ge_army_Leopard1a1a2", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3a1" // Leopard 1A3A1 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/gm_west_win.sqf b/kp_liberation.brf_sumava/presets/blufor/gm_west_win.sqf new file mode 100644 index 0000000..b90a190 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/gm_west_win.sqf @@ -0,0 +1,296 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +FOB_box_typename = "gm_ge_army_shelteraceI_command_win"; // This is the FOB as a container. +FOB_truck_typename = "gm_ge_army_bpz2a0_win"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "gm_ge_army_u1300l_medic_win_rc"; // This is the mobile respawn (and medical) truck. +huron_typename = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "gm_ge_army_crew_mp2a1_80_win"; // This defines the crew for vehicles. +pilot_classname = "gm_ge_army_crew_mp2a1_80_win"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "gm_ge_army_bo105p1m_vbh_swooper";// These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "gm_ge_army_kat1_454_cargo_win"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["gm_ge_army_rifleman_g3a3_parka_80_win",20,0,0], // Rifleman + ["gm_ge_army_antitank_g3a3_pzf44_parka_80_win",30,0,0], // Rifleman (AT) + ["gm_ge_army_grenadier_g3a3_parka_80_win",25,0,0], // Grenadier + ["gm_ge_army_machinegunner_mg3_parka_80_win",25,0,0], // Autorifleman + ["gm_ge_army_antitank_g3a3_pzf84_parka_80_win",50,10,0], // AT Specialist + ["gm_ge_army_medic_g3a3_parka_80_win",30,0,0], // Combat Life Saver + ["gm_ge_army_engineer_g3a4_parka_80_win",30,0,0], // Engineer + ["gm_ge_army_demolition_g3a4_parka_80_win",30,0,0], // Explosives Specialist + ["gm_ge_army_crew_mp2a1_80_oli",10,0,0] // Crewman +]; + +light_vehicles = [ + ["gm_ge_army_bicycle_01_oli",10,0,0], // Service Bicycle + ["gm_ge_army_k125",50,0,25], // K125 Bike + ["gm_ge_army_iltis_cargo_win",100,0,50], // Truck 0.5t + ["gm_ge_army_iltis_milan_win",100,60,50], // Truck 0.5t MILAN + ["gm_ge_army_u1300l_cargo_win",125,30,75], // Truck 2t Transport + ["gm_ge_army_kat1_451_cargo_win",145,30,75], // Truck 5t Transport + ["gm_ge_army_u1300l_container_win",100,30,50], // Truck 2t Flatbed + ["B_Boat_Transport_01_F",100,0,25] // Assault Boat +]; + +heavy_vehicles = [ + ["gm_ge_army_m113a1g_apc_win",200,40,100], // M113A3 (MG3) + ["gm_ge_army_m113a1g_apc_milan_win",200,60,100], // M113A3 (MILAN) + ["gm_ge_army_m113a1g_medic",200,0,100], // M113A3 (Medical) + ["gm_ge_army_fuchsa0_engineer_win",200,75,125], // Fuchs (Engineer) + ["gm_ge_army_fuchsa0_reconnaissance_win",200,150,125], // Fuchs (Recon, MILAN) + ["gm_ge_army_gepard1a1_win",300,250,175], // Gepard 1A1 + ["gm_ge_army_Leopard1a1a1_win",400,300,200], // Leopard 1A1A1 + ["gm_ge_army_Leopard1a1a2_win",400,350,225], // Leopard 1A1A2 + ["gm_ge_army_Leopard1a3_win",500,500,250], // Leopard 1A3 + ["gm_ge_army_Leopard1a3a1_win",550,550,250] // Leopard 1A3A1 +]; + +air_vehicles = [ + ["gm_ge_army_bo105m_vbh",200,0,100], // VBH 1 + ["gm_ge_army_bo105p1m_vbh",200,0,100], // VBH 1A1 + ["gm_ge_army_bo105p1m_vbh_swooper",200,0,100], // VBH 1A1 Swooper + ["gm_ge_army_bo105p_pah1",200,100,100], // PAH 1 + ["gm_ge_army_bo105p_pah1a1",200,120,100], // PAH 1A1 + ["len_uh1d_bw",225,0,125], // BW UH-1D + ["gm_ge_army_ch53g",300,0,175], // CH-53G + ["gm_ge_airforce_do28d2",350,0,200], // Do 28 D2 + ["gm_ge_airforce_do28d2_medevac",350,0,200] // Do 28 D2 (Medevac) +]; + +static_vehicles = [ + ["gm_ge_army_milan_launcher_tripod",50,100,0] // Static MILAN +]; + +buildings = [ + ["Land_Cargo_House_V4_F",0,0,0], + ["Land_Cargo_Patrol_V4_F",0,0,0], + ["Land_Cargo_Tower_V4_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_ghex_F",0,0,0], + ["CamoNet_ghex_open_F",0,0,0], + ["CamoNet_ghex_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["land_gm_euro_furniture_mapboard_01",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_01_round_green_F",0,0,0], + ["Land_BagFence_01_short_green_F",0,0,0], + ["Land_BagFence_01_long_green_F",0,0,0], + ["Land_BagFence_01_corner_green_F",0,0,0], + ["Land_BagFence_01_end_green_F",0,0,0], + ["Land_BagBunker_01_small_green_F",0,0,0], + ["Land_BagBunker_01_large_green_F",0,0,0], + ["Land_HBarrier_01_tower_green_F",0,0,0], + ["Land_HBarrier_01_line_1_green_F",0,0,0], + ["Land_HBarrier_01_line_3_green_F",0,0,0], + ["Land_HBarrier_01_line_5_green_F",0,0,0], + ["Land_HBarrier_01_big_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_4_green_F",0,0,0], + ["Land_HBarrier_01_wall_6_green_F",0,0,0], + ["Land_HBarrier_01_wall_corner_green_F",0,0,0], + ["Land_HBarrier_01_wall_corridor_green_F",0,0,0], + ["Land_HBarrier_01_big_tower_green_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0], + ["land_gm_sandbags_01_round_01",0,0,0], + ["land_gm_sandbags_01_wall_01",0,0,0], + ["land_gm_sandbags_01_short_01",0,0,0], + ["land_gm_sandbags_01_door_01",0,0,0], + ["land_gm_sandbags_01_door_02",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,200,500,0], + [FOB_truck_typename,300,500,100], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["gm_ge_army_u1300l_repair_win",325,30,75], // Truck 2t repair + ["gm_ge_army_kat1_451_refuel_win",125,0,275], // Truck 5t fuel + ["gm_ge_army_kat1_451_reammo_win",125,200,75], // Truck 5t ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", + "gm_ge_army_grenadier_g3a3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_demolition_g3a4_parka_80_win", + "gm_ge_army_medic_g3a3_parka_80_win", + "gm_ge_army_engineer_g3a4_parka_80_win" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", + "gm_ge_army_grenadier_g3a3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_demolition_g3a4_parka_80_win", + "gm_ge_army_medic_g3a3_parka_80_win", + "gm_ge_army_engineer_g3a4_parka_80_win" +]; + +// AT specialists squad. +blufor_squad_at = [ + "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_medic_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win", + "gm_ge_army_medic_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win" +]; + +// Force recon squad. +blufor_squad_recon = [ + "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", + "gm_ge_army_grenadier_g3a3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_machinegunner_mg3_parka_80_win", + "gm_ge_army_demolition_g3a4_parka_80_win", + "gm_ge_army_medic_g3a3_parka_80_win", + "gm_ge_army_engineer_g3a4_parka_80_win", + "gm_ge_army_antitank_g3a3_pzf84_parka_80_win" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win", + "gm_ge_army_rifleman_g3a3_parka_80_win" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "gm_ge_army_Leopard1a1a2_win", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3a1_win" // Leopard 1A3A1 +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/rhs_afrf.sqf b/kp_liberation.brf_sumava/presets/blufor/rhs_afrf.sqf new file mode 100644 index 0000000..1f030d7 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/rhs_afrf.sqf @@ -0,0 +1,350 @@ +/* + Needed Mods: + - RHS AFRF + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhs_gaz66_r142_msv"; // This is the FOB as a vehicle. +Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhs_gaz66_ap2_msv"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_Mi8mt_vvs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "rhs_msv_emr_armoredcrew"; // This defines the crew for vehicles. +pilot_classname = "rhs_pilot_combat_heli"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "rhs_ka60_grey"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhs_kamaz5350_flatbed_vdv"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_forest_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_forest_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "rhs_prv13"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["rhs_vdv_rifleman_lite",15,0,0], // Rifleman (Light) + ["rhs_vdv_rifleman",20,0,0], // Rifleman + ["rhs_vdv_LAT",30,0,0], // Rifleman (LAT) + ["rhs_vdv_grenadier_alt",25,0,0], // Grenadier + ["rhs_vdv_machinegunner", 25,0,0], // Machinegunner + ["rhs_vdv_arifleman",30,0,0], // Autorifleman + ["rhs_vdv_marksman",30,0,0], // Marksman + ["rhs_vdv_at",50,10,0], // AT Specialist + ["rhs_vdv_aa",50,10,0], // AA Specialist + ["rhs_vdv_medic",30,0,0], // Combat Life Saver + ["rhs_vdv_engineer",30,0,0], // Engineer + ["rhs_vdv_recon_rifleman",20,0,0], // Recon Rifleman + ["rhs_vdv_recon_rifleman_lat",30,0,0], // Recon Rifleman (AT) + ["rhs_vdv_recon_arifleman",30,0,0], // Recon Autorifleman + ["rhs_vdv_recon_arifleman_scout",25,0,0], // Recon Autorifleman Scout + ["rhs_vdv_recon_marksman",30,0,0], // Recon Marksman + ["rhs_vdv_armoredcrew",10,0,0], // Crewman + ["rhs_pilot_combat_heli",10,0,0], // Helicopter Pilot + ["rhs_pilot_transport_heli",10,0,0], // Helicopter Pilot Transport + ["rhs_pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["O_Quadbike_01_F",50,0,25], // Quad Bike + ["rhs_uaz_vdv",50,0,45], // UAZ + ["rhs_uaz_open_vdv",50,0,45], // UAZ (Open) + ["rhs_tigr_m_vdv",100,0,50], // GAZ-233114 (Unarmed) + ["rhs_tigr_m_3camo_vdv",100,0,50], // GAZ-233114 (Unarmed) Camo + ["rhs_tigr_sts_vdv",100,60,50], // GAZ-233014 (Armed) + ["rhs_tigr_sts_3camo_vdv",100,60,50], // GAZ-233014 (Armed) Camo + ["rhs_gaz66_ap2_vdv",120,0,60], // GAZ-66-AP-2 (Medical) + ["rhs_kamaz5350_vdv",125,0,75], // KamAZ-5350 (covered infantry truck) + ["RHS_Ural_VDV_01",105,0,75], // Ural-4320 (covered infantry truck) + ["rhs_kamaz5350_open_vdv",125,0,75], // KamaZ-5350 (open infantry truck) + ["RHS_Ural_Open_VDV_01",105,0,75], // Ural-4320 (open infantry truck) + ["rhs_pts_vmf",125,0,100], // PTS + ["rhs_gaz66_zu23_vdv",105,70,65], // GAZ-66 (ZU-23) + ["rhs_btr60_vdv",150,40,100], // BTR-60PB + ["rhs_btr70_vdv",180,60,100], // BTR-70 + ["rhs_btr80_vdv",180,80,100], // BTR-80 + ["rhs_btr80a_vdv",220,80,100], // BTR-80A + ["RHS_BM21_VDV_01",200,1500,200], // BM-21 (Grad) + ["O_UGV_01_F",150,0,50], // UGV Saif + ["O_UGV_01_rcws_F",150,40,50], // UGV Saif (RCWS) + ["O_Boat_Transport_01_F",100,0,25], // Assault Boat + ["O_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["O_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhs_bmp1k_vdv",200,40,100], // BMP-1K + ["rhs_bmp2k_vdv",240,150,100], // BMP-2K + ["rhs_bmd2m",260,170,120], // BMD-2M (Berezhok) + ["rhs_bmd4m_vdv",300,200,150], // BMD-4M + ["rhs_bmd4ma_vdv",300,250,150], // BMD-4M (Armored) + ["rhs_zsu234_aa",300,250,175], // ZSU-23-4 + ["rhs_t72bd_tv",400,250,200], // T-72B3 + ["rhs_t80ue1",400,350,250], // T-80UE1 + ["rhs_t90a_tv",500,400,300], // T-90A + ["rhs_t90sab_tv",600,400,300], // T-90SA (2016) + ["rhs_t14_tv",600,500,400], // T-14 + ["rhs_2s1_tv",600,1000,300], // 2S1 + ["rhs_2s3_tv",600,1250,300] // 2S3M1 +]; + +air_vehicles = [ + ["O_UAV_01_F",75,0,25], // AR-2 Tayran + ["O_UAV_06_F",80,0,30], // AL-6 Jinaah (Cargo) + ["rhs_ka60_c",200,0,100], // KA-60 + ["RHS_Mi8AMT_vdv",225,0,125], // Mi-8AMT (Unarmed) + ["RHS_Mi8MTV3_vdv",225,200,125], // Mi-8MTV-3 + ["RHS_Ka52_vvsc",500,500,200], // Ka-52 + ["RHS_Mi24V_vdv",550,550,250], // Mi-24V + ["rhs_mi28n_vvsc",650,600,300], // Mi-28N + ["O_UAV_02_dynamicLoadout_F",400,300,200], // K40 Ababil + ["O_T_UAV_04_CAS_F",450,500,250], // KH-3A + ["RHS_Su25SM_vvsc",900,900,400], // Su-25SM + ["rhs_mig29s_vvsc",1250,1250,450] // Mig-29S +]; + +static_vehicles = [ + ["RHS_NSV_TriPod_VDV",25,40,0], // NSV Low Tripod + ["rhs_KORD_high_VDV",25,40,0], // KORD High Tripod + ["RHS_AGS30_TriPod_VDV",25,60,0], // AGS30 Low Tripod + ["rhs_Kornet_9M133_2_vdv",50,100,0], // Kornet (AT) + ["rhs_Igla_AA_pod_vdv",50,100,0], // Igla Pod (AA) + ["RHS_ZU23_VDV",80,120,0], // ZU-23 + ["rhs_SPG9M_VDV",40,90,0], // SPG-9 Low Tripod + ["rhs_D30_vdv",100,200,0], // D-30 + ["rhs_D30_at_vdv",100,200,0] // D-30 AT +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["rhs_Flag_Russia_F",0,0,0], + ["rhs_Flag_vdv_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["rhs_Flag_vmf_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["RHS_Ural_Repair_VDV_01",325,0,75], // Ural Repair + ["RHS_Ural_Fuel_VDV_01",125,0,275], // Ural Fuel + ["rhs_gaz66_ammo_msv",125,200,75], // Gaz-66 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Container Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Container Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Container Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_at", + "rhs_vdv_grenadier_alt", + "rhs_vdv_arifleman", + "rhs_vdv_arifleman", + "rhs_vdv_marksman", + "rhs_vdv_medic", + "rhs_vdv_engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_grenadier_alt", + "rhs_vdv_arifleman", + "rhs_vdv_arifleman", + "rhs_vdv_machinegunner", + "rhs_vdv_marksman", + "rhs_vdv_medic", + "rhs_vdv_engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_at", + "rhs_vdv_at", + "rhs_vdv_at", + "rhs_vdv_medic", + "rhs_vdv_rifleman" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_aa", + "rhs_vdv_aa", + "rhs_vdv_aa", + "rhs_vdv_medic", + "rhs_vdv_rifleman" +]; + +// Force recon squad. +blufor_squad_recon = [ + "rhs_vdv_recon_sergeant", + "rhs_vdv_rifleman", + "rhs_vdv_recon_grenadier", + "rhs_vdv_recon_at", + "rhs_vdv_recon_machinegunner", + "rhs_vdv_recon_machinegunner", + "rhs_vdv_recon_marksman", + "rhs_vdv_recon_marksman", + "rhs_vdv_recon_medic", + "rhs_vdv_recon_engineer" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_medic", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_marksman" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhs_t80ue1", // T-80UE1 + "rhs_t90a_tv", // T-90A + "rhs_t90sab_tv", // T-90SA (2016) + "rhs_t14_tv", // T-14 + "rhs_2s1_tv", // 2S1 + "rhs_2s3_tv", // 2S3M1 + "rhs_mi28n_vvsc", // Mi-28N + "O_UAV_02_dynamicLoadout_F", // K40 Ababil + "O_T_UAV_04_CAS_F", // KH-3A + "RHS_Su25SM_vvsc", // Su-25SM + "rhs_mig29s_vvsc", // Mig-29S + "rhs_bmd4m_vdv", // BMD-4M + "rhs_bmd4ma_vdv", // BMD-4MA + "RHS_Ka52_vvsc", // Ka-52 + "rhs_btr80a_vdv", // BTR-80A + "rhs_bmd2m", // BMD-2M (Berezhok) + "RHS_BM21_VDV_01" // BM-21 (Grad) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_des.sqf b/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_des.sqf new file mode 100644 index 0000000..e14f5b8 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_des.sqf @@ -0,0 +1,420 @@ +/* + Needed Mods: + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. +pilot_classname = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["rhsusf_army_ocp_riflemanl",15,0,0], // Rifleman (Light) + ["rhsusf_army_ocp_rifleman",20,0,0], // Rifleman + ["rhsusf_army_ocp_riflemanat",30,0,0], // Rifleman (AT) + ["rhsusf_army_ocp_grenadier",25,0,0], // Grenadier + ["rhsusf_army_ocp_autorifleman",25,0,0], // Autorifleman + ["rhsusf_army_ocp_machinegunner",35,0,0], // Heavygunner + ["rhsusf_army_ocp_marksman",30,0,0], // Marksman + ["rhsusf_army_ocp_javelin",50,10,0], // AT Specialist + ["rhsusf_army_ocp_aa",50,10,0], // AA Specialist + ["rhsusf_army_ocp_medic",30,0,0], // Combat Life Saver + ["rhsusf_army_ocp_engineer",30,0,0], // Engineer + ["rhsusf_army_ocp_explosives",30,0,0], // Explosives Specialist + ["rhsusf_usmc_recon_marpat_d_rifleman",20,0,0], // Recon Rifleman + ["rhsusf_usmc_recon_marpat_d_rifleman_at",30,0,0], // Recon Rifleman (AT) + ["rhsusf_usmc_recon_marpat_d_machinegunner_m249",25,0,0], // Recon Autorifleman + ["rhsusf_usmc_recon_marpat_d_machinegunner",35,0,0], // Recon Machine Gunner + ["rhsusf_usmc_recon_marpat_d_marksman",30,0,0], // Recon Marksman + ["rhsusf_usmc_recon_marpat_d_sniper_M107",70,5,0], // Recon Sniper (M107) + ["rhsusf_army_ocp_sniper",70,5,0], // Sniper + ["rhsusf_army_ocp_sniper_m107",70,5,0], // Sniper (M107) + ["rhsusf_army_ocp_sniper_m24sws",70,5,0], // Sniper (M24 SWS) + ["rhsusf_army_ocp_combatcrewman",10,0,0], // Crewman + ["rhsusf_army_ocp_rifleman_101st",20,0,0], // Para Trooper + ["rhsusf_army_ocp_helicrew",10,0,0], // Helicopter Crew + ["rhsusf_army_ocp_helipilot",10,0,0], // Helicopter Pilot + ["rhsusf_airforce_jetpilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["rhsusf_mrzr4_d",75,0,25], // MRZR 4 + ["rhsusf_m1025_d",100,0,50], // M1025A2 + ["rhsusf_m1025_d_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_d_Mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_d_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_d_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["rhsusf_M1220_usarmy_d",120,0,60], // M1220 + ["rhsusf_M1220_M2_usarmy_d",120,40,60], // M1220 (M2) + ["rhsusf_M1220_MK19_usarmy_d",120,60,60], // M1220 (Mk19) + ["rhsusf_M1220_M153_M2_usarmy_d",140,40,60], // M1220 (M2 CROWS) + ["rhsusf_M1220_M153_MK19_usarmy_d",140,60,60], // M1220 (Mk19 CROWS) + ["rhsusf_M1238A1_socom_d",130,0,60], // M1238 + ["rhsusf_M1238A1_M2_socom_d",130,40,60], // M1238 (M2) + ["rhsusf_M1238A1_Mk19_socom_d",130,60,60], // M1238 (Mk19) + ["rhsusf_M1232_usarmy_d",140,0,60], // M1232 + ["rhsusf_M1232_M2_usarmy_d",140,40,60], // M1232 (M2) + ["rhsusf_M1232_MK19_usarmy_d",140,60,60], // M1232 (Mk19) + ["rhsusf_M1230a1_usarmy_d",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1083A1P2_D_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_D_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_d",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_d",125,40,75], // M977A4 BKIT (HMG) + ["rhsusf_M1239_socom_d",135,0,75], // M1239 AUV + ["rhsusf_M1239_M2_socom_d",135,80,75], // M1239 AUV (M2 CROWS) + ["rhsusf_M1239_MK19_socom_d",135,160,75], // M1239 AUV (Mk19 CROWS) + ["rhsusf_M1117_D",150,100,50], // M1117 ASV + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113d_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113d_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113d_usarmy_medical",200,0,100], // M113A3 (Medical) + ["rhsusf_stryker_m1126_m2_d",200,150,100], // M1126 Stryker (M2) + ["RHS_M2A2_BUSKI",300,200,150], // M2A2ODS (Busk I) + ["RHS_M2A3_BUSKIII",300,250,175], // M2A3 (Busk III) + ["RHS_M6",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_d",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiid_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["RHS_UH1Y_UNARMED_d",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_d_GS",225,200,125], // UH-1Y (Ground Suppression) + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D",750,750,250], // AH-64D (Multi-Role) + ["RHS_UH60M2_d",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M_d",250,80,150], // UH-60M + ["RHS_UH60M_MEV2_d",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["rhsusf_CH53E_USMC_D",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21_D",300,100,175], // CH-53E Super Stallion (GAU-21) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["RHS_M2StaticMG_MiniTripod_D",25,40,0], // Mk2 HMG .50 + ["RHS_M2StaticMG_D",25,40,0], // Mk2 HMG .50 (Raised) + ["RHS_MK19_TriPod_D",25,60,0], // Mk19 GMG 20mm + ["RHS_TOW_TriPod_D",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_D",50,100,0], // Stinger (AA) + ["RHS_M252_D",80,150,0], // Mk6 Mortar + ["RHS_M119_D",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V3_F",0,0,0], + ["Land_Cargo_Patrol_V3_F",0,0,0], + ["Land_Cargo_Tower_V3_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M1239_M2_Deploy_socom_d",450,200,300], // M1239 AUV (Deploy, M2) + ["rhsusf_M1239_MK19_Deploy_socom_d",450,250,300], // M1239 AUV (Deploy, Mk19) + ["rhsusf_M1078A1R_SOV_M2_D_fmtv_socom",400,200,300], // M1078A1R SOV + ["rhsusf_M977A4_REPAIR_usarmy_d",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_usarmy_d",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_usarmy_d",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_grenadier", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_marksman", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_grenadier", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_machinegunner", + "rhsusf_army_ocp_marksman", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_rifleman" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_rifleman" +]; + +// Force recon squad. +blufor_squad_recon = [ + "rhsusf_usmc_recon_marpat_d_teamleader", + "rhsusf_usmc_recon_marpat_d_rifleman", + "rhsusf_usmc_recon_marpat_d_rifleman", + "rhsusf_usmc_recon_marpat_d_rifleman_at", + "rhsusf_usmc_recon_marpat_d_autorifleman", + "rhsusf_usmc_recon_marpat_d_machinegunner", + "rhsusf_usmc_recon_marpat_d_marksman", + "rhsusf_usmc_recon_marpat_d_sniper_M107", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_engineer" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_d", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiid_usarmy", // M1A2SEPv1 (Tusk II) + "rhsusf_m109d_usarmy", // M109A6 + "RHS_AH64D", // AH-64D (Multi-Role) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_wdl.sqf b/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_wdl.sqf new file mode 100644 index 0000000..8d3d06e --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/rhs_usaf_wdl.sqf @@ -0,0 +1,410 @@ +/* + Needed Mods: + - RHS USAF + + Optional Mods: + - F-15C + - F/A-18 + - USAF Main Pack + - USAF Fighters Pack + - USAF Utility Pack +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. +pilot_classname = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["rhsusf_army_ocp_riflemanl",15,0,0], // Rifleman (Light) + ["rhsusf_army_ocp_rifleman",20,0,0], // Rifleman + ["rhsusf_army_ocp_riflemanat",30,0,0], // Rifleman (AT) + ["rhsusf_army_ocp_grenadier",25,0,0], // Grenadier + ["rhsusf_army_ocp_autorifleman",25,0,0], // Autorifleman + ["rhsusf_army_ocp_machinegunner",35,0,0], // Heavygunner + ["rhsusf_army_ocp_marksman",30,0,0], // Marksman + ["rhsusf_army_ocp_javelin",50,10,0], // AT Specialist + ["rhsusf_army_ocp_aa",50,10,0], // AA Specialist + ["rhsusf_army_ocp_medic",30,0,0], // Combat Life Saver + ["rhsusf_army_ocp_engineer",30,0,0], // Engineer + ["rhsusf_army_ocp_explosives",30,0,0], // Explosives Specialist + ["rhsusf_usmc_recon_marpat_wd_rifleman",20,0,0], // Recon Rifleman + ["rhsusf_usmc_recon_marpat_wd_rifleman_at",30,0,0], // Recon Rifleman (AT) + ["rhsusf_usmc_recon_marpat_wd_autorifleman",25,0,0], // Recon Autorifleman + ["rhsusf_usmc_recon_marpat_wd_machinegunner",35,0,0], // Recon Machine Gunner + ["rhsusf_usmc_recon_marpat_wd_marksman",30,0,0], // Recon Marksman + ["rhsusf_usmc_recon_marpat_wd_sniper_M107",70,5,0], // Recon Sniper (M107) + ["rhsusf_army_ocp_sniper",70,5,0], // Sniper + ["rhsusf_army_ocp_sniper_m107",70,5,0], // Sniper (M107) + ["rhsusf_army_ocp_sniper_m24sws",70,5,0], // Sniper (M24 SWS) + ["rhsusf_army_ocp_combatcrewman",10,0,0], // Crewman + ["rhsusf_army_ocp_rifleman_101st",20,0,0], // Para Trooper + ["rhsusf_army_ocp_helicrew",10,0,0], // Helicopter Crew + ["rhsusf_army_ocp_helipilot",10,0,0], // Helicopter Pilot + ["rhsusf_airforce_jetpilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["rhsusf_m1025_w",100,0,50], // M1025A2 + ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) + ["rhsusf_m1025_w_mk19",100,60,50], // M1025A2 (Mk19) + ["rhsusf_m998_w_2dr_fulltop",100,0,50], // M1097A2 (2D) + ["rhsusf_m998_w_2dr_halftop",100,0,50], // M1097A2 (2D / open back) + ["rhsusf_M1220_usarmy_wd",120,0,60], // M1220 + ["rhsusf_M1220_M2_usarmy_wd",120,40,60], // M1220 (M2) + ["rhsusf_M1220_MK19_usarmy_wd",120,60,60], // M1220 (Mk19) + ["rhsusf_M1220_M153_M2_usarmy_wd",140,40,60], // M1220 (M2 CROWS) + ["rhsusf_M1220_M153_MK19_usarmy_wd",140,60,60], // M1220 (Mk19 CROWS) + ["rhsusf_M1232_usarmy_wd",140,0,60], // M1232 + ["rhsusf_M1232_M2_usarmy_wd",140,40,60], // M1232 (M2) + ["rhsusf_M1232_MK19_usarmy_wd",140,60,60], // M1232 (Mk19) + ["rhsusf_M1230a1_usarmy_wd",120,0,60], // M1230A1 (MEDEVAC) + ["rhsusf_M1083A1P2_wd_open_fmtv_usarmy",125,0,75], // M1083A1P2 Transport + ["rhsusf_M1083A1P2_wd_fmtv_usarmy",125,0,75], // M1083A1P2 Transport (Covered) + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy",100,0,50], // M1083A1P2 + ["rhsusf_M977A4_BKIT_usarmy_wd",125,0,75], // M977A4 BKIT + ["rhsusf_M977A4_BKIT_M2_usarmy_wd",125,40,75], // M977A4 BKIT (HMG) + ["rhsusf_M1117_W",150,50,50], // M1117 ASV + ["B_UGV_01_F",150,0,50], // UGV Stomper + ["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS) + ["B_Boat_Transport_01_F",100,0,25], // Assault Boat + ["B_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["rhsusf_mkvsoc",250,200,100], // Mk.V SOCOM + ["B_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) + ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) + ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) + ["rhsusf_stryker_m1126_m2_wd",200,150,100], // M1126 Stryker (M2) + ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) + ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) + ["RHS_M6_wd",300,250,175], // M6A2 + ["rhsusf_m1a1aim_tuski_wd",400,350,225], // M1A1SA (Tusk I) + ["rhsusf_m1a2sep1tuskiiwd_usarmy",500,400,250], // M1A2SEPv1 (Tusk II) + ["rhsusf_m109_usarmy",600,1250,300] // M109A6 +]; + +air_vehicles = [ + ["B_UAV_01_F",75,0,25], // AR-2 Darter + ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) + ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird + ["RHS_MELB_AH6M",200,200,100], // AH-6M Pawnee + ["RHS_UH1Y_UNARMED",225,0,125], // UH-1Y (Unarmed) + ["RHS_UH1Y_GS",225,200,125], // UH-1Y (Ground Suppression) + ["RHS_AH1Z",500,500,200], // AH-1Z (Multi-Role) + ["RHS_AH64D_wd",750,750,250], // AH-64D (Multi-Role) + ["RHS_UH60M2",250,0,150], // UH-60M (Unarmed) + ["RHS_UH60M",250,80,150], // UH-60M + ["RHS_UH60M_MEV2",300,0,150], // UH-60M MEV2 + ["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed) + ["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion + ["rhsusf_CH53E_USMC_GAU21",300,100,175], // CH-53E Super Stallion (GAU-21) + ["USAF_C130J",200,0,250], // C-130J Super Hercules + ["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo) + ["USAF_C17",500,0,400], // C-17 Globemaster III + ["usaf_kc135",600,0,2500], // KC-135 Stratotanker + ["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk + ["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon + ["B_UAV_05_F",500,500,200], // UCAV Sentinel + ["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk + ["USAF_MQ9",500,750,200], // MQ-9 Reaper + ["RHS_A10",1000,1000,400], // A-10A (CAS) + ["USAF_A10",1500,1000,400], // A-10C Thunderbolt II + ["FIR_F15C",1250,1250,450], // F-15C Eagle + ["FIR_F15D",1250,1250,450], // F-15D Eagle + ["FIR_F15E",1250,1500,450], // F-15E Strike Eagle + ["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet + ["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet + ["USAF_F22",1800,2000,500], // F-22A Raptor + ["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA) + ["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG) + ["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy) + ["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II + ["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy) + ["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II + ["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth) + ["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed) + ["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry) + ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) +]; + +static_vehicles = [ + ["RHS_M2StaticMG_MiniTripod_WD",25,40,0], // Mk2 HMG .50 + ["RHS_M2StaticMG_WD",25,40,0], // Mk2 HMG .50 (Raised) + ["RHS_MK19_TriPod_WD",25,60,0], // Mk19 GMG 20mm + ["RHS_TOW_TriPod_WD",50,100,0], // TOW (AT) + ["RHS_Stinger_AA_pod_WD",50,100,0], // Stinger (AA) + ["RHS_M252_WD",80,150,0], // Mk6 Mortar + ["RHS_M119_WD",100,200,0], // M119A2 + ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114) + ["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix) + ["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D) + ["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E) + ["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K) + ["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120) + ["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120) + ["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green) + ["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime) + ["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12) + ["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31) + ["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39) + ["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82) + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair + ["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel + ["rhsusf_M977A4_AMMO_BKIT_usarmy_wd",125,200,75], // M977A4 Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_grenadier", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_marksman", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_riflemanat", + "rhsusf_army_ocp_grenadier", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_autorifleman", + "rhsusf_army_ocp_machinegunner", + "rhsusf_army_ocp_marksman", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_javelin", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_rifleman" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "rhsusf_army_ocp_teamleader", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_rifleman", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_aa", + "rhsusf_army_ocp_medic", + "rhsusf_army_ocp_rifleman" +]; + +// Force recon squad. +blufor_squad_recon = [ + "rhsusf_usmc_recon_marpat_wd_teamleader", + "rhsusf_usmc_recon_marpat_wd_rifleman", + "rhsusf_usmc_recon_marpat_wd_rifleman", + "rhsusf_usmc_recon_marpat_wd_rifleman_at", + "rhsusf_usmc_recon_marpat_wd_autorifleman", + "rhsusf_usmc_recon_marpat_wd_machinegunner", + "rhsusf_usmc_recon_marpat_wd_marksman", + "rhsusf_usmc_recon_marpat_wd_sniper_M107", + "rhsusf_army_ucp_medic", + "rhsusf_army_ucp_engineer" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st", + "rhsusf_army_ocp_rifleman_101st" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhsusf_mkvsoc", // Mk.V SOCOM + "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) + "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) + "rhsusf_m109_usarmy", // M109A6 + "RHS_AH64D_wd", // AH-64D (Multi-Role) + "B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk + "B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon + "B_UAV_05_F", // UCAV Sentinel + "USAF_MQ9", // MQ-9 Reaper + "USAF_A10", // A-10C Thunderbolt II + "USAF_F22", // F-22A Raptor + "USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA) + "USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG) + "USAF_F22_Heavy", // F-22A Raptor (Heavy) + "USAF_F35A_STEALTH", // F-35A Lightning II + "USAF_F35A", // F-35A Lightning II (Heavy) + "RHS_A10", // A-10A (CAS) + "FIR_F15C", // F-15C Eagle + "FIR_F15D", // F-15D Eagle + "FIR_F15E", // F-15E Strike Eagle + "JS_JC_FA18E", // F/A-18 E Super Hornet + "JS_JC_FA18F", // F/A-18 F Super Hornet + "B_Plane_Fighter_01_F", // F/A-181 Black Wasp II + "B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth) + "B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/sfp_des.sqf b/kp_liberation.brf_sumava/presets/blufor/sfp_des.sqf new file mode 100644 index 0000000..502b256 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/sfp_des.sqf @@ -0,0 +1,301 @@ +/* + Needed Mods: + - SFP + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "sfp_tgb1112"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. +huron_typename = "sfp_hkp4"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "sfp_m90d_crew"; // This defines the crew for vehicles. +pilot_classname = "sfp_m90w_pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "sfp_hkp9"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["sfp_m90d_rifleman_tshirt",15,0,0], // Rifleman (Light) + ["sfp_m90d_rifleman_ak5",20,0,0], // Rifleman + ["sfp_m90d_at_specialist_pskott86",30,0,0], // Rifleman (AT) + ["sfp_m90d_gr",25,0,0], // Grenadier + ["sfp_m90d_automaticrifleman_ksp90",25,0,0], // Autorifleman + ["sfp_m90d_machinegunner_ksp58",35,0,0], // Heavygunner + ["sfp_m90d_marksman",30,0,0], // Marksman + ["sfp_m90d_at_specialist_rb57",50,10,0], // AT Specialist (Rb 57) + ["sfp_m90d_at_specialist_grg86",50,10,0], // AT Specialist (GRG) + ["sfp_m90d_at_loader_grg86",50,10,0], // AT Loader (GRG) + ["sfp_m90d_medic",30,0,0], // Combat Life Saver + ["sfp_m90d_engineer",30,0,0], // Engineer + ["sfp_m90d_explosive_specialist",30,0,0], // Explosives Specialist + ["sfp_m90d_sog_ak5",20,0,0], // Recon Rifleman + ["sfp_m90d_sog_at_specialist_rb57",30,0,0], // Recon Rifleman (AT) + ["sfp_m90d_sog_ksp90",25,0,0], // Recon Autorifleman + ["sfp_m90d_sog_machinegunner_ksp58",35,0,0], // Recon Machine Gunner + ["sfp_m90d_sog_sniper",30,0,0], // Recon Marksman (Psg 90) + ["sfp_m90d_sog_sniper_ag90",70,5,0], // Recon Sniper (Ag 90) + ["sfp_m90d_sniper",70,5,0], // Sniper (Psg 90) + ["sfp_m90d_rifleman_ag90",70,5,0], // Sniper (Ag 90) + ["sfp_m90d_crew",10,0,0], // Crewman + ["sfp_m90w_helipilot",10,0,0], // Helicopter Pilot + ["sfp_m90w_pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["sfp_tgb16_desert",100,0,50], // Tgb 16 + ["sfp_tgb16_rws",100,40,50], // Tgb 16 (RWS) + ["sfp_tgb30",125,0,50], // Tgb 30 + ["sfp_tgb30_repair",100,0,50], // Tgb 30 (Repair) + ["sfp_tgb40",125,0,50], // Tgb 40 + ["sfp_tgb40_ammo",150,50,50], // Tgb 40 (Ammo) + ["sfp_tgb40_fuel",125,40,100], // Tgb 40 (Fuel) + ["sfp_strb90",100,0,25], // Strb 90 + ["sfp_strb90_rws",200,80,75] // Strb 90 (RWS) +]; + +heavy_vehicles = [ + ["sfp_strf90c_desert",200,40,100], // Strf 90 + ["sfp_lvkv90c_desert",200,60,100], // Lvkv 90 + ["sfp_strv122",400,350,225] // Strb 122 +]; + +air_vehicles = [ + ["sfp_uav01",80,0,30], // UAV 01 Ugglan + ["sfp_uav03",75,0,25], // UAV 03 Örnen + ["sfp_uav_skeldar",80,0,30], // UAV Skeldar + ["sfp_hkp9",200,0,100], // Hkp 9 + ["sfp_hkp9_rb55",200,200,100], // Hkp 9 (Rb 55) + ["sfp_hkp4",225,0,125], // Hkp 4 + ["sfp_hkp6",225,200,125], // Hkp 6 + ["sfp_hkp16",250,0,150], // Hkp 16 + ["sfp_tp84",500,0,250], // Tp 84 + ["sfp_jas39_bk90",1000,1000,400], // Jas 39 (BK90) + ["sfp_jas39_cap",1250,1250,450], // JAS 39 (CAP) + ["sfp_jas39_gbu39",1250,1250,450], // JAS 39 (GBU39) + ["sfp_jas39_rb15",1250,1500,450] // JAS 39 (Rb15) +]; + +static_vehicles = [ + ["sfp_ksp88",25,40,0], // Ksp 88 + ["sfp_grsp",25,60,0], // Grsp + ["sfp_rbs17",30,60,0], // RBS 17 + ["sfp_rbs55",50,100,0], // RBS 55 + ["sfp_rbs56",50,100,0], // RBS 56 + ["sfp_rbs70",50,100,0], // RBS 70 + ["sfp_rbs97",75,130,0], // RBS 97 + ["sfp_grk84",80,150,0], // GRK 84 + ["sfp_fh77",100,200,0] // FH 77 +]; + + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["sfp_tgb30_repair",325,0,75], // Tgb 30 (Repair) + ["sfp_tgb40_fuel",125,0,275], // Tgb 40 (Fuel) + ["sfp_tgb40_ammo",125,200,75], // Tgb 40 (Ammo) + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "sfp_m90d_squadleader", + "sfp_m90d_automaticrifleman_ksp90", + "sfp_m90d_rifleman_ak5", + "sfp_m90d_at_specialist_pskott86", + "sfp_m90d_teamleader", + "sfp_m90d_automaticrifleman_ksp90", + "sfp_m90d_rifleman_ak5", + "sfp_m90d_at_specialist_rb57" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "sfp_m90d_squadleader", + "sfp_m90d_machinegunner_ksp58", + "sfp_m90d_at_specialist_grg86", + "sfp_m90d_at_loader_grg86", + "sfp_m90d_teamleader", + "sfp_m90d_machinegunner_ksp58", + "sfp_m90d_at_specialist_grg86", + "sfp_m90d_at_loader_grg86" +]; + +// AT specialists squad. +blufor_squad_at = [ + "sfp_m90d_teamleader", + "sfp_m90d_at_specialist_grg86", + "sfp_m90d_at_loader_grg86", + "sfp_m90d_at_specialist_rb57" +]; + +// AA specialists squad. +blufor_squad_aa = [ + // No man portable AA in SFP +]; + +// Force recon squad. +blufor_squad_recon = [ + "sfp_m90d_sog_teamleader", + "sfp_m90d_sog_ksp90", + "sfp_m90d_sog_explosive_specialist", + "sfp_m90d_sog_teamleader", + "sfp_m90d_sog_ksp90", + "sfp_m90d_sog_medic" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "sfp_m90d_sog_teamleader", + "sfp_m90d_sog_ksp90", + "sfp_m90d_sog_explosive_specialist", + "sfp_m90d_sog_teamleader", + "sfp_m90d_sog_ksp90", + "sfp_m90d_sog_medic" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "sfp_strf90c_desert", // Strf 90 + "sfp_lvkv90c_desert", // Lvkv 90 + "sfp_strv122", // Strv 122 + "sfp_jas39_bk90", // JAS 39 (BK90) + "sfp_jas39_cap", // JAS 39 (CAP) + "sfp_jas39_gbu39", // JAS 39 (GBU39) + "sfp_jas39_rb15", // JAS 39 (Rb15) + "sfp_strb90_rws" // Strb 90 (RWS) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/sfp_wdl.sqf b/kp_liberation.brf_sumava/presets/blufor/sfp_wdl.sqf new file mode 100644 index 0000000..11b120b --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/sfp_wdl.sqf @@ -0,0 +1,315 @@ +/* + Needed Mods: + - SFP + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "sfp_tgb1112"; // This is the FOB as a vehicle. +Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. +huron_typename = "sfp_hkp4"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "sfp_m90w_crew"; // This defines the crew for vehicles. +pilot_classname = "sfp_m90w_pilot"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "sfp_hkp9"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["sfp_m90w_rifleman_tshirt",15,0,0], // Rifleman (Light) + ["sfp_m90w_rifleman_ak5",20,0,0], // Rifleman + ["sfp_m90w_at_specialist_pskott86",30,0,0], // Rifleman (AT) + ["sfp_m90w_gr",25,0,0], // Grenadier + ["sfp_m90w_automaticrifleman_ksp90",25,0,0], // Autorifleman + ["sfp_m90w_machinegunner_ksp58",35,0,0], // Heavygunner + ["sfp_m90w_marksman",30,0,0], // Marksman + ["sfp_m90w_at_specialist_rb57",50,10,0], // AT Specialist (Rb 57) + ["sfp_m90w_at_specialist_grg86",50,10,0], // AT Specialist (GRG) + ["sfp_m90w_at_loader_grg86",50,10,0], // AT Loader (GRG) + ["sfp_m90w_medic",30,0,0], // Combat Life Saver + ["sfp_m90w_engineer",30,0,0], // Engineer + ["sfp_m90w_explosive_specialist",30,0,0], // Explosives Specialist + ["sfp_m90w_sog_ak5",20,0,0], // Recon Rifleman + ["sfp_m90w_sog_at_specialist_rb57",30,0,0], // Recon Rifleman (AT) + ["sfp_m90w_sog_ksp90",25,0,0], // Recon Autorifleman + ["sfp_m90w_sog_machinegunner_ksp58",35,0,0], // Recon Machine Gunner + ["sfp_m90w_sog_sniper",30,0,0], // Recon Marksman (Psg 90) + ["sfp_m90w_sog_sniper_ag90",70,5,0], // Recon Sniper (Ag 90) + ["sfp_m90w_sniper",70,5,0], // Sniper (Psg 90) + ["sfp_m90w_rifleman_ag90",70,5,0], // Sniper (Ag 90) + ["sfp_m90w_crew",10,0,0], // Crewman + ["sfp_m90w_helipilot",10,0,0], // Helicopter Pilot + ["sfp_m90w_pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["B_Quadbike_01_F",50,0,25], // Quad Bike + ["sfp_tgb16",100,0,50], // Tgb 16 + ["sfp_tgb16_rws",100,40,50], // Tgb 16 (RWS) + ["sfp_tgb11",100,0,50], // Tgb 11 + ["sfp_tgb1111",100,0,50], // Tgb 1111 + ["sfp_tgb1112",100,0,50], // Tgb 1112 + ["sfp_tgb1111_sog_ksp58",120,40,60], // Tgb 1111 (SOG Ksp 58) + ["sfp_tgb1111_sog_rbs56",120,40,60], // Tgb 1111 (SOG RBS 56) + ["sfp_tgb13",100,0,60], // Tgb 13 + ["sfp_tgb13_ksp58",120,20,60], // Tgb 13 (Ksp 58) + ["sfp_tgb1314",100,0,60], // Tgb 1314 + ["sfp_tgb1317",100,0,60], // Tgb 1317 + ["sfp_tgb20",120,0,60], // Tgb 20 + ["sfp_tgb20_ksp58",125,20,60], // Tgb 20 (Ksp 58) + ["sfp_tgb30",125,0,50], // Tgb 30 + ["sfp_tgb30_repair",100,0,50], // Tgb 30 (Repair) + ["sfp_tgb40",125,0,50], // Tgb 40 + ["sfp_tgb40_ammo",150,50,50], // Tgb 40 (Ammo) + ["sfp_tgb40_fuel",125,40,100], // Tgb 40 (Fuel) + ["sfp_gruppbat",50,0,20], // Gruppbat + ["sfp_strb90",100,0,25], // Strb 90 + ["sfp_strb90_rws",200,80,75], // Strb 90 (RWS) + ["sfp_rbb_norrkoping",1000,1000,300] // HMS Norrkoping +]; + +heavy_vehicles = [ + ["sfp_strf90c",200,40,100], // Strf 90 + ["sfp_lvkv90c",200,60,100], // Lvkv 90 + ["sfp_strv122",400,350,225] // Strv 122 +]; + +air_vehicles = [ + ["sfp_uav01",80,0,30], // UAV 01 Ugglan + ["sfp_uav03",75,0,25], // UAV 03 Örnen + ["sfp_uav_skeldar",80,0,30], // UAV Skeldar + ["sfp_hkp9",200,0,100], // Hkp 9 + ["sfp_hkp9_rb55",200,200,100], // Hkp 9 (Rb 55) + ["sfp_hkp4",225,0,125], // Hkp 4 + ["sfp_hkp6",225,200,125], // Hkp 6 + ["sfp_hkp16",250,0,150], // Hkp 16 + ["sfp_tp84",500,0,250], // Tp 84 + ["sfp_jas39_bk90",1000,1000,400], // Jas 39 (BK90) + ["sfp_jas39_cap",1250,1250,450], // JAS 39 (CAP) + ["sfp_jas39_gbu39",1250,1250,450], // JAS 39 (GBU39) + ["sfp_jas39_rb15",1250,1500,450] // JAS 39 (Rb15) +]; + +static_vehicles = [ + ["sfp_ksp88",25,40,0], // Ksp 88 + ["sfp_grsp",25,60,0], // Grsp + ["sfp_rbs17",30,60,0], // RBS 17 + ["sfp_rbs55",50,100,0], // RBS 55 + ["sfp_rbs56",50,100,0], // RBS 56 + ["sfp_rbs70",50,100,0], // RBS 70 + ["sfp_rbs97",75,130,0], // RBS 97 + ["sfp_grk84",80,150,0], // GRK 84 + ["sfp_fh77",100,200,0] // FH 77 +]; + + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["Flag_NATO_F",0,0,0], + ["Flag_US_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["Flag_UK_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat + ["sfp_tgb30_repair",325,0,75], // Tgb 30 (Repair) + ["sfp_tgb40_fuel",125,0,275], // Tgb 40 (Fuel) + ["sfp_tgb40_ammo",125,200,75], // Tgb 40 (Ammo) + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "sfp_m90w_squadleader", + "sfp_m90w_automaticrifleman_ksp90", + "sfp_m90w_rifleman_ak5", + "sfp_m90w_at_specialist_pskott86", + "sfp_m90w_teamleader", + "sfp_m90w_automaticrifleman_ksp90", + "sfp_m90w_rifleman_ak5", + "sfp_m90w_at_specialist_rb57" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "sfp_m90w_squadleader", + "sfp_m90w_machinegunner_ksp58", + "sfp_m90w_at_specialist_grg86", + "sfp_m90w_at_loader_grg86", + "sfp_m90w_teamleader", + "sfp_m90w_machinegunner_ksp58", + "sfp_m90w_at_specialist_grg86", + "sfp_m90w_at_loader_grg86" +]; + +// AT specialists squad. +blufor_squad_at = [ + "sfp_m90w_teamleader", + "sfp_m90w_at_specialist_grg86", + "sfp_m90w_at_loader_grg86", + "sfp_m90w_at_specialist_rb57" +]; + +// AA specialists squad. +blufor_squad_aa = [ + // No man portable AA in SFP +]; + +// Force recon squad. +blufor_squad_recon = [ + "sfp_m90w_sog_teamleader", + "sfp_m90w_sog_ksp90", + "sfp_m90w_sog_explosive_specialist", + "sfp_m90w_sog_teamleader", + "sfp_m90w_sog_ksp90", + "sfp_m90w_sog_medic" +]; + +// Paratroopers squad. +blufor_squad_para = [ + "sfp_m90w_sog_teamleader", + "sfp_m90w_sog_ksp90", + "sfp_m90w_sog_explosive_specialist", + "sfp_m90w_sog_teamleader", + "sfp_m90w_sog_ksp90", + "sfp_m90w_sog_medic" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "sfp_strf90c", // Strf 90 + "sfp_lvkv90c", // Lvkv 90 + "sfp_strv122", // Strv 122 + "sfp_hkp9_rb55", // Hkp 9 (Rb 55) + "sfp_jas39_bk90", // JAS 39 (BK90) + "sfp_jas39_cap", // JAS 39 (CAP) + "sfp_jas39_gbu39", // JAS 39 (GBU39) + "sfp_jas39_rb15", // JAS 39 (Rb15) + "sfp_strb90_rws" // Strb 90 (RWS) +]; diff --git a/kp_liberation.brf_sumava/presets/blufor/unsung.sqf b/kp_liberation.brf_sumava/presets/blufor/unsung.sqf new file mode 100644 index 0000000..00d54fc --- /dev/null +++ b/kp_liberation.brf_sumava/presets/blufor/unsung.sqf @@ -0,0 +1,399 @@ +/* + Needed Mods: + - The Unsung Vietnam War Mod + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "LAND_sb_bunker_main"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "uns_M35A2_fuel"; // This is the FOB as a vehicle. +Arsenal_typename = "uns_resupply_crate_US"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "uns_M577_amb"; // This is the mobile respawn (and medical) truck. +huron_typename = "uns_h21c"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "uns_US_25ID_STY3"; // This defines the crew for vehicles. +pilot_classname = "uns_pilot1"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "uns_H13_transport_CAV"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "UNS_Zodiac_W"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "uns_M35A2_Open"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KP_liberation_recycle_building = "uns_motorpool1_repair"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "LAND_uns_signaltower"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "LAND_uns_Heli_pad"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "UNS_Hanger_repair"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["uns_US_25ID_STY3",15,0,0], // Sentry + ["uns_US_25ID_RF6",20,0,0], // Rifleman + ["uns_US_25ID_AT",30,0,0], // Rifleman (AT) + ["uns_US_25ID_GL",25,0,0], // Grenadier + ["uns_US_25ID_HMG",25,0,0], // Machinegunner + ["uns_US_25ID_MRK3",30,0,0], // Marksman + ["uns_US_25ID_MRK",30,0,0], // Sharpshooter + ["uns_US_25ID_MED",30,0,0], // Combat Life Saver + ["uns_US_25ID_ENG",30,0,0], // Engineer + ["uns_US_25ID_DEM",30,0,0], // Explosives Specialist + ["uns_men_US_1AC_SL",40,0,0], // Recon NCO + ["uns_men_US_1AC_TPR1",40,0,0], // Recon Rifleman 1 + ["uns_men_US_1AC_TPR2",40,0,0], // Recon Rifleman 2 + ["uns_men_US_1AC_AT",40,0,0], // Recon AT + ["uns_men_US_1AC_MRK3",40,0,0], // Recon Marksman + ["uns_men_US_1AC_MRK",40,0,0], // Recon Sniper + ["uns_men_US_1AC_MED",40,0,0], // Recon Medic + ["uns_men_US_1AC_DEM",40,0,0], // Recon Demolition Expert + ["uns_pilot2",10,0,0], // Helicopter Crew + ["uns_pilot1",10,0,0], // Helicopter Pilot + ["uns_pil1",10,0,0] // Pilot +]; + +light_vehicles = [ + ["uns_m274",50,0,25], // M-274 Mule + ["uns_m274_m60",50,25,25], // M-274 Mule (M60) + ["uns_willys",75,0,50], // M-151 MUTT + ["uns_willysmg",75,30,50], // M-151 MUTT (M60) + ["uns_willysmg50",75,40,50], // M-151 MUTT (M2) + ["uns_willysm40",75,60,50], // M-151 MUTT (M40) + ["uns_m37b1",100,0,50], // M-37B1 Dodge 3/4T + ["uns_m37b1_m1919",100,40,50], // M-37B1 Dodge 3/4T (M1919) + ["uns_M35A2_Open",125,0,75], // M35A2 2.5T Truck + ["uns_M35A2",125,0,75], // M35A2 2.5T Truck (Covered) + ["UNS_Zodiac_W",100,0,25], // Zodiac RIB (Assault) + ["uns_pbr",200,80,75], // PBR Mk. II (M2) + ["uns_pbr_mk18",200,80,75], // PBR Mk. II (Mk18 GL) + ["uns_PBR_M10",200,80,75] // PBR Mk. II (M10 Flamethrower) +]; + +heavy_vehicles = [ + ["uns_xm706e2",100,50,100], // XM-706-E2 Commando + ["uns_xm706e1",100,60,100], // XM-706-E1 Commando (30 cal) + ["uns_M113_30cal",200,75,100], // M-113 ACAV (30 cal) + ["uns_M113_M134",200,75,100], // M-113 ACAV (M134) + ["uns_M113_M2",200,75,100], // M-113 ACAV (M2) + ["uns_M113_M60",200,75,100], // M-113 ACAV (M60) + ["uns_M113_XM182",200,75,100], // M-113 ACAV (XM182) + ["uns_M113A1_M134",250,100,120], // M-113A1 ACAV (M134) + ["uns_M113A1_M2",250,100,120], // M-113A1 ACAV (M2) + ["uns_M113A1_M60",250,100,120], // M-113A1 ACAV (M60) + ["uns_M113A1_XM182",250,100,120], // M-113A1 ACAV (XM182) + ["uns_m163",250,125,120], // M-163 Vulcan ADS + ["uns_m551",300,250,200], // M-551 Sheridan + ["uns_M67A",350,300,250], // M-67A Flamethrower Tank + ["uns_m48a3",400,350,250], // M-48A3 Patton MBT + ["uns_M113_M30",250,150,120], // M106 Mortar Carrier + ["uns_m107sp",600,600,300], // M-107 Self-Propelled Gun + ["uns_m110sp",600,750,300] // M-110 Self-Propelled Gun +]; + +air_vehicles = [ + ["uns_H13_transport_CAV",100,0,80], // UH-13B + ["uns_H13_amphib_CAV",100,0,80], // OH-13C CSAR + ["uns_H13_medevac_CAV",100,0,80], // MH-13E Medevac + ["uns_H13_gunship_CAV",100,75,80], // AH-13H + ["uns_oh6_transport",200,0,100], // OH-6A Transport + ["uns_oh6_m27",200,100,100], // OH-6A M27 + ["uns_oh6_xm8",200,120,100], // OH-6A XM8 + ["uns_uh1D_med",200,0,125], // UH-1D Iroquois (Medevac) + ["uns_UH1D_m60",200,50,125], // UH-1D Iroquois + ["uns_UH1H_m60",225,50,150], // UH-1H Iroquois + ["UNS_UH1C_M3_ARA",225,80,150], // UH-1C/M3 Iroquois (ARA) + ["UNS_UH1C_M3_ARA_AP",225,80,150], // UH-1C/M3 Iroquois (ARA/AP) + ["UNS_UH1C_M3_ARA_AT",225,80,150], // UH-1C/M3 Iroquois (ARA/AT) + ["uns_UH1C_M6_M158",225,100,150], // UH-1C/M6 Iroquois (M158) + ["uns_UH1C_M6_M200",225,100,150], // UH-1C/M6 Iroquois (M200) + ["uns_UH1C_M6_M200_M134",225,100,150], // UH-1C/M6 Iroquois (M200/M134) + ["uns_ch34_army_M60",250,100,125], // CH-34 Choctaw (M60) + ["uns_h21c_mg",250,150,125], // H-21B Workhorse (Armed) + ["uns_ch47a_medevac",300,0,200], // CH-47A Chinook (Ambulance) + ["uns_ch47_m60_1AC",300,80,200], // CH-47A Chinook (1AC) + ["uns_ach47_m134",300,150,200], // ACH-47A Guns-a-Go-Go (M134) + ["uns_ach47_m200",300,175,200], // ACH-47A Guns-a-Go-Go (M200) + ["UNS_AH1G",400,400,200], // AH-1D Cobra (CAS) + ["UNS_AH1G_FFAR",400,400,200], // AH-1D Cobra (M158/M200) + ["UNS_AH1G_M158",400,400,200], // AH-1D Cobra (M158) + ["UNS_AH1G_M195",400,400,200], // AH-1D Cobra (M195) + ["UNS_AH1G_M200",400,400,200], // AH-1D Cobra (M200) + ["UNS_AH1G_SUU11",400,400,200], // AH-1D Cobra (SUU11) + ["uns_AC47",600,50,400], // AC-47 + ["uns_C130_H",600,0,400], // C-130H + ["uns_KC130_H",600,0,500], // KC-130H + ["uns_A1J_CAS",400,400,350], // A-1H Skyraider (CAS) + ["uns_A7_CAS",750,600,400], // A-7D Corsair II (CAS) + ["uns_F4E_CAS",800,600,400] // F-4E Phantom II (CAS) +]; + +static_vehicles = [ + ["uns_US_SearchLight",20,0,0], // Searchlight + ["uns_m60_low",25,40,0], // M60 7.62mm (low) + ["uns_m60_high",25,40,0], // M60 7.62mm (high) + ["uns_m1919_low",25,45,0], // M-1919A4 .30cal (low) + ["uns_m2_low",25,50,0], // M-2HB .50cal (low) + ["uns_m2_high",25,50,0], // M-2HB .50cal (high) + ["uns_US_MK18_low",25,60,0], // Mk18 Mod0 Honeywell HMGL + ["uns_m60_bunker_small",40,40,0], // M60 Bunker (small) + ["uns_m60_bunker_large",50,40,0], // M60 Bunker (large) + ["uns_M40_106mm_US",50,100,0], // M-40 106mm Recoilless Rifle + ["Uns_M55_Quad",50,100,0], // M-55 Quad 50 + ["uns_M1_81mm_mortar",80,150,0], // M-1 81mm Mortar + ["Uns_M102_artillery",100,200,0], // M-102 105mm Howitzer + ["Uns_M114_artillery",100,200,0] // M-114A1 155mm Howitzer +]; + +buildings = [ + ["uns_FlagCarrierUS",0,0,0], + ["uns_FlagCarrier101AB",0,0,0], + ["uns_FlagCarrier25ID",0,0,0], + ["uns_FlagCarrierUS_AIRCAV",0,0,0], + ["uns_FlagCarrierUS_SOG",0,0,0], + ["uns_FlagCarrierUSMC",0,0,0], + ["Flag_White_F",0,0,0], + ["uns_FlagCarrierMed",0,0,0], + ["LAND_uns_army_med",0,0,0], + ["uns_mash_main",0,0,0], + ["uns_mash",0,0,0], + ["US_Tent_MASH",0,0,0], + ["sign_HELI",0,0,0], + ["Helipad",0,0,0], + ["LAND_uns_evac_pad",0,0,0], + ["LAND_uns_Heli_H",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_camonet_east_ep1",0,0,0], + ["Land_camonet_east_var1_ep1",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["LAND_CSJ_gunpit",0,0,0], + ["LAND_CSJ_punji",0,0,0], + ["LAND_CSJ_punjiWall",0,0,0], + ["Land_fort_rampart",0,0,0], + ["Land_guardShed",0,0,0], + ["Land_Illum_Tower",0,0,0], + ["Land_misc_deerstand",0,0,0], + ["LAND_mortarpit_sb",0,0,0], + ["Land_Net_Open",0,0,0], + ["LAND_P_wire1",0,0,0], + ["LAND_P_wire1a",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_pristresek_mensi",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["LAND_Revetment_5",0,0,0], + ["LAND_sb_bunker_small",0,0,0], + ["LAND_sb_revetment",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["LAND_t_2_FOP2",0,0,0], + ["LAND_t_sb_20_half",0,0,0], + ["LAND_t_sb_20",0,0,0], + ["LAND_t_sb_45_half",0,0,0], + ["LAND_t_sb_45",0,0,0], + ["LAND_t_sb_5_covered",0,0,0], + ["LAND_t_sb_5_half",0,0,0], + ["LAND_t_sb_5",0,0,0], + ["LAND_t_sb_bunker2",0,0,0], + ["LAND_t_sb_cnr_half",0,0,0], + ["LAND_t_sb_cnr",0,0,0], + ["LAND_t_sb_Cross_half",0,0,0], + ["LAND_t_sb_Cross",0,0,0], + ["LAND_t_sb_end",0,0,0], + ["LAND_t_sb_pit1",0,0,0], + ["LAND_t_sb_pit2",0,0,0], + ["LAND_t_sb_pit3",0,0,0], + ["LAND_t_sb_Tee",0,0,0], + ["LAND_tarp_1",0,0,0], + ["LAND_tower_1",0,0,0], + ["LAND_uns_armyhut2",0,0,0], + ["LAND_uns_armyhut3",0,0,0], + ["LAND_uns_bunker_troop",0,0,0], + ["LAND_uns_bunker_troop2",0,0,0], + ["LAND_uns_bunker_troop3",0,0,0], + ["LAND_UNS_GuardHouse",0,0,0], + ["LAND_UNS_HootchE",0,0,0], + ["LAND_UNS_HootchE1",0,0,0], + ["LAND_UNS_Latrine",0,0,0], + ["LAND_UNS_OM",0,0,0], + ["LAND_uns_showers",0,0,0], + ["LAND_uns_tent2",0,0,0], + ["LAND_uns_tent3",0,0,0], + ["LAND_uns_tentbarracks",0,0,0], + ["LAND_uns_weapon_pit",0,0,0], + ["LAND_uns_westbunker1",0,0,0], + ["LAND_uns_westbunker2",0,0,0], + ["Land_Water_Tank",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_Wood_Tower",0,0,0], + ["Land_Wood_Tower2",0,0,0], + ["Land_woodenramp",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Razorwire",0,0,0], + ["SB_Wall_1",0,0,0], + ["SB_Wall_2",0,0,0], + ["SB_Wall_3",0,0,0], + ["SB_Wall_4",0,0,0], + ["SB_Wall_5",0,0,0], + ["SB_Wall_6",0,0,0], + ["Tent_Open",0,0,0], + ["uns_camp",0,0,0], + ["uns_foxhole1",0,0,0], + ["uns_foxhole2",0,0,0], + ["uns_sbagcircle",0,0,0], + ["uns_sbagwall_u",0,0,0], + ["US_Tent_1",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["uns_M113_ENG",500,250,350], // M-113 Engineer + ["uns_M35A2_repair",325,0,75], // M35A2 2.5T Truck (repair) + ["uns_M35A2_fueltanker",125,0,275], // M35A2 2.5T Tanker (Fuel) + ["uns_M35A2_ammo",125,200,75], // M35A2 2.5T Truck (Ammo) + ["B_Slingload_01_Repair_F",275,0,0], // Huron Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad +blufor_squad_inf_light = [ + "uns_US_25ID_SL", + "uns_US_25ID_RF6", + "uns_US_25ID_RF6", + "uns_US_25ID_AT", + "uns_US_25ID_GL", + "uns_US_25ID_HMG", + "uns_US_25ID_HMG", + "uns_US_25ID_MRK3", + "uns_US_25ID_MED", + "uns_US_25ID_ENG" +]; + +// Heavy infantry squad +blufor_squad_inf = [ + "uns_US_25ID_SL", + "uns_US_25ID_AT", + "uns_US_25ID_AT", + "uns_US_25ID_GL", + "uns_US_25ID_HMG", + "uns_US_25ID_HMG", + "uns_US_25ID_HMG", + "uns_US_25ID_MRK", + "uns_US_25ID_MED", + "uns_US_25ID_ENG" +]; + +// AT specialists squad +blufor_squad_at = [ + "uns_US_25ID_SL", + "uns_US_25ID_RF6", + "uns_US_25ID_RF6", + "uns_US_25ID_AT", + "uns_US_25ID_AT", + "uns_US_25ID_AT", + "uns_US_25ID_MED", + "uns_US_25ID_RF6" +]; + +// AA specialists squad +blufor_squad_aa = [ + "uns_US_25ID_SL", + "uns_US_25ID_RF6", + "uns_US_25ID_RF6", + "uns_US_25ID_HMG", + "uns_US_25ID_HMG", + "uns_US_25ID_HMG", + "uns_US_25ID_MED", + "uns_US_25ID_RF6" +]; + +// Force recon squad +blufor_squad_recon = [ + "uns_men_US_1AC_SL", + "uns_men_US_1AC_TPR1", + "uns_men_US_1AC_TPR2", + "uns_men_US_1AC_AT", + "uns_men_US_1AC_MRK3", + "uns_men_US_1AC_MRK3", + "uns_men_US_1AC_MRK", + "uns_men_US_1AC_MRK", + "uns_men_US_1AC_MED", + "uns_men_US_1AC_DEM" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13", + "uns_men_US_5SFG_SP13" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "uns_A1J_CAS", // A-1H Skyraider (CAS) + "uns_A7_CAS", // A-7D Corsair II (CAS) + "uns_F4E_CAS", // F-4E Phantom II (CAS) + "Uns_M102_artillery", // M-102 105mm Howitzer + "uns_m107sp", // M-107 Self-Propelled Gun + "uns_m110sp", // M-110 Self-Propelled Gun + "Uns_M114_artillery", // M-114A1 155mm Howitzer + "uns_m48a3", // M-48A3 Patton MBT + "uns_M67A", // M-67A Flamethrower Tank + "uns_PBR_M10" // PBR Mk. II (M10 Flamethrower) +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/CUP_ChernoCivs.sqf b/kp_liberation.brf_sumava/presets/civilians/CUP_ChernoCivs.sqf new file mode 100644 index 0000000..f030141 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/CUP_ChernoCivs.sqf @@ -0,0 +1,71 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "CUP_C_C_Assistant_01", + "CUP_C_C_Citizen_02", + "CUP_C_C_Citizen_01", + "CUP_C_C_Citizen_04", + "CUP_C_C_Citizen_03", + "CUP_C_C_Doctor_01", + "C_journalist_F", + "C_Journalist_01_War_F", + "CUP_C_C_Functionary_01", + "CUP_C_C_Functionary_02", + "CUP_C_C_Worker_05", + "CUP_C_C_Mechanic_02", + "CUP_C_C_Mechanic_03", + "CUP_C_C_Mechanic_01", + "CUP_C_C_Rescuer_01", + "CUP_C_C_Pilot_01", + "CUP_C_C_Priest_01", + "CUP_C_C_Profiteer_02", + "CUP_C_C_Profiteer_03", + "CUP_C_C_Profiteer_01", + "CUP_C_C_Profiteer_04", + "CUP_C_C_Rocker_01", + "CUP_C_C_Rocker_03", + "CUP_C_C_Rocker_02", + "CUP_C_C_Rocker_04", + "CUP_C_C_Schoolteacher_01", + "CUP_C_C_Villager_01", + "CUP_C_C_Villager_04", + "CUP_C_C_Villager_02", + "CUP_C_C_Villager_03", + "CUP_C_C_Woodlander_01", + "CUP_C_C_Woodlander_02", + "CUP_C_C_Woodlander_03", + "CUP_C_C_Woodlander_04", + "CUP_C_C_Worker_03", + "CUP_C_C_Worker_04", + "CUP_C_C_Worker_02", + "CUP_C_C_Worker_01" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "CUP_C_Skoda_Blue_CIV", + "CUP_C_Skoda_Green_CIV", + "CUP_C_Skoda_Red_CIV", + "CUP_C_Skoda_White_CIV", + "CUP_C_Datsun_Covered", + "CUP_C_Datsun_Plain", + "CUP_C_Datsun_Tubeframe", + "CUP_C_Golf4_red_Civ", + "CUP_C_Ikarus_Chernarus", + "CUP_C_Lada_White_CIV", + "CUP_C_Lada_Red_CIV", + "CUP_C_SUV_CIV", + "CUP_C_Tractor_CIV", + "CUP_C_Tractor_Old_CIV", + "CUP_C_Ural_Civ_03", + "CUP_C_Ural_Open_Civ_03" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/CUP_TakiCivs.sqf b/kp_liberation.brf_sumava/presets/civilians/CUP_TakiCivs.sqf new file mode 100644 index 0000000..8aeb708 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/CUP_TakiCivs.sqf @@ -0,0 +1,58 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "CUP_C_TK_Man_04", + "CUP_C_TK_Man_04_Jack", + "CUP_C_TK_Man_04_Waist", + "CUP_C_TK_Man_07", + "CUP_C_TK_Man_07_Coat", + "CUP_C_TK_Man_07_Waist", + "CUP_C_TK_Man_08", + "C_Journalist_01_War_F", + "CUP_C_TK_Man_08_Jack", + "CUP_C_TK_Man_08_Waist", + "CUP_C_TK_Man_05_Coat", + "CUP_C_TK_Man_05_Jack", + "CUP_C_TK_Man_05_Waist", + "CUP_C_TK_Man_06_Coat", + "CUP_C_TK_Man_06_Jack", + "CUP_C_TK_Man_06_Waist", + "CUP_C_TK_Man_02", + "CUP_C_TK_Man_02_Jack", + "CUP_C_TK_Man_02_Waist", + "CUP_C_TK_Man_01_Waist", + "CUP_C_TK_Man_01_Coat", + "CUP_C_TK_Man_01_Jack", + "CUP_C_TK_Man_03_Coat", + "CUP_C_TK_Man_03_Jack", + "CUP_C_TK_Man_03_Waist" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "CUP_C_TT650_TK_CIV", + "CUP_C_S1203_CIV", + "CUP_C_S1203_Ambulance_CIV", + "CUP_C_Ikarus_TKC", + "CUP_C_Lada_GreenTK_CIV", + "CUP_C_Lada_TK2_CIV", + "CUP_C_LR_Transport_CTK", + "CUP_C_V3S_Open_TKC", + "CUP_C_V3S_Covered_TKC", + "CUP_C_SUV_TK", + "CUP_C_UAZ_Unarmed_TK_CIV", + "CUP_C_UAZ_Open_TK_CIV", + "CUP_C_Ural_Civ_01", + "CUP_C_Volha_Blue_TKCIV", + "CUP_C_Volha_Gray_TKCIV", + "CUP_C_Volha_Limo_TKCIV" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/RDSCiv.sqf b/kp_liberation.brf_sumava/presets/civilians/RDSCiv.sqf new file mode 100644 index 0000000..8ade160 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/RDSCiv.sqf @@ -0,0 +1,80 @@ +/* + Needed Mods: + - RDS Civilian Pack + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "RDS_Assistant", + "RDS_Citizen_Random", + "RDS_Citizen2", + "RDS_Citizen1", + "RDS_Citizen3", + "RDS_Citizen4", + "RDS_Doctor", + "RDS_Functionary1", + "RDS_Functionary2", + "RDS_Policeman", + "RDS_Priest", + "RDS_Profiteer_Random", + "RDS_Profiteer2", + "RDS_Profiteer3", + "RDS_Profiteer1", + "RDS_Profiteer4", + "RDS_Civilian_Random", + "RDS_Rocker_Random", + "RDS_Rocker1", + "RDS_Rocker3", + "RDS_Rocker2", + "RDS_Rocker4", + "RDS_SchoolTeacher", + "RDS_Villager_Random", + "RDS_Villager1", + "RDS_Villager4", + "RDS_Villager2", + "RDS_Villager3", + "RDS_Woodlander_Random", + "RDS_Woodlander1", + "RDS_Woodlander2", + "RDS_Woodlander3", + "RDS_Woodlander4", + "RDS_Worker_Random", + "RDS_Worker3", + "RDS_Worker4", + "RDS_Worker1", + "RDS_Worker2" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "RDS_Van_01_fuel_F", + "RDS_Gaz24_Civ_03", + "RDS_Gaz24_Civ_01", + "RDS_Gaz24_Civ_02", + "RDS_Golf4_Civ_01", + "RDS_Hatchback_01_F", + "RDS_Ikarus_Civ_01", + "RDS_Ikarus_Civ_02", + "RDS_JAWA353_Civ_01", + "RDS_MMT_Civ_01", + "RDS_Old_bike_Civ_01", + "RDS_S1203_Civ_01", + "RDS_S1203_Civ_02", + "RDS_S1203_Civ_03", + "RDS_Octavia_Civ_01", + "RDS_SUV_01_F", + "RDS_Zetor6945_Base", + "RDS_Van_01_transport_F", + "RDS_Van_01_box_F", + "RDS_Lada_Civ_01", + "RDS_Lada_Civ_03", + "RDS_Lada_Civ_05", + "RDS_Lada_Civ_05", + "RDS_Lada_Civ_02", + "RDS_tt650_Civ_01", + "C_Truck_02_covered_F", + "C_Truck_02_box_F" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/apex.sqf b/kp_liberation.brf_sumava/presets/civilians/apex.sqf new file mode 100644 index 0000000..68b6b0c --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/apex.sqf @@ -0,0 +1,43 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "C_Man_casual_1_F_tanoan", + "C_Man_casual_2_F_tanoan", + "C_Man_casual_3_F_tanoan", + "C_Man_casual_4_F_tanoan", + "C_Man_casual_5_F_tanoan", + "C_Man_casual_6_F_tanoan", + "C_man_sport_1_F_tanoan", + "C_man_sport_2_F_tanoan", + "C_man_sport_3_F_tanoan", + "C_Man_Fisherman_01_F", + "C_Man_UtilityWorker_01_F", + "C_man_hunter_1_F", + "C_journalist_F", + "C_Journalist_01_War_F" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "C_Quadbike_01_F", + "C_Hatchback_01_F", + "C_Hatchback_01_sport_F", + "C_Offroad_01_F", + "C_Offroad_01_repair_F", + "C_Offroad_02_unarmed_F", + "C_SUV_01_F", + "C_Van_01_fuel_F", + "C_Van_01_transport_F", + "C_Van_01_box_F", + "C_Truck_02_fuel_F", + "C_Truck_02_transport_F", + "C_Truck_02_covered_F", + "C_Truck_02_box_F" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/custom.sqf b/kp_liberation.brf_sumava/presets/civilians/custom.sqf new file mode 100644 index 0000000..82d9d40 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/custom.sqf @@ -0,0 +1,51 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "C_Man_Fisherman_01_F", + "C_man_w_worker_F", + "C_man_1_1_F", + "C_man_p_beggar_F", + "C_Man_Messenger_01_F", + "C_man_hunter_1_F", + "C_journalist_F", + "C_Journalist_01_War_F", + "C_man_shorts_2_F", + "C_Man_UtilityWorker_01_F", + "C_man_1", + "C_Man_casual_1_F", + "C_Man_casual_2_F", + "C_Man_casual_3_F", + "C_Man_casual_4_F", + "C_Man_casual_5_F", + "C_Man_casual_6_F", + "C_man_polo_1_F", + "C_man_polo_2_F", + "C_man_polo_3_F", + "C_man_polo_4_F", + "C_man_polo_5_F", + "C_man_polo_6_F" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "C_Quadbike_01_F", + "C_Hatchback_01_F", + "C_Hatchback_01_sport_F", + "C_Offroad_01_F", + "C_Offroad_01_repair_F", + "C_SUV_01_F", + "C_Van_01_fuel_F", + "C_Van_01_transport_F", + "C_Van_01_box_F", + "C_Truck_02_fuel_F", + "C_Truck_02_transport_F", + "C_Truck_02_covered_F", + "C_Truck_02_box_F" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/germany.sqf b/kp_liberation.brf_sumava/presets/civilians/germany.sqf new file mode 100644 index 0000000..4fdd8d9 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/germany.sqf @@ -0,0 +1,51 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "C_Man_casual_1_F_euro", + "C_Man_casual_1_F_euro", + "C_Man_casual_2_F_euro", + "C_Man_casual_2_F_euro", + "C_Man_casual_3_F_euro", + "C_Man_casual_3_F_euro", + "gm_gc_civ_man_01_80_blk", + "gm_gc_civ_man_01_80_blk", + "gm_gc_civ_man_01_80_blu", + "gm_gc_civ_man_01_80_blu", + "gm_gc_civ_man_02_80_brn", + "gm_gc_civ_man_02_80_brn", + "gm_gc_civ_man_02_80_gry", + "gm_gc_civ_man_02_80_gry", + "gm_ge_dbp_man_01_80_blu", + "gm_ge_pol_officer_80_grn", + "gm_ge_pol_patrol_80_blk" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "C_Truck_02_covered_F", + "C_Truck_02_covered_F", + "C_Truck_02_fuel_F", + "C_Truck_02_transport_F", + "C_Truck_02_transport_F", + "gm_gc_civ_p601", + "gm_gc_civ_p601", + "gm_gc_civ_p601", + "gm_gc_dp_p601", + "gm_gc_dp_p601", + "gm_gc_ff_p601", + "gm_gc_pol_p601", + "gm_ge_civ_typ1200", + "gm_ge_civ_typ1200", + "gm_ge_civ_typ1200", + "gm_ge_dbp_typ1200", + "gm_ge_dbp_typ1200", + "gm_ge_ff_typ1200", + "gm_ge_pol_typ1200" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/middle_eastern.sqf b/kp_liberation.brf_sumava/presets/civilians/middle_eastern.sqf new file mode 100644 index 0000000..3fe1ca7 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/middle_eastern.sqf @@ -0,0 +1,42 @@ +/* + Needed Mods: + - RHS USAF + - RHS AFRF + - Project OPFOR + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "LOP_Tak_Civ_Random", + "LOP_Tak_Civ_Man_06", + "LOP_Tak_Civ_Man_08", + "LOP_Tak_Civ_Man_07", + "LOP_Tak_Civ_Man_05", + "LOP_Tak_Civ_Man_01", + "LOP_Tak_Civ_Man_10", + "LOP_Tak_Civ_Man_02", + "LOP_Tak_Civ_Man_09", + "LOP_Tak_Civ_Man_11", + "LOP_Tak_Civ_Man_12", + "LOP_Tak_Civ_Man_04", + "LOP_Tak_Civ_Man_14", + "LOP_Tak_Civ_Man_13", + "LOP_Tak_Civ_Man_16", + "LOP_Tak_Civ_Man_15" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "LOP_TAK_Civ_Hatchback", + "LOP_TAK_Civ_Landrover", + "LOP_TAK_Civ_Offroad", + "C_Offroad_01_repair_F", + "LOP_TAK_Civ_UAZ", + "LOP_TAK_Civ_UAZ_Open", + "C_Van_01_fuel_F", + "LOP_TAK_Civ_Ural", + "LOP_TAK_Civ_Ural_open" +]; diff --git a/kp_liberation.brf_sumava/presets/civilians/unsung.sqf b/kp_liberation.brf_sumava/presets/civilians/unsung.sqf new file mode 100644 index 0000000..b84ddad --- /dev/null +++ b/kp_liberation.brf_sumava/presets/civilians/unsung.sqf @@ -0,0 +1,26 @@ +/* + Needed Mods: + - The Unsung Vietnam War Mod + + Optional Mods: + - None +*/ + +// Civilian classnames. +civilians = [ + "uns_civilian1", + "uns_civilian1_b1", + "uns_civilian2", + "uns_civilian2_b1", + "uns_civilian3", + "uns_civilian3_b1", + "uns_civilian4", + "uns_civilian4_b1" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "C_Truck_02_fuel_F", + "C_Truck_02_transport_F", + "C_Truck_02_covered_F" +]; diff --git a/kp_liberation.brf_sumava/presets/init_presets.sqf b/kp_liberation.brf_sumava/presets/init_presets.sqf new file mode 100644 index 0000000..5eafe1b --- /dev/null +++ b/kp_liberation.brf_sumava/presets/init_presets.sqf @@ -0,0 +1,326 @@ + +KPLIB_initPresets = false; + +private _start = diag_ticktime; +if (isServer) then { + ["----- Server starts preset initialization -----", "PRESETS"] call KPLIB_fnc_log; + ["Not found vehicles listed below are not an issue in general. It just sorts out vehicles from not loaded mods.", "PRESETS"] call KPLIB_fnc_log; + ["Only if you e.g. use a CUP preset and you get messages about missing CUP classes, then check your loaded mods.", "PRESETS"] call KPLIB_fnc_log; +}; + +switch (KP_liberation_preset_blufor) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\apex.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_mtp.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_des.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod_des.sqf";}; + case 6: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_wdl.sqf";}; + case 7: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_des.sqf";}; + case 8: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_afrf.sqf";}; + case 9: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west.sqf";}; + case 10: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west_win.sqf";}; + case 11: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east.sqf";}; + case 12: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east_win.sqf";}; + case 13: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat.sqf";}; + case 14: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat_apex.sqf";}; + case 15: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\unsung.sqf";}; + case 16: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Desert.sqf";}; + case 17: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Woodland.sqf";}; + case 18: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Desert.sqf";}; + case 19: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Woodland.sqf";}; + case 20: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Desert.sqf";}; + case 21: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Woodland.sqf";}; + case 22: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_CDF.sqf";}; + case 23: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Desert.sqf";}; + case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";}; + case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ChDKZ.sqf";}; + case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_SLA.sqf";}; + case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_TakiArmy.sqf";}; + case 28: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";}; + case 29: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";}; + case 30: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";}; +}; + +switch (KP_liberation_preset_opfor) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\apex.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\rhs_afrf.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\takistan.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\islamic_state.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\SLA.sqf";}; + case 6: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\aaf.sqf";}; + case 7: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\nato.sqf";}; + case 8: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west.sqf";}; + case 9: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west_win.sqf";}; + case 10: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east.sqf";}; + case 11: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east_win.sqf";}; + case 12: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\unsung.sqf";}; + case 13: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_SLA.sqf";}; + case 14: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_TakiArmy.sqf";}; + case 15: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_ChDKZ.sqf";}; + case 16: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_MSV.sqf";}; + case 17: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_ModernMSV.sqf";}; + case 18: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_CDF.sqf";}; + case 19: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Desert.sqf";}; + case 20: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Woodland.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\opfor\custom.sqf";}; +}; + +switch (KP_liberation_preset_resistance) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\apex.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\rhs_gref.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\middle_eastern.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\RACS.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\germany.sqf";}; + case 6: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\unsung.sqf";}; + case 7: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_TakiLocals.sqf";}; + case 8: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_NAPA.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\resistance\custom.sqf";}; +}; + +switch (KP_liberation_preset_civilians) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\apex.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\middle_eastern.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\RDSCiv.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\germany.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\unsung.sqf";}; + case 6: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_TakiCivs.sqf";}; + case 7: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_ChernoCivs.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\civilians\custom.sqf";}; +}; + +// Prices for the blufor infantry squads (supplies, ammo, fuel) +KPLIB_b_allSquads = [ + [blufor_squad_inf_light,200,0,0], + [blufor_squad_inf,300,0,0], + [blufor_squad_at,200,250,0], + [blufor_squad_aa,200,250,0], + [blufor_squad_recon,250,0,0], + [blufor_squad_para,200,0,0] +]; + +// Squad names for build menu +squads_names = [ + localize "STR_LIGHT_RIFLE_SQUAD", + localize "STR_RIFLE_SQUAD", + localize "STR_AT_SQUAD", + localize "STR_AA_SQUAD", + localize "STR_RECON_SQUAD", + localize "STR_PARA_SQUAD" +]; + +// Classnames of objects which should be ignored when building +GRLIB_ignore_colisions_when_building = [ + "Land_HelipadSquare_F", + "Land_TentHangar_V1_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_Flush_Light_green_F", + "Land_Flush_Light_red_F", + "Land_Flush_Light_yellow_F", + "TMR_Autorest_Georef", + "Flag_NATO_F", + "Flag_White_F", + "Flag_RedCrystal_F", + "CamoNet_BLUFOR_F", + "CamoNet_BLUFOR_open_F", + "CamoNet_BLUFOR_big_F", + "Land_PortableLight_single_F", + "Land_PortableLight_double_F", + "Land_HelipadCircle_F", + "Land_HelipadRescue_F", + "Helipad", + "LAND_uns_Heli_pad", + "LAND_uns_evac_pad", + "PortableHelipadLight_01_blue_F", + "PortableHelipadLight_01_green_F", + "PortableHelipadLight_01_red_F", + "Land_BagFence_Round_F", + "Land_BagFence_Short_F", + "Land_BagFence_Long_F", + "Land_BagFence_Corner_F", + "Land_BagFence_End_F", + "Land_Sign_WarningMilitaryArea_F", + "Land_Sign_WarningMilAreaSmall_F", + "Land_Sign_WarningMilitaryVehicles_F", + "Land_Razorwire_F", + "Sign_Sphere100cm_F", + "Land_ClutterCutter_large_F", + "Land_HighVoltageColumnWire_F", + "Land_PowerWireBig_left_F", + "B_HMG_01_F", // Mk30A HMG .50 + "B_HMG_01_high_F", // Mk30 HMG .50 (Raised) + "B_HMG_01_A_F", // Mk30 HMG .50 (Autonomous) + "B_GMG_01_F", // Mk32A GMG 20mm + "B_GMG_01_high_F", // Mk32 GMG 20mm (Raised) + "B_GMG_01_A_F", // Mk32 GMG 20mm (Autonomous) + "B_static_AT_F", // Static Titan Launcher (AT) + "B_static_AA_F", // Static Titan Launcher (AA) + "B_Mortar_01_F", // Mk6 Mortar + "ACE_friesAnchorBar", // ACE FRIES + "ACE_friesGantryReverse", // ACE FRIES + "ACE_friesGantry" // ACE FRIES +]; + +/* + Checking all preset arrays for missing mods and sort out not available classnames +*/ +// Blufor +infantry_units = infantry_units select {[( _x select 0)] call KPLIB_fnc_checkClass}; +light_vehicles = light_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; +heavy_vehicles = heavy_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; +air_vehicles = air_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; +static_vehicles = static_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; +buildings = buildings select {[( _x select 0)] call KPLIB_fnc_checkClass}; +support_vehicles = support_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; +blufor_squad_inf_light = blufor_squad_inf_light select {[_x] call KPLIB_fnc_checkClass}; +blufor_squad_inf = blufor_squad_inf select {[_x] call KPLIB_fnc_checkClass}; +blufor_squad_at = blufor_squad_at select {[_x] call KPLIB_fnc_checkClass}; +blufor_squad_aa = blufor_squad_aa select {[_x] call KPLIB_fnc_checkClass}; +blufor_squad_recon = blufor_squad_recon select {[_x] call KPLIB_fnc_checkClass}; +blufor_squad_para = blufor_squad_para select {[_x] call KPLIB_fnc_checkClass}; +elite_vehicles = elite_vehicles select {[_x] call KPLIB_fnc_checkClass}; + +// Opfor +militia_squad = militia_squad select {[_x] call KPLIB_fnc_checkClass}; +militia_vehicles = militia_vehicles select {[_x] call KPLIB_fnc_checkClass}; +opfor_vehicles = opfor_vehicles select {[_x] call KPLIB_fnc_checkClass}; +opfor_vehicles_low_intensity = opfor_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass}; +opfor_battlegroup_vehicles = opfor_battlegroup_vehicles select {[_x] call KPLIB_fnc_checkClass}; +opfor_battlegroup_vehicles_low_intensity = opfor_battlegroup_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass}; +opfor_troup_transports = opfor_troup_transports select {[_x] call KPLIB_fnc_checkClass}; +opfor_choppers = opfor_choppers select {[_x] call KPLIB_fnc_checkClass}; +opfor_air = opfor_air select {[_x] call KPLIB_fnc_checkClass}; + +// Resistance +KP_liberation_guerilla_units = KP_liberation_guerilla_units select {[_x] call KPLIB_fnc_checkClass}; +KP_liberation_guerilla_vehicles = KP_liberation_guerilla_vehicles select {[_x] call KPLIB_fnc_checkClass}; + +// Civilians +civilians = civilians select {[_x] call KPLIB_fnc_checkClass}; +civilian_vehicles = civilian_vehicles select {[_x] call KPLIB_fnc_checkClass}; + +// Misc +KPLIB_transportConfigs = KPLIB_transportConfigs select {[_x select 0] call KPLIB_fnc_checkClass}; +KPLIB_aiResupplySources = KPLIB_aiResupplySources select {[_x] call KPLIB_fnc_checkClass}; + +/* + Fetch arrays with only classnames from the blufor preset build arrays + Beware that all classnames are converted to lowercase. Important for e.g. `in` checks, as it's case-sensitive. +*/ +KPLIB_b_infantry_classes = infantry_units apply {toLower (_x select 0)}; +KPLIB_b_light_classes = light_vehicles apply {toLower (_x select 0)}; +KPLIB_b_heavy_classes = heavy_vehicles apply {toLower (_x select 0)}; +KPLIB_b_air_classes = air_vehicles apply {toLower (_x select 0)}; +KPLIB_b_static_classes = static_vehicles apply {toLower (_x select 0)}; +KPLIB_b_buildings_classes = buildings apply {toLower (_x select 0)}; +KPLIB_b_support_classes = support_vehicles apply {toLower (_x select 0)}; +KPLIB_transport_classes = KPLIB_transportConfigs apply {toLower (_x select 0)}; + +KPLIB_b_infantry_classes append (blufor_squad_inf_light + blufor_squad_inf + blufor_squad_at + blufor_squad_aa + blufor_squad_recon + blufor_squad_para); +KPLIB_b_infantry_classes = KPLIB_b_infantry_classes apply {toLower _x}; +KPLIB_b_infantry_classes = KPLIB_b_infantry_classes arrayIntersect KPLIB_b_infantry_classes; + +/* + Opfor squad compositions +*/ +KPLIB_o_squadStd = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_marksman, opfor_grenadier, opfor_rpg]; +KPLIB_o_squadInf = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_heavygunner, opfor_marksman, opfor_sharpshooter, opfor_sniper]; +KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_at, opfor_at, opfor_at]; +KPLIB_o_squadAir = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_aa, opfor_aa, opfor_aa]; + +/* + Liberation specific collections +*/ +KPLIB_buildList = [[], infantry_units, light_vehicles, heavy_vehicles, air_vehicles, static_vehicles, buildings, support_vehicles, KPLIB_b_allSquads]; +KPLIB_crates = [KP_liberation_supply_crate, KP_liberation_ammo_crate, KP_liberation_fuel_crate]; +KPLIB_airSlots = [KP_liberation_heli_slot_building, KP_liberation_plane_slot_building]; +KPLIB_storageBuildings = [KP_liberation_small_storage_building, KP_liberation_large_storage_building]; +KPLIB_upgradeBuildings = [KP_liberation_recycle_building, KP_liberation_air_vehicle_building, KP_liberation_heli_slot_building, KP_liberation_plane_slot_building]; +KPLIB_aiResupplySources append [Respawn_truck_typename, huron_typename, Arsenal_typename]; + +KPLIB_crates = KPLIB_crates apply {toLower _x}; +KPLIB_airSlots = KPLIB_airSlots apply {toLower _x}; +KPLIB_storageBuildings = KPLIB_storageBuildings apply {toLower _x}; +KPLIB_upgradeBuildings = KPLIB_upgradeBuildings apply {toLower _x}; +KPLIB_aiResupplySources = KPLIB_aiResupplySources apply {toLower _x}; + +/* + Classname collections +*/ +// All land vehicle classnames +KPLIB_allLandVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air");; +{ + KPLIB_allLandVeh_classes append _x; +} forEach [ + militia_vehicles apply {toLower _x}, + opfor_vehicles apply {toLower _x}, + opfor_vehicles_low_intensity apply {toLower _x}, + opfor_battlegroup_vehicles apply {toLower _x}, + opfor_battlegroup_vehicles_low_intensity apply {toLower _x}, + opfor_troup_transports apply {toLower _x}, + KPLIB_b_light_classes, + KPLIB_b_heavy_classes, + KPLIB_b_support_classes select {_x isKindOf "Car" || _x isKindOf "Tank"} +]; +KPLIB_allLandVeh_classes = KPLIB_allLandVeh_classes arrayIntersect KPLIB_allLandVeh_classes; + +// All air vehicle classnames +KPLIB_allAirVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air"); +{ + KPLIB_allAirVeh_classes append _x; +} forEach [opfor_choppers apply {toLower _x}, opfor_air apply {toLower _x}, KPLIB_b_air_classes, KPLIB_b_support_classes select {_x isKindOf "Air"}]; + +// All blufor vehicle (land and air) classnames +KPLIB_b_allVeh_classes = []; +{ + KPLIB_b_allVeh_classes append _x; +} forEach [KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_air_classes, KPLIB_b_static_classes, KPLIB_b_support_classes]; + +// All opfor vehicle (land and air) classnames +KPLIB_o_allVeh_classes = []; +{ + KPLIB_o_allVeh_classes append _x; +} forEach [ + militia_vehicles, + opfor_vehicles, + opfor_vehicles_low_intensity, + opfor_battlegroup_vehicles, + opfor_battlegroup_vehicles_low_intensity, + opfor_troup_transports, + opfor_choppers, + opfor_air +]; +KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes apply {toLower _x}; +KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes arrayIntersect KPLIB_o_allVeh_classes; + +// All regular opfor soldier classnames +KPLIB_o_inf_classes = [opfor_sentry, opfor_rifleman, opfor_grenadier, opfor_squad_leader, opfor_team_leader, opfor_marksman, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_rpg, opfor_at, opfor_aa, opfor_officer, opfor_sharpshooter, opfor_sniper,opfor_engineer]; +KPLIB_o_inf_classes = KPLIB_o_inf_classes apply {toLower _x}; + +/* + Vehicle type permission arrays +*/ +KPLIB_typeLightClasses = +KPLIB_b_light_classes; +KPLIB_typeHeavyClasses = +KPLIB_b_heavy_classes; +KPLIB_typeAirClasses = +KPLIB_b_air_classes; +{ + switch (true) do { + case (_x isKindOf "Tank"): {KPLIB_typeHeavyClasses pushBack _x}; + case (_x isKindOf "Air"): {KPLIB_typeAirClasses pushBack _x}; + default {KPLIB_typeLightClasses pushBack _x}; + }; +} forEach (KPLIB_b_support_classes + [toLower huron_typename]); + +// Military alphabet used for FOBs and convois +military_alphabet = ["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu"]; + +// Misc variables +markers_reset = [99999,99999,0]; +zeropos = [0,0,0]; +KPLIB_sarWreck = "Land_Wreck_Heli_Attack_01_F"; +KPLIB_sarFire = "test_EmptyObjectForFireBig"; + +KPLIB_initPresets = true; + +if (isServer) then {[format ["----- Preset initialization finished. Time needed: %1 seconds -----", diag_ticktime - _start], "PRESETS"] call KPLIB_fnc_log;}; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_MSV.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_MSV.sqf new file mode 100644 index 0000000..1b4ec91 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_MSV.sqf @@ -0,0 +1,180 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_O_RU_Officer_EMR"; // Officer +opfor_squad_leader = "CUP_O_RU_Soldier_SL_EMR"; // Squad Leader +opfor_team_leader = "CUP_O_RU_Soldier_TL_EMR"; // Team Leader +opfor_sentry = "CUP_O_RU_Soldier_Saiga_EMR"; // Rifleman (Lite) +opfor_rifleman = "CUP_O_RU_Soldier_EMR"; // Rifleman +opfor_rpg = "CUP_O_RU_Soldier_AT_EMR"; // Rifleman (LAT) +opfor_grenadier = "CUP_O_RU_Soldier_GL_EMR"; // Grenadier +opfor_machinegunner = "CUP_O_RU_Soldier_AR_EMR"; // Autorifleman +opfor_heavygunner = "CUP_O_RU_Soldier_MG_EMR"; // Heavy Gunner +opfor_marksman = "CUP_O_RU_Soldier_Marksman_EMR"; // Marksman +opfor_sharpshooter = "CUP_O_RU_Sniper_EMR"; // Sharpshooter +opfor_sniper = "CUP_O_RU_Sniper_KSVK_EMR"; // Sniper +opfor_at = "CUP_O_RU_Soldier_HAT_EMR"; // AT Specialist +opfor_aa = "CUP_O_RU_Soldier_AA_EMR"; // AA Specialist +opfor_medic = "CUP_O_RU_Medic_EMR"; // Medic +opfor_engineer = "CUP_O_RU_Engineer_EMR"; // Engineer +opfor_paratrooper = "CUP_O_RU_Soldier_LAT_EMR"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ +opfor_mrap_armed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) +opfor_transport_helo = "CUP_O_Mi8_RU"; // Mi-8MTV3 +opfor_transport_truck = "CUP_O_Kamaz_RU"; // Kamaz 5350 +opfor_ammobox_transport = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) +opfor_ammo_truck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierRU"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_O_RU_Soldier_Saiga", // Rifleman (Saiga) + "CUP_O_RU_Soldier_Saiga", // Rifleman (Saiga) + "CUP_O_RU_Soldier", // Rifleman + "CUP_O_RU_Soldier", // Rifleman + "CUP_O_RU_Soldier_AT", // Rifleman (RPG-7) + "CUP_O_RU_Soldier_AR", // Automatic Rifleman + "CUP_O_RU_Soldier_Marksman", // Marksman (SVD) + "CUP_O_RU_Medic", // Medic + "CUP_O_RU_Engineer" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_O_UAZ_MG_RU" // UAZ (DShKM) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP3_RU", // BMP-3 + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU" // T-90A +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_RU", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) + "CUP_O_MTLB_pk_WDL_RU", // MT-LB LV (Camo) + "CUP_O_BRDM2_RU", // BRDM-2 + "CUP_O_Ural_ZU23_RU", // Ural (ZU-23) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BMP2_RU" // BMP-2 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP3_RU", // BMP-3 + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Ka52_RU", // Ka-52 + "CUP_O_Ka50_DL_RU" // Ka-50 Black Shark +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_RU", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) + "CUP_O_MTLB_pk_WDL_RU", // MT-LB LV (Camo) + "CUP_O_BRDM2_RU", // BRDM-2 + "CUP_O_Ural_ZU23_RU", // Ural (ZU-23) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Mi8_RU" // Mi-8MTV3 +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_MTLB_pk_WDL_RU" // MT-LB LV (Camo) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Ka52_RU", // Ka-52 + "CUP_O_Ka50_DL_RU" // Ka-50 Black Shark +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_O_Su25_Dyn_RU", // Su-25T Frogfoot + "CUP_O_SU34_RU" // Su-34 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_ModernMSV.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_ModernMSV.sqf new file mode 100644 index 0000000..4d8a61a --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_AFRF_ModernMSV.sqf @@ -0,0 +1,180 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_O_RU_Officer_M_EMR"; // Officer +opfor_squad_leader = "CUP_O_RU_Soldier_SL_M_EMR"; // Squad Leader +opfor_team_leader = "CUP_O_RU_Soldier_TL_M_EMR"; // Team Leader +opfor_sentry = "CUP_O_RU_Soldier_Saiga_M_EMR"; // Rifleman (Lite) +opfor_rifleman = "CUP_O_RU_Soldier_M_EMR"; // Rifleman +opfor_rpg = "CUP_O_RU_Soldier_AT_M_EMR"; // Rifleman (LAT) +opfor_grenadier = "CUP_O_RU_Soldier_GL_M_EMR"; // Grenadier +opfor_machinegunner = "CUP_O_RU_Soldier_AR_M_EMR"; // Autorifleman +opfor_heavygunner = "CUP_O_RU_Soldier_MG_M_EMR"; // Heavy Gunner +opfor_marksman = "CUP_O_RU_Soldier_Marksman_M_EMR"; // Marksman +opfor_sharpshooter = "CUP_O_RU_Sniper_M_EMR"; // Sharpshooter +opfor_sniper = "CUP_O_RU_Sniper_KSVK_M_EMR"; // Sniper +opfor_at = "CUP_O_RU_Soldier_HAT_M_EMR"; // AT Specialist +opfor_aa = "CUP_O_RU_Soldier_AA_M_EMR"; // AA Specialist +opfor_medic = "CUP_O_RU_Medic_M_EMR"; // Medic +opfor_engineer = "CUP_O_RU_Engineer_M_EMR"; // Engineer +opfor_paratrooper = "CUP_O_RU_Soldier_LAT_M_EMR"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ +opfor_mrap_armed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) +opfor_transport_helo = "CUP_O_Mi8_RU"; // Mi-8MTV3 +opfor_transport_truck = "CUP_O_Kamaz_RU"; // Kamaz 5350 +opfor_ammobox_transport = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) +opfor_ammo_truck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierRU"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_O_RU_Soldier_Saiga_EMR", // Rifleman (Saiga) + "CUP_O_RU_Soldier_Saiga_EMR", // Rifleman (Saiga) + "CUP_O_RU_Soldier_EMR", // Rifleman + "CUP_O_RU_Soldier_EMR", // Rifleman + "CUP_O_RU_Soldier_AT_EMR", // Rifleman (RPG-7) + "CUP_O_RU_Soldier_AR_EMR", // Automatic Rifleman + "CUP_O_RU_Soldier_Marksman_EMR", // Marksman (SVD) + "CUP_O_RU_Medic_EMR", // Medic + "CUP_O_RU_Engineer_EMR" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_O_UAZ_MG_RU" // UAZ (DShKM) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP3_RU", // BMP-3 + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU" // T-90A +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_RU", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) + "CUP_O_MTLB_pk_WDL_RU", // MT-LB LV (Camo) + "CUP_O_BRDM2_RU", // BRDM-2 + "CUP_O_Ural_ZU23_RU", // Ural (ZU-23) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BMP2_RU" // BMP-2 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BMP3_RU", // BMP-3 + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_2S6_RU", // 2S6 Tunguska + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T72_RU", // T-72 + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_T90_RU", // T-90A + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Ka52_RU", // Ka-52 + "CUP_O_Ka50_DL_RU" // Ka-50 Black Shark +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_RU", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) + "CUP_O_MTLB_pk_WDL_RU", // MT-LB LV (Camo) + "CUP_O_BRDM2_RU", // BRDM-2 + "CUP_O_Ural_ZU23_RU", // Ural (ZU-23) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Mi8_RU" // Mi-8MTV3 +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_BMP2_RU", // BMP-2 + "CUP_O_BTR60_RU", // BTR-60PB (Camo) + "CUP_O_BTR80_CAMO_RU", // BTR-80 (Camo) + "CUP_O_BTR80_GREEN_RU", // BTR-80 (Green) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Camo) + "CUP_O_BTR80A_CAMO_RU", // BTR-80A (Green) + "CUP_O_BTR90_RU", // BTR-90 + "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) + "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) + "CUP_O_MTLB_pk_WDL_RU" // MT-LB LV (Camo) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V + "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P + "CUP_O_Mi8_RU", // Mi-8MTV3 + "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) + "CUP_O_Ka52_RU", // Ka-52 + "CUP_O_Ka50_DL_RU" // Ka-50 Black Shark +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_O_Su25_Dyn_RU", // Su-25T Frogfoot + "CUP_O_SU34_RU" // Su-34 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Desert.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Desert.sqf new file mode 100644 index 0000000..ef645e2 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Desert.sqf @@ -0,0 +1,169 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_B_BAF_Soldier_Officer_DDPM"; // Officer +opfor_squad_leader = "CUP_B_BAF_Soldier_SquadLeader_DDPM"; // Squad Leader +opfor_team_leader = "CUP_B_BAF_Soldier_TeamLeader_DDPM"; // Team Leader +opfor_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DDPM"; // Rifleman (Lite) +opfor_rifleman = "CUP_B_BAF_Soldier_Rifleman_DDPM"; // Rifleman +opfor_rpg = "CUP_B_BAF_Soldier_RiflemanLAT_DDPM"; // Rifleman (LAT) +opfor_grenadier = "CUP_B_BAF_Soldier_Grenadier_DDPM"; // Grenadier +opfor_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DDPM"; // Autorifleman +opfor_heavygunner = "CUP_B_BAF_Soldier_HeavyGunner_DDPM"; // Heavy Gunner +opfor_marksman = "CUP_B_BAF_Soldier_Marksman_DDPM"; // Marksman +opfor_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DDPM"; // Sharpshooter +opfor_sniper = "CUP_B_BAF_Sniper_AS50_DDPM"; // Sniper +opfor_at = "CUP_B_BAF_Soldier_AT_DDPM"; // AT Specialist +opfor_aa = "CUP_B_BAF_Soldier_AA_DDPM"; // AA Specialist +opfor_medic = "CUP_B_BAF_Soldier_Medic_DDPM"; // Medic +opfor_engineer = "CUP_B_BAF_Soldier_Engineer_DDPM"; // Engineer +opfor_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DDPM"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_B_Ridgeback_LMG_GB_D"; // Ridgeback PPV LMG Woodland +opfor_mrap_armed = "CUP_B_Ridgeback_HMG_GB_D"; // Ridgeback PPV HMG Woodland +opfor_transport_helo = "CUP_B_CH47F_GB"; // Chinook HC-4 +opfor_transport_truck = "CUP_B_MTVR_BAF_DES"; // MTVR +opfor_ammobox_transport = "CUP_B_MTVR_BAF_DES"; // MTVR -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_B_MTVR_Refuel_BAF_DES"; // MTVR (Refuel) +opfor_ammo_truck = "CUP_B_MTVR_Ammo_BAF_DES"; // MTVR (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "Flag_UK_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_B_BAF_Soldier_TeamLeader_MTP", // Team Leader + "CUP_B_BAF_Soldier_Medic_MTP", // Combat Life Saver + "CUP_B_BAF_Soldier_RiflemanLAT_MTP", // Rifleman (Light AT) + "CUP_B_BAF_Soldier_RiflemanLite_MTP", // Rifleman (Light) + "CUP_B_BAF_Soldier_RiflemanLite_MTP", // Rifleman (Light) + "CUP_B_BAF_Soldier_RiflemanLite_MTP" // Rifleman (Light) +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_B_LR_MG_GB_D" // Land Rover 110 (M2) Woodland +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland + "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_D", // Coyote GMG (Woodland) + "CUP_B_Wolfhound_LMG_GB_D", // Wolfhound TSV LMG Woodland + "CUP_B_Wolfhound_HMG_GB_D", // Wolfhound TSV HMG Woodland + "CUP_B_Wolfhound_GMG_GB_D", // Wolfhound TSV GMG Woodland + "CUP_B_Mastiff_LMG_GB_D", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_D", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_D", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_D_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_FV432_Bulldog_GB_D_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_MCV80_GB_D", // MCV-80 Warrior (Woodland) + "CUP_B_MCV80_GB_D_SLAT", // MCV-80 Warrior (SLAT - Woodland) + "CUP_B_FV510_GB_D", // FV510 Warrior (Woodland) + "CUP_B_FV510_GB_D_SLAT", // FV510 Warrior (SLAT - Woodland) + "CUP_B_Challenger2_2CD_BAF", // FV4034 Challenger 2 (Two Color Woodland) + "CUP_B_Challenger2_Desert_BAF" // FV4034 Challenger 2 (Woodland) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland + "CUP_B_Jackal2_L2A1_GB_D", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_D", // Jackal 2 GMG Woodland + "CUP_B_Ridgeback_LMG_GB_D", // Ridgeback PPV LMG Woodland + "CUP_B_Ridgeback_HMG_GB_D", // Ridgeback PPV HMG Woodland + "CUP_B_Ridgeback_GMG_GB_D", // Ridgeback PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_D", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_FV432_Bulldog_GB_D" // FV432 Bulldog L7A2 [Woodland] +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland + "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_D", // Coyote GMG (Woodland) + "CUP_B_Wolfhound_LMG_GB_D", // Wolfhound TSV LMG Woodland + "CUP_B_Wolfhound_HMG_GB_D", // Wolfhound TSV HMG Woodland + "CUP_B_Wolfhound_GMG_GB_D", // Wolfhound TSV GMG Woodland + "CUP_B_Mastiff_LMG_GB_D", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_D", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_D", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_D_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_FV432_Bulldog_GB_D_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_MCV80_GB_D", // MCV-80 Warrior (Woodland) + "CUP_B_MCV80_GB_D_SLAT", // MCV-80 Warrior (SLAT - Woodland) + "CUP_B_FV510_GB_D", // FV510 Warrior (Woodland) + "CUP_B_FV510_GB_D_SLAT", // FV510 Warrior (SLAT - Woodland) + "CUP_B_Challenger2_2CD_BAF", // FV4034 Challenger 2 (Two Color Woodland) + "CUP_B_Challenger2_Desert_BAF", // FV4034 Challenger 2 (Woodland) + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland + "CUP_B_Jackal2_L2A1_GB_D", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_D", // Jackal 2 GMG Woodland + "CUP_B_Ridgeback_LMG_GB_D", // Ridgeback PPV LMG Woodland + "CUP_B_Ridgeback_HMG_GB_D", // Ridgeback PPV HMG Woodland + "CUP_B_Ridgeback_GMG_GB_D", // Ridgeback PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_D", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_FV432_Bulldog_GB_D", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_D", // Coyote GMG (Woodland) + "CUP_B_Mastiff_LMG_GB_D", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_D", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_D", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_D_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_Jackal2_L2A1_GB_D", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_D", // Jackal 2 GMG Woodland + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_B_F35B_BAF", // F-35B Lightning II + "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) + "CUP_B_GR9_DYN_GB" // Harrier GR.9 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Woodland.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Woodland.sqf new file mode 100644 index 0000000..1bdc976 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_BAF_Woodland.sqf @@ -0,0 +1,169 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_B_BAF_Soldier_Officer_DPM"; // Officer +opfor_squad_leader = "CUP_B_BAF_Soldier_SquadLeader_DPM"; // Squad Leader +opfor_team_leader = "CUP_B_BAF_Soldier_TeamLeader_DPM"; // Team Leader +opfor_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DPM"; // Rifleman (Lite) +opfor_rifleman = "CUP_B_BAF_Soldier_Rifleman_DPM"; // Rifleman +opfor_rpg = "CUP_B_BAF_Soldier_RiflemanLAT_DPM"; // Rifleman (LAT) +opfor_grenadier = "CUP_B_BAF_Soldier_Grenadier_DPM"; // Grenadier +opfor_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DPM"; // Autorifleman +opfor_heavygunner = "CUP_B_BAF_Soldier_HeavyGunner_DPM"; // Heavy Gunner +opfor_marksman = "CUP_B_BAF_Soldier_Marksman_DPM"; // Marksman +opfor_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DPM"; // Sharpshooter +opfor_sniper = "CUP_B_BAF_Sniper_AS50_DPM"; // Sniper +opfor_at = "CUP_B_BAF_Soldier_AT_DPM"; // AT Specialist +opfor_aa = "CUP_B_BAF_Soldier_AA_DPM"; // AA Specialist +opfor_medic = "CUP_B_BAF_Soldier_Medic_DPM"; // Medic +opfor_engineer = "CUP_B_BAF_Soldier_Engineer_DPM"; // Engineer +opfor_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DPM"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_B_Ridgeback_LMG_GB_W"; // Ridgeback PPV LMG Woodland +opfor_mrap_armed = "CUP_B_Ridgeback_HMG_GB_W"; // Ridgeback PPV HMG Woodland +opfor_transport_helo = "CUP_B_CH47F_GB"; // Chinook HC-4 +opfor_transport_truck = "CUP_B_MTVR_BAF_WOOD"; // MTVR +opfor_ammobox_transport = "CUP_B_MTVR_BAF_WOOD"; // MTVR -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_B_MTVR_Refuel_BAF_WOOD"; // MTVR (Refuel) +opfor_ammo_truck = "CUP_B_MTVR_Ammo_BAF_WOOD"; // MTVR (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "Flag_UK_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_B_BAF_Soldier_TeamLeader_MTP", // Team Leader + "CUP_B_BAF_Soldier_Medic_MTP", // Combat Life Saver + "CUP_B_BAF_Soldier_RiflemanLAT_MTP", // Rifleman (Light AT) + "CUP_B_BAF_Soldier_RiflemanLite_MTP", // Rifleman (Light) + "CUP_B_BAF_Soldier_RiflemanLite_MTP", // Rifleman (Light) + "CUP_B_BAF_Soldier_RiflemanLite_MTP" // Rifleman (Light) +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_B_LR_MG_GB_W" // Land Rover 110 (M2) Woodland +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland + "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_W", // Coyote GMG (Woodland) + "CUP_B_Wolfhound_LMG_GB_W", // Wolfhound TSV LMG Woodland + "CUP_B_Wolfhound_HMG_GB_W", // Wolfhound TSV HMG Woodland + "CUP_B_Wolfhound_GMG_GB_W", // Wolfhound TSV GMG Woodland + "CUP_B_Mastiff_LMG_GB_W", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_W", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_W", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_W_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_FV432_Bulldog_GB_W_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_MCV80_GB_W", // MCV-80 Warrior (Woodland) + "CUP_B_MCV80_GB_W_SLAT", // MCV-80 Warrior (SLAT - Woodland) + "CUP_B_FV510_GB_W", // FV510 Warrior (Woodland) + "CUP_B_FV510_GB_W_SLAT", // FV510 Warrior (SLAT - Woodland) + "CUP_B_Challenger2_2CW_BAF", // FV4034 Challenger 2 (Two Color Woodland) + "CUP_B_Challenger2_Woodland_BAF" // FV4034 Challenger 2 (Woodland) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland + "CUP_B_Jackal2_L2A1_GB_W", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_W", // Jackal 2 GMG Woodland + "CUP_B_Ridgeback_LMG_GB_W", // Ridgeback PPV LMG Woodland + "CUP_B_Ridgeback_HMG_GB_W", // Ridgeback PPV HMG Woodland + "CUP_B_Ridgeback_GMG_GB_W", // Ridgeback PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_W", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_FV432_Bulldog_GB_W" // FV432 Bulldog L7A2 [Woodland] +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland + "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_W", // Coyote GMG (Woodland) + "CUP_B_Wolfhound_LMG_GB_W", // Wolfhound TSV LMG Woodland + "CUP_B_Wolfhound_HMG_GB_W", // Wolfhound TSV HMG Woodland + "CUP_B_Wolfhound_GMG_GB_W", // Wolfhound TSV GMG Woodland + "CUP_B_Mastiff_LMG_GB_W", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_W", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_W", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_W_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_FV432_Bulldog_GB_W_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_MCV80_GB_W", // MCV-80 Warrior (Woodland) + "CUP_B_MCV80_GB_W_SLAT", // MCV-80 Warrior (SLAT - Woodland) + "CUP_B_FV510_GB_W", // FV510 Warrior (Woodland) + "CUP_B_FV510_GB_W_SLAT", // FV510 Warrior (SLAT - Woodland) + "CUP_B_Challenger2_2CW_BAF", // FV4034 Challenger 2 (Two Color Woodland) + "CUP_B_Challenger2_Woodland_BAF", // FV4034 Challenger 2 (Woodland) + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland + "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland + "CUP_B_Jackal2_L2A1_GB_W", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_W", // Jackal 2 GMG Woodland + "CUP_B_Ridgeback_LMG_GB_W", // Ridgeback PPV LMG Woodland + "CUP_B_Ridgeback_HMG_GB_W", // Ridgeback PPV HMG Woodland + "CUP_B_Ridgeback_GMG_GB_W", // Ridgeback PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_W", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_FV432_Bulldog_GB_W", // FV432 Bulldog L7A2 [Woodland] + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) + "CUP_B_BAF_Coyote_GMG_W", // Coyote GMG (Woodland) + "CUP_B_Mastiff_LMG_GB_W", // Mastiff PPV LMG Woodland + "CUP_B_Mastiff_HMG_GB_W", // Mastiff PPV HMG Woodland + "CUP_B_Mastiff_GMG_GB_W", // Mastiff PPV GMG Woodland + "CUP_B_FV432_Bulldog_GB_W_RWS", // FV432 Bulldog L111A1 RWS [Woodland] + "CUP_B_Jackal2_L2A1_GB_W", // Jackal 2 L2A1 Woodland + "CUP_B_Jackal2_GMG_GB_W", // Jackal 2 GMG Woodland + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_B_AH1_DL_BAF", // AH1 + "CUP_B_AW159_GB", // AW159 Wildcat (Green) + "CUP_B_CH47F_GB", // Chinook HC-4 + "CUP_B_Merlin_HC3A_Armed_GB" // Merlin HC3A (Armed) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_B_F35B_BAF", // F-35B Lightning II + "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) + "CUP_B_GR9_DYN_GB" // Harrier GR.9 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_CDF.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_CDF.sqf new file mode 100644 index 0000000..3536eb0 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_CDF.sqf @@ -0,0 +1,155 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_B_CDF_Commander_FST"; // Officer +opfor_squad_leader = "CUP_B_CDF_Officer_FST"; // Squad Leader +opfor_team_leader = "CUP_B_CDF_Soldier_TL_FST"; // Team Leader +opfor_sentry = "CUP_B_CDF_Militia_FST"; // Rifleman (Lite) +opfor_rifleman = "CUP_B_CDF_Soldier_FST"; // Rifleman +opfor_rpg = "CUP_B_CDF_Soldier_RPG18_FST"; // Rifleman (LAT) +opfor_grenadier = "CUP_B_CDF_Soldier_GL_FST"; // Grenadier +opfor_machinegunner = "CUP_B_CDF_Soldier_AR_FST"; // Autorifleman +opfor_heavygunner = "CUP_B_CDF_Soldier_MG_FST"; // Heavy Gunner +opfor_marksman = "CUP_B_CDF_Soldier_Marksman_FST"; // Marksman +opfor_sharpshooter = "CUP_B_CDF_Soldier_Marksman_FST"; // Sharpshooter +opfor_sniper = "CUP_B_CDF_Sniper_FST"; // Sniper +opfor_at = "CUP_B_CDF_Soldier_LAT_FST"; // AT Specialist +opfor_aa = "CUP_B_CDF_Soldier_AA_FST"; // AA Specialist +opfor_medic = "CUP_B_CDF_Medic_FST"; // Medic +opfor_engineer = "CUP_B_CDF_Engineer_FST"; // Engineer +opfor_paratrooper = "CUP_B_CDF_Soldier_RPG18_FST"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_B_UAZ_Unarmed_CDF"; // UAZ +opfor_mrap_armed = "CUP_B_UAZ_MG_CDF"; // UAZ (DShKM) +opfor_transport_helo = "CUP_B_Mi17_CDF"; // Mi-8MT +opfor_transport_truck = "CUP_B_Ural_CDF"; // Ural +opfor_ammobox_transport = "CUP_B_Ural_Open_CDF"; // Ural (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_B_Kamaz_Refuel_CDF"; // Kamaz 5350 (Fuel) +opfor_ammo_truck = "CUP_B_Kamaz_Reammo_CDF"; // Kamaz 5350 (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierCDF"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_B_CDF_Soldier_TL_FST", // Team Leader + "CUP_B_CDF_Militia_FST", // Militia + "CUP_B_CDF_Militia_FST", // Militia + "CUP_B_CDF_Militia_FST", // Militia + "CUP_B_CDF_Militia_FST", // Militia + "CUP_B_CDF_Militia_FST" // Militia +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) + "CUP_B_UAZ_AGS30_CDF" // UAZ (AGS-30) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) + "CUP_B_UAZ_AA_CDF", // UAZ (AA) + "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) + "CUP_B_UAZ_SPG9_CDF", // UAZ (SPG-9) + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR80_CDF", // BTR-80 + "CUP_B_BTR80_CDF", // BTR-80 + "CUP_B_BTR80A_CDF", // BTR-80A + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_ZSU23_Afghan_CDF", // ZSU-23-4 Afghanski + "CUP_B_ZSU23_CDF", // ZSU-23-4 + "CUP_B_T72_CDF", // T-72 + "CUP_B_T72_CDF" // T-72 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) + "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) + "CUP_B_MTLB_pk_CDF", // MT-LB LV + "CUP_B_MTLB_pk_CDF", // MT-LB LV + "CUP_B_BRDM2_CDF", // BRDM-2 + "CUP_B_BRDM2_CDF", // BRDM-2 + "CUP_B_Ural_ZU23_CDF", // Ural (ZU-23) + "CUP_B_BTR60_CDF" // BTR-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) + "CUP_B_UAZ_AA_CDF", // UAZ (AA) + "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) + "CUP_B_UAZ_SPG9_CDF", // UAZ (SPG-9) + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR80_CDF", // BTR-80 + "CUP_B_BTR80_CDF", // BTR-80 + "CUP_B_BTR80A_CDF", // BTR-80A + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_ZSU23_Afghan_CDF", // ZSU-23-4 Afghanski + "CUP_B_ZSU23_CDF", // ZSU-23-4 + "CUP_B_T72_CDF", // T-72 + "CUP_B_T72_CDF", // T-72 + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Mi17_CDF" // Mi-8MT +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) + "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) + "CUP_B_MTLB_pk_CDF", // MT-LB LV + "CUP_B_MTLB_pk_CDF", // MT-LB LV + "CUP_B_Ural_ZU23_CDF", // Ural (ZU-23) + "CUP_B_Ural_ZU23_CDF", // Ural (ZU-23) + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_Mi17_CDF" // Mi-8MT +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_B_BTR60_CDF", // BTR-60PB + "CUP_B_MTLB_pk_CDF", // MT-LB LV + "CUP_B_BMP2_CDF", // BMP-2 + "CUP_B_BTR80_CDF", // BTR-80 + "CUP_B_BTR80A_CDF", // BTR-80A + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Mi17_CDF" // Mi-8MT +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D + "CUP_B_Mi17_CDF" // Mi-8MT +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_B_SU34_CDF", // Su-34 + "CUP_B_Su25_Dyn_CDF" // Su-25 Frogfoot +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_ChDKZ.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_ChDKZ.sqf new file mode 100644 index 0000000..8dc46c7 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_ChDKZ.sqf @@ -0,0 +1,151 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_O_INS_Story_Lopotev"; // Officer +opfor_squad_leader = "CUP_O_INS_Commander"; // Squad Leader +opfor_team_leader = "CUP_O_INS_Officer"; // Team Leader +opfor_sentry = "CUP_O_INS_Soldier"; // Rifleman (Lite) +opfor_rifleman = "CUP_O_INS_Soldier_AK74"; // Rifleman +opfor_rpg = "CUP_O_INS_Soldier_Exp"; // Rifleman (LAT) +opfor_grenadier = "CUP_O_INS_Soldier_GL"; // Grenadier +opfor_machinegunner = "CUP_O_INS_Soldier"; // Autorifleman +opfor_heavygunner = "CUP_O_INS_Soldier_MG"; // Heavy Gunner +opfor_marksman = "CUP_O_INS_Woodlander2"; // Marksman +opfor_sharpshooter = "CUP_O_INS_Villager3"; // Sharpshooter +opfor_sniper = "CUP_O_INS_Sniper"; // Sniper +opfor_at = "CUP_O_INS_Soldier_AT"; // AT Specialist +opfor_aa = "CUP_O_INS_Soldier_AA"; // AA Specialist +opfor_medic = "CUP_O_INS_Medic"; // Medic +opfor_engineer = "CUP_O_INS_Soldier_Engineer"; // Engineer +opfor_paratrooper = "CUP_O_INS_Saboteur"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_O_UAZ_Unarmed_CHDKZ"; // UAZ +opfor_mrap_armed = "CUP_O_UAZ_MG_CHDKZ"; // UAZ (DShKM) +opfor_transport_helo = "CUP_O_Mi8_CHDKZ"; // Mi-8MT +opfor_transport_truck = "CUP_O_Ural_CHDKZ"; // Ural +opfor_ammobox_transport = "CUP_O_Ural_Open_CHDKZ"; // Ural (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_O_Ural_Refuel_CHDKZ"; // Ural (Refuel) +opfor_ammo_truck = "CUP_O_Ural_Reammo_CHDKZ"; // Ural (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierINS"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_O_INS_Villager3", // Farmer + "CUP_O_INS_Woodlander3", // Forester + "CUP_O_INS_Woodlander2", // Gamekeeper + "CUP_O_INS_Worker2", // Local + "CUP_O_INS_Villager4", // Villager + "CUP_O_INS_Woodlander1" // Woodman +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_O_Datsun_PK_Random" // Datsun 620 Pickup (PK) Woodland +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) + "CUP_O_UAZ_AA_CHDKZ", // UAZ (AA) + "CUP_O_UAZ_AGS30_CHDKZ", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_CHDKZ", // UAZ (SPG-9) + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR80_CHDKZ", // BTR-80 + "CUP_O_BTR80A_CHDKZ", // BTR-80A + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_ZSU23_Afghan_ChDKZ", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_ChDKZ", // ZSU-23-4 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T72_CHDKZ", // T-72 + "CUP_O_T72_CHDKZ" // T-72 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) + "CUP_O_Datsun_AA_Random", // Datsun 620 Pickup (AA) + "CUP_O_MTLB_pk_ChDKZ", // MT-LB LV + "CUP_O_BRDM2_CHDKZ", // BRDM-2 + "CUP_O_Ural_ZU23_CHDKZ", // Ural (ZU-23) + "CUP_O_BTR60_CHDKZ" // BTR-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) + "CUP_O_UAZ_AA_CHDKZ", // UAZ (AA) + "CUP_O_UAZ_AGS30_CHDKZ", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_CHDKZ", // UAZ (SPG-9) + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR80_CHDKZ", // BTR-80 + "CUP_O_BTR80A_CHDKZ", // BTR-80A + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_ZSU23_Afghan_ChDKZ", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_ChDKZ", // ZSU-23-4 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_T72_CHDKZ", // T-72 + "CUP_O_T72_CHDKZ", // T-72 + "CUP_O_Mi8_CHDKZ", // Mi-8MT + "CUP_O_Mi8_CHDKZ" // Mi-8MT +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) + "CUP_O_Datsun_AA_Random", // Datsun 620 Pickup (AA) + "CUP_O_MTLB_pk_ChDKZ", // MT-LB LV + "CUP_O_BRDM2_CHDKZ", // BRDM-2 + "CUP_O_Ural_ZU23_CHDKZ", // Ural (ZU-23) + "CUP_O_T55_CHDKZ", // T-55 + "CUP_O_BTR60_CHDKZ" // BTR-60PB +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_O_BTR60_CHDKZ", // BTR-60PB + "CUP_O_BTR80_CHDKZ", // BTR-80 + "CUP_O_BTR80A_CHDKZ", // BTR-80A + "CUP_O_MTLB_pk_ChDKZ", // MT-LB LV + "CUP_O_BMP2_CHDKZ", // BMP-2 + "CUP_O_Mi8_CHDKZ" // Mi-8MT +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_O_Mi8_CHDKZ" // Mi-8MT +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_O_Su25_Dyn_RU" // Su-25T Frogfoot +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_SLA.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_SLA.sqf new file mode 100644 index 0000000..ee27746 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_SLA.sqf @@ -0,0 +1,169 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_O_sla_Officer"; // Officer +opfor_squad_leader = "CUP_O_sla_Soldier_SL"; // Squad Leader +opfor_team_leader = "CUP_O_sla_Soldier_SL"; // Team Leader +opfor_sentry = "CUP_O_sla_Soldier"; // Rifleman (Lite) +opfor_rifleman = "CUP_O_SLA_Soldier_Backpack"; // Rifleman +opfor_rpg = "CUP_O_sla_Soldier_AT"; // Rifleman (LAT) +opfor_grenadier = "CUP_O_sla_Soldier_GL"; // Grenadier +opfor_machinegunner = "CUP_O_sla_Soldier_AR"; // Autorifleman +opfor_heavygunner = "CUP_O_sla_Soldier_MG"; // Heavy Gunner +opfor_marksman = "CUP_O_sla_Sniper"; // Marksman +opfor_sharpshooter = "CUP_O_SLA_Sniper_SVD_Night"; // Sharpshooter +opfor_sniper = "CUP_O_sla_Sniper_KSVK"; // Sniper +opfor_at = "CUP_O_sla_Soldier_HAT"; // AT Specialist +opfor_aa = "CUP_O_sla_Soldier_AA"; // AA Specialist +opfor_medic = "CUP_O_sla_Medic"; // Medic +opfor_engineer = "CUP_O_sla_Engineer"; // Engineer +opfor_paratrooper = "CUP_O_sla_Soldier_LAT"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_O_UAZ_Unarmed_SLA"; // UAZ +opfor_mrap_armed = "CUP_O_UAZ_MG_SLA"; // UAZ (DShKM) +opfor_transport_helo = "CUP_O_Mi8_SLA_1"; // Mi-8MT +opfor_transport_truck = "CUP_O_Ural_SLA"; // Ural +opfor_ammobox_transport = "CUP_O_Ural_Open_SLA"; // Ural (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_O_Ural_Refuel_SLA"; // Ural (Refuel) +opfor_ammo_truck = "CUP_O_Ural_Reammo_SLA"; // Ural (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierNorth"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_O_sla_Soldier_militia", // Militiaman + "CUP_O_sla_Soldier_militia", // Militiaman + "CUP_O_sla_Soldier_LAT_militia", // Militiaman (RPG-18) + "CUP_O_sla_Soldier_AA_militia", // AA Specialist + "CUP_O_sla_Soldier_AT_militia", // Militiaman (RPG-7) + "CUP_O_sla_Soldier_AR_militia", // Militia Automatic Rifleman + "CUP_O_sla_Soldier_GL_militia", // Militia Grenadier + "CUP_O_sla_Medic_militia", // Militia Medic + "CUP_O_sla_Engineer_militia" // Militia Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_O_UAZ_MG_SLA" // UAZ (DShKM) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_ZSU23_SLA", // ZSU-23-4 + "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski + "CUP_O_T55_SLA", // T-55 + "CUP_O_T55_SLA", // T-55 + "CUP_O_T72_SLA", // T-72 + "CUP_O_T72_SLA" // T-72 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_MTLB_pk_SLA" // MT-LB LV +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_ZSU23_SLA", // ZSU-23-4 + "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski + "CUP_O_T55_SLA", // T-55 + "CUP_O_T55_SLA", // T-55 + "CUP_O_T72_SLA", // T-72 + "CUP_O_T72_SLA", // T-72 + "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_Mi8_SLA_2", // Mi-8MTV3 + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_gunship_SLA" // UH-1H (Gunship) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_MTLB_pk_SLA", // MT-LB LV + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA" // UH-1H +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_Mi8_SLA_2", // Mi-8MTV3 + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_MTLB_pk_SLA", // MT-LB LV + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA" // UH-1H +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA", // UH-1H + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_Mi8_SLA_2" // Mi-8MTV3 +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_O_Su25_Dyn_SLA", // Su-25 Frogfoot + "CUP_O_SU34_SLA" // Su-34 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/CUP_TakiArmy.sqf b/kp_liberation.brf_sumava/presets/opfor/CUP_TakiArmy.sqf new file mode 100644 index 0000000..f952b1b --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/CUP_TakiArmy.sqf @@ -0,0 +1,189 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "CUP_O_TK_Officer"; // Officer +opfor_squad_leader = "CUP_O_TK_Soldier_SL"; // Squad Leader +opfor_team_leader = "CUP_O_TK_Soldier_SL"; // Team Leader +opfor_sentry = "CUP_O_TK_Soldier"; // Rifleman (Lite) +opfor_rifleman = "CUP_O_TK_Soldier_Backpack"; // Rifleman +opfor_rpg = "CUP_O_TK_Soldier_AT"; // Rifleman (LAT) +opfor_grenadier = "CUP_O_TK_Soldier_GL"; // Grenadier +opfor_machinegunner = "CUP_O_TK_Soldier_AR"; // Autorifleman +opfor_heavygunner = "CUP_O_TK_Soldier_MG"; // Heavy Gunner +opfor_marksman = "CUP_O_TK_Sniper"; // Marksman +opfor_sharpshooter = "CUP_O_TK_Sniper_SVD_Night"; // Sharpshooter +opfor_sniper = "CUP_O_TK_Sniper_KSVK"; // Sniper +opfor_at = "CUP_O_TK_Soldier_HAT"; // AT Specialist +opfor_aa = "CUP_O_TK_Soldier_AA"; // AA Specialist +opfor_medic = "CUP_O_TK_Medic"; // Medic +opfor_engineer = "CUP_O_TK_Engineer"; // Engineer +opfor_paratrooper = "CUP_O_TK_Soldier_AKS_74_GOSHAWK"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "CUP_O_LR_Transport_TKA"; // Land Rover 110 (Transport) +opfor_mrap_armed = "CUP_O_LR_MG_TKA"; // Land Rover 110 (M2) +opfor_transport_helo = "CUP_O_UH1H_TKA"; // UH-1H +opfor_transport_truck = "CUP_O_Ural_TKA"; // Ural +opfor_ammobox_transport = "CUP_O_Ural_Open_TKA"; // Ural (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "CUP_O_Ural_Refuel_TKA"; // Ural (Refuel) +opfor_ammo_truck = "CUP_O_Ural_Reammo_TKA"; // Ural (Ammo) +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagCarrierTakistan_EP1"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "CUP_O_TK_INS_Soldier_FNFAL", // Militiaman (FN FAL) + "CUP_O_TK_INS_Soldier", // Militiaman (AK-74) + "CUP_O_TK_INS_Soldier_GL", // Militiaman (AK-74 GL) + "CUP_O_TK_INS_Soldier_TL", // Team Leader + "CUP_O_TK_INS_Soldier_AT", // Militiaman (RPG-7) + "CUP_O_TK_INS_Soldier_AR", // Automatic Rifleman + "CUP_O_TK_INS_Sniper", // Sniper + "CUP_O_TK_INS_Guerilla_Medic", // Bonesetter + "CUP_O_TK_INS_Mechanic" // Militia Mechanic +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "CUP_O_LR_MG_TKM", // Land Rover 110 (M2) + "CUP_O_LR_MG_TKM", // Land Rover 110 (M2) + "CUP_O_Hilux_AGS30_TK_INS", // Hilux (AGS-30) + "CUP_O_Hilux_DSHKM_TK_INS", // Hilux (DShKM) + "CUP_O_Hilux_M2_TK_INS", // Hilux (M2) + "CUP_O_Hilux_SPG9_TK_INS", // Hilux (SPG-9) + "CUP_O_Hilux_armored_BMP1_TK_INS", // Hilux Armored (BMP-1) + "CUP_O_Hilux_armored_BTR60_TK_INS", // Hilux Armored (BTR-60) + "CUP_O_Hilux_armored_zu23_TK_INS", // Hilux Armored (ZU-23-2) + "CUP_O_BTR40_MG_TKM", // BTR-40 (DSHKM) + "CUP_O_MTLB_pk_TK_MILITIA" // MT-LB LV +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_TKA", // UAZ (SPG-9) + "CUP_O_LR_AA_TKA", // Land Rover 110 (AA) + "CUP_O_BTR80_TK", // BTR-80 + "CUP_O_BTR80A_TK", // BTR-80A + "CUP_O_BMP1P_TKA", // BMP-1P + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_ZSU23_Afghan_TK", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_TK", // ZSU-23-4 + "CUP_O_BMP2_ZU_TKA", // BMP-2 ZU-23 + "CUP_O_T55_TK", // T-55 + "CUP_O_T72_TKA", // T-72 + "CUP_O_T72_TKA" // T-72 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_TKA", // UAZ (SPG-9) + "CUP_O_MTLB_pk_TKA", // MT-LB LV + "CUP_O_Ural_ZU23_TKA", // Ural (ZU-23) + "CUP_O_Ural_ZU23_TKA", // Ural (ZU-23) + "CUP_O_BTR60_TK", // BTR-60PB + "CUP_O_BRDM2_TKA", // BRDM-2 + "CUP_O_BRDM2_TKA", // BRDM-2 + "CUP_O_BTR40_MG_TKA", // BTR-40 (DSHKM) + "CUP_O_BMP1_TKA", // BMP-1 + "CUP_O_BMP1P_TKA", // BMP-1P + "CUP_O_M113_TKA" // M113A3 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) + "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_TKA", // UAZ (SPG-9) + "CUP_O_LR_AA_TKA", // Land Rover 110 (AA) + "CUP_O_BTR60_TK", // BTR-60PB + "CUP_O_BTR80_TK", // BTR-80 + "CUP_O_BTR80A_TK", // BTR-80A + "CUP_O_BMP1P_TKA", // BMP-1P + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_BMP2_TKA", // BMP-2 + "CUP_O_ZSU23_Afghan_TK", // ZSU-23-4 Afghanski + "CUP_O_ZSU23_TK", // ZSU-23-4 + "CUP_O_T55_TK", // T-55 + "CUP_O_T55_TK", // T-55 + "CUP_O_T72_TKA", // T-72 + "CUP_O_T72_TKA", // T-72 + "CUP_O_Mi17_TK", // Mi-8MT + "CUP_O_Mi24_D_Dynamic_TK", // Mi-24D + "CUP_O_UH1H_armed_TKA", // UH-1H (Armed) + "CUP_O_UH1H_gunship_SLA_TKA", // UH-1H (Gunship) + "CUP_O_Mi24_D_Dynamic_TK" // Mi-24D +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) + "CUP_O_MTLB_pk_TKA", // MT-LB LV + "CUP_O_BTR60_TK", // BTR-60PB + "CUP_O_M113_TKA", // M113A3 + "CUP_O_BTR40_MG_TKA", // BTR-40 (DSHKM) + "CUP_O_BRDM2_TKA", // BRDM-2 + "CUP_O_BMP1_TKA", // BMP-1 + "CUP_O_BMP1P_TKA", // BMP-1P + "CUP_O_T34_TKA", // T-34-85M + "CUP_O_T34_TKA", // T-34-85M + "CUP_O_BMP2_ZU_TKA", // BMP-2 ZU-23 + "CUP_O_Ural_ZU23_TKA", // Ural (ZU-23) + "CUP_O_UH1H_TKA", // UH-1H + "CUP_O_UH1H_gunship_SLA_TKA", // UH-1H (Gunship) + "CUP_O_UH1H_armed_TKA" // UH-1H (Armed) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "CUP_O_BMP1_TKA", // BMP-1 + "CUP_O_M113_TKA", // M113A3 + "CUP_O_MTLB_pk_TKA", // MT-LB LV + "CUP_O_UH1H_TKA", // UH-1H + "CUP_O_UH1H_armed_TKA", // UH-1H (Armed) + "CUP_O_BTR60_TK", // BTR-60PB + "CUP_O_BTR80_TK", // BTR-80 + "CUP_O_BTR80A_TK", // BTR-80A + "CUP_O_Mi24_D_Dynamic_TK", // Mi-24D + "CUP_O_Mi17_TK", // Mi-8MT + "CUP_O_T34_TKA", // T-34-85M + "CUP_O_BMP1P_TKA", // BMP-1P + "CUP_O_BMP2_TKA" // BMP-2 +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "CUP_O_UH1H_TKA", // UH-1H + "CUP_O_UH1H_armed_TKA", // UH-1H (Armed) + "CUP_O_UH1H_gunship_SLA_TKA", // UH-1H (Gunship) + "CUP_O_Mi24_D_Dynamic_TK", // Mi-24D + "CUP_O_Mi17_TK" // Mi-8MT +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "CUP_O_L39_TK", // L-39ZA + "CUP_O_Su25_Dyn_TKA" // Su-25 Frogfoot +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/SLA.sqf b/kp_liberation.brf_sumava/presets/opfor/SLA.sqf new file mode 100644 index 0000000..f982643 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/SLA.sqf @@ -0,0 +1,142 @@ +/* + Needed Mods: + - Project OPFOR + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "LOP_SLA_Infantry_Officer"; +opfor_squad_leader = "LOP_SLA_Infantry_SL"; +opfor_team_leader = "LOP_SLA_Infantry_TL"; +opfor_sentry = "LOP_SLA_Infantry_Rifleman"; +opfor_rifleman = "LOP_SLA_Infantry_Rifleman_2"; +opfor_rpg = "LOP_SLA_Infantry_AT"; +opfor_grenadier = "LOP_SLA_Infantry_GL"; +opfor_machinegunner = "LOP_SLA_Infantry_MG"; +opfor_heavygunner = "LOP_SLA_Infantry_MG"; +opfor_marksman = "LOP_SLA_Infantry_Marksman"; +opfor_sharpshooter = "LOP_SLA_Infantry_Marksman"; +opfor_sniper = "LOP_SLA_Infantry_Marksman"; +opfor_at = "LOP_SLA_Infantry_AT"; +opfor_aa = "LOP_SLA_Infantry_AA"; +opfor_medic = "LOP_SLA_Infantry_Corpsman"; +opfor_engineer = "LOP_SLA_Infantry_Engineer"; +opfor_paratrooper = "LOP_SLA_Infantry_Rifleman"; + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "LOP_SLA_UAZ"; +opfor_mrap_armed = "LOP_SLA_UAZ_DshKM"; +opfor_transport_helo = "LOP_SLA_Mi8MT_Cargo"; +opfor_transport_truck = "LOP_SLA_Ural"; +opfor_ammobox_transport = "LOP_SLA_Ural_open"; //-> Has to be able to transport resource crates! +opfor_fuel_truck = "rhs_gaz66_ammo_vmf"; +opfor_ammo_truck = "rhs_gaz66_ammo_vmf"; +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; +opfor_flag = "lop_Flag_sla_F"; + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "LOP_SLA_Infantry_Rifleman", + "LOP_SLA_Infantry_Rifleman_2", + "LOP_SLA_Infantry_GL", + "LOP_SLA_Infantry_Officer", + "LOP_SLA_Infantry_TL", + "LOP_SLA_Infantry_SL", + "LOP_SLA_Infantry_AA", + "LOP_SLA_Infantry_AT", + "LOP_SLA_Infantry_Marksman", + "LOP_SLA_Infantry_Corpsman", + "LOP_SLA_Infantry_Engineer" +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "LOP_SLA_UAZ_SPG", + "LOP_SLA_UAZ_DshKM", + "LOP_SLA_UAZ_AGS", + "LOP_SLA_UAZ", + "LOP_SLA_UAZ_Open" +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "LOP_SLA_UAZ_SPG", + "LOP_SLA_UAZ_DshKM", + "LOP_SLA_UAZ_AGS", + "LOP_SLA_BMP2D", + "LOP_SLA_BMP2", + "LOP_SLA_BMP1D", + "LOP_SLA_BMP1", + "LOP_SLA_BTR60", + "LOP_SLA_BTR70", + "LOP_SLA_ZSU234", + "LOP_SLA_T72BB", + "LOP_SLA_T72BA" +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "LOP_SLA_UAZ_SPG", + "LOP_SLA_UAZ_DshKM", + "LOP_SLA_UAZ_AGS", + "LOP_SLA_BTR60", + "LOP_SLA_BMP2" +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "LOP_SLA_UAZ_SPG", + "LOP_SLA_UAZ_DshKM", + "LOP_SLA_UAZ_AGS", + "LOP_SLA_Ural_open", + "LOP_SLA_Ural", + "LOP_SLA_BTR60", + "LOP_SLA_BMP1", + "LOP_SLA_ZSU234", + "LOP_SLA_T72BA", + "LOP_SLA_T72BB", + "LOP_SLA_Mi8MTV3_FAB", + "LOP_SLA_Mi8MT_Cargo", + "LOP_SLA_Mi8MTV3_UPK23" +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "LOP_SLA_UAZ_DshKM", + "LOP_SLA_UAZ_AGS", + "LOP_SLA_Ural", + "LOP_SLA_BTR70", + "LOP_SLA_BMP1D", + "LOP_SLA_BMP2D", + "LOP_SLA_ZSU234", + "LOP_SLA_Mi8MTV3_UPK23", + "LOP_SLA_Mi8MT_Cargo" +]; + + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "LOP_SLA_Ural_open", + "LOP_SLA_Ural", + "LOP_SLA_Mi8MTV3_FAB", + "LOP_SLA_Mi8MT_Cargo", + "LOP_SLA_Mi8MTV3_UPK23" +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "LOP_SLA_Mi8MTV3_FAB", + "LOP_SLA_Mi8MT_Cargo", + "LOP_SLA_Mi8MTV3_UPK23" +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = []; diff --git a/kp_liberation.brf_sumava/presets/opfor/aaf.sqf b/kp_liberation.brf_sumava/presets/opfor/aaf.sqf new file mode 100644 index 0000000..d876131 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/aaf.sqf @@ -0,0 +1,166 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "I_officer_F"; // Officer +opfor_squad_leader = "I_Soldier_SL_F"; // Squad Leader +opfor_team_leader = "I_Soldier_TL_F"; // Team Leader +opfor_sentry = "I_Soldier_lite_F"; // Rifleman (Lite) +opfor_rifleman = "I_soldier_F"; // Rifleman +opfor_rpg = "I_Soldier_LAT2_F"; // Rifleman (LAT) +opfor_grenadier = "I_Soldier_GL_F"; // Grenadier +opfor_machinegunner = "I_Soldier_AR_F"; // Autorifleman +opfor_heavygunner = "I_Soldier_AR_F"; // Heavy Gunner +opfor_marksman = "I_Soldier_M_F"; // Marksman +opfor_sharpshooter = "I_Soldier_M_F"; // Sharpshooter +opfor_sniper = "I_ghillie_sard_F"; // Sniper +opfor_at = "I_Soldier_AT_F"; // AT Specialist +opfor_aa = "I_Soldier_AA_F"; // AA Specialist +opfor_medic = "I_medic_F"; // Combat Life Saver +opfor_engineer = "I_engineer_F"; // Engineer +opfor_paratrooper = "B_soldier_PG_F"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "I_MRAP_03_F"; // M-ATV +opfor_mrap_armed = "I_MRAP_03_hmg_F"; // MATV (HMG) +opfor_transport_helo = "I_Heli_Transport_02_F"; // Merlin +opfor_transport_truck = "I_Truck_02_covered_F"; // Kamaz Transport (Covered) +opfor_ammobox_transport = "I_Truck_02_transport_F"; // Kamaz Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "I_Truck_02_fuel_F"; // Kamaz Fuel +opfor_ammo_truck = "I_Truck_02_ammo_F"; // Kamz Ammo +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod +opfor_flag = "Flag_AAF_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "I_Soldier_lite_F", // Rifleman (Lite) + "I_Soldier_lite_F", // Rifleman (Lite) + "I_soldier_F", // Rifleman + "I_soldier_F", // Rifleman + "I_Soldier_LAT2_F", // Rifleman (AT) + "I_Soldier_AR_F", // Autorifleman + "I_Soldier_M_F", // Marksman + "I_medic_F", // Medic + "I_engineer_F" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "B_LSV_01_armed_F", // Polaris DAGOR (XM312) + "B_LSV_01_armed_F", // Polaris DAGOR (XM312) + "I_MRAP_03_hmg_F", // MATV (HMG) + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_AT_F" // Wiesel ATGM +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_MRAP_03_gmg_F", // M-ATV (GMG) + "B_LSV_01_AT_F", // Polaris (Mini-Spike PZAbw) + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "I_APC_tracked_03_cannon_F", // Warrior + "I_APC_tracked_03_cannon_F", // Warrior + "I_LT_01_AA_F", // Wiesel AA + "B_APC_Tracked_01_AA_F", // Bardelas + "I_MBT_03_cannon_F", // Leopard + "I_MBT_03_cannon_F", // Leopard + "B_AFV_Wheeled_01_up_cannon_F", // Rooikat 120 UP + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_AT_F" // Wiesel ATGM +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "I_APC_tracked_03_cannon_F", // Warrior + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_AT_F" // Wiesel ATGM +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_MRAP_03_gmg_F", // M-ATV (GMG) + "I_MRAP_03_gmg_F", // M-ATV (GMG) + "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) + "I_Truck_02_transport_F", // Kamaz Transport + "I_Truck_02_covered_F", // Kamaz Transport (Covered) + "I_APC_tracked_03_cannon_F", // Warrior + "I_APC_tracked_03_cannon_F", // Warrior + "I_LT_01_AA_F", // Wiesel AA + "B_APC_Tracked_01_AA_F", // Bardelas + "I_MBT_03_cannon_F", // Leopard + "I_MBT_03_cannon_F", // Leopard + "I_MBT_03_cannon_F", // Leopard + "B_MBT_01_TUSK_F", // Merkava Mk IV LIC + "I_Heli_light_03_dynamicLoadout_F", // Wildcat (Armed) + "I_Heli_light_03_dynamicLoadout_F", // Wildcat (Armed) + "I_Heli_Transport_02_F", // Merlin + "B_Heli_Attack_01_dynamicLoadout_F", // RAH-66 Comanche + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_AT_F" // Wiesel ATGM +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_MRAP_03_hmg_F", // M-ATV (HMG) + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_cannon_F", // Wiesel MK20 + "I_LT_01_AT_F", // Wiesel ATGM + "I_Truck_02_transport_F", // Kamaz Transport + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "I_APC_tracked_03_cannon_F", // Warrior + "B_APC_Tracked_01_AA_F", // Bardelas + "I_LT_01_AA_F", // Wiesel AA + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) + "I_Heli_Transport_02_F" +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "I_Truck_02_transport_F", // Kamaz Transport + "I_Truck_02_covered_F", // Kamaz Transport (Covered) + "I_APC_Wheeled_03_cannon_F", // SPz Pandur + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (sand) + "I_Heli_Transport_02_F" // Merlin +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "I_Heli_light_03_dynamicLoadout_F", // Wildcat (Armed) + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) + "B_Heli_Attack_01_dynamicLoadout_F", // RAH-66 Comanche + "B_Heli_Transport_01_F", // UH-80 Ghost Hawk + "I_Heli_Transport_02_F", // Merlin + "B_Heli_Transport_03_unarmed_F" // CH-47l Chinook (unarmed) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "B_Plane_CAS_01_dynamicLoadout_F", // A-10D Thunderbolt II (CAS) + "I_Plane_Fighter_03_dynamicLoadout_F", // L-159 + "I_Plane_Fighter_04_F" // Gripen +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/apex.sqf b/kp_liberation.brf_sumava/presets/opfor/apex.sqf new file mode 100644 index 0000000..2cbb393 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/apex.sqf @@ -0,0 +1,146 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "O_T_Officer_F"; // Officer +opfor_squad_leader = "O_T_Soldier_SL_F"; // Squad Leader +opfor_team_leader = "O_T_Soldier_TL_F"; // Team Leader +opfor_sentry = "O_T_Soldier_F"; // Rifleman +opfor_rifleman = "O_T_Soldier_F"; // Rifleman +opfor_rpg = "O_T_Soldier_LAT_F"; // Rifleman (LAT) +opfor_grenadier = "O_T_Soldier_GL_F"; // Grenadier +opfor_machinegunner = "O_T_Soldier_AR_F"; // Autorifleman +opfor_heavygunner = "O_T_Soldier_AR_F"; // Autorifleman +opfor_marksman = "O_T_Soldier_M_F"; // Marksman +opfor_sharpshooter = "O_T_Soldier_M_F"; // Marksman +opfor_sniper = "O_T_Sniper_F"; // Sniper +opfor_at = "O_T_Soldier_AT_F"; // AT Specialist +opfor_aa = "O_T_Soldier_AA_F"; // AA Specialist +opfor_medic = "O_T_Medic_F"; // Combat Life Saver +opfor_engineer = "O_T_Engineer_F"; // Engineer +opfor_paratrooper = "O_T_Soldier_PG_F"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "O_T_LSV_02_unarmed_F"; // Qilin +opfor_mrap_armed = "O_T_LSV_02_armed_F"; // Qilin (HMG) +opfor_transport_helo = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) +opfor_transport_truck = "O_T_Truck_03_covered_ghex_F"; // Tempest Transport (Covered) +opfor_ammobox_transport = "O_T_Truck_03_transport_ghex_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "O_T_Truck_03_fuel_ghex_F"; // Tempest Fuel +opfor_ammo_truck = "O_T_Truck_03_ammo_ghex_F"; // Tempest Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "Flag_CSAT_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "O_soldierU_F", // Rifleman (Lite) + "O_soldierU_F", // Rifleman (Lite) + "O_soldierU_F", // Rifleman + "O_soldierU_F", // Rifleman + "O_soldierU_LAT_F", // Rifleman (AT) + "O_soldierU_AR_F", // Autorifleman + "O_soldierU_M_F", // Marksman + "O_soldierU_medic_F", // Medic + "O_engineer_U_F" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "O_T_LSV_02_armed_F" // Qilin (armed) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels) +opfor_vehicles = [ + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) + "O_T_LSV_02_AT_F", // Qilin (AT) + "O_T_APC_Tracked_02_cannon_ghex_F", // BTR-K Kamysh + "O_T_APC_Tracked_02_cannon_ghex_F", // BTR-K Kamysh + "O_T_APC_Tracked_02_AA_ghex_F", // ZSU-39 Tigris + "O_T_APC_Tracked_02_AA_ghex_F", // ZSU-39 Tigris + "O_T_MBT_02_cannon_ghex_F", // T-100 Varsuk + "O_T_MBT_02_cannon_ghex_F", // T-100 Varsuk + "O_T_MBT_04_cannon_F", // T-140 Angara + "O_T_MBT_04_command_F" // T-140K Angara +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_LSV_02_AT_F", // Qilin (AT) + "O_T_APC_Wheeled_02_rcws_ghex_F", // MSE-3 Marid + "O_T_APC_Tracked_02_cannon_ghex_F" // BTR-K Kamysh +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) + "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) + "O_T_LSV_02_AT_F", // Qilin (AT) + "O_T_Truck_03_transport_ghex_F", // Tempest Transport + "O_T_Truck_03_covered_ghex_F", // Tempest Transport (Covered) + "O_T_APC_Tracked_02_cannon_ghex_F", // BTR-K Kamysh + "O_T_APC_Tracked_02_cannon_ghex_F", // BTR-K Kamysh + "O_T_APC_Tracked_02_AA_ghex_F", // ZSU-39 Tigris + "O_T_APC_Tracked_02_AA_ghex_F", // ZSU-39 Tigris + "O_T_MBT_02_cannon_ghex_F", // T-100 Varsuk + "O_T_MBT_02_cannon_ghex_F", // T-100 Varsuk + "O_T_MBT_04_cannon_F", // T-140 Angara + "O_T_MBT_04_command_F", // T-140K Angara + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Attack_02_dynamicLoadout_F", // Mi-48 Kajman + "O_T_VTOL_02_infantry_dynamicLoadout_F" // Y-32 Xi'an (Infantry) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "O_T_MRAP_02_ghex_F", // Ifrit + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) + "O_T_Truck_03_transport_ghex_F", // Tempest Transport + "O_T_APC_Wheeled_02_rcws_ghex_F", // MSE-3 Marid + "O_T_APC_Tracked_02_cannon_ghex_F", // BTR-K Kamysh + "O_T_APC_Tracked_02_AA_ghex_F", // ZSU-39 Tigris + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F" // Mi-290 Taru (Bench) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "O_T_Truck_03_transport_ghex_F", // Tempest Transport + "O_T_Truck_03_covered_ghex_F", // Tempest Transport (Covered) + "O_T_APC_Wheeled_02_rcws_ghex_F", // MSE-3 Marid + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_T_VTOL_02_infantry_dynamicLoadout_F" // Y-32 Xi'an (Infantry) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Attack_02_dynamicLoadout_F", // Mi-48 Kajman + "O_T_VTOL_02_infantry_dynamicLoadout_F" // Y-32 Xi'an (Infantry) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "O_Plane_CAS_02_dynamicLoadout_F", // To-199 Neophron (CAS) + "O_Plane_Fighter_02_F" // To-201 Shikra +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/custom.sqf b/kp_liberation.brf_sumava/presets/opfor/custom.sqf new file mode 100644 index 0000000..f37cd8a --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/custom.sqf @@ -0,0 +1,142 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "O_officer_F"; // Officer +opfor_squad_leader = "O_Soldier_SL_F"; // Squad Leader +opfor_team_leader = "O_Soldier_TL_F"; // Team Leader +opfor_sentry = "O_Soldier_lite_F"; // Rifleman (Lite) +opfor_rifleman = "O_Soldier_F"; // Rifleman +opfor_rpg = "O_Soldier_LAT_F"; // Rifleman (LAT) +opfor_grenadier = "O_Soldier_GL_F"; // Grenadier +opfor_machinegunner = "O_Soldier_AR_F"; // Autorifleman +opfor_heavygunner = "O_HeavyGunner_F"; // Heavy Gunner +opfor_marksman = "O_soldier_M_F"; // Marksman +opfor_sharpshooter = "O_Sharpshooter_F"; // Sharpshooter +opfor_sniper = "O_sniper_F"; // Sniper +opfor_at = "O_Soldier_AT_F"; // AT Specialist +opfor_aa = "O_Soldier_AA_F"; // AA Specialist +opfor_medic = "O_medic_F"; // Combat Life Saver +opfor_engineer = "O_engineer_F"; // Engineer +opfor_paratrooper = "O_soldier_PG_F"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "O_MRAP_02_F"; // Ifrit +opfor_mrap_armed = "O_MRAP_02_hmg_F"; // Ifrit (HMG) +opfor_transport_helo = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) +opfor_transport_truck = "O_Truck_03_covered_F"; // Tempest Transport (Covered) +opfor_ammobox_transport = "O_Truck_03_transport_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "O_Truck_03_fuel_F"; // Tempest Fuel +opfor_ammo_truck = "O_Truck_03_ammo_F"; // Tempest Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "Flag_CSAT_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "O_soldierU_F", // Rifleman (Lite) + "O_soldierU_F", // Rifleman (Lite) + "O_soldierU_F", // Rifleman + "O_soldierU_F", // Rifleman + "O_soldierU_LAT_F", // Rifleman (AT) + "O_soldierU_AR_F", // Autorifleman + "O_soldierU_M_F", // Marksman + "O_soldierU_medic_F", // Medic + "O_engineer_U_F" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "O_LSV_02_armed_F" // Qilin (armed) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_MRAP_02_hmg_F", // Ifrit (GMG) + "O_MRAP_02_gmg_F", // Ifrit (GMG) + "O_LSV_02_AT_F", // Qilin (AT) + "O_APC_Tracked_02_cannon_F", // BTR-K Kamysh + "O_APC_Tracked_02_cannon_F", // BTR-K Kamysh + "O_APC_Tracked_02_AA_F", // ZSU-39 Tigris + "O_APC_Tracked_02_AA_F", // ZSU-39 Tigris + "O_MBT_02_cannon_F", // T-100 Varsuk + "O_MBT_02_cannon_F", // T-100 Varsuk + "O_MBT_04_cannon_F", // T-140 Angara + "O_MBT_04_command_F" // T-140K Angara +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_LSV_02_AT_F", // Qilin (AT) + "O_APC_Wheeled_02_rcws_F", // MSE-3 Marid + "O_APC_Tracked_02_cannon_F" // BTR-K Kamysh +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_MRAP_02_gmg_F", // Ifrit (GMG) + "O_MRAP_02_gmg_F", // Ifrit (GMG) + "O_LSV_02_AT_F", // Qilin (AT) + "O_Truck_03_transport_F", // Tempest Transport + "O_Truck_03_covered_F", // Tempest Transport (Covered) + "O_APC_Tracked_02_cannon_F", // BTR-K Kamysh + "O_APC_Tracked_02_cannon_F", // BTR-K Kamysh + "O_APC_Tracked_02_AA_F", // ZSU-39 Tigris + "O_APC_Tracked_02_AA_F", // ZSU-39 Tigris + "O_MBT_02_cannon_F", // T-100 Varsuk + "O_MBT_02_cannon_F", // T-100 Varsuk + "O_MBT_04_cannon_F", // T-140 Angara + "O_MBT_04_command_F", // T-140K Angara + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Attack_02_dynamicLoadout_F" // Mi-48 Kajman +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_MRAP_02_hmg_F", // Ifrit (HMG) + "O_Truck_03_transport_F", // Tempest Transport + "O_APC_Wheeled_02_rcws_F", // MSE-3 Marid + "O_APC_Tracked_02_cannon_F", // BTR-K Kamysh + "O_APC_Tracked_02_AA_F", // ZSU-39 Tigris + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F" // Mi-290 Taru (Bench) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "O_Truck_03_transport_F", // Tempest Transport + "O_Truck_03_covered_F", // Tempest Transport (Covered) + "O_APC_Wheeled_02_rcws_F", // MSE-3 Marid + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F" // Po-30 Orca (Armed) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) + "O_Heli_Attack_02_dynamicLoadout_F" // Mi-48 Kajman +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "O_Plane_CAS_02_dynamicLoadout_F", // To-199 Neophron (CAS) + "O_Plane_Fighter_02_F" // To-201 Shikra +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/gm_east.sqf b/kp_liberation.brf_sumava/presets/opfor/gm_east.sqf new file mode 100644 index 0000000..09c5a8c --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/gm_east.sqf @@ -0,0 +1,137 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Aircraft (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +// Enemy infantry classes +opfor_officer = "gm_gc_army_officer_80_gry"; // Officer +opfor_squad_leader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Squad Leader +opfor_team_leader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Team Leader +opfor_sentry = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman (Lite) +opfor_rifleman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman +opfor_rpg = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // Rifleman (LAT) +opfor_grenadier = "gm_gc_army_demolition_mpiaks74n_80_str"; // Grenadier +opfor_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_str"; // Autorifleman +opfor_heavygunner = "gm_gc_army_machinegunner_pk_80_str"; // Heavy Gunner +opfor_marksman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Marksman +opfor_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sharpshooter +opfor_sniper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sniper +opfor_at = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // AT Specialist +opfor_aa = "gm_gc_army_demolition_mpiaks74n_80_str"; // AA Specialist +opfor_medic = "gm_gc_army_rifleman_mpiak74n_80_str"; // Combat Life Saver +opfor_engineer = "gm_gc_army_engineer_mpiaks74n_80_str"; // Engineer +opfor_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "gm_gc_army_brdm2um"; // SPW40-P2UM +opfor_mrap_armed = "gm_gc_army_brdm2"; // SPW-40P2 +opfor_transport_helo = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport +opfor_transport_truck = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport +opfor_ammobox_transport = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! +opfor_fuel_truck = "gm_gc_army_ural4320_refuel"; // Truck gel. 5 Fuel +opfor_ammo_truck = "gm_gc_army_ural4320_reammo"; // Truck gel. 5 Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "FlagPole_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman (Lite) + "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman (Lite) + "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman + "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman + "gm_gc_army_antitank_mpiak74n_rpg7_80_str", // Rifleman (AT) + "gm_gc_army_machinegunner_lmgrpk_80_str", // Autorifleman + "gm_gc_army_rifleman_mpiak74n_80_str", // Marksman + "gm_gc_army_rifleman_mpiak74n_80_str", // Medic + "gm_gc_army_engineer_mpiaks74n_80_str" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "gm_gc_army_brdm2um" // SPW40-P2UM +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "gm_gc_army_brdm2um", // SPW40-P2UM + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_btr60pa", // SPW-60PA + "gm_gc_army_btr60pb", // SPW-60PB + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_zsu234v1", // ZSU-23-4V1 + "gm_gc_army_t55a", // T55A + "gm_gc_army_t55a" // T55A +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "gm_gc_army_brdm2um", // SPW40-P2UM + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_btr60pa", // SPW-60PA + "gm_gc_army_btr60pb" // SPW-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport + "gm_gc_army_brdm2um", // SPW40-P2UM + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_btr60pa", // SPW-60PA + "gm_gc_army_btr60pb", // SPW-60PB + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_zsu234v1", // ZSU-23-4V1 + "gm_gc_army_t55a", // T55A + "gm_gc_army_t55a", // T55A + "len_mi8amt_nva" // Mi8amt +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport + "gm_gc_army_brdm2um", // SPW40-P2UM + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_btr60pa", // SPW-60PA + "gm_gc_army_btr60pb", // SPW-60PB + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_army_zsu234v1" // ZSU-23-4V1 +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport + "gm_gc_army_btr60pa", // SPW-60PA + "gm_gc_army_btr60pb", // SPW-60PB + "gm_gc_army_bmp1sp2", // BMP-1 SP-2 + "gm_gc_airforce_mi2p" // Mi-2P +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "gm_gc_airforce_mi2p", // Mi-2P + "gm_gc_airforce_mi2us", // Mi-2US + "gm_gc_airforce_mi2urn", // Mi-2URN + "len_mi8amt_nva", // Mi8amt + "len_mi24d_AT_nva", // Mi-24D (AT) + "len_mi24d_CAS_nva", // Mi-24D (CAS) + "len_mi24d_FAB_nva", // Mi-24D (FAB) + "len_mi24p_AT_nva", // Mi-24P (AT) + "len_mi24p_CAS_nva", // Mi-24P (CAS) + "len_mi24p_FAB_nva" // Mi-24P (FAB) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "len_l39_nva" // Aero L-39 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/gm_east_win.sqf b/kp_liberation.brf_sumava/presets/opfor/gm_east_win.sqf new file mode 100644 index 0000000..044dedd --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/gm_east_win.sqf @@ -0,0 +1,137 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Aircraft (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +// Enemy infantry classes +opfor_officer = "gm_gc_army_officer_pm_80_win"; // Officer +opfor_squad_leader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Squad Leader +opfor_team_leader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Team Leader +opfor_sentry = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman (Lite) +opfor_rifleman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman +opfor_rpg = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // Rifleman (LAT) +opfor_grenadier = "gm_gc_army_demolition_mpiaks74n_80_win"; // Grenadier +opfor_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_win"; // Autorifleman +opfor_heavygunner = "gm_gc_army_machinegunner_pk_80_win"; // Heavy Gunner +opfor_marksman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Marksman +opfor_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sharpshooter +opfor_sniper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sniper +opfor_at = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // AT Specialist +opfor_aa = "gm_gc_army_demolition_mpiaks74n_80_win"; // AA Specialist +opfor_medic = "gm_gc_army_rifleman_mpiak74n_80_win"; // Combat Life Saver +opfor_engineer = "gm_gc_army_engineer_mpiaks74n_80_win"; // Engineer +opfor_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "gm_gc_army_brdm2um_win"; // SPW40-P2UM +opfor_mrap_armed = "gm_gc_army_brdm2_win"; // SPW-40P2 +opfor_transport_helo = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport +opfor_transport_truck = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport +opfor_ammobox_transport = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! +opfor_fuel_truck = "gm_gc_army_ural4320_refuel_win"; // Truck gel. 5 Fuel +opfor_ammo_truck = "gm_gc_army_ural4320_reammo_win"; // Truck gel. 5 Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "FlagPole_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman (Lite) + "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman (Lite) + "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman + "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman + "gm_gc_army_antitank_mpiak74n_rpg7_80_win", // Rifleman (AT) + "gm_gc_army_machinegunner_lmgrpk_80_win", // Autorifleman + "gm_gc_army_rifleman_mpiak74n_80_win", // Marksman + "gm_gc_army_rifleman_mpiak74n_80_win", // Medic + "gm_gc_army_engineer_mpiaks74n_80_win" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "gm_gc_army_brdm2um_win" // SPW40-P2UM +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "gm_gc_army_brdm2um_win", // SPW40-P2UM + "gm_gc_army_brdm2_win", // SPW-40P2 + "gm_gc_army_btr60pa_win", // SPW-60PA + "gm_gc_army_btr60pb_win", // SPW-60PB + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_zsu234v1_win", // ZSU-23-4V1 + "gm_gc_army_t55a_win", // T55A + "gm_gc_army_t55a_win" // T55A +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "gm_gc_army_brdm2um_win", // SPW40-P2UM + "gm_gc_army_brdm2_win", // SPW-40P2 + "gm_gc_army_btr60pa_win", // SPW-60PA + "gm_gc_army_btr60pb_win" // SPW-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport + "gm_gc_army_brdm2um_win", // SPW40-P2UM + "gm_gc_army_brdm2_win", // SPW-40P2 + "gm_gc_army_btr60pa_win", // SPW-60PA + "gm_gc_army_btr60pb_win", // SPW-60PB + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_zsu234v1_win", // ZSU-23-4V1 + "gm_gc_army_t55a_win", // T55A + "gm_gc_army_t55a_win", // T55A + "len_mi8amt_nva" // Mi8amt +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport + "gm_gc_army_brdm2um_win", // SPW40-P2UM + "gm_gc_army_brdm2_win", // SPW-40P2 + "gm_gc_army_btr60pa_win", // SPW-60PA + "gm_gc_army_btr60pb_win", // SPW-60PB + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_army_zsu234v1_win" // ZSU-23-4V1 +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport + "gm_gc_army_btr60pa_win", // SPW-60PA + "gm_gc_army_btr60pb_win", // SPW-60PB + "gm_gc_army_bmp1sp2_win", // BMP-1 SP-2 + "gm_gc_airforce_mi2p" // Mi-2P +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "gm_gc_airforce_mi2p", // Mi-2P + "gm_gc_airforce_mi2us", // Mi-2US + "gm_gc_airforce_mi2urn", // Mi-2URN + "len_mi8amt_nva", // Mi8amt + "len_mi24d_AT_nva", // Mi-24D (AT) + "len_mi24d_CAS_nva", // Mi-24D (CAS) + "len_mi24d_FAB_nva", // Mi-24D (FAB) + "len_mi24p_AT_nva", // Mi-24P (AT) + "len_mi24p_CAS_nva", // Mi-24P (CAS) + "len_mi24p_FAB_nva" // Mi-24P (FAB) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "len_l39_nva" // Aero L-39 +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/gm_west.sqf b/kp_liberation.brf_sumava/presets/opfor/gm_west.sqf new file mode 100644 index 0000000..ee4ce6a --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/gm_west.sqf @@ -0,0 +1,194 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +// Enemy infantry classes +opfor_officer = "gm_ge_army_officer_p1_90_flk"; // Officer +opfor_squad_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Squad Leader +opfor_team_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Team Leader +opfor_sentry = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman (Lite) +opfor_rifleman = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman +opfor_rpg = "gm_ge_army_antitank_g36a1_milan_90_flk"; // Rifleman (LAT) +opfor_grenadier = "gm_ge_army_grenadier_hk69a1_90_flk"; // Grenadier +opfor_machinegunner = "gm_ge_army_machinegunner_mg3_90_flk"; // Autorifleman +opfor_heavygunner = "gm_ge_army_machinegunner_mg3_90_flk"; // Heavy Gunner +opfor_marksman = "gm_ge_army_marksman_g3a3_90_flk"; // Marksman +opfor_sharpshooter = "gm_ge_army_marksman_g3a3_90_flk"; // Sharpshooter +opfor_sniper = "gm_ge_army_marksman_g3a3_90_flk"; // Sniper +opfor_at = "gm_ge_army_antitank_g36a1_pzf3_90_flk"; // AT Specialist +opfor_aa = "gm_ge_army_antiair_g36a1_fim43_90_flk"; // AA Specialist +opfor_medic = "gm_ge_army_medic_g36a1_90_flk"; // Combat Life Saver +opfor_engineer = "gm_ge_army_engineer_g36a1_90_flks"; // Engineer +opfor_paratrooper = "gm_ge_army_paratrooper_g36a1_90_flk"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "gm_ge_army_iltis_cargo"; // Truck 0.5t +opfor_mrap_armed = "gm_ge_army_iltis_milan"; // Truck 0.5t MILAN +opfor_transport_helo = "gm_ge_army_kat1_454_cargo"; // Truck 10t mil gl Transport +opfor_transport_truck = "gm_ge_army_kat1_451_cargo"; // Truck 5t mil gl Transport +opfor_ammobox_transport = "gm_ge_army_kat1_451_container"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! +opfor_fuel_truck = "gm_ge_army_kat1_451_refuel"; // Truck 5t mil gl Fuel +opfor_ammo_truck = "gm_ge_army_kat1_451_reammo"; // Truck 5t mil gl Ammo +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagPole_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "gm_ge_army_rifleman_g36a1_90_flk", // Rifleman (Lite) + "gm_ge_army_rifleman_g36a1_90_flk", // Rifleman (Lite) + "gm_ge_army_rifleman_g36a1_90_flk", // Rifleman + "gm_ge_army_rifleman_g36a1_90_flk", // Rifleman + "gm_ge_army_antitank_g36a1_pzf3_90_flk", // Rifleman (AT) + "gm_ge_army_machinegunner_mg3_90_flk", // Autorifleman + "gm_ge_army_marksman_g3a3_90_flk", // Marksman + "gm_ge_army_medic_g36a1_90_flk", // Medic + "gm_ge_army_engineer_g36a1_90_flk" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_iltis_mg3", // ILTIS MG3 + "gm_ge_army_iltis_milan", // ILTIS MILAN + "UK3CB_CW_US_B_LATE_M151_Jeep_HMG", // M151 HMG + "UK3CB_CW_US_B_LATE_M151_Jeep_TOW", // M151 TOW + "UK3CB_CW_US_B_LATE_M1025_M2", // M1025 MG + "UK3CB_CW_US_B_LATE_M1025_MK19", // M1025 MK19 + "UK3CB_CW_US_B_LATE_M1025_TOW" // M1025A2 TOW +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_iltis_mg3", // ILTIS MG3 + "gm_ge_army_iltis_milan", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan", // M113A3 (MILAN) + "gm_ge_army_marder1a1plus", // Marder 1A1+ + "gm_ge_army_marder1a1a", // Marder 1A1A + "gm_ge_army_marder1a2", // Marder 1A2 + "UK3CB_CW_US_B_LATE_LAV25", // LAV-25 + "UK3CB_CW_US_B_LATE_AAV", // AAVP-7A1 + "UK3CB_CW_US_B_LATE_M2A2", // M2A2 Bradley + "gm_ge_army_gepard1a1", // Gepard 1A1 + "gm_ge_army_Leopard1a1", // Leopard 1A1 + "gm_ge_army_Leopard1a1a1", // Leopard 1A1A1 + "gm_ge_army_Leopard1a1a2", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3", // Leopard 1A3 + "gm_ge_army_Leopard1a3a1", // Leopard 1A3A1 + "gm_ge_army_Leopard1a5", // Leopard 1A5 + "UK3CB_CW_US_B_LATE_M60a3", // M60A3 + "UK3CB_CW_US_B_LATE_M1A1" // M1A1 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_iltis_milan", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) + "UK3CB_CW_US_B_LATE_M151_Jeep_HMG", // M151 M2 + "UK3CB_CW_US_B_LATE_M151_Jeep_TOW", // M151 TOW + "UK3CB_CW_US_B_LATE_M1025_M2", // M1025 M2 + "UK3CB_CW_US_B_LATE_M1025_MK19", // M1025 Mk19 + "UK3CB_CW_US_B_LATE_M1025_TOW", // M1025 TOW + "gm_ge_army_m113a1g_apc", // M113A1G + "gm_ge_army_m113a1g_apc_milan", // M113A1G MILAN + "UK3CB_CW_US_B_LATE_M113_M2", // M113 M2 + "UK3CB_CW_US_B_LATE_M113_M240", // M113 M240 + "UK3CB_CW_US_B_LATE_M113_MK19", // M113 Mk19 + "gm_ge_army_luchsa1", // Luchs 2A1 + "gm_ge_army_luchsa2" // Luchs 2A2 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_iltis_mg3", // ILTIS MG3 + "gm_ge_army_iltis_milan", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan", // M113A3 (MILAN) + "gm_ge_army_marder1a1plus", // Marder 1A1+ + "gm_ge_army_marder1a1a", // Marder 1A1A + "gm_ge_army_marder1a2", // Marder 1A2 + "UK3CB_CW_US_B_LATE_LAV25", // LAV-25 + "UK3CB_CW_US_B_LATE_AAV", // AAVP-7A1 + "UK3CB_CW_US_B_LATE_M2A2", // M2A2 Bradley + "gm_ge_army_gepard1a1", // Gepard 1A1 + "gm_ge_army_Leopard1a1", // Leopard 1A1 + "gm_ge_army_Leopard1a1a1", // Leopard 1A1A1 + "gm_ge_army_Leopard1a1a2", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3", // Leopard 1A3 + "gm_ge_army_Leopard1a3a1", // Leopard 1A3A1 + "gm_ge_army_Leopard1a5", // Leopard 1A5 + "UK3CB_CW_US_B_LATE_M109", // M109A3 + "UK3CB_CW_US_B_LATE_M270_MLRS_CLUSTER", // M270 (Cluster) + "UK3CB_CW_US_B_LATE_M270_MLRS_HE", // M270 HE + "gm_ge_army_m109g", // M109G + "gm_ge_army_kat1_463_mlrs", // SF2 LARS 2 + "UK3CB_CW_US_B_LATE_M60a3", // M60A3 + "UK3CB_CW_US_B_LATE_M1A1", // M1A1 + "len_uh1d_bw", // BW UH-1D + "gm_ge_army_bo105p_pah1a1", // PAH 1A1 + "gm_ge_army_bo105p_pah1", // PAH-1 + "UK3CB_CW_US_B_LATE_UH1H_M240", // UH-1H Armed + "UK3CB_CW_US_B_LATE_UH1H_GUNSHIP", // UH-1H Gunship + "UK3CB_CW_US_B_LATE_UH60M", // UH-60A + "UK3CB_CW_US_B_LATE_AH64" // AH-64A + +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_iltis_milan", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) + "gm_ge_army_luchsa1", // Luchs 2A1 + "gm_ge_army_luchsa2", // Luchs 2A2 + "gm_ge_army_m113a1g_apc", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan", // M113A3 (MILAN) + "gm_ge_army_gepard1a1", // Gepard 1A1 + "len_uh1d_bw" // BW UH-1D +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "gm_ge_army_u1300l_cargo", // Truck 2t Transport + "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan", // M113A3 (MILAN) + "gm_ge_army_ch53g" // CH-53G +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "gm_ge_army_bo105p_pah1", // PAH 1 + "gm_ge_army_bo105p_pah1a1", // PAH 1A1 + "gm_ge_army_ch53g", // CH-53G + "len_uh1d_bw", // BW UH-1D + "UK3CB_CW_US_B_LATE_UH1H_M240", // UH-1H Armed + "UK3CB_CW_US_B_LATE_UH1H_GUNSHIP", // UH-1H Gunship + "UK3CB_CW_US_B_LATE_UH60M", // UH-60A + "UK3CB_CW_US_B_LATE_AH64" // AH-64A +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "UK3CB_CW_US_B_LATE_A10" // A-10A +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/gm_west_win.sqf b/kp_liberation.brf_sumava/presets/opfor/gm_west_win.sqf new file mode 100644 index 0000000..b705f8c --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/gm_west_win.sqf @@ -0,0 +1,131 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 +*/ + +// Enemy infantry classes +opfor_officer = "gm_ge_army_officer_p1_parka_80_win"; // Officer +opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Squad Leader +opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Team Leader +opfor_sentry = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman (Lite) +opfor_rifleman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman +opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_parka_80_win"; // Rifleman (LAT) +opfor_grenadier = "gm_ge_army_grenadier_g3a3_parka_80_win"; // Grenadier +opfor_machinegunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Autorifleman +opfor_heavygunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Heavy Gunner +opfor_marksman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Marksman +opfor_sharpshooter = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sharpshooter +opfor_sniper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sniper +opfor_at = "gm_ge_army_antitank_g3a3_pzf84_parka_80_win"; // AT Specialist +opfor_aa = "gm_ge_army_demolition_g3a4_parka_80_win"; // AA Specialist +opfor_medic = "gm_ge_army_medic_g3a3_parka_80_win"; // Combat Life Saver +opfor_engineer = "gm_ge_army_engineer_g3a4_parka_80_win"; // Engineer +opfor_paratrooper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "gm_ge_army_iltis_cargo_win"; // Truck 0.5t +opfor_mrap_armed = "gm_ge_army_iltis_milan_win"; // Truck 0.5t MILAN +opfor_transport_helo = "gm_ge_army_kat1_454_cargo_win"; // Truck 10t mil gl Transport +opfor_transport_truck = "gm_ge_army_kat1_451_cargo_win"; // Truck 5t mil gl Transport +opfor_ammobox_transport = "gm_ge_army_kat1_451_container_win"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! +opfor_fuel_truck = "gm_ge_army_kat1_451_refuel_win"; // Truck 5t mil gl Fuel +opfor_ammo_truck = "gm_ge_army_kat1_451_reammo_win"; // Truck 5t mil gl Ammo +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +opfor_flag = "FlagPole_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman (Lite) + "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman (Lite) + "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman + "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman + "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", // Rifleman (AT) + "gm_ge_army_machinegunner_mg3_parka_80_win", // Autorifleman + "gm_ge_army_rifleman_g3a3_parka_80_win", // Marksman + "gm_ge_army_medic_g3a3_parka_80_win", // Medic + "gm_ge_army_engineer_g3a4_parka_80_win" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "gm_ge_army_u1300l_cargo" // Truck 2t Transport +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport + "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc_win", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan_win", // M113A3 (MILAN) + "gm_ge_army_gepard1a1_win", // Gepard 1A1 + "gm_ge_army_Leopard1a1a1_win", // Leopard 1A1A1 + "gm_ge_army_Leopard1a1a2_win", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3a1_win" // Leopard 1A3A1 +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport + "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance_win" // Fuchs (Recon, MILAN) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport + "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc_win", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan_win", // M113A3 (MILAN) + "gm_ge_army_gepard1a1_win", // Gepard 1A1 + "gm_ge_army_Leopard1a1a1_win", // Leopard 1A1A1 + "gm_ge_army_Leopard1a1a2_win", // Leopard 1A1A2 + "gm_ge_army_Leopard1a3a1_win", // Leopard 1A3A1 + "len_uh1d_bw" // BW UH-1D +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport + "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN + "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc_win", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan_win", // M113A3 (MILAN) + "gm_ge_army_gepard1a1_win", // Gepard 1A1 + "len_uh1d_bw" // BW UH-1D +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport + "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) + "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) + "gm_ge_army_m113a1g_apc_win", // M113A3 (MG3) + "gm_ge_army_m113a1g_apc_milan_win" // M113A3 (MILAN) + "gm_ge_army_ch53g" // CH-53G +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "gm_ge_army_bo105p_pah1", // PAH 1 + "gm_ge_army_bo105p_pah1a1", // PAH 1A1 + "gm_ge_army_ch53g", // CH-53G + "len_uh1d_bw" // BW UH-1D +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = []; diff --git a/kp_liberation.brf_sumava/presets/opfor/islamic_state.sqf b/kp_liberation.brf_sumava/presets/opfor/islamic_state.sqf new file mode 100644 index 0000000..c218fea --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/islamic_state.sqf @@ -0,0 +1,160 @@ +/* + Needed Mods: + - RHS USAF + - RHS AFRF + - Project OPFOR + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "LOP_ISTS_OPF_Infantry_SL"; // Officer (Warlord) +opfor_squad_leader = "LOP_ISTS_OPF_Infantry_SL"; // Squad Leader (Warlord) +opfor_team_leader = "LOP_ISTS_OPF_Infantry_TL"; // Team Leader (Chief) +opfor_sentry = "LOP_ISTS_OPF_Infantry_Rifleman"; // Rifleman (AKM) +opfor_rifleman = "LOP_ISTS_OPF_Infantry_Rifleman_5"; // Rifleman (AK-74) +opfor_rpg = "LOP_ISTS_OPF_Infantry_AT"; // Rifleman (RPG-7) +opfor_grenadier = "LOP_ISTS_OPF_Infantry_GL"; // Grenadier (AKM GP-25) +opfor_machinegunner = "LOP_ISTS_OPF_Infantry_AR_Asst"; // Autorifleman (AR_Asst) +opfor_heavygunner = "LOP_ISTS_OPF_Infantry_AR"; // Heavy Gunner (PKM) +opfor_marksman = "LOP_ISTS_OPF_Infantry_Rifleman_2"; // Marksman (Lee Enfield) +opfor_sharpshooter = "LOP_ISTS_OPF_Infantry_Marksman"; // Sharpshooter (SVD) +opfor_sniper = "LOP_ISTS_OPF_Infantry_Marksman"; // Sniper (SVD) +opfor_at = "LOP_ISTS_OPF_Infantry_AT"; // AT Specialist (RPG-7) +opfor_aa = "LOP_ISTS_OPF_Infantry_AT"; // AA Specialist (RPG-7) +opfor_medic = "LOP_ISTS_OPF_Infantry_Corpsman"; // Combat Life Saver (Bonesetter) +opfor_engineer = "LOP_ISTS_OPF_Infantry_Engineer"; // Engineer (Bomber) +opfor_paratrooper = "LOP_ISTS_OPF_Infantry_Rifleman_6"; // Paratrooper (AKM PM-63) + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "LOP_ISTS_OPF_Offroad"; // Offroad +opfor_mrap_armed = "LOP_ISTS_OPF_Offroad_M2"; // Offroad (M2) +opfor_transport_helo = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) +opfor_transport_truck = "LOP_TKA_Ural"; // Ural-4320 (Covered) +opfor_ammobox_transport = "LOP_TKA_Ural_open"; // Ural-4320 (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 (Fuel) +opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 (Ammo) +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "lop_Flag_tak_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "LOP_AM_OPF_Infantry_Rifleman", // Rifleman (AKM) + "LOP_AM_OPF_Infantry_Rifleman", // Rifleman (AKM) + "LOP_AM_OPF_Infantry_Rifleman_5", // Rifleman (AKM-74) + "LOP_AM_OPF_Infantry_Rifleman_5", // Rifleman (AKM-74) + "LOP_AM_OPF_Infantry_AT", // Rifleman (RPG-7) + "LOP_AM_OPF_Infantry_AR", // Autorifleman (PKM) + "LOP_AM_OPF_Infantry_Rifleman_3", // Marksman (Lee Enfield) + "LOP_AM_OPF_Infantry_Corpsman", // Medic (Bonesetter) + "LOP_AM_OPF_Infantry_Engineer" // Engineer (Bomber) +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "LOP_AM_OPF_UAZ_DshKM" // UAZ-3151 (DShKM) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) + "LOP_ISTS_OPF_Landrover_SPG9", // Land Rover (SPG) + "LOP_ISTS_OPF_M1025_W_M2", // M10252 (M2) + "LOP_ISTS_OPF_M1025_W_Mk19", // M1025A2 (Mk19) + "LOP_ISTS_OPF_Offroad_M2", // Offroad (M2) + "LOP_ISTS_OPF_BMP2", // BMP-2 + "LOP_ISTS_OPF_BTR60", // BTR-60PB + "LOP_ISTS_OPF_T34", // T-34-85M + "LOP_ISTS_OPF_T55", // T55A + "LOP_ISTS_OPF_T55", // T55A + "LOP_ISTS_OPF_T72BA", // T72B + "LOP_ISTS_OPF_T72BA", // T72B + "LOP_ISTS_OPF_ZSU234", // ZSU-23-4V + "LOP_ISTS_OPF_ZSU234" // ZSU-23-4V +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_BMP1", // BMP-1 + "LOP_ISTS_OPF_BMP1", // BMP-1 + "LOP_ISTS_OPF_BMP2", // BMP-2 + "LOP_ISTS_OPF_BTR60" // BTR-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) + "LOP_ISTS_OPF_Landrover_SPG9", // Land Rover (SPG) + "LOP_ISTS_OPF_M1025_W_M2", // M10252 (M2) + "LOP_ISTS_OPF_M1025_W_Mk19", // M1025A2 (Mk19) + "LOP_ISTS_OPF_Offroad_M2", // Offroad (M2) + "LOP_ISTS_OPF_Truck", // Truck (Cargo) + "LOP_ISTS_OPF_Truck", // Truck (Cargo) + "LOP_ISTS_OPF_BMP2", // BMP-2 + "LOP_ISTS_OPF_BTR60", // BTR-60PB + "LOP_ISTS_OPF_T34", // T-34-85M + "LOP_ISTS_OPF_T55", // T55A + "LOP_ISTS_OPF_T55", // T55A + "LOP_ISTS_OPF_T72BA", // T72B + "LOP_ISTS_OPF_T72BA", // T72B + "LOP_ISTS_OPF_ZSU234", // ZSU-23-4V + "LOP_ISTS_OPF_ZSU234", // ZSU-23-4V + "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) + "LOP_TKA_Mi24V_AT", // Mi-24V (AT) + "LOP_TKA_Mi24V_FAB", // Mi-24V (FAB) + "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) + "LOP_ISTS_OPF_Truck", // Truck (Cargo) + "LOP_ISTS_OPF_Truck", // Truck (Cargo) + "LOP_ISTS_OPF_BMP1", // BMP-1 + "LOP_ISTS_OPF_BMP1", // BMP-1 + "LOP_ISTS_OPF_BMP2", // BMP-2 + "LOP_ISTS_OPF_BTR60", // BTR-60PB + "LOP_ISTS_OPF_T34", // T-34-85M + "LOP_ISTS_OPF_ZSU234", // ZSU-23-4V + "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) + "LOP_TKA_Mi24V_AT", // Mi-24V (AT) + "LOP_TKA_Mi24V_FAB", // Mi-24V (FAB) + "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "LOP_ISTS_OPF_Truck", // Truck (Cargo) + "LOP_ISTS_OPF_BMP1", // BMP-1 + "LOP_ISTS_OPF_BMP2", // BMP-2 + "LOP_ISTS_OPF_BTR60", // BTR-60PB + "LOP_TKA_Mi8MT_Cargo" // Mi-8MT (Cargo) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) + "LOP_TKA_Mi24V_AT", // Mi-24V (AT) + "LOP_TKA_Mi24V_FAB", // Mi-24V (FAB) + "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "RHS_Su25SM_vvsc", // Su-25 + "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/nato.sqf b/kp_liberation.brf_sumava/presets/opfor/nato.sqf new file mode 100644 index 0000000..a80d5a6 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/nato.sqf @@ -0,0 +1,149 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "B_officer_F"; // Officer +opfor_squad_leader = "B_Soldier_SL_F"; // Squad Leader +opfor_team_leader = "B_Soldier_TL_F"; // Team Leader +opfor_sentry = "B_Soldier_lite_F"; // Rifleman (Lite) +opfor_rifleman = "B_Soldier_F"; // Rifleman +opfor_rpg = "B_soldier_LAT_F"; // Rifleman (LAT) +opfor_grenadier = "B_Soldier_GL_F"; // Grenadier +opfor_machinegunner = "B_soldier_AR_F"; // Autorifleman +opfor_heavygunner = "B_HeavyGunner_F"; // Heavy Gunner +opfor_marksman = "B_soldier_M_F"; // Marksman +opfor_sharpshooter = "B_Sharpshooter_F"; // Sharpshooter +opfor_sniper = "B_sniper_F"; // Sniper +opfor_at = "B_soldier_AT_F"; // AT Specialist +opfor_aa = "B_soldier_AA_F"; // AA Specialist +opfor_medic = "B_medic_F"; // Combat Life Saver +opfor_engineer = "B_engineer_F"; // Engineer +opfor_paratrooper = "B_soldier_PG_F"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "B_MRAP_01_F"; // M-ATV +opfor_mrap_armed = "B_MRAP_01_hmg_F"; // MATV (HMG) +opfor_transport_helo = "B_Heli_Transport_03_unarmed_F"; // CH-47l Chinook (unarmed) +opfor_transport_truck = "B_Truck_01_covered_F"; // HEMTT Transport (Covered) +opfor_ammobox_transport = "B_Truck_01_transport_F"; // HEMTT Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "B_Truck_01_fuel_F"; // HEMTT Fuel +opfor_ammo_truck = "B_Truck_01_ammo_F"; // HEMTT Ammo +opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod +opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod +opfor_flag = "Flag_NATO_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "B_Soldier_F", // Rifleman (Lite) + "B_Soldier_F", // Rifleman (Lite) + "B_Soldier_F", // Rifleman + "B_Soldier_F", // Rifleman + "B_soldier_LAT_F", // Rifleman (AT) + "B_soldier_AR_F", // Autorifleman + "B_soldier_M_F", // Marksman + "B_medic_F", // Medic + "B_engineer_F" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "B_LSV_01_armed_F", // Polaris DAGOR (XM312) + "B_LSV_01_armed_F", // Polaris DAGOR (XM312) + "B_MRAP_01_hmg_F", // Ifrit (HMG) + "B_APC_Wheeled_01_cannon_F" // SPz Badger +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_MRAP_01_gmg_F", // M-ATV (GMG) + "B_LSV_01_AT_F", // Polaris (Mini-Spike PZAbw) + "B_APC_Wheeled_01_cannon_F", // SPz Badger + "B_APC_Wheeled_01_cannon_F", // SPz Badger + "B_APC_Tracked_01_rcws_F", // Namer + "B_APC_Tracked_01_rcws_F", // Namer + "B_APC_Tracked_01_AA_F", // Bardelas + "B_APC_Tracked_01_AA_F", // Bardelas + "B_MBT_01_cannon_F", // Merkava Mk IV M + "B_AFV_Wheeled_01_cannon_F", // Rooikat 120 + "B_AFV_Wheeled_01_up_cannon_F" // Rooikat 120 UP +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) + "B_APC_Wheeled_01_cannon_F", // SPz Badger + "B_APC_Tracked_01_rcws_F" // Namer +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_MRAP_01_gmg_F", // M-ATV (GMG) + "B_MRAP_01_gmg_F", // M-ATV (GMG) + "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) + "B_Truck_01_transport_F", // HEMTT Transport + "B_Truck_01_covered_F", // HEMTT Transport (Covered) + "B_APC_Tracked_01_rcws_F", // Namer + "B_APC_Tracked_01_rcws_F", // Namer + "B_APC_Tracked_01_AA_F", // Bardelas + "B_APC_Tracked_01_AA_F", // Bardelas + "B_MBT_01_cannon_F", // Merkava Mk IV M + "B_MBT_01_cannon_F", // Merkava Mk IV M + "B_MBT_01_TUSK_F", // Merkava Mk IV LIC + "B_MBT_01_TUSK_F", // Merkava Mk IV LIC + "B_Heli_Light_01_dynamicLoadout_F", // AH-6 Little Bird (Armed) + "B_Heli_Light_01_dynamicLoadout_F", // AH-6 Little Bird (Armed) + "B_Heli_Transport_03_F", // CH-471 Chinook + "B_Heli_Attack_01_dynamicLoadout_F" // RAH-66 Comanche +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_MRAP_01_hmg_F", // M-ATV (HMG) + "B_Truck_01_transport_F", // HEMTT Transport + "B_APC_Wheeled_01_cannon_F", // SPz Badger + "B_APC_Tracked_01_rcws_F", // Namer + "B_APC_Tracked_01_AA_F", // Bardelas + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) + "B_Heli_Transport_03_F" +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "B_Truck_01_transport_F", // HEMTT Transport + "B_Truck_01_covered_F", // HEMTT Transport (Covered) + "B_APC_Wheeled_01_cannon_F", // SPz Badger + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (sand) + "B_Heli_Transport_03_F" // CH-471 Chinook +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "B_Heli_Light_01_dynamicLoadout_F", // AH-6 Little Bird (Armed) + "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) + "B_Heli_Attack_01_dynamicLoadout_F", // RAH-66 Comanche + "B_Heli_Transport_01_F", // UH-80 Ghost Hawk + "B_Heli_Transport_03_F", // CH-471 Chinook + "B_Heli_Transport_03_unarmed_F" // CH-47l Chinook (unarmed) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "B_Plane_CAS_01_dynamicLoadout_F", // A-10D Thunderbolt II (CAS) + "B_Plane_Fighter_01_F" // F/A-181 Black Wasp II +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/rhs_afrf.sqf b/kp_liberation.brf_sumava/presets/opfor/rhs_afrf.sqf new file mode 100644 index 0000000..bf26c76 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/rhs_afrf.sqf @@ -0,0 +1,145 @@ +/* + Needed Mods: + - RHS AFRF + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "rhs_msv_emr_officer"; // Officer +opfor_squad_leader = "rhs_msv_emr_sergeant"; // Squad Leader +opfor_team_leader = "rhs_msv_emr_efreitor"; // Team Leader +opfor_sentry = "rhs_msv_emr_rifleman"; // Rifleman (Lite) +opfor_rifleman = "rhs_msv_emr_rifleman"; // Rifleman +opfor_rpg = "rhs_msv_emr_LAT"; // Rifleman (LAT) +opfor_grenadier = "rhs_msv_emr_grenadier"; // Grenadier +opfor_machinegunner = "rhs_msv_emr_arifleman"; // Autorifleman +opfor_heavygunner = "rhs_msv_emr_machinegunner"; // Heavy Gunner +opfor_marksman = "rhs_msv_emr_marksman"; // Marksman +opfor_sharpshooter = "rhs_msv_emr_marksman"; // Sharpshooter +opfor_sniper = "rhs_msv_emr_marksman"; // Sniper +opfor_at = "rhs_msv_emr_at"; // AT Specialist +opfor_aa = "rhs_msv_emr_aa"; // AA Specialist +opfor_medic = "rhs_msv_emr_medic"; // Combat Life Saver +opfor_engineer = "rhs_msv_emr_engineer"; // Engineer +opfor_paratrooper = "rhs_msv_emr_RShG2"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "rhs_tigr_msv"; // GAZ-233011 +opfor_mrap_armed = "rhs_tigr_sts_msv"; // GAZ-233014 (Armed) +opfor_transport_helo = "RHS_Mi8mt_Cargo_vvsc"; // Mi-8MT (Cargo) +opfor_transport_truck = "RHS_Ural_MSV_01"; // Ural-4320 Transport (Covered) +opfor_ammobox_transport = "RHS_Ural_Open_MSV_01"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel +opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "rhs_Flag_Russia_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "rhs_msv_emr_rifleman", // Rifleman + "rhs_msv_emr_rifleman", // Rifleman + "rhs_msv_emr_rifleman", // Rifleman + "rhs_msv_emr_LAT", // Rifleman (AT) + "rhs_msv_emr_arifleman", // Autorifleman + "rhs_msv_emr_marksman", // Marksman + "rhs_msv_emr_medic", // Medic + "rhs_msv_emr_engineer" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. +militia_vehicles = [ + "rhs_tigr_sts_msv" // GAZ-233014 (Armed) +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +opfor_vehicles = [ + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_bmp2d_msv", // BMP-2D + "rhs_bmp2k_msv", // BMP-2K + "rhs_brm1k_msv", // BRM-1K + "rhs_zsu234_aa", // ZSU-23-4V + "rhs_zsu234_aa", // ZSU-23-4V + "rhs_t80", // T80 + "rhs_t80", // T80 + "rhs_t90a_tv", // T90A + "rhs_t90sab_tv" // T90SA (2016) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_btr80_msv", // BTR-80 + "rhs_btr80a_msv" // BTR-80A +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "RHS_Ural_Open_MSV_01", // Ural-4320 Transport + "RHS_Ural_MSV_01", // Ural-4320 Transport (Covered) + "rhs_bmp2d_msv", // BMP-2D + "rhs_bmp2k_msv", // BMP-2K + "rhs_brm1k_msv", // BRM-1K + "rhs_zsu234_aa", // ZSU-23-4V + "rhs_zsu234_aa", // ZSU-23-4V + "rhs_t80", // T80 + "rhs_t80", // T80 + "rhs_t90a_tv", // T90A + "RHS_Mi24P_AT_vvsc", // Mi-24P (AT) + "RHS_Mi24V_AT_vvsc", // Mi-24V (AT) + "RHS_Mi8mt_Cargo_vvsc", // Mi-8MT (Cargo) + "RHS_Ka52_vvsc" // Ka-52 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "rhs_tigr_msv", // GAZ-233011 + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "rhs_tigr_sts_msv", // GAZ-233014 (Armed) + "RHS_Ural_Open_MSV_01", // Ural-4320 Transport + "rhs_btr80_msv", // BTR-80 + "rhs_btr80a_msv", // BTR-80A + "rhs_zsu234_aa", // ZSU-23-4V + "RHS_Mi24P_AT_vvsc", // Mi-24P (AT) + "RHS_Mi24V_AT_vvsc", // Mi-24V (AT) + "RHS_Mi8mt_Cargo_vvsc" // Mi-8MT (Cargo) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "RHS_Ural_Open_MSV_01", // Ural-4320 Transport + "RHS_Ural_MSV_01", // Ural-4320 Transport (Covered) + "rhs_btr80_msv", // BTR-80 + "rhs_btr80a_msv", // BTR-80A + "rhs_bmp2d_msv", // BMP-2D + "RHS_Mi8mt_Cargo_vvsc", // Mi-8MT (Cargo) + "RHS_Mi24P_AT_vvsc", // Mi-24P (AT) + "RHS_Mi24V_AT_vvsc" // Mi-24V (AT) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "RHS_Mi8mt_Cargo_vvsc", // Mi-8MT (Cargo) + "RHS_Mi24P_AT_vvsc", // Mi-24P (AT) + "RHS_Mi24V_AT_vvsc", // Mi-24V (AT) + "RHS_Ka52_vvsc" // Ka-52 +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "RHS_Su25SM_vvsc", // Su-25 + "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/takistan.sqf b/kp_liberation.brf_sumava/presets/opfor/takistan.sqf new file mode 100644 index 0000000..9bcd7e0 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/takistan.sqf @@ -0,0 +1,148 @@ +/* + Needed Mods: + - RHS USAF + - RHS AFRF + - Project OPFOR + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "LOP_TKA_Infantry_Officer"; // Officer +opfor_squad_leader = "LOP_TKA_Infantry_SL"; // Squad Leader +opfor_team_leader = "LOP_TKA_Infantry_TL"; // Team Leader +opfor_sentry = "LOP_TKA_Infantry_Rifleman"; // Rifleman (Lite) +opfor_rifleman = "LOP_TKA_Infantry_Rifleman_2"; // Rifleman +opfor_rpg = "LOP_TKA_Infantry_Rifleman_3"; // Rifleman (LAT) +opfor_grenadier = "LOP_TKA_Infantry_GL"; // Grenadier +opfor_machinegunner = "LOP_TKA_Infantry_MG"; // Autorifleman +opfor_heavygunner = "LOP_TKA_Infantry_MG"; // Heavy Gunner +opfor_marksman = "LOP_TKA_Infantry_Marksman"; // Marksman +opfor_sharpshooter = "LOP_TKA_Infantry_Marksman"; // Sharpshooter +opfor_sniper = "LOP_TKA_Infantry_Marksman"; // Sniper +opfor_at = "LOP_TKA_Infantry_AT"; // AT Specialist +opfor_aa = "LOP_TKA_Infantry_AA"; // AA Specialist +opfor_medic = "LOP_TKA_Infantry_Corpsman"; // Combat Life Saver +opfor_engineer = "LOP_TKA_Infantry_Engineer"; // Engineer +opfor_paratrooper = "LOP_TKA_Infantry_Rifleman"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "LOP_TKA_UAZ"; // UAZ-3151 +opfor_mrap_armed = "LOP_TKA_UAZ_AGS"; // UAZ-3151 (AGS-30) +opfor_transport_helo = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) +opfor_transport_truck = "LOP_TKA_Ural"; // Ural-4320 Transport (Covered) +opfor_ammobox_transport = "LOP_TKA_Ural_open"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel +opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "lop_Flag_tak_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "LOP_TKA_Infantry_Rifleman", // Rifleman (Lite) + "LOP_TKA_Infantry_Rifleman", // Rifleman (Lite) + "LOP_TKA_Infantry_Rifleman_2", // Rifleman + "LOP_TKA_Infantry_Rifleman_2", // Rifleman + "LOP_TKA_Infantry_Rifleman_3", // Rifleman (AT) + "LOP_TKA_Infantry_MG", // Autorifleman + "LOP_TKA_Infantry_Marksman", // Marksman + "LOP_TKA_Infantry_Corpsman", // Medic + "LOP_TKA_Infantry_Engineer" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "LOP_TKA_UAZ_DshKM" // UAZ-3151 (DShKM) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) + "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) + "LOP_TKA_UAZ_SPG", // UAZ-3151 (SPG-9) + "LOP_TKA_BMP2", // BMP-2 + "LOP_TKA_BMP2D", // BMP-2D + "LOP_TKA_BTR70", // BTR-70 + "LOP_TKA_ZSU234", // ZSU-23-4V + "LOP_TKA_ZSU234", // ZSU-23-4V + "LOP_TKA_T55", // T-55A + "LOP_TKA_T72BB", // T-72B + "LOP_TKA_T72BB" // T-72B +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) + "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) + "LOP_TKA_BMP1", // BMP-1 + "LOP_TKA_BMP1D", // BMP-1D + "LOP_TKA_BTR60" // BTR-60PB +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "LOP_TKA_UAZ", // UAZ-3151 (Covered) + "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) + "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) + "LOP_TKA_UAZ_SPG", // UAZ-3151 (SPG-9) + "LOP_TKA_Ural_open", // Ural-4320 Transport + "LOP_TKA_Ural", // Ural-4320 Transport (Covered) + "LOP_TKA_BMP2", // BMP-2 + "LOP_TKA_BMP2D", // BMP-2D + "LOP_TKA_BTR70", // BTR-70 + "LOP_TKA_ZSU234", // ZSU-23-4V + "LOP_TKA_ZSU234", // ZSU-23-4V + "LOP_TKA_T55", // T-55A + "LOP_TKA_T72BB", // T-72B + "LOP_TKA_T72BB", // T-72B + "LOP_TKA_Mi24V_AT", // Mi-24P (AT) + "LOP_TKA_Mi24V_UPK23", // Mi-24V (UPK) + "LOP_TKA_Mi8MT_Cargo" // Mi-8MT (Cargo) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "LOP_TKA_UAZ_Open", // UAZ-3151 + "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) + "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) + "LOP_TKA_Ural_open", // Ural-4320 Transport + "LOP_TKA_BMP1", // BMP-1 + "LOP_TKA_BMP1D", // BMP-1D + "LOP_TKA_BTR60", // BTR-60PB + "LOP_TKA_ZSU234", // ZSU-23-4V + "LOP_TKA_Mi24V_AT", // Mi-24P (AT) + "LOP_TKA_Mi24V_UPK23", // Mi-24V (UPK) + "LOP_TKA_Mi8MT_Cargo" // Mi-8MT (Cargo) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "LOP_TKA_Ural_open", // Ural-4320 Transport + "LOP_TKA_Ural", // Ural-4320 Transport (Covered) + "LOP_TKA_BTR70", // BTR-70 + "LOP_TKA_BMP1D", // BMP-1D + "LOP_TKA_BMP2D", // BMP-2D + "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) + "LOP_TKA_Mi24V_AT", // Mi-24P (AT) + "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) + "LOP_TKA_Mi24V_AT", // Mi-24P (AT) + "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "RHS_Su25SM_vvsc", // Su-25 + "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) +]; diff --git a/kp_liberation.brf_sumava/presets/opfor/unsung.sqf b/kp_liberation.brf_sumava/presets/opfor/unsung.sqf new file mode 100644 index 0000000..f41cd4e --- /dev/null +++ b/kp_liberation.brf_sumava/presets/opfor/unsung.sqf @@ -0,0 +1,144 @@ +/* + Needed Mods: + - The Unsung Vietnam War Mod + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "uns_men_NVA_68_COM"; // Officer +opfor_squad_leader = "uns_men_NVA_68_off"; // Squad Leader +opfor_team_leader = "uns_men_NVA_68_nco"; // Team Leader +opfor_sentry = "uns_men_NVA_68_RSAP"; // Rifleman (Lite) +opfor_rifleman = "uns_men_NVA_68_AS5"; // Rifleman +opfor_rpg = "uns_men_NVA_68_AT2"; // Rifleman (LAT) +opfor_grenadier = "uns_men_NVA_68_AS1"; // Grenadier +opfor_machinegunner = "uns_men_NVA_68_LMG"; // Autorifleman +opfor_heavygunner = "uns_men_NVA_68_HMG"; // Heavy Gunner +opfor_marksman = "uns_men_NVA_68_RF2"; // Marksman +opfor_sharpshooter = "uns_men_NVA_68_RF1"; // Sharpshooter +opfor_sniper = "uns_men_NVA_68_Rmrk"; // Sniper +opfor_at = "uns_men_NVA_68_AT"; // AT Specialist +opfor_aa = "uns_men_NVA_68_AA"; // AA Specialist +opfor_medic = "uns_men_NVA_68_MED"; // Combat Life Saver +opfor_engineer = "uns_men_NVA_68_SAP"; // Engineer +opfor_paratrooper = "uns_men_NVA_68_Ra2"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "uns_Type55"; // Type 55 (Transport) +opfor_mrap_armed = "uns_Type55_MG"; // Type 55 APC (DShk) +opfor_transport_helo = "uns_Mi8T_VPAF"; // Mi-8T Hip-C (Transport) +opfor_transport_truck = "uns_nvatruck"; // Ural Truck +opfor_ammobox_transport = "uns_nvatruck_open"; // Ural Truck (Open) -> Has to be able to transport resource crates! +opfor_fuel_truck = "uns_nvatruck_refuel"; // Ural Truck (refuel) +opfor_ammo_truck = "uns_nvatruck_reammo"; // Ural Truck (ammo) +opfor_fuel_container = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box +opfor_ammo_container = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box +opfor_flag = "uns_FlagCarrierNVA"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "uns_men_VC_local_RF4", // Rifleman (MAS36) + "uns_men_VC_local_RF4", // Rifleman (MAS36) + "uns_men_VC_local_RF2", // Rifleman (Mosin) + "uns_men_VC_local_RF2", // Rifleman (Mosin) + "uns_men_VC_local_RF6", // Rifleman (Type99) + "uns_men_VC_local_nco", // Guerilla Deputy (PPSH-41) + "uns_men_VC_local_off", // Guerilla Leader (K-50M) + "uns_men_VC_local_MRK2", // Sharpshooter (Type99) + "uns_men_VC_local_MED", // Medic (M3A1) + "uns_men_VC_local_SAP" // Sapper (M3A1) +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = []; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_RR57", // Type 55 APC (57mm Type36) + "uns_Type55_RR57", // Type 55 APC (57mm Type36) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Type63_mg", // Type63 APC (MG) + "pook_ZSU57_NVA", // ZSU-57-2 (Sparka) + "pook_ZSU57_NVA", // ZSU-57-2 (Sparka) + "pook_ZSU_NVA", // ZSU-23-4 Shilka + "pook_ZSU_NVA", // ZSU-23-4 Shilka + "uns_ot34_85_nva", // OT-34/85 Medium Tank + "uns_ot34_85_nva", // OT-34/85 Medium Tank + "uns_t34_85_nva", // T-34/85 Medium Tank + "uns_t34_85_nva", // T-34/85 Medium Tank + "uns_t54_nva", // T-54 Medium Tank + "uns_t55_nva" // T-55A Medium Tank +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_RR57", // Type 55 APC (57mm Type36) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Type63_mg" // Type63 APC (MG) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_RR57", // Type 55 APC (57mm Type36) + "uns_Type55_RR57", // Type 55 APC (57mm Type36) + "uns_nvatruck_open", // Ural Truck (Open) + "uns_nvatruck_mg", // Ural Truck (MG) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Type63_mg", // Type63 APC (MG) + "pook_ZSU57_NVA", // ZSU-57-2 (Sparka) + "pook_ZSU_NVA", // ZSU-23-4 Shilka + "uns_ot34_85_nva", // OT-34/85 Medium Tank + "uns_ot34_85_nva", // OT-34/85 Medium Tank + "uns_t34_85_nva", // T-34/85 Medium Tank + "uns_t54_nva", // T-54 Medium Tank + "uns_t55_nva", // T-55A Medium Tank + "uns_Mi8TV_VPAF_MG" // Mi-8TV Hip-C (Transport) +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_Type55_patrol", // Type 55 APC (Patrol) + "uns_nvatruck_mg", // Ural Truck (MG) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Type63_mg", // Type63 APC (MG) + "pook_ZSU57_NVA", // ZSU-57-2 (Sparka) + "uns_Mi8TV_VPAF_MG" // Mi-8TV Hip-C (Transport) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "uns_nvatruck_open", // Ural Truck (Open) + "uns_nvatruck", // Ural Truck + "uns_nvatruck_mg", // Ural Truck (MG) + "uns_Type63_mg", // Type63 APC (MG) + "uns_Mi8TV_VPAF_MG" // Mi-8TV Hip-C (Transport) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "uns_Mi8TV_VPAF_MG" // Mi-8TV Hip-C (Transport) +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "uns_an2_cas", // An-2 Colt (CAS) + "uns_Mig21_CAP", // Mig-21 Fishbed F (CAP) + "uns_Mig21_CAS" // Mig-21 Fishbed F (CAS) +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/CUP_NAPA.sqf b/kp_liberation.brf_sumava/presets/resistance/CUP_NAPA.sqf new file mode 100644 index 0000000..cd8c1fe --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/CUP_NAPA.sqf @@ -0,0 +1,214 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "CUP_I_GUE_Soldier_AR", + "CUP_I_GUE_Engineer", + "CUP_I_GUE_Commander", + "CUP_I_GUE_Medic", + "CUP_I_GUE_Soldier_AKS74", + "CUP_I_GUE_Soldier_LAT", + "CUP_I_GUE_Sniper", + "CUP_I_GUE_Officer" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "CUP_I_Datsun_PK_Random", + "CUP_I_Datsun_PK_Random", + "CUP_I_Datsun_PK_Random", + "CUP_I_BMP2_NAPA", + "CUP_I_BRDM2_NAPA", + "CUP_I_BRDM2_NAPA", + "CUP_I_MTLB_pk_NAPA", + "CUP_I_MTLB_pk_NAPA", + "CUP_I_T34_NAPA", + "CUP_I_T34_NAPA", + "CUP_I_T55_NAPA", + "CUP_I_T72_NAPA" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["CUP_srifle_CZ550","CUP_5x_22_LR_17_HMR_M",10,"",""], + ["CUP_srifle_CZ550_rail","CUP_5x_22_LR_17_HMR_M",10,"optic_mrco",""], + ["CUP_srifle_LeeEnfield","CUP_10x_303_M",10,"",""], + ["CUP_srifle_LeeEnfield_rail","CUP_10x_303_M",10,"cup_optic_sb_11_4x20_pm","cup_bipod_harris_1a2_I"], + ["CUP_glaunch_M79","CUP_1Rnd_HEDP_M203",16,"",""], + ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], + ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], + ["CUP_arifle_AKM","CUP_30Rnd_762x39_AK47_M",4,"cup_optic_pso_1_ak_open",""], + ["CUP_arifle_AK47_GL_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], + ["CUP_arifle_RPK74","CUP_75Rnd_TE4_LRT4_Green_Tracer_762x39_RPK_M",3,"optic_ACO_grn","bipod_01_F_blk"], + ["CUP_smg_SA61","CUP_50Rnd_B_765x17_Ball_M",5,"",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], + ["CUP_arifle_AK74M","CUP_30Rnd_545x39_AK74M_M",4,"cup_optic_kobra",""], + ["CUP_arifle_AK74M_GL","CUP_30Rnd_545x39_AK74M_M",4,"cup_optic_kobra",""], + ["CUP_arifle_RPK74M_railed","CUP_60Rnd_545x39_AK74M_M",3,"cup_optic_zddot",""], + ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], + ["CUP_lmg_Pecheneg","CUP_100Rnd_TE4_LRT4_762x54_PK_Tracer_Green_M",2,"optic_MRCO",""], + ["CUP_srifle_SVD","CUP_10Rnd_762x54_SVD_M",12,"cup_optic_pso_3_open",""], + ["CUP_srifle_SVD_wdl","CUP_10Rnd_762x54_SVD_M",12,"cup_optic_pso_3_open",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "CUP_U_I_Villager_03", + "CUP_U_I_Woodlander03", + "CUP_U_I_Woodlander_02", + "CUP_U_I_Worker_02", + "CUP_U_I_Villager_04", + "CUP_U_I_Woodlander_01", + "CUP_U_C_Woodlander_04", + "CUP_U_C_Citizen_04", + "CUP_U_C_Citizen_01" + +]; + +KP_liberation_guerilla_uniforms_2 = [ + "CUP_I_B_PMC_Unit_20", + "CUP_I_B_PMC_Unit_19", + "CUP_I_B_PMC_Unit_11", + "CUP_I_B_PMC_Unit_10", + "CUP_I_B_PMC_Unit_9", + "CUP_I_B_PMC_Unit_12", + "CUP_I_B_PMC_Unit_16", + "CUP_I_B_PMC_Unit_22" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "CUP_U_I_GUE_Flecktarn2", + "CUP_U_I_GUE_Flecktarn3", + "CUP_U_I_GUE_Flecktarn", + "CUP_U_I_Gillie_Top", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Camo_F" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "CUP_V_I_Guerilla_Jacket", + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_TacVestIR_blk", + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOGL_ghex_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_oli", + "CUP_V_RUS_Smersh_2", + "CUP_V_I_Carrier_Belt", + "CUP_V_B_PASGT_OD", + "CUP_V_B_GER_Carrier_Rig", + "CUP_V_B_GER_Carrier_Vest_2", + "V_TacChestrig_oli_F" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "CUP_H_C_Ushanka_02", + "CUP_H_C_Ushanka_03", + "CUP_H_C_Ushanka_04", + "CUP_H_C_Ushanka_01", + "CUP_H_C_Beret_03", + "CUP_H_C_Beret_02", + "CUP_H_C_Beret_01", + "CUP_H_C_Beret_04", + "CUP_H_C_Beanie_01", + "CUP_H_C_Beanie_02", + "CUP_H_C_Beanie_03", + "CUP_H_C_Beanie_04" +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "CUP_H_C_Ushanka_02", + "CUP_H_C_Ushanka_03", + "CUP_H_C_Ushanka_04", + "CUP_H_C_Ushanka_01", + "H_PASGT_basic_black_F", + "H_PASGT_basic_olive_F", + "H_Cap_blk_Raven", + "H_MilCap_dgtl" +]; + +KP_liberation_guerilla_headgear_3 = [ + "H_Shemag_olive", + "H_Shemag_olive_hs", + "H_Shemag_olive", + "H_Booniehat_khk", + "H_Booniehat_oli", + "CUP_H_Ger_Boonie_Flecktarn", + "H_PASGT_basic_olive_F", + "CUP_H_GER_LWH_Flecktarn" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/CUP_TakiLocals.sqf b/kp_liberation.brf_sumava/presets/resistance/CUP_TakiLocals.sqf new file mode 100644 index 0000000..a05463d --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/CUP_TakiLocals.sqf @@ -0,0 +1,306 @@ +/* + Needed Mods: + - CUP Weapons + - CUP Vehicles + - CUP Units + + Optional Mods: + - Project Infinite AIO +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "CUP_I_TK_GUE_Soldier_MG", + "CUP_I_TK_GUE_Mechanic", + "CUP_I_TK_GUE_Commander", + "CUP_I_TK_GUE_Guerilla_Medic", + "CUP_I_TK_GUE_Soldier", + "CUP_I_TK_GUE_Soldier_AT", + "CUP_I_TK_GUE_Sniper", + "CUP_I_TK_GUE_Soldier_TL" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "CUP_I_Datsun_PK_TK", + "CUP_I_Hilux_AGS30_TK", + "CUP_I_Hilux_DSHKM_TK", + "CUP_I_Hilux_M2_TK", + "CUP_I_Hilux_SPG9_TK", + "CUP_I_Hilux_armored_BMP1_TK", + "CUP_I_Hilux_armored_BTR60_TK", + "CUP_I_Hilux_armored_zu23_TK", + "CUP_I_BTR40_MG_TKG", + "CUP_I_BTR40_MG_TKG", + "CUP_I_BMP1_TK_GUE", + "CUP_I_BRDM2_TK_GUE", + "CUP_I_T34_TK_GUE", + "CUP_I_T55_TK_GUE", + "CUP_I_Datsun_PK_TK_Random" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["bnae_mk1_virtual","10Rnd_303_Magazine",8,"",""], + ["bnae_mk1_t_virtual","10Rnd_303_Magazine",8,"bnae_scope_v3_virtual",""], + ["bnae_m97_virtual","6Rnd_Slug_Magazine",10,"",""], + ["bnae_spr220_virtual","2Rnd_Slug_Magazine",20,"",""], + ["bnae_spr220_so_virtual","2Rnd_Slug_Magazine",20,"",""], + ["CUP_srifle_LeeEnfield","CUP_10x_303_M",8,"",""], + ["CUP_srifle_LeeEnfield_rail","CUP_10x_303_M",8,"cup_optic_leupoldmk4",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["bnae_mk1_t_virtual","10Rnd_303_Magazine",8,"bnae_scope_v3_virtual",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_kobra",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_pso_1",""], + ["CUP_arifle_Sa58V_camo","CUP_30Rnd_Sa58_M_TracerG",6,"",""], + ["CUP_arifle_RPK74","CUP_75Rnd_TE4_LRT4_Green_Tracer_545x39_RPK_M",3,"",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["CUP_arifle_FNFAL","CUP_20Rnd_762x51_FNFAL_M",5,"",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_kobra",""], + ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_pso_1",""], + ["CUP_srifle_SVD","CUP_10Rnd_762x54_SVD_M",10,"cup_optic_pso_3",""], + ["CUP_lmg_PKM","CUP_100Rnd_TE4_LRT4_762x54_PK_Tracer_Green_M",2,"",""], + ["CUP_arifle_FNFAL_railed","CUP_20Rnd_762x51_FNFAL_M",5,"cup_optic_leupold_vx3",""], + ["CUP_arifle_FNFAL","CUP_20Rnd_762x51_FNFAL_M",5,"",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "CUP_O_TKI_Khet_Jeans_04", + "CUP_O_TKI_Khet_Jeans_03", + "CUP_O_TKI_Khet_Jeans_02", + "CUP_O_TKI_Khet_Jeans_01", + "CUP_O_TKI_Khet_Jeans_01", + "CUP_O_TKI_Khet_Partug_02", + "CUP_O_TKI_Khet_Partug_03", + "CUP_O_TKI_Khet_Partug_04", + "CUP_O_TKI_Khet_Partug_05", + "CUP_O_TKI_Khet_Partug_06", + "CUP_O_TKI_Khet_Partug_07", + "CUP_O_TKI_Khet_Partug_08", + "CUP_O_TKI_Khet_Partug_08", + "U_BG_Guerilla3_1" + +]; + +KP_liberation_guerilla_uniforms_2 = [ + "U_BG_Guerilla2_3", + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_1", + "U_BG_Guerrilla_6_1", + "CUP_U_C_Citizen_03", + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_2", + "U_BG_Guerilla2_3", + "U_BG_Guerilla3_1", + "U_C_HunterBody_grn", + "U_C_Mechanic_01_F", + "U_I_C_Soldier_Para_5_F", + "U_I_G_resistanceLeader_F" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "U_BG_Guerilla1_1", + "U_BG_Guerilla1_2_F", + "U_BG_Guerrilla_6_1", + "U_BG_leader", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Camo_F" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F", + "CUP_V_RUS_Smersh_1", + "CUP_V_RUS_Smersh_2", + "CUP_V_O_TK_CrewBelt", + "CUP_V_OI_TKI_Jacket1_04", + "CUP_V_OI_TKI_Jacket1_06", + "CUP_V_OI_TKI_Jacket1_01", + "CUP_V_OI_TKI_Jacket1_05", + "CUP_V_OI_TKI_Jacket1_02", + "CUP_V_OI_TKI_Jacket1_03", + "CUP_V_OI_TKI_Jacket4_04", + "CUP_V_OI_TKI_Jacket4_05", + "CUP_V_OI_TKI_Jacket4_02", + "CUP_V_OI_TKI_Jacket4_06", + "CUP_V_OI_TKI_Jacket4_03", + "CUP_V_OI_TKI_Jacket4_01", + "CUP_V_OI_TKI_Jacket5_04" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "CUP_V_CDF_6B3_4_Green", + "CUP_V_CDF_6B3_4_DST", + "V_HarnessOGL_ghex_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_brn", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVest_blk", + "V_I_G_resistanceLeader_F", + "V_TacVest_camo", + "CUP_V_O_Ins_Carrier_Rig_Com", + "CUP_V_O_Ins_Carrier_Rig_Light", + "CUP_V_O_Ins_Carrier_Rig_MG", + "CUP_V_CDF_6B3_4_Green", + "CUP_V_CDF_6B3_4_DST", + "V_TacChestrig_grn_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_oli_F" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "CUP_H_TKI_Lungee_Open_01", + "CUP_H_TK_Lungee", + "CUP_H_TKI_Lungee_Open_02", + "CUP_H_TKI_Lungee_Open_03", + "CUP_H_TKI_Lungee_Open_04", + "CUP_H_TKI_Lungee_Open_05", + "CUP_H_TKI_Lungee_Open_06", + "CUP_H_TKI_Lungee_01", + "CUP_H_TKI_Lungee_02", + "CUP_H_TKI_Lungee_03", + "CUP_H_TKI_Lungee_04", + "CUP_H_TKI_Lungee_05", + "CUP_H_TKI_Lungee_06", + "CUP_H_TKI_Pakol_1_01", + "CUP_H_TKI_Pakol_2_04", + "CUP_H_TKI_Pakol_2_05", + "CUP_H_TKI_Pakol_2_06", + "CUP_H_TKI_Pakol_1_02", + "CUP_H_TKI_Pakol_1_03", + "CUP_H_TKI_Pakol_1_04", + "CUP_H_TKI_Pakol_1_05", + "CUP_H_TKI_Pakol_1_06", + "CUP_H_TKI_Pakol_2_01", + "CUP_H_TKI_Pakol_2_02", + "CUP_H_TKI_Pakol_2_03", + "CUP_H_TKI_SkullCap_01", + "CUP_H_TKI_SkullCap_02", + "CUP_H_TKI_SkullCap_03", + "CUP_H_TKI_SkullCap_04", + "CUP_H_TKI_SkullCap_05", + "CUP_H_TKI_SkullCap_06" +]; + +KP_liberation_guerilla_headgear_2 = [ + "CUP_H_TKI_Lungee_Open_01", + "CUP_H_TK_Lungee", + "CUP_H_TKI_Lungee_Open_02", + "CUP_H_TKI_Lungee_Open_03", + "CUP_H_TKI_Lungee_Open_04", + "CUP_H_TKI_Lungee_Open_05", + "CUP_H_TKI_Lungee_Open_06", + "CUP_H_TKI_Lungee_01", + "CUP_H_TKI_Lungee_02", + "CUP_H_TKI_Lungee_03", + "CUP_H_TKI_Lungee_04", + "CUP_H_TKI_Lungee_05", + "CUP_H_TKI_Lungee_06", + "CUP_H_TKI_Pakol_1_01", + "CUP_H_TKI_Pakol_2_04", + "CUP_H_TKI_Pakol_2_05", + "CUP_H_TKI_Pakol_2_06", + "CUP_H_TKI_Pakol_1_02", + "CUP_H_TKI_Pakol_1_03", + "CUP_H_TKI_Pakol_1_04", + "CUP_H_TKI_Pakol_1_05", + "CUP_H_TKI_Pakol_1_06", + "CUP_H_TKI_Pakol_2_01", + "CUP_H_TKI_Pakol_2_02", + "CUP_H_TKI_Pakol_2_03", + "CUP_H_TKI_SkullCap_01", + "CUP_H_TKI_SkullCap_02", + "CUP_H_TKI_SkullCap_03", + "CUP_H_TKI_SkullCap_04", + "CUP_H_TKI_SkullCap_05", + "CUP_H_TKI_SkullCap_06" +]; + +KP_liberation_guerilla_headgear_3 = [ + "CUP_H_TKI_Lungee_Open_01", + "CUP_H_TK_Lungee", + "CUP_H_TKI_Lungee_Open_02", + "CUP_H_TKI_Lungee_Open_03", + "CUP_H_TKI_Lungee_Open_04", + "CUP_H_TKI_Lungee_Open_05", + "CUP_H_TKI_Lungee_Open_06", + "CUP_H_TKI_Lungee_01", + "CUP_H_TKI_Lungee_02", + "CUP_H_TKI_Lungee_03", + "CUP_H_TKI_Lungee_04", + "CUP_H_TKI_Lungee_05", + "CUP_H_TKI_Lungee_06", + "CUP_H_TKI_Pakol_1_01", + "CUP_H_TKI_Pakol_2_04", + "CUP_H_TKI_Pakol_2_05", + "CUP_H_TKI_Pakol_2_06", + "CUP_H_TKI_Pakol_1_02", + "CUP_H_TKI_Pakol_1_03", + "CUP_H_TKI_Pakol_1_04", + "CUP_H_TKI_Pakol_1_05", + "CUP_H_TKI_Pakol_1_06", + "CUP_H_TKI_Pakol_2_01", + "CUP_H_TKI_Pakol_2_02", + "CUP_H_TKI_Pakol_2_03", + "CUP_H_TKI_SkullCap_01", + "CUP_H_TKI_SkullCap_02", + "CUP_H_TKI_SkullCap_03", + "CUP_H_TKI_SkullCap_04", + "CUP_H_TKI_SkullCap_05", + "CUP_H_TKI_SkullCap_06" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/RACS.sqf b/kp_liberation.brf_sumava/presets/resistance/RACS.sqf new file mode 100644 index 0000000..ce1bf9e --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/RACS.sqf @@ -0,0 +1,201 @@ +/* + Needed Mods: + - Project OPFOR + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "LOP_RACS_Infantry_MG", + "LOP_RACS_Infantry_Engineer", + "LOP_RACS_Infantry_TL", + "LOP_RACS_Infantry_Corpsman", + "LOP_RACS_Infantry_Rifleman", + "LOP_RACS_Infantry_AT", + "LOP_RACS_Infantry_Marksman", + "LOP_RACS_Infantry_SL" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "LOP_RACS_Landrover_M2", + "LOP_RACS_Offroad_M2" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["rhs_weap_Izh","rhsgref_1Rnd_00Buck",20,"",""], + ["rhs_weap_m38","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_m38_rail","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_kar98k","rhsgref_5rnd_792x57_kar98k",6,"",""], + ["rhs_weap_mosin_sbr","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_makarov_pm","rhs_mag_9x18_8_57N181S",5,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["rhs_weap_ak74","rhs_30rnd_545x39_AK",3,"",""], + ["rhs_weap_akm","rhs_30rnd_762x39mm",3,"",""], + ["rhs_weap_akms","rhs_30rnd_762x39mm",3,"",""], + ["rhs_weap_aks74u","rhs_30rnd_545x39_AK",3,"",""], + ["rhs_weap_pp2000","rhs_mag_9x19mm_7n21_20",4,"",""], + ["rhs_weap_svds","rhs_10rnd_762x54mmR_7N1",3,"rhs_acc_pso1m2",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"rhs_acc_pkas",""], + ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"rhs_acc_ekp8_02",""], + ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_pkas",""], + ["rhs_weap_asval_grip","rhs_20rnd_9x39mm_SP5",5,"rhs_acc_pkas",""], + ["rhs_weap_pkm","rhs_100Rnd_762x54mmR",2,"",""], + ["rhs_weap_pkp","rhs_100Rnd_762x54mmR",2,"rhs_acc_pkas",""], + ["rhs_weap_svdp","rhs_10rnd_762x54mmR_7N1",5,"rhs_acc_pso1m21",""], + ["rhs_weap_aks74un","rhs_30rnd_545x39_AK",4,"rhs_acc_ekp8_02",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "LOP_U_RACS_Fatigue_01", + "LOP_U_RACS_Fatigue_01_slv" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "LOP_U_RACS_Fatigue_01", + "LOP_U_RACS_Fatigue_01_slv" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "LOP_U_RACS_Fatigue_01", + "LOP_U_RACS_Fatigue_01_slv" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F", + "rhs_vest_commander", + "rhs_vest_pistol_holder", + "V_Rangemaster_belt", + "rhs_6sh46" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOGL_ghex_F", + "rhsgref_alice_webbing", + "V_TacChestrig_grn_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_oli_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_brn", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVest_blk", + "V_I_G_resistanceLeader_F", + "V_TacVest_camo", + "rhs_vydra_3m", + "rhsgref_6b23_khaki_medic", + "rhsgref_6b23_khaki_nco", + "rhsgref_6b23_khaki_officer", + "rhsgref_6b23_khaki_rifleman", + "rhsgref_6b23_khaki_sniper", + "rhsgref_6b23_khaki" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "", + "LOP_H_6B27M_RACS", + "LOP_H_6B27M_ess_RACS" + +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "rhsgref_fieldcap_ttsko_digi", + "rhsgref_fieldcap_ttsko_forest", + "rhsgref_fieldcap_ttsko_mountain", + "rhsgref_fieldcap_ttsko_urban", + "", + "", + "", + "", + "LOP_H_6B27M_RACS", + "LOP_H_6B27M_ess_RACS" +]; + +KP_liberation_guerilla_headgear_3 = [ + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_Shemag_olive", + "H_Booniehat_khk", + "H_Booniehat_oli", + "rhsgref_M56", + "H_Watchcap_blk", + "rhs_ssh68", + "rhsgref_ssh68_emr", + "rhs_tsh4", + "H_Beret_blk", + "H_Watchcap_camo", + "H_Watchcap_khk", + "", + "", + "", + "", + "LOP_H_6B27M_RACS", + "LOP_H_6B27M_ess_RACS" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk", + "rhs_balaclava", + "rhs_balaclava1_olive", + "rhs_scarf" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/apex.sqf b/kp_liberation.brf_sumava/presets/resistance/apex.sqf new file mode 100644 index 0000000..95eb61c --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/apex.sqf @@ -0,0 +1,219 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "I_C_Soldier_Bandit_1_F", + "I_C_Soldier_Bandit_2_F", + "I_C_Soldier_Bandit_3_F", + "I_C_Soldier_Bandit_4_F", + "I_C_Soldier_Bandit_5_F", + "I_C_Soldier_Bandit_6_F", + "I_C_Soldier_Bandit_7_F", + "I_C_Soldier_Bandit_8_F" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "I_C_Offroad_02_LMG_F", + "I_C_Offroad_02_AT_F" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["arifle_AKM_F","30Rnd_762x39_Mag_F",4,"",""], + ["arifle_AKS_F","30Rnd_545x39_Mag_F",4,"",""], + ["hgun_PDW2000_F","30Rnd_9x21_Mag",4,"",""], + ["SMG_01_F","30Rnd_45ACP_Mag_SMG_01",4,"",""], + ["SMG_02_F","30Rnd_9x21_Mag_SMG_02",4,"",""], + ["SMG_05_F","30Rnd_9x21_Mag_SMG_02",4,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["arifle_Katiba_F","30Rnd_65x39_caseless_green",4,"optic_ACO_grn",""], + ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], + ["arifle_TRG21_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], + ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_ACO_grn",""], + ["arifle_MX_SW_F","100Rnd_65x39_caseless_mag",3,"optic_ACO_grn","bipod_01_F_blk"], + ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag",5,"optic_Hamr","bipod_01_F_blk"] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_MRCO",""], + ["arifle_SPAR_01_blk_F","30Rnd_556x45_Stanag",4,"optic_MRCO",""], + ["arifle_SPAR_03_blk_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["arifle_ARX_blk_F","30Rnd_65x39_caseless_green",4,"optic_MRCO",""], + ["srifle_DMR_03_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["srifle_EBR_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["srifle_DMR_07_blk_F","20Rnd_650x39_Cased_Mag_F",5,"optic_DMS",""], + ["LMG_Mk200_F","200Rnd_65x39_cased_Box",2,"optic_MRCO","bipod_01_F_blk"] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "U_C_Poloshirt_blue", + "U_C_Poloshirt_burgundy", + "U_C_Poloshirt_salmon", + "U_C_Poloshirt_redwhite", + "U_C_Poloshirt_stripped", + "U_C_Poloshirt_tricolour", + "U_C_Poor_1", + "U_C_Man_casual_1_F", + "U_C_Man_casual_2_F", + "U_C_Man_casual_3_F", + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_Marshal" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_2", + "U_BG_Guerilla2_3", + "U_BG_Guerilla3_1", + "U_C_HunterBody_grn", + "U_C_Mechanic_01_F", + "U_I_C_Soldier_Para_5_F", + "U_I_G_resistanceLeader_F" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "U_BG_Guerilla1_1", + "U_BG_Guerilla1_2_F", + "U_BG_Guerrilla_6_1", + "U_BG_leader", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Camo_F" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOGL_ghex_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_brn", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVest_blk", + "V_I_G_resistanceLeader_F", + "V_TacVest_camo", + "V_TacChestrig_grn_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_oli_F" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "H_Hat_brown", + "H_Hat_grey", + "H_Hat_tan", + "H_Hat_checker", + "H_Hat_camo", + "H_Bandanna_surfer", + "H_Bandanna_surfer_grn", + "H_Bandanna_surfer_blk", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F", + "H_Construction_basic_black_F", + "H_Helmet_Skate", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_tan", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_blk" +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_tan", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_blk", + "H_Cap_blk_Raven", + "H_MilCap_dgtl" +]; + +KP_liberation_guerilla_headgear_3 = [ + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_Shemag_olive", + "H_Booniehat_khk", + "H_Booniehat_oli", + "H_Booniehat_tan", + "H_Booniehat_dgtl", + "H_Booniehat_tna_F", + "H_PASGT_basic_olive_F", + "H_PASGT_basic_white_F" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/custom.sqf b/kp_liberation.brf_sumava/presets/resistance/custom.sqf new file mode 100644 index 0000000..5fa52f0 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/custom.sqf @@ -0,0 +1,219 @@ +/* + Needed Mods: + - None + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "I_G_Soldier_AR_F", + "I_G_engineer_F", + "I_G_officer_F", + "I_G_medic_F", + "I_G_Soldier_F", + "I_G_Soldier_LAT_F", + "I_G_Soldier_M_F", + "I_G_Soldier_SL_F" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "I_G_Offroad_01_armed_F", + "I_G_Offroad_01_AT_F" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["arifle_AKM_F","30Rnd_762x39_Mag_F",4,"",""], + ["arifle_AKS_F","30Rnd_545x39_Mag_F",4,"",""], + ["hgun_PDW2000_F","30Rnd_9x21_Mag",4,"",""], + ["SMG_01_F","30Rnd_45ACP_Mag_SMG_01",4,"",""], + ["SMG_02_F","30Rnd_9x21_Mag_SMG_02",4,"",""], + ["SMG_05_F","30Rnd_9x21_Mag_SMG_02",4,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["arifle_Katiba_F","30Rnd_65x39_caseless_green",4,"optic_ACO_grn",""], + ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], + ["arifle_TRG21_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], + ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_ACO_grn",""], + ["arifle_MX_SW_F","100Rnd_65x39_caseless_mag",3,"optic_ACO_grn","bipod_01_F_blk"], + ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag",5,"optic_Hamr","bipod_01_F_blk"] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_MRCO",""], + ["arifle_SPAR_01_blk_F","30Rnd_556x45_Stanag",4,"optic_MRCO",""], + ["arifle_SPAR_03_blk_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["arifle_ARX_blk_F","30Rnd_65x39_caseless_green",4,"optic_MRCO",""], + ["srifle_DMR_03_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["srifle_EBR_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], + ["srifle_DMR_07_blk_F","20Rnd_650x39_Cased_Mag_F",5,"optic_DMS",""], + ["LMG_Mk200_F","200Rnd_65x39_cased_Box",2,"optic_MRCO","bipod_01_F_blk"] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "U_C_Poloshirt_blue", + "U_C_Poloshirt_burgundy", + "U_C_Poloshirt_salmon", + "U_C_Poloshirt_redwhite", + "U_C_Poloshirt_stripped", + "U_C_Poloshirt_tricolour", + "U_C_Poor_1", + "U_C_Man_casual_1_F", + "U_C_Man_casual_2_F", + "U_C_Man_casual_3_F", + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_Marshal" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_2", + "U_BG_Guerilla2_3", + "U_BG_Guerilla3_1", + "U_C_HunterBody_grn", + "U_C_Mechanic_01_F", + "U_I_C_Soldier_Para_5_F", + "U_I_G_resistanceLeader_F" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "U_BG_Guerilla1_1", + "U_BG_Guerilla1_2_F", + "U_BG_Guerrilla_6_1", + "U_BG_leader", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Camo_F" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOGL_ghex_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_brn", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVest_blk", + "V_I_G_resistanceLeader_F", + "V_TacVest_camo", + "V_TacChestrig_grn_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_oli_F" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "H_Hat_brown", + "H_Hat_grey", + "H_Hat_tan", + "H_Hat_checker", + "H_Hat_camo", + "H_Bandanna_surfer", + "H_Bandanna_surfer_grn", + "H_Bandanna_surfer_blk", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F", + "H_Construction_basic_black_F", + "H_Helmet_Skate", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_tan", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_blk" +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_tan", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_blk", + "H_Cap_blk_Raven", + "H_MilCap_dgtl" +]; + +KP_liberation_guerilla_headgear_3 = [ + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_Shemag_olive", + "H_Booniehat_khk", + "H_Booniehat_oli", + "H_Booniehat_tan", + "H_Booniehat_dgtl", + "H_Booniehat_tna_F", + "H_PASGT_basic_olive_F", + "H_PASGT_basic_white_F" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/germany.sqf b/kp_liberation.brf_sumava/presets/resistance/germany.sqf new file mode 100644 index 0000000..626e4bb --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/germany.sqf @@ -0,0 +1,179 @@ +/* + Needed Mods: + - Global Mobilization + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "I_G_Soldier_AR_F", + "I_G_engineer_F", + "I_G_officer_F", + "I_G_medic_F", + "I_G_Soldier_F", + "I_G_Soldier_LAT_F", + "I_G_Soldier_M_F", + "I_G_Soldier_SL_F" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = []; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["gm_mp2a1_blk","gm_32Rnd_9x19mm_B_DM51_mp2_blk",4,"",""], + ["gm_mp2a1_blk","gm_32Rnd_9x19mm_B_DM51_mp2_blk",4,"",""], + ["gm_mpiaks74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["gm_mpiaks74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], + ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], + ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], + ["gm_g3a3_blk","gm_20Rnd_762x51mm_B_T_DM21_g3_blk",4,"",""], + ["gm_g3a3_blk","gm_20Rnd_762x51mm_B_T_DM21_g3_blk",4,"",""], + ["gm_lmgrpk_brn","gm_75Rnd_762x39mm_B_M43_ak47_blk",4,"",""], + ["gm_lmgrpk_brn","gm_75Rnd_762x39mm_B_M43_ak47_blk",4,"",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "gm_gc_civ_uniform_man_01_80_blu", + "gm_gc_civ_uniform_man_02_80_brn", + "gm_ge_civ_uniform_blouse_80_gry", + "gm_gc_civ_uniform_man_01_80_blk", + "U_C_Mechanic_01_F" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "gm_gc_civ_uniform_man_01_80_blu", + "gm_gc_civ_uniform_man_02_80_brn", + "gm_ge_civ_uniform_blouse_80_gry", + "gm_gc_civ_uniform_man_01_80_blk", + "U_C_Mechanic_01_F", + "U_C_WorkerCoveralls", + "U_C_WorkerCoveralls" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "gm_gc_civ_uniform_man_01_80_blu", + "gm_gc_civ_uniform_man_02_80_brn", + "gm_ge_civ_uniform_blouse_80_gry", + "gm_gc_civ_uniform_man_01_80_blk", + "U_C_Mechanic_01_F", + "U_C_WorkerCoveralls", + "U_C_WorkerCoveralls", + "U_BG_Guerilla3_1", + "U_BG_Guerilla3_1", + "U_BG_Guerrilla_6_1", + "U_BG_Guerrilla_6_1", + "U_B_GEN_Commander_F", + "U_B_GEN_Commander_F" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_blk" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_blk", + "gm_ge_bgs_vest_80_rifleman" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_BandollierB_blk", + "gm_ge_bgs_vest_80_rifleman" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "H_Hat_brown", + "H_Hat_grey", + "H_Hat_tan", + "H_Hat_checker", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F" +]; + +KP_liberation_guerilla_headgear_2 = [ + "", + "", + "", + "", + "H_Hat_brown", + "H_Hat_grey", + "H_Hat_tan", + "H_Hat_checker", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F", + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk" +]; + +KP_liberation_guerilla_headgear_3 = [ + "", + "", + "", + "", + "H_Hat_brown", + "H_Hat_grey", + "H_Hat_tan", + "H_Hat_checker", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F", + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_Shemag_olive" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_blk" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/middle_eastern.sqf b/kp_liberation.brf_sumava/presets/resistance/middle_eastern.sqf new file mode 100644 index 0000000..07a8694 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/middle_eastern.sqf @@ -0,0 +1,187 @@ +/* + Needed Mods: + - RHS USAF + - RHS AFRF + - Project OPFOR + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "LOP_AM_Infantry_SL", + "LOP_AM_Infantry_Rifleman", + "LOP_AM_Infantry_Rifleman_2", + "LOP_AM_Infantry_Rifleman_3", + "LOP_AM_Infantry_AT", + "LOP_AM_Infantry_AR", + "LOP_AM_Infantry_Corpsman", + "LOP_AM_Infantry_Engineer" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "LOP_AM_UAZ_DshKM" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["rhs_weap_ak74","rhs_30rnd_545x39_AK",4,"",""], + ["rhs_weap_aks74u","rhs_30rnd_545x39_AK",4,"",""], + ["LOP_Weap_LeeEnfield","LOP_10rnd_77mm_mag",3,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["rhs_weap_ak74","rhs_30rnd_545x39_AK",4,"",""], + ["rhs_weap_akm","rhs_30rnd_762x39mm",4,"",""], + ["rhs_weap_akms","rhs_30rnd_762x39mm",4,"",""], + ["rhs_weap_aks74u","rhs_30rnd_545x39_AK",4,"",""], + ["rhs_weap_pp2000","rhs_mag_9x19mm_7n21_20",5,"optic_ACO_grn_smg",""], + ["LOP_Weap_LeeEnfield_railed","LOP_10rnd_77mm_mag",3,"optic_ACO_grn",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"",""], + ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"",""], + ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_ekp1",""], + ["rhs_weap_pkm","rhs_100Rnd_762x54mmR",2,"",""], + ["rhs_weap_aks74un","rhs_30rnd_545x39_AK",4,"rhs_acc_ekp8_02",""], + ["LOP_Weap_LeeEnfield_railed","LOP_10rnd_77mm_mag",3,"optic_MRCO",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "LOP_U_TAK_Civ_Fatigue_01", + "LOP_U_TAK_Civ_Fatigue_02", + "LOP_U_TAK_Civ_Fatigue_04", + "LOP_U_TAK_Civ_Fatigue_05", + "LOP_U_TAK_Civ_Fatigue_06", + "LOP_U_TAK_Civ_Fatigue_07", + "LOP_U_TAK_Civ_Fatigue_08", + "LOP_U_TAK_Civ_Fatigue_09", + "LOP_U_TAK_Civ_Fatigue_10", + "LOP_U_TAK_Civ_Fatigue_11", + "LOP_U_TAK_Civ_Fatigue_12", + "LOP_U_TAK_Civ_Fatigue_13", + "LOP_U_TAK_Civ_Fatigue_14", + "LOP_U_TAK_Civ_Fatigue_15", + "LOP_U_TAK_Civ_Fatigue_16" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "LOP_U_TAK_Civ_Fatigue_01", + "LOP_U_TAK_Civ_Fatigue_02", + "LOP_U_TAK_Civ_Fatigue_04", + "LOP_U_TAK_Civ_Fatigue_05", + "LOP_U_TAK_Civ_Fatigue_06", + "LOP_U_TAK_Civ_Fatigue_07", + "LOP_U_TAK_Civ_Fatigue_08", + "LOP_U_TAK_Civ_Fatigue_09", + "LOP_U_TAK_Civ_Fatigue_10", + "LOP_U_TAK_Civ_Fatigue_11", + "LOP_U_TAK_Civ_Fatigue_12", + "LOP_U_TAK_Civ_Fatigue_13", + "LOP_U_TAK_Civ_Fatigue_14", + "LOP_U_TAK_Civ_Fatigue_15", + "LOP_U_TAK_Civ_Fatigue_16" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "LOP_U_TAK_Civ_Fatigue_01", + "LOP_U_TAK_Civ_Fatigue_02", + "LOP_U_TAK_Civ_Fatigue_04", + "LOP_U_TAK_Civ_Fatigue_05", + "LOP_U_TAK_Civ_Fatigue_06", + "LOP_U_TAK_Civ_Fatigue_07", + "LOP_U_TAK_Civ_Fatigue_08", + "LOP_U_TAK_Civ_Fatigue_09", + "LOP_U_TAK_Civ_Fatigue_10", + "LOP_U_TAK_Civ_Fatigue_11", + "LOP_U_TAK_Civ_Fatigue_12", + "LOP_U_TAK_Civ_Fatigue_13", + "LOP_U_TAK_Civ_Fatigue_14", + "LOP_U_TAK_Civ_Fatigue_15", + "LOP_U_TAK_Civ_Fatigue_16" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "" +]; + +KP_liberation_guerilla_vests_2 = [ + "", + "V_LegStrapBag_black_F", + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "LOP_6sh46" +]; + +KP_liberation_guerilla_vests_3 = [ + "", + "V_LegStrapBag_black_F", + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "LOP_6sh46", + "LOP_V_CarrierLite_BLK", + "LOP_V_CarrierLite_TAN", + "LOP_V_CarrierLite_OLV" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "H_HeadBandage_clean_F", + "H_HeadBandage_stained_F", + "H_Bandanna_gry", + "H_Bandanna_blu", + "H_Bandanna_cbr", + "H_Bandanna_khk", + "H_Bandanna_mcamo", + "H_Bandanna_sgg", + "H_Bandanna_sand", + "H_Bandanna_camo" +]; + +KP_liberation_guerilla_headgear_2 = [ + "", + "H_HeadBandage_clean_F", + "H_HeadBandage_stained_F", + "H_Bandanna_gry", + "H_Bandanna_cbr", + "H_Bandanna_khk", + "H_Bandanna_mcamo", + "H_Bandanna_sgg", + "H_Bandanna_sand", + "H_Bandanna_camo", + "LOP_H_Turban", + "LOP_H_Turban_mask" +]; + +KP_liberation_guerilla_headgear_3 = [ + "LOP_H_Turban", + "LOP_H_Turban_mask", + "H_Shemag_olive", + "H_ShemagOpen_tan", + "H_ShemagOpen_khk", + "LOP_H_Shemag_BLK", + "LOP_H_Shemag_BLU", + "LOP_H_Shemag_GRE", + "LOP_H_Shemag_OLV", + "LOP_H_Shemag_RED1", + "LOP_H_Shemag_TAN", + "LOP_H_6B27M_wz93" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/rhs_gref.sqf b/kp_liberation.brf_sumava/presets/resistance/rhs_gref.sqf new file mode 100644 index 0000000..c46d80e --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/rhs_gref.sqf @@ -0,0 +1,219 @@ +/* + Needed Mods: + - RHS: AFRF + - RHS: GREF + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "I_G_Soldier_AR_F", + "I_G_engineer_F", + "I_G_officer_F", + "I_G_medic_F", + "I_G_Soldier_F", + "I_G_Soldier_LAT_F", + "I_G_Soldier_M_F", + "I_G_Soldier_SL_F" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = [ + "rhsgref_ins_g_uaz_dshkm_chdkz" +]; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["rhs_weap_Izh","rhsgref_1Rnd_00Buck",20,"",""], + ["rhs_weap_m38","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_m38_rail","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_kar98k","rhsgref_5rnd_792x57_kar98k",6,"",""], + ["rhs_weap_mosin_sbr","rhsgref_5rnd_762x54_m38",6,"",""], + ["rhs_weap_makarov_pm","rhs_mag_9x18_8_57N181S",5,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["rhs_weap_ak74","rhs_30rnd_545x39_AK",3,"",""], + ["rhs_weap_akm","rhs_30rnd_762x39mm",3,"",""], + ["rhs_weap_akms","rhs_30rnd_762x39mm",3,"",""], + ["rhs_weap_aks74u","rhs_30rnd_545x39_AK",3,"",""], + ["rhs_weap_pp2000","rhs_mag_9x19mm_7n21_20",4,"",""], + ["rhs_weap_svds","rhs_10rnd_762x54mmR_7N1",3,"rhs_acc_pso1m2",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"rhs_acc_pkas",""], + ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"rhs_acc_ekp8_02",""], + ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_pkas",""], + ["rhs_weap_asval_grip","rhs_20rnd_9x39mm_SP5",5,"rhs_acc_pkas",""], + ["rhs_weap_pkm","rhs_100Rnd_762x54mmR",2,"",""], + ["rhs_weap_pkp","rhs_100Rnd_762x54mmR",2,"rhs_acc_pkas",""], + ["rhs_weap_svdp","rhs_10rnd_762x54mmR_7N1",5,"rhs_acc_pso1m21",""], + ["rhs_weap_aks74un","rhs_30rnd_545x39_AK",4,"rhs_acc_ekp8_02",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_C_Poor_1", + "U_C_Man_casual_1_F", + "U_BG_Guerilla2_2", + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_3" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "U_BG_Guerrilla_6_1", + "U_BG_Guerilla1_1", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "U_BG_Guerilla3_1", + "U_C_HunterBody_grn", + "U_C_Mechanic_01_F", + "U_I_C_Soldier_Para_5_F", + "U_I_G_resistanceLeader_F" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "rhsgref_uniform_reed", + "rhsgref_uniform_woodland_olive", + "rhsgref_uniform_flecktarn", + "rhsgref_uniform_altis_lizard_olive", + "rhsgref_uniform_dpm_olive" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_LegStrapBag_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F", + "V_Pocketed_black_F", + "V_BandollierB_cbr", + "V_BandollierB_rgr", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_blk", + "V_BandollierB_ghex_F", + "rhs_vest_commander", + "rhs_vest_pistol_holder", + "V_Rangemaster_belt", + "rhs_6sh46" +]; + +KP_liberation_guerilla_vests_2 = [ + "V_Chestrig_rgr", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_blk", + "V_HarnessO_brn", + "V_HarnessO_gry", + "V_HarnessO_ghex_F", + "V_HarnessOGL_brn", + "V_HarnessOGL_gry", + "V_HarnessOGL_ghex_F", + "rhsgref_alice_webbing", + "V_TacChestrig_grn_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_oli_F" +]; + +KP_liberation_guerilla_vests_3 = [ + "V_TacVest_brn", + "V_TacVest_khk", + "V_TacVest_oli", + "V_TacVest_blk", + "V_I_G_resistanceLeader_F", + "V_TacVest_camo", + "rhs_vydra_3m", + "rhsgref_6b23_khaki_medic", + "rhsgref_6b23_khaki_nco", + "rhsgref_6b23_khaki_officer", + "rhsgref_6b23_khaki_rifleman", + "rhsgref_6b23_khaki_sniper", + "rhsgref_6b23_khaki" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "", + "H_Bandanna_surfer", + "H_Bandanna_surfer_grn", + "H_Bandanna_surfer_blk", + "H_Hat_Safari_olive_F", + "H_Hat_Safari_sand_F", + "H_Construction_basic_black_F", + "H_Helmet_Skate", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_tan", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_blk" +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_blu", + "H_Bandanna_sand", + "H_Bandanna_gry", + "H_Bandanna_camo", + "H_Bandanna_cbr", + "H_Bandanna_sgg", + "H_Bandanna_khk", + "rhsgref_fieldcap_ttsko_digi", + "rhsgref_fieldcap_ttsko_forest", + "rhsgref_fieldcap_ttsko_mountain", + "rhsgref_fieldcap_ttsko_urban" +]; + +KP_liberation_guerilla_headgear_3 = [ + "H_ShemagOpen_khk", + "H_ShemagOpen_tan", + "H_Shemag_olive", + "H_Booniehat_khk", + "H_Booniehat_oli", + "rhsgref_M56", + "H_Watchcap_blk", + "rhs_ssh68", + "rhsgref_ssh68_emr", + "rhs_tsh4", + "H_Beret_blk", + "H_Watchcap_camo", + "H_Watchcap_khk" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_shades", + "G_Bandanna_beast", + "G_Bandanna_tan", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_aviator", + "G_Bandanna_blk", + "rhs_balaclava", + "rhs_balaclava1_olive", + "rhs_scarf" +]; diff --git a/kp_liberation.brf_sumava/presets/resistance/unsung.sqf b/kp_liberation.brf_sumava/presets/resistance/unsung.sqf new file mode 100644 index 0000000..b9bb650 --- /dev/null +++ b/kp_liberation.brf_sumava/presets/resistance/unsung.sqf @@ -0,0 +1,219 @@ +/* + Needed Mods: + - The Unsung Vietnam War Mod + + Optional Mods: + - None +*/ + +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "uns_men_ARVNci_HMG", + "uns_men_ARVNci_S2", + "uns_men_ARVNci_SL", + "uns_men_CIDG_COM", + "uns_men_CIDG_ENG", + "uns_men_CIDG_MED", + "uns_men_CIDG_MRK2", + "uns_men_CIDG_S1" +]; + +// Armed vehicles +KP_liberation_guerilla_vehicles = []; + +/* Guerilla Equipment +There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ + +/* Weapons - You've to add the weapons as array like +["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] +You can leave optic and tripod empty with "" */ +KP_liberation_guerilla_weapons_1 = [ + ["uns_ak47","uns_ak47mag",4,"",""], + ["uns_PPS52","uns_k50mag",4,"",""], + ["uns_owen","uns_owenmag",4,"",""], + ["uns_mas36","uns_mas36mag",4,"",""], + ["uns_RPD","uns_rpdmag",1,"",""], + ["uns_m1carbine","uns_m1carbinemag",4,"",""] +]; + +KP_liberation_guerilla_weapons_2 = [ + ["uns_m2carbine","uns_m2carbinemag",4,"",""], + ["uns_akm","uns_ak47mag",4,"",""], + ["uns_DP28_base","uns_47Rnd_DP28",4,"",""], + ["uns_type50","uns_k50mag",4,"",""], + ["uns_m16","uns_20Rnd_556x45_Stanag",4,"",""], + ["uns_mas36","uns_mas36mag",4,"",""] +]; + +KP_liberation_guerilla_weapons_3 = [ + ["uns_akm_drum","uns_75Rnd_akdr",4,"",""], + ["uns_sa58p","uns_sa58mag",4,"",""], + ["uns_PK","uns_100Rnd_762x54_PK",1,"",""], + ["uns_m1garand","uns_m1garandmag",4,"",""], + ["uns_M63a_AR_base","uns_30Rnd_556x45_Stanag",4,"",""], + ["uns_Sterling","uns_mk4mag",4,"",""], + ["uns_m2carbine_gl","uns_m2carbinemag",4,"",""], + ["uns_m3a1","uns_m3a1mag",4,"",""], + ["uns_SVD_CAMO_base","uns_svdmag",4,"",""] +]; + +// Uniforms +KP_liberation_guerilla_uniforms_1 = [ + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_I_C_Soldier_Bandit_5_F", + "UNS_CIV_B", + "UNS_CIV_U", + "UNS_VC_B", + "UNS_VC_K", + "UNS_VC_S", + "UNS_VC_U" +]; + +KP_liberation_guerilla_uniforms_2 = [ + "U_BG_Guerilla2_1", + "U_BG_Guerilla2_3", + "U_BG_Guerilla3_1", + "U_C_HunterBody_grn", + "U_C_Mechanic_01_F", + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_5_F", + "U_I_C_Soldier_Para_5_F" +]; + +KP_liberation_guerilla_uniforms_3 = [ + "U_BG_Guerilla1_1", + "U_BG_Guerilla1_2_F", + "U_BG_leader", + "U_I_C_Soldier_Camo_F", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_4_F", + "UNS_DCCR_BBS", + "UNS_DCCR_GTS" +]; + +// Vests +KP_liberation_guerilla_vests_1 = [ + "UNS_VC_B1", + "UNS_VC_S2", + "V_BandollierB_blk", + "V_BandollierB_cbr", + "V_BandollierB_ghex_F", + "V_BandollierB_khk", + "V_BandollierB_oli", + "V_BandollierB_rgr", + "V_LegStrapBag_black_F", + "V_LegStrapBag_coyote_F", + "V_LegStrapBag_olive_F", + "V_Pocketed_black_F", + "V_Pocketed_coyote_F", + "V_Pocketed_olive_F" +]; + +KP_liberation_guerilla_vests_2 = [ + "UNS_ANZAC_VEST_C", + "UNS_ANZAC_VEST", + "UNS_M1956_M14", + "UNS_NVA_A1", + "UNS_NVA_MG", + "uns_vc_chestrig", + "UNS_VC_SP", + "V_Chestrig_blk", + "V_Chestrig_khk", + "V_Chestrig_oli", + "V_Chestrig_rgr", + "V_HarnessO_brn", + "V_HarnessO_ghex_F", + "V_HarnessO_gry", + "V_HarnessOGL_brn", + "V_HarnessOGL_ghex_F", + "V_HarnessOGL_gry" +]; + +KP_liberation_guerilla_vests_3 = [ + "UNS_M1956_M1", + "UNS_M1956_M2", + "UNS_M1956_M3", + "UNS_M1956_S3", + "UNS_NVA_SP", + "V_I_G_resistanceLeader_F", + "V_TacChestrig_cbr_F", + "V_TacChestrig_grn_F", + "V_TacChestrig_oli_F", + "V_TacVest_blk", + "V_TacVest_brn", + "V_TacVest_camo", + "V_TacVest_khk", + "V_TacVest_oli" +]; + +// Headgear +KP_liberation_guerilla_headgear_1 = [ + "", + "", + "", + "", + "H_StrawHat_dark", + "UNS_Boonie3_VC", + "UNS_Conehat_VC" +]; + +KP_liberation_guerilla_headgear_2 = [ + "H_Bandanna_khk", + "UNS_Boonie_VC", + "UNS_Headband_BK", + "UNS_Headband_ED", + "UNS_Headband_OD", + "UNS_Headband_OD2", + "UNS_Headband_VC", + "uns_sas_bandana_erdl", + "uns_sas_booniehat_vc_tan", + "uns_sas_booniehat_vc", + "uns_sas_headband_green", + "uns_vc_headband_blue" +]; + +KP_liberation_guerilla_headgear_3 = [ + "UNS_Boonie_6", + "UNS_Boonie_ERDL", + "UNS_Boonie_ERDL3", + "UNS_Boonie_OD", + "UNS_Boonie_OD2", + "UNS_Boonie_ODF", + "UNS_Boonie_ODP", + "UNS_Field_Cap", + "UNS_M1_1", + "UNS_M1_AFT", + "UNS_PAVN_HG", + "UNS_PAVN_HN", + "uns_sas_booniehat_erdl2", + "uns_sas_booniehat_green2" +]; + +// Facegear. Applies for tier 2 and 3. +KP_liberation_guerilla_facegear = [ + "", + "", + "", + "G_Bandanna_blk", + "G_Bandanna_khk", + "G_Bandanna_oli", + "G_Bandanna_shades", + "G_Bandanna_tan", + "UNS_Peace", + "UNS_Scarf_1stCav", + "UNS_Scarf_ARVN", + "UNS_Scarf_BK_W", + "UNS_Scarf_BK", + "UNS_Scarf_Blue", + "UNS_Scarf_GR", + "UNS_Scarf_OD", + "UNS_Scarf_PL", + "UNS_Scarf_Red" +]; diff --git a/kp_liberation.brf_sumava/res/btn_htp_spl_hov3.paa b/kp_liberation.brf_sumava/res/btn_htp_spl_hov3.paa new file mode 100644 index 0000000..7502451 Binary files /dev/null and b/kp_liberation.brf_sumava/res/btn_htp_spl_hov3.paa differ diff --git a/kp_liberation.brf_sumava/res/btn_htp_spl_idl3.paa b/kp_liberation.brf_sumava/res/btn_htp_spl_idl3.paa new file mode 100644 index 0000000..c2fa7ee Binary files /dev/null and b/kp_liberation.brf_sumava/res/btn_htp_spl_idl3.paa differ diff --git a/kp_liberation.brf_sumava/res/btn_join_spl_hov3.paa b/kp_liberation.brf_sumava/res/btn_join_spl_hov3.paa new file mode 100644 index 0000000..0f438fd Binary files /dev/null and b/kp_liberation.brf_sumava/res/btn_join_spl_hov3.paa differ diff --git a/kp_liberation.brf_sumava/res/btn_join_spl_idl3.paa b/kp_liberation.brf_sumava/res/btn_join_spl_idl3.paa new file mode 100644 index 0000000..5508b00 Binary files /dev/null and b/kp_liberation.brf_sumava/res/btn_join_spl_idl3.paa differ diff --git a/kp_liberation.brf_sumava/res/c130.ogg b/kp_liberation.brf_sumava/res/c130.ogg new file mode 100644 index 0000000..05d6abb Binary files /dev/null and b/kp_liberation.brf_sumava/res/c130.ogg differ diff --git a/kp_liberation.brf_sumava/res/camo03.jpg b/kp_liberation.brf_sumava/res/camo03.jpg new file mode 100644 index 0000000..3c0ed8d Binary files /dev/null and b/kp_liberation.brf_sumava/res/camo03.jpg differ diff --git a/kp_liberation.brf_sumava/res/flag_kp_co.paa b/kp_liberation.brf_sumava/res/flag_kp_co.paa new file mode 100644 index 0000000..2417d32 Binary files /dev/null and b/kp_liberation.brf_sumava/res/flag_kp_co.paa differ diff --git a/kp_liberation.brf_sumava/res/gradient.paa b/kp_liberation.brf_sumava/res/gradient.paa new file mode 100644 index 0000000..be39794 Binary files /dev/null and b/kp_liberation.brf_sumava/res/gradient.paa differ diff --git a/kp_liberation.brf_sumava/res/lib.paa b/kp_liberation.brf_sumava/res/lib.paa new file mode 100644 index 0000000..fcca280 Binary files /dev/null and b/kp_liberation.brf_sumava/res/lib.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_bgp.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_bgp.paa new file mode 100644 index 0000000..9021d37 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_bgp.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_camb.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_camb.paa new file mode 100644 index 0000000..eacdea1 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_camb.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_fob_los.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_los.paa new file mode 100644 index 0000000..c360a5b Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_los.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_fob_new.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_new.paa new file mode 100644 index 0000000..244f832 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_new.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_fob_sec.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_sec.paa new file mode 100644 index 0000000..438b9c9 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_sec.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_fob_und.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_und.paa new file mode 100644 index 0000000..85e0349 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_fob_und.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_int.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_int.paa new file mode 100644 index 0000000..9a9b67a Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_int.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_ref.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_ref.paa new file mode 100644 index 0000000..37c7b36 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_ref.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_restart.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_restart.paa new file mode 100644 index 0000000..7e169c6 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_restart.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_sec_cap.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_cap.paa new file mode 100644 index 0000000..fc735ac Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_cap.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_sec_los.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_los.paa new file mode 100644 index 0000000..c113113 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_los.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_sec_saf.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_saf.paa new file mode 100644 index 0000000..f710fda Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_saf.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_sec_una.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_una.paa new file mode 100644 index 0000000..ca493d5 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_sec_una.paa differ diff --git a/kp_liberation.brf_sumava/res/notif/ui_notif_sob.paa b/kp_liberation.brf_sumava/res/notif/ui_notif_sob.paa new file mode 100644 index 0000000..b7a9b31 Binary files /dev/null and b/kp_liberation.brf_sumava/res/notif/ui_notif_sob.paa differ diff --git a/kp_liberation.brf_sumava/res/secondary/convoy_hijack.jpg b/kp_liberation.brf_sumava/res/secondary/convoy_hijack.jpg new file mode 100644 index 0000000..af9485e Binary files /dev/null and b/kp_liberation.brf_sumava/res/secondary/convoy_hijack.jpg differ diff --git a/kp_liberation.brf_sumava/res/secondary/convoy_obj.jpg b/kp_liberation.brf_sumava/res/secondary/convoy_obj.jpg new file mode 100644 index 0000000..3a33cb1 Binary files /dev/null and b/kp_liberation.brf_sumava/res/secondary/convoy_obj.jpg differ diff --git a/kp_liberation.brf_sumava/res/secondary/fob_hunting.jpg b/kp_liberation.brf_sumava/res/secondary/fob_hunting.jpg new file mode 100644 index 0000000..92f7161 Binary files /dev/null and b/kp_liberation.brf_sumava/res/secondary/fob_hunting.jpg differ diff --git a/kp_liberation.brf_sumava/res/secondary/fob_obj.jpg b/kp_liberation.brf_sumava/res/secondary/fob_obj.jpg new file mode 100644 index 0000000..f23a021 Binary files /dev/null and b/kp_liberation.brf_sumava/res/secondary/fob_obj.jpg differ diff --git a/kp_liberation.brf_sumava/res/secondary/sar.jpg b/kp_liberation.brf_sumava/res/secondary/sar.jpg new file mode 100644 index 0000000..a6849ac Binary files /dev/null and b/kp_liberation.brf_sumava/res/secondary/sar.jpg differ diff --git a/kp_liberation.brf_sumava/res/skull.paa b/kp_liberation.brf_sumava/res/skull.paa new file mode 100644 index 0000000..3a170b4 Binary files /dev/null and b/kp_liberation.brf_sumava/res/skull.paa differ diff --git a/kp_liberation.brf_sumava/res/splash_libe2.paa b/kp_liberation.brf_sumava/res/splash_libe2.paa new file mode 100644 index 0000000..4b94a5a Binary files /dev/null and b/kp_liberation.brf_sumava/res/splash_libe2.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_ammo.paa b/kp_liberation.brf_sumava/res/ui_ammo.paa new file mode 100644 index 0000000..8babe75 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_ammo.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_arsenal.paa b/kp_liberation.brf_sumava/res/ui_arsenal.paa new file mode 100644 index 0000000..a00db68 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_arsenal.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_build.paa b/kp_liberation.brf_sumava/res/ui_build.paa new file mode 100644 index 0000000..d9b1752 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_build.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_cancel.paa b/kp_liberation.brf_sumava/res/ui_cancel.paa new file mode 100644 index 0000000..dd38c2b Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_cancel.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_confirm.paa b/kp_liberation.brf_sumava/res/ui_confirm.paa new file mode 100644 index 0000000..3ff65cc Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_confirm.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_deployfob.paa b/kp_liberation.brf_sumava/res/ui_deployfob.paa new file mode 100644 index 0000000..8fb9d16 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_deployfob.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_flipveh.paa b/kp_liberation.brf_sumava/res/ui_flipveh.paa new file mode 100644 index 0000000..e3086eb Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_flipveh.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_fuel.paa b/kp_liberation.brf_sumava/res/ui_fuel.paa new file mode 100644 index 0000000..16121d6 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_fuel.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_manpo.paa b/kp_liberation.brf_sumava/res/ui_manpo.paa new file mode 100644 index 0000000..ed946ee Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_manpo.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_recycle.paa b/kp_liberation.brf_sumava/res/ui_recycle.paa new file mode 100644 index 0000000..fdf3dc1 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_recycle.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_redeploy.paa b/kp_liberation.brf_sumava/res/ui_redeploy.paa new file mode 100644 index 0000000..28f0570 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_redeploy.paa differ diff --git a/kp_liberation.brf_sumava/res/ui_rotation.paa b/kp_liberation.brf_sumava/res/ui_rotation.paa new file mode 100644 index 0000000..a7b3fe4 Binary files /dev/null and b/kp_liberation.brf_sumava/res/ui_rotation.paa differ diff --git a/kp_liberation.brf_sumava/scripts/client/CfgFunctions.hpp b/kp_liberation.brf_sumava/scripts/client/CfgFunctions.hpp new file mode 100644 index 0000000..9cd3bec --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/CfgFunctions.hpp @@ -0,0 +1,8 @@ +class client_tutorial { + file = "scripts\client\tutorial"; + + class handleCrateStorageTask {}; + class handleHealCivTask {}; + class handleTakePowTask {}; + class tutorial {ext = ".fsm";}; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/do_recycle.sqf b/kp_liberation.brf_sumava/scripts/client/actions/do_recycle.sqf new file mode 100644 index 0000000..98bb099 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/do_recycle.sqf @@ -0,0 +1,103 @@ +// TODO Split this in an added action to the vehicles and add the dorecycle == 1 part in a button action +params ["_vehToRecycle"]; + +if (_vehToRecycle getVariable ["KP_liberation_preplaced", false]) exitWith {hint localize "STR_PREPLACED_ERROR";}; + +dorecycle = 0; + +private _type = typeOf _vehToRecycle; +private _cfg = configFile >> "cfgVehicles"; +private _suppMulti = 0.5; +private _ammoMulti = 0.5; +private _fuelMulti = 0.5; + +if !( + ((toLower _type) in KPLIB_b_buildings_classes) || + ((toLower _type) in KPLIB_storageBuildings) || + ((toLower _type) in KPLIB_upgradeBuildings) || + (_type in KP_liberation_ace_crates) || + (_type == "B_Slingload_01_Repair_F") || + (_type == "B_Slingload_01_Fuel_F") || + (_type == "B_Slingload_01_Ammo_F") +) then { + private _currentAmmo = 0; + private _allAmmo = 0; + if (count (magazinesAmmo _vehToRecycle) > 0) then { + { + _currentAmmo = _currentAmmo + (_x select 1); + _allAmmo = _allAmmo + (getNumber(configFile >> "CfgMagazines" >> (_x select 0) >> "count")); + } forEach (magazinesAmmo _vehToRecycle); + } else { + _allAmmo = 1; + }; + + _suppMulti = (((_vehToRecycle getHitPointDamage "HitEngine") - 1) * -1) * (((_vehToRecycle getHitPointDamage "HitHull") - 1) * -1); + _ammoMulti = _currentAmmo/_allAmmo; + _fuelMulti = fuel _vehToRecycle; + + if (_type in boats_names) then { + _suppMulti = (((_vehToRecycle getHitPointDamage "HitEngine") - 1) * -1); + }; +}; + +private _price_s = 0; +private _price_a = 0; +private _price_f = 0; + +if ((toLower _type) in KPLIB_o_allVeh_classes) then { + if (_vehToRecycle isKindOf "Car") then { + _price_s = round (60 * _suppMulti); + _price_a = round (25 * _ammoMulti); + _price_f = round (40 * _fuelMulti); + }; + if (_vehToRecycle isKindOf "Tank") then { + _price_s = round (150 * _suppMulti); + _price_a = round (120 * _ammoMulti); + _price_f = round (100 * _fuelMulti); + }; + if (_vehToRecycle isKindOf "Air") then { + _price_s = round (250 * _suppMulti); + _price_a = round (200 * _ammoMulti); + _price_f = round (150 * _fuelMulti); + }; +} else { + private _objectinfo = ((light_vehicles + heavy_vehicles + air_vehicles + static_vehicles + support_vehicles + buildings) select {_type == (_x select 0)}) select 0; + _price_s = round ((_objectinfo select 1) * GRLIB_recycling_percentage * _suppMulti); + _price_a = round ((_objectinfo select 2) * GRLIB_recycling_percentage * _ammoMulti); + _price_f = round ((_objectinfo select 3) * GRLIB_recycling_percentage * _fuelMulti); +}; + +createDialog "liberation_recycle"; +waitUntil {sleep 0.1; dialog}; + +ctrlSetText [134, format [localize "STR_RECYCLING_YIELD", getText (_cfg >> _type >> "displayName")]]; +ctrlSetText [131, format ["%1", _price_s]]; +ctrlSetText [132, format ["%1", _price_a]]; +ctrlSetText [133, format ["%1", _price_f]]; + +waitUntil {sleep 0.1; !dialog || !alive player || dorecycle != 0}; + +if (dialog) then {closeDialog 0}; + +if (dorecycle == 1 && !(isnull _vehToRecycle) && alive _vehToRecycle) then { + if (!(KP_liberation_recycle_building_near) && ((_price_s + _price_a + _price_f) > 0)) exitWith {hint localize "STR_NORECBUILDING_ERROR";}; + + private _storage_areas = (([] call KPLIB_fnc_getNearestFob) nearobjects (GRLIB_fob_range * 1.2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + private _crateSum = (ceil (_price_s / 100)) + (ceil (_price_a / 100)) + (ceil (_price_f / 100)); + private _spaceSum = 0; + + { + if (typeOf _x == KP_liberation_large_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + } forEach _storage_areas; + + if (_spaceSum < _crateSum) then { + hint localize "STR_CANCEL_ERROR"; + } else { + [_vehToRecycle, _price_s, _price_a, _price_f, _storage_areas] remoteExec ["recycle_remote_call",2]; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/do_repackage_fob.sqf b/kp_liberation.brf_sumava/scripts/client/actions/do_repackage_fob.sqf new file mode 100644 index 0000000..7ed8a8f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/do_repackage_fob.sqf @@ -0,0 +1,40 @@ +dorepackage = 0; + +createDialog "liberation_repackage_fob"; +waitUntil {sleep 0.1; dialog}; +waitUntil {sleep 0.1; !dialog || !alive player || dorepackage != 0}; + +if (dorepackage > 0) then { + closeDialog 0; + waitUntil {sleep 0.1; !dialog}; + + private _fob = [] call KPLIB_fnc_getNearestFob; + + if !(_fob isEqualTo []) then { + GRLIB_all_fobs = GRLIB_all_fobs - [_fob]; + KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fob}); + publicVariable "GRLIB_all_fobs"; + publicVariable "KP_liberation_clearances"; + }; + + {deleteVehicle _x} forEach (((getPos player) nearobjects [FOB_typename, 250]) select {getObjectType _x >= 8}); + + sleep 0.5; + + private _spawnpos = zeropos; + while {_spawnpos distance2d zeropos < 1000} do { + _spawnpos = (getPos player) findEmptyPosition [10, 250, 'B_Heli_Transport_01_F']; + if (_spawnpos isEqualTo []) then {_spawnpos = zeropos;}; + }; + + if (dorepackage == 1) then { + private _fobbox = FOB_box_typename createVehicle _spawnpos; + [_fobbox] call KPLIB_fnc_addObjectInit; + }; + + if (dorepackage == 2) then { + private _fobTruck = FOB_truck_typename createVehicle _spawnpos; + [_fobTruck] call KPLIB_fnc_addObjectInit; + }; + hint localize "STR_FOB_REPACKAGE_HINT"; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/do_unflip.sqf b/kp_liberation.brf_sumava/scripts/client/actions/do_unflip.sqf new file mode 100644 index 0000000..d3830fd --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/do_unflip.sqf @@ -0,0 +1,6 @@ +params [ "_veh" ]; + +if ( !isNull _veh ) then { + _veh setpos [(getpos _veh) select 0,(getpos _veh) select 1, 0.5]; + _veh setVectorUp surfaceNormal position _veh; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/intel_manager.sqf b/kp_liberation.brf_sumava/scripts/client/actions/intel_manager.sqf new file mode 100644 index 0000000..0624841 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/intel_manager.sqf @@ -0,0 +1,53 @@ +// TODO Remove this loop by adding the actions to the units/intel objects on spawn +waitUntil {!isNil "GRLIB_permissions"}; +waitUntil {!(GRLIB_permissions isEqualTo []) || !GRLIB_permissions_param}; + +private _near_people = []; +private _near_intel = []; +private _actionned_captive_units = []; +private _actionned_intel_items = []; + +while {true} do { + if ([5] call KPLIB_fnc_hasPermission) then { + _near_people = (getPosATL player) nearEntities [["Man"], 5]; + _near_intel = (getPosATL player) nearEntities [KPLIB_intelObjectClasses, 5]; + { + if ((captive _x) && !(_x in _actionned_captive_units) && !((side group _x) == GRLIB_side_friendly) && !(_x getVariable ["ACE_isUnconscious", false])) then { + _x addAction ["" + localize "STR_SECONDARY_CAPTURE" + "",{[_this select 0] join (group player);},"",-850,true,true,"","(vehicle player == player) && (side group _target != GRLIB_side_friendly) && (captive _target)"]; + _actionned_captive_units pushback _x; + }; + } forEach _near_people; + + { + if (!(alive _x) || ((player distance _x) > 5) || ((side group _x) == GRLIB_side_friendly)) then { + removeAllActions _x; + _actionned_captive_units = _actionned_captive_units - [_x]; + }; + } forEach _actionned_captive_units; + + { + if !(_x in _actionned_intel_items) then { + _x addAction ["" + localize "STR_INTEL" + "",{[_this select 0] remoteExecCall ["intel_remote_call", 2];},"",-849,true,true,"","(vehicle player == player)"]; + _actionned_intel_items pushback _x; + }; + } forEach _near_intel; + + { + if ((player distance _x) > 5) then { + removeAllActions _x; + _actionned_intel_items = _actionned_intel_items - [_x]; + }; + } forEach _actionned_intel_items; + } else { + { + removeAllActions _x; + _actionned_captive_units = _actionned_captive_units - [_x]; + } forEach _actionned_captive_units; + + { + removeAllActions _x; + _actionned_intel_items = _actionned_intel_items - [_x]; + } forEach _actionned_intel_items; + }; + sleep 3; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/open_arsenal.sqf b/kp_liberation.brf_sumava/scripts/client/actions/open_arsenal.sqf new file mode 100644 index 0000000..225a5e4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/open_arsenal.sqf @@ -0,0 +1,138 @@ +if (KPLIB_directArsenal) exitWith { + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + [player, player, false] call ace_arsenal_fnc_openBox; + } else { + ["Open", false] spawn BIS_fnc_arsenal; + }; +}; + +load_loadout = 0; +edit_loadout = 0; +respawn_loadout = 0; +load_from_player = -1; +exit_on_load = 0; +createDialog "liberation_arsenal"; + +private _backpack = backpack player; + +private ["_loadouts_data"]; +// Get loadouts either from ACE or BI arsenals +if (KP_liberation_ace && KP_liberation_arsenal_type) then { + _loadouts_data = +(profileNamespace getVariable ["ace_arsenal_saved_loadouts", []]); +} else { + private _saved_loadouts = +(profileNamespace getVariable "bis_fnc_saveInventory_data"); + _loadouts_data = []; + private _counter = 0; + if (!isNil "_saved_loadouts") then { + { + if (_counter % 2 == 0) then { + _loadouts_data pushback _x; + }; + _counter = _counter + 1; + } forEach _saved_loadouts; + }; +}; + +waitUntil { dialog }; + +if ( count _loadouts_data > 0 ) then { + + { lbAdd [201, _x param [0]]} foreach _loadouts_data; + + if ( lbSize 201 > 0 ) then { + ctrlEnable [ 202, true ]; + lbSetCurSel [ 201, 0 ]; + } else { + ctrlEnable [ 202, false ]; + }; + +} else { + ctrlEnable [ 202, false ]; +}; + +private _loadplayers = []; +{ + if ( !(name _x in [ "HC1", "HC2", "HC3" ]) ) then { + _loadplayers pushback [ name _x, _x ]; + }; +} foreach ( allPlayers - [ player ] ); + +if ( count _loadplayers > 0 ) then { + + { + private _nextplayer = _x select 1; + private _namestr = ""; + if(count (squadParams _nextplayer) != 0) then { + _namestr = "[" + ((squadParams _nextplayer select 0) select 0) + "] "; + }; + _namestr = _namestr + name _nextplayer; + + lbAdd [ 203, _namestr ]; + lbSetCurSel [ 203, 0 ]; + } foreach _loadplayers; + +} else { + ctrlEnable [ 203, false ]; + ctrlEnable [ 204, false ]; +}; + +((findDisplay 5251) displayCtrl 201) ctrlAddEventHandler [ "mouseButtonDblClick" , { exit_on_load = 1; load_loadout = 1; } ]; + +while { dialog && (alive player) && edit_loadout == 0 } do { + + if ( load_loadout > 0 ) then { + private _loaded_loadout = _loadouts_data select (lbCurSel 201); + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + player setUnitLoadout (_loaded_loadout select 1); + } else { + [player, [profileNamespace, _loaded_loadout]] call BIS_fnc_loadInventory; + }; + + if (KP_liberation_arsenalUsePreset) then { + if ([_backpack] call KPLIB_fnc_checkGear) then { + hint format [ localize "STR_HINT_LOADOUT_LOADED", _loaded_loadout param [0]]; + }; + } else { + hint format [ localize "STR_HINT_LOADOUT_LOADED", _loaded_loadout param [0]]; + }; + + if ( exit_on_load == 1 ) then { + closeDialog 0; + }; + load_loadout = 0; + }; + + if ( respawn_loadout > 0 ) then { + GRLIB_respawn_loadout = [ player, ["repetitive"] ] call KPLIB_fnc_getLoadout; + hint localize "STR_MAKE_RESPAWN_LOADOUT_HINT"; + respawn_loadout = 0; + }; + + if ( load_from_player >= 0 ) then { + private _playerselected = ( _loadplayers select load_from_player ) select 1; + if ( alive _playerselected ) then { + [player, [_playerselected, ["repetitive"]] call KPLIB_fnc_getLoadout] call KPLIB_fnc_setLoadout; + hint format [ localize "STR_LOAD_PLAYER_LOADOUT_HINT", name _playerselected ]; + }; + load_from_player = -1; + }; + + sleep 0.1; +}; + +if ( edit_loadout > 0 ) then { + closeDialog 0; + waitUntil { !dialog }; + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + [player, player, false] call ace_arsenal_fnc_openBox; + } else { + [ "Open", false ] spawn BIS_fnc_arsenal; + }; + + if (KP_liberation_arsenalUsePreset) then { + uiSleep 5; + private _arsenalDisplay = ["RSCDisplayArsenal", "ace_arsenal_display"] select (KP_liberation_ace && KP_liberation_arsenal_type); + waitUntil {sleep 1; isNull (uinamespace getvariable [_arsenalDisplay, displayNull])}; + [_backpack] call KPLIB_fnc_checkGear; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/recycle_manager.sqf b/kp_liberation.brf_sumava/scripts/client/actions/recycle_manager.sqf new file mode 100644 index 0000000..3b5c85b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/recycle_manager.sqf @@ -0,0 +1,72 @@ +private _recycleable_vehicles = []; +private _recycleable_classnames = []; +veh_action_detect_distance = 20; +veh_action_distance = 10; + +{ + _recycleable_classnames append _x; +} forEach [ + KPLIB_b_light_classes, + KPLIB_b_heavy_classes, + KPLIB_b_air_classes, + KPLIB_b_static_classes, + KPLIB_b_support_classes, + KPLIB_o_allVeh_classes +]; + +while {true} do { + waitUntil {sleep 2; player getVariable ['KPLIB_fobDist', 99999] < GRLIB_fob_range}; + + if ([4] call KPLIB_fnc_hasPermission) then { + private _detected_vehicles = (getPos player) nearObjects veh_action_detect_distance select { + (((toLower (typeof _x)) in _recycleable_classnames && (({alive _x} count (crew _x)) == 0 || unitIsUAV _x) && (locked _x == 0 || locked _x == 1)) || + (toLower (typeOf _x)) in KPLIB_b_buildings_classes || + (((toLower (typeOf _x)) in KPLIB_storageBuildings) && ((_x getVariable ["KP_liberation_storage_type",-1]) == 0)) || + (toLower (typeOf _x)) in KPLIB_upgradeBuildings || + (typeOf _x) in KP_liberation_ace_crates) && + alive _x && + ( + // ignore null objects left by Advanced Towing + // see https://github.com/sethduda/AdvancedTowing/pull/46 + (((attachedObjects _x) select {!isNull _X}) isEqualTo []) + || ((typeOf _x) == "rhsusf_mkvsoc") + ) && + _x distance2d startbase > 1000 && + (_x distance2d ([] call KPLIB_fnc_getNearestFob)) < GRLIB_fob_range && + (getObjectType _x) >= 8 + }; + + { + private _next_vehicle = _x; + private _next_vehicle_already_in_list = false; + { + if ((_x select 0) == _next_vehicle) exitWith {_next_vehicle_already_in_list = true;}; + } forEach _recycleable_vehicles; + + if (!_next_vehicle_already_in_list) then { + private _idact_next = _next_vehicle addAction ["" + localize "STR_RECYCLE" + " ", "scripts\client\actions\do_recycle.sqf", "", -900, true, true, "", "build_confirmed == 0 && ((_this distance2D _target) < veh_action_distance) && (vehicle player == player)"]; + _recycleable_vehicles pushback [_next_vehicle, _idact_next] ; + }; + } forEach _detected_vehicles; + + { + private _next_vehicle = _x; + private _next_vehicle_already_in_list = false; + { + if (_x == (_next_vehicle select 0)) exitWith {_next_vehicle_already_in_list = true;}; + } forEach _detected_vehicles; + + if (!_next_vehicle_already_in_list) then { + (_next_vehicle select 0) removeAction (_next_vehicle select 1); + _recycleable_vehicles = _recycleable_vehicles - [_next_vehicle]; + }; + } forEach _recycleable_vehicles; + } else { + { + (_x select 0) removeAction (_x select 1); + _recycleable_vehicles = _recycleable_vehicles - [_x]; + } forEach _recycleable_vehicles; + }; + + sleep 3; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/actions/unflip_manager.sqf b/kp_liberation.brf_sumava/scripts/client/actions/unflip_manager.sqf new file mode 100644 index 0000000..5dc90c4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/actions/unflip_manager.sqf @@ -0,0 +1,58 @@ +waitUntil {!isNil "GRLIB_permissions"}; +waitUntil {!(GRLIB_permissions isEqualTo []) || !GRLIB_permissions_param}; + +private [ "_unflippable_vehicles", "_detected_vehicles", "_next_vehicle", "_next_vehicle_already_in_list", "_idact_next" ]; + +_unflippable_vehicles = []; +veh_action_distance = 10; + +while { true } do { + + if ([5] call KPLIB_fnc_hasPermission) then { + + _detected_vehicles = ((getpos player) nearEntities [["Tank","APC","IFV","Car"], veh_action_distance]) select { + (count crew _x) == 0 && + ((locked _x == 0 || locked _x == 1)) && + (_x distance startbase > 1000) + }; + + { + _next_vehicle = _x; + _next_vehicle_already_in_list = false; + { + if ( (_x select 0) == _next_vehicle ) then { + _next_vehicle_already_in_list = true; + }; + } foreach _unflippable_vehicles; + + if ( !_next_vehicle_already_in_list ) then { + _idact_next = _next_vehicle addAction [ "" + localize "STR_UNFLIP" + " ", "scripts\client\actions\do_unflip.sqf", "", -950, true, true, "", "build_confirmed == 0 && (_this distance _target < veh_action_distance) && (vehicle player == player)"]; + _unflippable_vehicles pushback [ _next_vehicle, _idact_next ] ; + }; + } foreach _detected_vehicles; + + { + _next_vehicle = _x; + _next_vehicle_already_in_list = false; + { + if ( _x == (_next_vehicle select 0) ) then { + _next_vehicle_already_in_list = true; + }; + } foreach _detected_vehicles; + + if ( !_next_vehicle_already_in_list ) then { + (_next_vehicle select 0) removeAction (_next_vehicle select 1); + _unflippable_vehicles = _unflippable_vehicles - [ _next_vehicle ]; + }; + + } foreach _unflippable_vehicles; + + } else { + { + (_x select 0) removeAction (_x select 1); + _unflippable_vehicles = _unflippable_vehicles - [ _x ]; + } foreach _unflippable_vehicles; + }; + + sleep 3; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/ammoboxes/ammobox_action_manager.sqf b/kp_liberation.brf_sumava/scripts/client/ammoboxes/ammobox_action_manager.sqf new file mode 100644 index 0000000..10e90d1 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ammoboxes/ammobox_action_manager.sqf @@ -0,0 +1,127 @@ +waitUntil {!isNil "build_confirmed"}; +waitUntil {!isNil "one_synchro_done"}; +waitUntil {!isNil "one_eco_done"}; +waitUntil {one_synchro_done}; +waitUntil {one_eco_done}; + +private ["_managed_trucks", "_managed_boxes", "_managed_areas", "_next_truck", "_next_box", "_truck_load", "_checked_trucks", "_checked_boxes", "_action_id","_action_id2","_action_id3","_action_id4","_b_action_id1","_b_action_id2","_b_action_id3","_b_action_id4"]; + +_managed_trucks = []; +_managed_boxes = []; +_managed_areas = []; + +while {true} do { + + if ([5] call KPLIB_fnc_hasPermission) then { + + _nearammoboxes = ((getpos player) nearEntities [KPLIB_crates, 10]); + _neartransporttrucks = ((getpos player) nearEntities [KPLIB_transport_classes, 10]); + _nearstorageareas = nearestObjects [player, KPLIB_storageBuildings, 10]; + + _checked_trucks = []; + + { + _next_truck = _x; + _truck_load = _next_truck getVariable ["GRLIB_ammo_truck_load", 0]; + + if (!(_next_truck in _managed_trucks) && (_truck_load > 0)) then { + _action_id = _next_truck addAction ["" + localize "STR_ACTION_UNLOAD_BOX" + "","scripts\client\ammoboxes\do_unload_truck.sqf","",-500,true,true,"","build_confirmed == 0 && (_this distance _target < 8) && (vehicle player == player)"]; + _next_truck setVariable [ "GRLIB_ammo_truck_action", _action_id, false ]; + _managed_trucks pushback _next_truck; + }; + + if ((_next_truck in _managed_trucks) && _truck_load == 0) then { + _next_truck removeAction (_next_truck getVariable ["GRLIB_ammo_truck_action", -1]); + _managed_trucks = _managed_trucks - [_next_truck]; + }; + + _checked_trucks pushback _next_truck; + + } foreach _neartransporttrucks; + + { + _next_truck = _x; + if (!(_next_truck in _checked_trucks)) then { + _managed_trucks = _managed_trucks - [_next_truck]; + _next_truck removeAction ( _next_truck getVariable ["GRLIB_ammo_truck_action", -1]); + } + + } foreach _managed_trucks; + + _checked_boxes = []; + + { + _next_box = _x; + if (!(_next_box in _managed_boxes) && ( isNull attachedTo _next_box )) then { + _b_action_id1 = _next_box addAction ["" + localize "STR_ACTION_LOAD_BOX" + "",{[_this select 0] call do_load_box;},"",-501,true,true,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; + _b_action_id2 = _next_box addAction ["" + localize "STR_ACTION_STORE_CRATE" + "",{[(_this select 0), (nearestObjects [player,KPLIB_storageBuildings,20]) select 0,true] call KPLIB_fnc_crateToStorage;},"",-502,true,true,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; + _b_action_id3 = _next_box addAction ["" + localize "STR_ACTION_CRATE_VALUE" + "",{[_this select 0] call KPLIB_fnc_checkCrateValue;uiSleep 3; hint "";},"",-503,true,true,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; + _b_action_id4 = _next_box addAction ["" + localize "STR_ACTION_CRATE_PUSH" + "",{(_this select 0) setPos ((_this select 0) getPos [1, (player getDir (_this select 0))]);},"",-504,true,false,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; + _next_box setVariable ["GRLIB_ammo_box_action", _b_action_id1, false]; + _next_box setVariable ["KP_crate_store_action", _b_action_id2, false]; + _next_box setVariable ["KP_crate_value_action", _b_action_id3, false]; + _next_box setVariable ["KP_crate_push_action", _b_action_id4, false]; + _managed_boxes pushback _next_box; + }; + + _checked_boxes pushback _next_box; + } foreach _nearammoboxes; + + { + _next_box = _x; + if (!(_next_box in _managed_boxes) || !( isNull attachedTo _next_box )) then { + _managed_boxes = _managed_boxes - [_next_box]; + _next_box removeAction (_next_box getVariable ["GRLIB_ammo_box_action", -1]); + _next_box removeAction (_next_box getVariable ["KP_crate_store_action", -1]); + _next_box removeAction (_next_box getVariable ["KP_crate_value_action", -1]); + _next_box removeAction (_next_box getVariable ["KP_crate_push_action", -1]); + } + } foreach _managed_boxes; + + _checked_areas = []; + + { + _next_area = _x; + _area_load = count (attachedObjects _x); + + if (!(_next_area in _managed_areas) && (_area_load > 0)) then { + _action_id = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_SUPPLY" + "",{[KP_liberation_supply_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-504,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _next_area setVariable ["KP_supply_unstore_action", _action_id, false]; + _action_id2 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_AMMO" + "",{[KP_liberation_ammo_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-505,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _next_area setVariable ["KP_ammo_unstore_action", _action_id2, false]; + _action_id3 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_FUEL" + "",{[KP_liberation_fuel_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-506,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _next_area setVariable ["KP_fuel_unstore_action", _action_id3, false]; + _action_id4 = _next_area addAction ["" + localize "STR_ACTION_SORT_STORAGE" + "",{[(_this select 0)] call KPLIB_fnc_sortStorage;},"",-507,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _next_area setVariable ["KP_storage_sort_action", _action_id4, false]; + _managed_areas pushback _next_area; + }; + + if ((_next_area in _managed_areas) && _area_load == 0) then { + _next_area removeAction (_next_area getVariable ["KP_supply_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_ammo_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_fuel_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_storage_sort_action", -1]); + _managed_areas = _managed_areas - [_next_area]; + }; + + _checked_areas pushback _next_area; + + } foreach _nearstorageareas; + + { + _next_area = _x; + if (!(_next_area in _checked_areas)) then { + _managed_areas = _managed_areas - [_next_area]; + _next_area removeAction (_next_area getVariable ["KP_supply_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_ammo_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_fuel_unstore_action", -1]); + _next_area removeAction (_next_area getVariable ["KP_storage_sort_action", -1]); + } + + } foreach _managed_areas; + + }; + + sleep 3; + +}; diff --git a/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_load_box.sqf b/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_load_box.sqf new file mode 100644 index 0000000..54d16c6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_load_box.sqf @@ -0,0 +1,38 @@ +params [ "_ammobox", ["_max_transport_distance", 15] ]; +private [ "_neartransporttrucks", "_truck_to_load", "_truck_load", "_next_truck", "_maxload", "_i" ]; + +_maxload = 3; +_neartransporttrucks = ((getpos _ammobox) nearEntities [KPLIB_transport_classes, _max_transport_distance]) select {alive _x && speed _x < 5 && ((getpos _x) select 2) < 5}; +_truck_to_load = objNull; + + +{ + _next_truck = _x; + _maxload = 0; + _offsets = []; + { + if ( _x select 0 == typeof _next_truck ) then { + _maxload = (count _x) - 2; + for [ {_i=2}, {_i < (count _x) }, {_i=_i+1} ] do { _offsets pushback (_x select _i); }; + }; + } foreach KPLIB_transportConfigs; + + if ( isNull _truck_to_load ) then { + _truck_load = _next_truck getVariable ["GRLIB_ammo_truck_load", 0]; + if ( _truck_load < _maxload ) then { + _truck_to_load = _next_truck; + _ammobox attachTo [ _truck_to_load, _offsets select _truck_load ]; + [_ammobox, false] remoteExec ["enableRopeAttach"]; + _truck_to_load setVariable ["GRLIB_ammo_truck_load", _truck_load + 1, true]; + if ( !isDedicated ) then { + hint localize "STR_BOX_LOADED"; + }; + } + }; +} foreach _neartransporttrucks; + +if ( isNull _truck_to_load && !isDedicated ) then { + hint localize "STR_BOX_CANTLOAD"; + uiSleep 2; + hint ""; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_unload_truck.sqf b/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_unload_truck.sqf new file mode 100644 index 0000000..9a744a8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ammoboxes/do_unload_truck.sqf @@ -0,0 +1,36 @@ +params [ "_truck_to_unload"]; +private [ "_next_box", "_next_pos", "_offset" ]; + +_offset = 0; + +{ + if ( _x select 0 == typeof _truck_to_unload ) then { _offset = _x select 1; }; +} foreach KPLIB_transportConfigs; + +if ( _truck_to_unload getVariable ["GRLIB_ammo_truck_load", 0] > 0 ) then { + _truck_to_unload setVariable ["GRLIB_ammo_truck_load", 0, true]; + [_truck_to_unload, false] remoteExec ["KPLIB_fnc_protectObject"]; + + { + _next_box = _x; + [_next_box, false] remoteExec ["KPLIB_fnc_protectObject"]; + sleep 0.5; + detach _next_box; + _next_box setpos (_truck_to_unload getpos [_offset, getdir _truck_to_unload]); + _next_box setdir (getdir _truck_to_unload); + _next_box setVelocity [0,0,0]; + _next_box setDamage 0; + _offset = _offset - 2.2; + sleep 0.5; + [_next_box] remoteExec ["KPLIB_fnc_protectObject"]; + [_next_box, true] remoteExec ["enableRopeAttach"]; + } foreach ( attachedObjects _truck_to_unload); + + sleep 0.5; + + [_truck_to_unload] remoteExec ["KPLIB_fnc_protectObject"]; + + hint localize "STR_BOX_UNLOADED"; + uiSleep 2; + hint ""; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/asymmetric/asymm_notifications.sqf b/kp_liberation.brf_sumava/scripts/client/asymmetric/asymm_notifications.sqf new file mode 100644 index 0000000..92cdc0c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/asymmetric/asymm_notifications.sqf @@ -0,0 +1,24 @@ +if (isDedicated) exitWith {}; + +params ["_notif_id", ["_pos", getpos player]]; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asymm_notifications called on: %1 - Parameters: [%2, %3] ", debug_source, _notif_id, _pos], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +switch (_notif_id) do { + case 0: { + ["lib_asymm_convoy_ambush", [markertext ([10000, _pos] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; + private _ambush_marker = createMarkerLocal ["asymm_ambushmarker", _pos]; + _ambush_marker setMarkerDirLocal (random 360); + _ambush_marker setMarkerColorLocal "ColorIndependent"; + _ambush_marker setMarkerTypeLocal "hd_ambush"; + }; + case 1: { + ["lib_asymm_convoy_ambush_success"] call BIS_fnc_showNotification; + deleteMarkerLocal "asymm_ambushmarker"; + }; + case 2: { + ["lib_asymm_convoy_ambush_fail"] call BIS_fnc_showNotification; + deleteMarkerLocal "asymm_ambushmarker"; + }; + default {[format ["asymm_notifications.sqf -> no valid value for _notif_id: %1", _notif_id], "ERROR"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/build/build_overlay.sqf b/kp_liberation.brf_sumava/scripts/client/build/build_overlay.sqf new file mode 100644 index 0000000..d7c1604 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/build/build_overlay.sqf @@ -0,0 +1,18 @@ +GRLIB_conflicting_objects = []; +GRLIB_buildoverlay_icon = "\A3\ui_f\data\map\markers\handdrawn\objective_CA.paa"; +GRLIB_buildoverlay_color = [ 1, 0, 0, 1 ]; +GRLIB_buildoverlay_cfg = configFile >> "cfgVehicles"; + +["build_overlay", "onEachFrame", { + + if ( build_confirmed == 1 ) then { + if ( count GRLIB_conflicting_objects > 0 ) then { + { + if ( alive _x ) then { + drawIcon3D [ GRLIB_buildoverlay_icon, GRLIB_buildoverlay_color, [ (getpos _x) select 0, (getpos _x) select 1, 1.5], + 1, 1, 0, format [ "%1", getText (GRLIB_buildoverlay_cfg >> typeof _x >> "displayName") ], 2, 0.04, "puristaMedium"]; + }; + } foreach GRLIB_conflicting_objects; + }; + }; +}] call BIS_fnc_addStackedEventHandler; diff --git a/kp_liberation.brf_sumava/scripts/client/build/do_build.sqf b/kp_liberation.brf_sumava/scripts/client/build/do_build.sqf new file mode 100644 index 0000000..f76a65f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/build/do_build.sqf @@ -0,0 +1,373 @@ +// TODO This needs absolutely a code refactoring, flamethrower or nuke + +private [ "_maxdist", "_truepos", "_built_object_remote", "_pos", "_grp", "_classname", "_idx", "_unitrank", "_posfob", "_ghost_spot", "_vehicle", "_dist", "_actualdir", "_near_objects", "_near_objects_25", "_debug_colisions" ]; + +build_confirmed = 0; +_maxdist = GRLIB_fob_range; +_truepos = []; +_debug_colisions = false; +KP_vector = true; + +private _object_spheres = []; +private _fob_spheres = []; +for "_i" from 1 to 36 do { + _object_spheres pushBack ("Sign_Sphere100cm_F" createVehicleLocal [0, 0, 0]); + _fob_spheres pushBack ("Sign_Sphere100cm_F" createVehicleLocal [0, 0, 0]); +}; + +{ _x setObjectTexture [0, "#(rgb,8,8,3)color(0,1,0,1)"]; } foreach _object_spheres; + +if (isNil "manned") then { manned = false }; +if (isNil "gridmode" ) then { gridmode = 0 }; +if (isNil "repeatbuild" ) then { repeatbuild = false }; +if (isNil "build_rotation" ) then { build_rotation = 0 }; +if (isNil "build_elevation" ) then { build_elevation = 0 }; + +waitUntil { sleep 0.2; !isNil "dobuild" }; + +while { true } do { + waitUntil { sleep 0.2; dobuild != 0 }; + + build_confirmed = 1; + build_invalid = 0; + _classname = ""; + if ( buildtype == 99 ) then { + _classname = FOB_typename; + } else { + _classname = ((KPLIB_buildList select buildtype) select buildindex) select 0; + _price_s = ((KPLIB_buildList select buildtype) select buildindex) select 1; + _price_a = ((KPLIB_buildList select buildtype) select buildindex) select 2; + _price_f = ((KPLIB_buildList select buildtype) select buildindex) select 3; + + _nearfob = [] call KPLIB_fnc_getNearestFob; + _storage_areas = (_nearfob nearobjects (GRLIB_fob_range * 2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + + [_price_s, _price_a, _price_f, _classname, buildtype, _storage_areas] remoteExec ["build_remote_call",2]; + }; + + if(buildtype == 1) then { + _pos = [(getpos player select 0) + 1,(getpos player select 1) + 1, 0]; + _grp = group player; + if ( manned ) then { + _grp = createGroup GRLIB_side_friendly; + }; + _classname createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"]; + build_confirmed = 0; + } else { + if ( buildtype == 8 ) then { + _pos = [(getpos player select 0) + 1,(getpos player select 1) + 1, 0]; + _grp = createGroup GRLIB_side_friendly; + _grp setGroupId [format ["%1 %2",squads_names select buildindex, groupId _grp]]; + _idx = 0; + { + _unitrank = "private"; + if(_idx == 0) then { _unitrank = "sergeant"; }; + if(_idx == 1) then { _unitrank = "corporal"; }; + if (_classname isEqualTo blufor_squad_para) then { + _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]; removeBackpackGlobal this; this addBackpackGlobal ""B_parachute""", 0.5, _unitrank]; + } else { + _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}];", 0.5, _unitrank]; + }; + _idx = _idx + 1; + + } foreach _classname; + _grp setBehaviour "SAFE"; + build_confirmed = 0; + } else { + _posfob = getpos player; + if (buildtype != 99) then { + _posfob = [] call KPLIB_fnc_getNearestFob; + }; + + _idactcancel = -1; + _idactsnap = -1; + _idactplacebis = -1; + _idactvector = -1; + if (buildtype != 99 ) then { + _idactcancel = player addAction ["" + localize "STR_CANCEL" + " ",{build_confirmed = 3; GRLIB_ui_notif = ""; hint localize "STR_CANCEL_HINT";},"",-725,false,true,"","build_confirmed == 1"]; + }; + if (buildtype == 6 ) then { + _idactplacebis = player addAction ["" + localize "STR_PLACEMENT_BIS" + " ",{build_confirmed = 2; repeatbuild = true; hint localize "STR_CONFIRM_HINT";},"",-785,false,false,"","build_invalid == 0 && build_confirmed == 1"]; + }; + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + _idactsnap = player addAction ["" + localize "STR_GRID" + "",{gridmode = gridmode + 1;},"",-735,false,false,"","build_confirmed == 1"]; + _idactvector = player addAction ["" + localize "STR_VECACTION" + "",{KP_vector = !KP_vector;},"",-800,false,false,"","build_confirmed == 1"]; + }; + + _idactrotate = player addAction ["" + localize "STR_ROTATION" + " ",{build_rotation = build_rotation + 90;},"",-750,false,false,"","build_confirmed == 1"]; + _idactraise = player addAction ["" + localize "STR_RAISE" + "",{build_elevation = build_elevation + 0.2;},"",-765,false,false,"","build_confirmed == 1"]; + _idactlower = player addAction ["" + localize "STR_LOWER" + "",{build_elevation = build_elevation - 0.2;},"",-766,false,false,"","build_confirmed == 1"]; + _idactplace = player addAction ["" + localize "STR_PLACEMENT" + " ",{build_confirmed = 2; hint localize "STR_CONFIRM_HINT";},"",-775,false,true,"","build_invalid == 0 && build_confirmed == 1"]; + + _ghost_spot = (markerPos "ghost_spot") findEmptyPosition [0,100]; + + _vehicle = _classname createVehicleLocal _ghost_spot; + _vehicle allowdamage false; + _vehicle setVehicleLock "LOCKED"; + _vehicle enableSimulationGlobal false; + _vehicle setVariable ["KP_liberation_preplaced", true, true]; + + _dist = 0.6 * (sizeOf _classname); + if (_dist < 3.5) then { _dist = 3.5 }; + _dist = _dist + 1; + + for [{_i=0}, {_i<5}, {_i=_i+1}] do { + _vehicle setObjectTextureGlobal [_i, '#(rgb,8,8,3)color(0,1,0,0.8)']; + }; + + {_x setObjectTexture [0, "#(rgb,8,8,3)color(0,1,0,1)"];} foreach _object_spheres; + + while { build_confirmed == 1 && alive player } do { + _truedir = 90 - (getdir player); + if ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes) then { + _truepos = [((getposATL player) select 0) + (_dist * (cos _truedir)), ((getposATL player) select 1) + (_dist * (sin _truedir)),((getposATL player) select 2)]; + } else { + _truepos = [((getpos player) select 0) + (_dist * (cos _truedir)), ((getpos player) select 1) + (_dist * (sin _truedir)),0]; + }; + _actualdir = ((getdir player) + build_rotation); + if ( _classname == "Land_Cargo_Patrol_V1_F" || _classname == "Land_PortableLight_single_F" ) then { _actualdir = _actualdir + 180 }; + if ( _classname == FOB_typename ) then { _actualdir = _actualdir + 270 }; + + while { _actualdir > 360 } do { _actualdir = _actualdir - 360 }; + while { _actualdir < 0 } do { _actualdir = _actualdir + 360 }; + if ( ((buildtype == 6) || (buildtype == 99)) && ((gridmode % 2) == 1) ) then { + if ( _actualdir >= 22.5 && _actualdir <= 67.5 ) then { _actualdir = 45 }; + if ( _actualdir >= 67.5 && _actualdir <= 112.5 ) then { _actualdir = 90 }; + if ( _actualdir >= 112.5 && _actualdir <= 157.5 ) then { _actualdir = 135 }; + if ( _actualdir >= 157.5 && _actualdir <= 202.5 ) then { _actualdir = 180 }; + if ( _actualdir >= 202.5 && _actualdir <= 247.5 ) then { _actualdir = 225 }; + if ( _actualdir >= 247.5 && _actualdir <= 292.5 ) then { _actualdir = 270 }; + if ( _actualdir >= 292.5 && _actualdir <= 337.5 ) then { _actualdir = 315 }; + if ( _actualdir <= 22.5 || _actualdir >= 337.5 ) then { _actualdir = 0 }; + }; + + { + _x setPos (_truepos getPos [_dist, 10 * _forEachIndex]); + } foreach _object_spheres; + + if !(buildtype isEqualTo 99) then { + { + _x setPos (_posfob getPos [GRLIB_fob_range, 10 * _forEachIndex]) + } forEach _fob_spheres; + }; + + _vehicle setdir _actualdir; + + _truepos = [_truepos select 0, _truepos select 1, (_truepos select 2) + build_elevation]; + + _near_objects = (_truepos nearobjects ["AllVehicles", _dist]) ; + _near_objects = _near_objects + (_truepos nearobjects [FOB_box_typename, _dist]); + _near_objects = _near_objects + (_truepos nearobjects [Arsenal_typename, _dist]); + + _near_objects_25 = (_truepos nearobjects ["AllVehicles", 50]) ; + _near_objects_25 = _near_objects_25 + (_truepos nearobjects [FOB_box_typename, 50]); + _near_objects_25 = _near_objects_25 + (_truepos nearobjects [Arsenal_typename, 50]); + + if( buildtype != 6 ) then { + _near_objects = _near_objects + (_truepos nearobjects ["Static", _dist]); + _near_objects_25 = _near_objects_25 + (_truepos nearobjects ["Static", 50]); + }; + + private _remove_objects = []; + { + private _typeOfX = typeOf _x; + if ((_x isKindOf "Animal") || (_typeOfX in GRLIB_ignore_colisions_when_building) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { + _remove_objects pushback _x; + }; + } foreach _near_objects; + + private _remove_objects_25 = []; + { + private _typeOfX = typeOf _x; + if ((_x isKindOf "Animal") || (_typeOfX in GRLIB_ignore_colisions_when_building) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { + _remove_objects_25 pushback _x; + }; + } foreach _near_objects_25; + + _near_objects = _near_objects - _remove_objects; + _near_objects_25 = _near_objects_25 - _remove_objects_25; + + if ( count _near_objects == 0 ) then { + { + _dist22 = 0.6 * (sizeOf (typeof _x)); + if ( _dist22 < 1 ) then { _dist22 = 1 }; + if (_truepos distance _x < _dist22) then { + _near_objects pushback _x; + }; + } foreach _near_objects_25; + }; + + if ( count _near_objects != 0 ) then { + GRLIB_conflicting_objects = _near_objects; + } else { + GRLIB_conflicting_objects = []; + }; + + if (count _near_objects == 0 && ((_truepos distance _posfob) < _maxdist) && ( ((!surfaceIsWater _truepos) && (!surfaceIsWater getpos player)) || (_classname in boats_names) ) ) then { + + if ( ((buildtype == 6) || (buildtype == 99)) && ((gridmode % 2) == 1) ) then { + _vehicle setpos [round (_truepos select 0),round (_truepos select 1), _truepos select 2]; + } else { + if ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes) then { + _vehicle setPosATL _truepos; + } else { + _vehicle setpos _truepos; + }; + }; + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + if (KP_vector) then { + _vehicle setVectorUp [0,0,1]; + } else { + _vehicle setVectorUp surfaceNormal position _vehicle; + }; + } else { + _vehicle setVectorUp surfaceNormal position _vehicle; + }; + if(build_invalid == 1) then { + GRLIB_ui_notif = ""; + + {_x setObjectTexture [0, "#(rgb,8,8,3)color(0,1,0,1)"];} foreach _object_spheres; + }; + build_invalid = 0; + + } else { + if ( build_invalid == 0 ) then { + {_x setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];} foreach _object_spheres; + }; + _vehicle setpos _ghost_spot; + build_invalid = 1; + if(count _near_objects > 0) then { + GRLIB_ui_notif = format [localize "STR_PLACEMENT_IMPOSSIBLE",count _near_objects, round _dist]; + + if (_debug_colisions) then { + private [ "_objs_classnames" ]; + _objs_classnames = []; + { _objs_classnames pushback (typeof _x) } foreach _near_objects; + hint format [ "Colisions : %1", _objs_classnames ]; + }; + }; + if( ((surfaceIsWater _truepos) || (surfaceIsWater getpos player)) && !(_classname in boats_names)) then { + GRLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; + }; + if((_truepos distance _posfob) > _maxdist) then { + GRLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",_maxdist]; + }; + + }; + sleep 0.05; + }; + + GRLIB_ui_notif = ""; + + {_x setPos [0, 0, 0];} forEach (_object_spheres + _fob_spheres); + + if ( !alive player || build_confirmed == 3 ) then { + private ["_price_s", "_price_a", "_price_f", "_nearfob", "_storage_areas"]; + _price_s = ((KPLIB_buildList select buildtype) select buildindex) select 1; + _price_a = ((KPLIB_buildList select buildtype) select buildindex) select 2; + _price_f = ((KPLIB_buildList select buildtype) select buildindex) select 3; + + _nearfob = [] call KPLIB_fnc_getNearestFob; + _storage_areas = (_nearfob nearobjects (GRLIB_fob_range * 2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + + _supplyCrates = ceil (_price_s / 100); + _ammoCrates = ceil (_price_a / 100); + _fuelCrates = ceil (_price_f / 100); + _crateSum = _supplyCrates + _ammoCrates + _fuelCrates; + + _spaceSum = 0; + + { + if (typeOf _x == KP_liberation_large_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + } forEach _storage_areas; + + deleteVehicle _vehicle; + + if (_spaceSum < _crateSum) then { + hint localize "STR_CANCEL_ERROR"; + } else { + [_price_s, _price_a, _price_f, _storage_areas] remoteExec ["cancel_build_remote_call",2]; + }; + }; + + if ( build_confirmed == 2 ) then { + _vehpos = getpos _vehicle; + _vehdir = getdir _vehicle; + deleteVehicle _vehicle; + sleep 0.1; + _vehicle = _classname createVehicle _truepos; + _vehicle allowDamage false; + _vehicle setdir _vehdir; + if ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes) then { + _vehicle setPosATL _truepos; + } else { + _vehicle setpos _truepos; + }; + + [_vehicle] call KPLIB_fnc_addObjectInit; + + [_vehicle] call KPLIB_fnc_clearCargo; + + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + if (KP_vector) then { + _vehicle setVectorUp [0,0,1]; + } else { + _vehicle setVectorUp surfaceNormal position _vehicle; + }; + } else { + _vehicle setVectorUp surfaceNormal position _vehicle; + }; + + if ( (unitIsUAV _vehicle) || manned ) then { + [ _vehicle ] call KPLIB_fnc_forceBluforCrew; + }; + + sleep 0.3; + _vehicle allowDamage true; + _vehicle setDamage 0; + + if(buildtype != 6) then { + _vehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + { _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; } foreach (crew _vehicle); + }; + }; + + if ( _idactcancel != -1 ) then { + player removeAction _idactcancel; + }; + if ( _idactsnap != -1 ) then { + player removeAction _idactsnap; + }; + if ( _idactplacebis != -1 ) then { + player removeAction _idactplacebis; + }; + if ( _idactvector != -1 ) then { + player removeAction _idactvector; + }; + player removeAction _idactrotate; + player removeAction _idactplace; + player removeAction _idactraise; + player removeAction _idactlower; + + if(buildtype == 99) then { + _new_fob = getpos player; + [_new_fob, false] remoteExec ["build_fob_remote_call",2]; + buildtype = 1; + }; + build_confirmed = 0; + }; + }; + + if ( repeatbuild ) then { + dobuild = 1; + repeatbuild = false; + } else { + dobuild = 0; + }; + manned = false; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/build/do_build_fob.sqf b/kp_liberation.brf_sumava/scripts/client/build/do_build_fob.sqf new file mode 100644 index 0000000..b892c4c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/build/do_build_fob.sqf @@ -0,0 +1,51 @@ +private [ "_minfobdist", "_minsectordist", "_distfob", "_clearedtobuildfob", "_distsector", "_clearedtobuildsector", "_idx" ]; + +if ( count GRLIB_all_fobs >= GRLIB_maximum_fobs ) exitWith { + hint format [ localize "STR_HINT_FOBS_EXCEEDED", GRLIB_maximum_fobs ]; +}; + +_minfobdist = 1000; +_minsectordist = GRLIB_capture_size + GRLIB_fob_range; +_distfob = 1; +_clearedtobuildfob = true; +_distsector = 1; +_clearedtobuildsector = true; + +FOB_build_in_progress = true; +publicVariable "FOB_build_in_progress"; + +_idx = 0; +while { (_idx < (count GRLIB_all_fobs)) && _clearedtobuildfob } do { + if ( player distance (GRLIB_all_fobs select _idx) < _minfobdist ) then { + _clearedtobuildfob = false; + _distfob = player distance (GRLIB_all_fobs select _idx); + }; + _idx = _idx + 1; +}; + +_idx = 0; +if(_clearedtobuildfob) then { + while { (_idx < (count sectors_allSectors)) && _clearedtobuildsector } do { + if ( player distance (markerPos (sectors_allSectors select _idx)) < _minsectordist ) then { + _clearedtobuildsector = false; + _distsector = player distance (markerPos (sectors_allSectors select _idx)); + }; + _idx = _idx + 1; + }; +}; + +if (!_clearedtobuildfob) then { + hint format [localize "STR_FOB_BUILDING_IMPOSSIBLE",floor _minfobdist,floor _distfob]; + FOB_build_in_progress = false; + publicVariable "FOB_build_in_progress"; +} else { + if ( !_clearedtobuildsector ) then { + hint format [localize "STR_FOB_BUILDING_IMPOSSIBLE_SECTOR",floor _minsectordist,floor _distsector]; + FOB_build_in_progress = false; + publicVariable "FOB_build_in_progress"; + } else { + buildtype = 99; + dobuild = 1; + deleteVehicle (_this select 0); + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/build/do_sector_build.sqf b/kp_liberation.brf_sumava/scripts/client/build/do_sector_build.sqf new file mode 100644 index 0000000..bfe1536 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/build/do_sector_build.sqf @@ -0,0 +1,106 @@ +private ["_vector", "_idactcancel", "_idactplace", "_idactvector", "_ghost_spot", "_truedir", "_dist", "_truepos", "_sectorpos", "_building"]; + +if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { + + _truepos = []; + + build_confirmed = 1; + build_invalid = 0; + KP_vector = true; + + _sectorpos = markerPos ([100] call KPLIB_fnc_getNearestSector); + + _idactcancel = player addAction ["" + localize "STR_CANCEL" + " ",{build_confirmed = 3;},"",-725,false,true,"","build_confirmed == 1"]; + _idactplace = player addAction ["" + localize "STR_PLACEMENT" + " ",{build_confirmed = 2;},"",-775,false,true,"","build_invalid == 0 && build_confirmed == 1"]; + _idactvector = player addAction ["" + localize "STR_VECACTION" + "",{KP_vector = !KP_vector;},"",-800,false,false,"","build_confirmed == 1"]; + + _ghost_spot = (markerPos "ghost_spot") findEmptyPosition [0,100]; + + _building = ((_this select 3) select 0) createVehicleLocal _ghost_spot; + _building allowdamage false; + _building setVehicleLock "LOCKED"; + _building enableSimulationGlobal false; + + _dist = 0.6 * (sizeOf ((_this select 3) select 0)); + if (_dist < 3.5) then { _dist = 3.5 }; + _dist = _dist + 0.5; + + for [{_i=0}, {_i<5}, {_i=_i+1}] do { + _building setObjectTextureGlobal [_i, '#(rgb,8,8,3)color(0,1,0,0.8)']; + }; + + while {build_confirmed == 1 && alive player} do { + _truedir = 90 - (getdir player); + _truepos = [((getpos player) select 0) + (_dist * (cos _truedir)), ((getpos player) select 1) + (_dist * (sin _truedir)),0]; + + if ((surfaceIsWater _truepos) || (surfaceIsWater getpos player) || ((_truepos distance _sectorpos) > 100)) then { + _building setpos _ghost_spot; + build_invalid = 1; + + if(((surfaceIsWater _truepos) || (surfaceIsWater getpos player))) then { + GRLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; + }; + + if((_truepos distance _sectorpos) > 100) then { + GRLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",100]; + }; + } else { + _building setdir (getDir player); + _building setpos _truepos; + + if (KP_vector) then { + _building setVectorUp [0,0,1]; + } else { + _building setVectorUp surfaceNormal position _building; + }; + + if (build_invalid == 1) then { + GRLIB_ui_notif = ""; + }; + + build_invalid = 0; + }; + + sleep 0.05; + }; + + GRLIB_ui_notif = ""; + + if (!alive player || build_confirmed == 3) then { + deleteVehicle _building; + }; + + if (build_confirmed == 2) then { + _vehpos = getpos _building; + _vehdir = getdir _building; + deleteVehicle _building; + sleep 0.1; + _building = ((_this select 3) select 0) createVehicle _truepos; + _building allowDamage false; + _building setdir _vehdir; + _building setpos _truepos; + + if (KP_vector) then { + _building setVectorUp [0,0,1]; + } else { + _building setVectorUp surfaceNormal position _building; + }; + + _building setVariable ["KP_liberation_storage_type", 1, true]; + + sleep 0.3; + _building allowDamage true; + _building setDamage 0; + }; + + player removeAction _idactcancel; + player removeAction _idactplace; + player removeAction _idactvector; + + recalculate_sectors = true; + publicVariable "recalculate_sectors"; + + build_confirmed = 0; +} else { + [player getVariable ["KPLIB_nearProd", []], ((_this select 3) select 0), clientOwner] remoteExec ["build_fac_remote_call",2]; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/build/open_build_menu.sqf b/kp_liberation.brf_sumava/scripts/client/build/open_build_menu.sqf new file mode 100644 index 0000000..6ddb22e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/build/open_build_menu.sqf @@ -0,0 +1,206 @@ +private [ "_oldbuildtype", "_cfg", "_initindex", "_dialog", "_iscommandant", "_squadname", "_buildpages", "_build_list", "_classnamevar", "_entrytext", "_icon", "_affordable", "_affordable_crew", "_selected_item", "_linked", "_linked_unlocked", "_base_link", "_link_color", "_link_str", "_nearfob", "_actual_fob"]; + +if (([ getpos player , 500 , GRLIB_side_enemy ] call KPLIB_fnc_getUnitsCount ) > 4 ) exitWith { hint localize "STR_BUILD_ENEMIES_NEARBY";}; + +if (isNil "buildtype") then {buildtype = 1}; +if (isNil "buildindex") then {buildindex = -1}; +dobuild = 0; +_oldbuildtype = -1; +_cfg = configFile >> "cfgVehicles"; +_initindex = buildindex; + +_dialog = createDialog "liberation_build"; +waitUntil { dialog }; + +_iscommandant = false; +if (player == [] call KPLIB_fnc_getCommander) then { + _iscommandant = true; +}; + +ctrlShow [108, _iscommandant]; +ctrlShow [1085, _iscommandant]; +ctrlShow [121, _iscommandant]; + +_squadname = ""; +_buildpages = [ +localize "STR_BUILD1", +localize "STR_BUILD2", +localize "STR_BUILD3", +localize "STR_BUILD4", +localize "STR_BUILD5", +localize "STR_BUILD6", +localize "STR_BUILD7", +localize "STR_BUILD8" +]; + +_nearfob = [] call KPLIB_fnc_getNearestFob; +_actual_fob = KP_liberation_fob_resources select {((_x select 0) distance _nearfob) < GRLIB_fob_range}; + +while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { + _build_list = KPLIB_buildList select buildtype; + + if (_oldbuildtype != buildtype || synchro_done) then { + synchro_done = false; + _oldbuildtype = buildtype; + _actual_fob = KP_liberation_fob_resources select {((_x select 0) distance _nearfob) < GRLIB_fob_range}; + + lbClear 110; + { + ctrlSetText [151, _buildpages select ( buildtype - 1)]; + if (buildtype != 8) then { + _classnamevar = (_x select 0); + _entrytext = getText (_cfg >> _classnamevar >> "displayName"); + + switch (_classnamevar) do { + case FOB_box_typename: {_entrytext = localize "STR_FOBBOX";}; + case Arsenal_typename: {if (KP_liberation_mobilearsenal) then {_entrytext = localize "STR_ARSENAL_BOX";};}; + case Respawn_truck_typename: {if (KP_liberation_mobilerespawn) then {_entrytext = localize "STR_RESPAWN_TRUCK";};}; + case FOB_truck_typename: {_entrytext = localize "STR_FOBTRUCK";}; + case "Flag_White_F": {_entrytext = localize "STR_INDIV_FLAG";}; + case KP_liberation_small_storage_building: {_entrytext = localize "STR_SMALL_STORAGE";}; + case KP_liberation_large_storage_building: {_entrytext = localize "STR_LARGE_STORAGE";}; + case KP_liberation_recycle_building: {_entrytext = localize "STR_RECYCLE_BUILDING";}; + case KP_liberation_air_vehicle_building: {_entrytext = localize "STR_HELI_BUILDING";}; + case KP_liberation_heli_slot_building: {_entrytext = localize "STR_HELI_SLOT";}; + case KP_liberation_plane_slot_building: {_entrytext = localize "STR_PLANE_SLOT";}; + default {}; + }; + + ((findDisplay 5501) displayCtrl (110)) lnbAddRow [ _entrytext, format [ "%1" ,_x select 1], format [ "%1" ,_x select 2], format [ "%1" ,_x select 3]]; + + _icon = getText ( _cfg >> (_x select 0) >> "icon"); + if(isText (configFile >> "CfgVehicleIcons" >> _icon)) then { + _icon = (getText (configFile >> "CfgVehicleIcons" >> _icon)); + }; + lnbSetPicture [110, [((lnbSize 110) select 0) - 1, 0],_icon]; + } else { + if ( ((lnbSize 110) select 0) <= count squads_names ) then { + _squadname = squads_names select ((lnbSize 110) select 0); + } else { + _squadname = ""; + }; + ((findDisplay 5501) displayCtrl (110)) lnbAddRow [_squadname, format [ "%1" ,_x select 1], format [ "%1" ,_x select 2], format [ "%1" ,_x select 3]]; + }; + + _affordable = true; + if ( + ((_x select 1 > 0) && ((_x select 1) > ((_actual_fob select 0) select 1))) || + ((_x select 2 > 0) && ((_x select 2) > ((_actual_fob select 0) select 2))) || + ((_x select 3 > 0) && ((_x select 3) > ((_actual_fob select 0) select 3))) + ) then { + _affordable = false; + }; + + if ( _affordable ) then { + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 0], [1,1,1,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 1], [1,1,1,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 2], [1,1,1,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 3], [1,1,1,1]]; + } else { + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 0], [0.4,0.4,0.4,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 1], [0.4,0.4,0.4,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 2], [0.4,0.4,0.4,1]]; + ((findDisplay 5501) displayCtrl (110)) lnbSetColor [[((lnbSize 110) select 0) - 1, 3], [0.4,0.4,0.4,1]]; + }; + + } foreach _build_list; + }; + + if(_initindex != -1) then { + lbSetCurSel [110, _initindex]; + _initindex = -1; + }; + + _selected_item = lbCurSel 110; + _affordable = false; + _squad_full = false; + if ((buildtype == 1) && (count (units group player) >= GRLIB_max_squad_size)) then { + _squad_full = true; + }; + _linked = false; + _linked_unlocked = true; + _base_link = ""; + if (dobuild == 0 && _selected_item != -1 && (_selected_item < (count _build_list))) then { + _build_item = _build_list select _selected_item; + if ( + ((_build_item select 1 == 0 ) || ((_build_item select 1) <= ((_actual_fob select 0) select 1))) && + ((_build_item select 2 == 0 ) || ((_build_item select 2) <= ((_actual_fob select 0) select 2))) && + ((_build_item select 3 == 0 ) || ((_build_item select 3) <= ((_actual_fob select 0) select 3))) + ) then { + if !((_build_item select 0) isEqualType []) then { + if ((toLower (_build_item select 0)) in KPLIB_b_air_classes && !([_build_item select 0] call KPLIB_fnc_isClassUAV)) then { + if (KP_liberation_air_vehicle_building_near && + ((((_build_item select 0) isKindOf "Helicopter") && (KP_liberation_heli_count < KP_liberation_heli_slots)) || + (((_build_item select 0) isKindOf "Plane") && (KP_liberation_plane_count < KP_liberation_plane_slots))) + ) then { + _affordable = true; + }; + } else { + if (!((toLower (_build_item select 0)) in KPLIB_airSlots) || (((toLower (_build_item select 0)) in KPLIB_airSlots) && KP_liberation_air_vehicle_building_near)) then { + _affordable = true; + }; + }; + } else { + _affordable = true; + }; + }; + + if ( buildtype != 8 ) then { + { if ( ( _build_item select 0 ) == ( _x select 0 ) ) exitWith { _base_link = _x select 1; _linked = true; } } foreach GRLIB_vehicle_to_military_base_links; + + if ( _linked ) then { + if ( !(_base_link in blufor_sectors) ) then { _linked_unlocked = false }; + }; + }; + }; + + _affordable_crew = _affordable; + if ( unitcap >= ([] call KPLIB_fnc_getLocalCap)) then { + _affordable_crew = false; + if (buildtype == 1 || buildtype == 8) then { + _affordable = false; + }; + }; + + ctrlEnable [ 120, _affordable && _linked_unlocked && !(_squad_full) ]; + ctrlEnable [ 121, _affordable_crew && _linked_unlocked ]; + + ctrlSetText [131, format [ "%1 : %2" , localize "STR_MANPOWER", (floor KP_liberation_supplies)]] ; + ctrlSetText [132, format [ "%1 : %2" , localize "STR_AMMO", (floor KP_liberation_ammo)]]; + ctrlSetText [133, format [ "%1 : %2" , localize "STR_FUEL", (floor KP_liberation_fuel)]]; + + ((findDisplay 5501) displayCtrl (134)) ctrlSetStructuredText formatText [ + "%1/%2 %3 - %4/%5 %6 - %7/%8 %9", + unitcap, + ([] call KPLIB_fnc_getLocalCap), + image "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa", + KP_liberation_heli_count, + KP_liberation_heli_slots, + image "\A3\air_f_beta\Heli_Transport_01\Data\UI\Map_Heli_Transport_01_base_CA.paa", + KP_liberation_plane_count, + KP_liberation_plane_slots, + image "\A3\Air_F_EPC\Plane_CAS_01\Data\UI\Map_Plane_CAS_01_CA.paa" + ]; + + _link_color = "#0040e0"; + _link_str = localize "STR_VEHICLE_UNLOCKED"; + if (!_linked_unlocked) then { _link_color = "#e00000"; _link_str = localize "STR_VEHICLE_LOCKED"; }; + if ( _linked ) then { + ((findDisplay 5501) displayCtrl (161)) ctrlSetStructuredText parseText ( "" + _link_str + "
" + ( markerText _base_link ) + "
" ); + } else { + ((findDisplay 5501) displayCtrl (161)) ctrlSetStructuredText parseText ""; + }; + + buildindex = _selected_item; + + if(buildtype == 1 && dobuild != 0) then { + ctrlEnable [120, false]; + ctrlEnable [121, false]; + sleep 1; + dobuild = 0; + }; + + sleep 0.1; +}; + +if (!alive player || dobuild != 0) then { closeDialog 0 }; diff --git a/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_escort.sqf b/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_escort.sqf new file mode 100644 index 0000000..192caa6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_escort.sqf @@ -0,0 +1,47 @@ +params ["_informant"]; + +if (isDedicated) exitWith {}; + +if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort called on: %1 - Parameters: [%2]", debug_source, _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +waitUntil {sleep 0.5; local _informant || !alive _informant}; + +if !(alive _informant) exitWith {if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort exited by: %1 - Informant isn't alive", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; + +private _is_near_fob = false; + +sleep 1; +_informant playmove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon"; +sleep 2; +_informant enableAI "ANIM"; +_informant enableAI "MOVE"; +sleep 2; +[_informant, ""] remoteExecCall ["switchMove"]; + +waitUntil {sleep 5; + _nearestfob = [getpos _informant] call KPLIB_fnc_getNearestFob; + if (count _nearestfob == 3) then { + if ((_informant distance _nearestfob) < 30) then { + _is_near_fob = true; + }; + }; + !alive _informant || (_is_near_fob && (vehicle _informant == _informant)) +}; + +if (alive _informant) then { + if (_is_near_fob) then { + sleep 5; + private _grp = createGroup [GRLIB_side_friendly, true]; + [_informant] joinSilent _grp; + _informant playmove "AmovPercMstpSnonWnonDnon_AmovPsitMstpSnonWnonDnon_ground"; + _informant disableAI "ANIM"; + _informant disableAI "MOVE"; + sleep 5; + [_informant, "AidlPsitMstpSnonWnonDnon_ground00"] remoteExecCall ["switchMove"]; + [_informant] remoteExec ["civinfo_delivered",2]; + if (KP_liberation_civinfo_debug > 0) then {["civinfo_escort -> Informant at FOB", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + sleep 600; + deleteVehicle _informant; + if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort finished by: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_notifications.sqf b/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_notifications.sqf new file mode 100644 index 0000000..317f6d4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/civinformant/civinfo_notifications.sqf @@ -0,0 +1,51 @@ +if (isDedicated) exitWith {}; + +params ["_notif_id", ["_pos", getpos player]]; + +if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_notifications called on: %1 - Parameters: [%2, %3]", debug_source, _notif_id, _pos], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +switch (_notif_id) do { + case 0: { + ["lib_civ_informant_start", [markertext ([10000, _pos] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; + private _informant_marker = createMarkerLocal ["informantmarker", _pos]; + _informant_marker setMarkerColorLocal "ColorCIV"; + _informant_marker setMarkerShape "ELLIPSE"; + _informant_marker setMarkerBrush "FDiagonal"; + _informant_marker setMarkerSize [500,500]; + }; + case 1: { + ["lib_civ_informant_success"] call BIS_fnc_showNotification; + deleteMarkerLocal "informantmarker"; + }; + case 2: { + ["lib_civ_informant_fail"] call BIS_fnc_showNotification; + deleteMarkerLocal "informantmarker"; + }; + case 3: { + ["lib_civ_informant_death"] call BIS_fnc_showNotification; + deleteMarkerLocal "informantmarker"; + }; + case 4: { + ["lib_civ_hvt_start", [markertext ([10000, _pos] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; + private _marker = createMarker ["HVT_marker", _pos]; + _marker setMarkerColor GRLIB_color_enemy_bright; + _marker setMarkerType "hd_unknown"; + + private _marker_zone = createMarker ["HVT_zone", _pos]; + _marker_zone setMarkerColor GRLIB_color_enemy_bright; + _marker_zone setMarkerShape "ELLIPSE"; + _marker_zone setMarkerBrush "FDiagonal"; + _marker_zone setMarkerSize [500,500]; + }; + case 5: { + ["lib_civ_hvt_success"] call BIS_fnc_showNotification; + deleteMarkerLocal "HVT_marker"; + deleteMarkerLocal "HVT_zone"; + }; + case 6: { + ["lib_civ_hvt_fail"] call BIS_fnc_showNotification; + deleteMarkerLocal "HVT_marker"; + deleteMarkerLocal "HVT_zone"; + }; + default {[format ["civinfo_notifications.sqf -> no valid value for _notif_id: %1", _notif_id], "ERROR"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/commander/enforce_whitelist.sqf b/kp_liberation.brf_sumava/scripts/client/commander/enforce_whitelist.sqf new file mode 100644 index 0000000..df2a954 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/commander/enforce_whitelist.sqf @@ -0,0 +1,24 @@ +scriptName "[KPLIB] Enforce Whitelist"; + +[] call compileFinal preprocessFileLineNumbers "whitelist.sqf"; + +if (!GRLIB_use_whitelist) exitWith {}; + +waitUntil {alive player}; +sleep 1; + +if (player isEqualTo ([] call KPLIB_fnc_getCommander) && !(serverCommandAvailable "#kick")) then { + + private _match = false; + + [] call { + if ((getPlayerUID player) in GRLIB_whitelisted_steamids) exitWith {_match = true;}; + if ((name player) in GRLIB_whitelisted_names) exitWith {_match = true;}; + if (!((squadParams player) isEqualTo []) && {(((squadParams player) select 0) select 0) in GRLIB_whitelisted_tags}) exitWith {_match = true;}; + }; + + if (!_match) then { + sleep 1; + endMission "END1"; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/commander/open_logistic.sqf b/kp_liberation.brf_sumava/scripts/client/commander/open_logistic.sqf new file mode 100644 index 0000000..eabe4df --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/commander/open_logistic.sqf @@ -0,0 +1,230 @@ +private ["_dialog", "_logi_count", "_listselect", "_selectedGroup", "_detailControls", "_nearfob", "_logi_destinations", "_mapdisplay", "_tempvariable"]; + +_dialog = createDialog "liberation_logistic"; +_logi_count = 0; +_listselect = -1; +_selectedGroup = []; +_detailControls = [ + 75805,75806,75807,75808,75809,758010,758011,758012,758013,758014,758015,758016,758017,758018, + 758019,758020,758021,758022,758023,758024,758025,758026,758027,758028,758029,758030,758031, + 758032,758080,758081 +]; +_nearfob = [] call KPLIB_fnc_getNearestFob; +_logi_destinations = []; + +{ + _logi_destinations pushBack [(format ["FOB %1", military_alphabet select _forEachIndex]), (_x select 0), (_x select 1), (_x select 2), (_x select 3)]; +} forEach KP_liberation_fob_resources; + +{ + _logi_destinations pushBack [(_x select 0), (markerPos (_x select 1)), (_x select 9), (_x select 10), (_x select 11)]; +} forEach KP_liberation_production; + +_logi_destinations sort true; + +addLogiGroup = 0; +deleteLogiGroup = 0; +buyLogiTruck = 0; +sellLogiTruck = 0; +saveConvoySettings = 0; +convoyStandby = 0; +logiError = 0; +_tempvariable = nil; + +disableSerialization; + +waitUntil {dialog}; + +_mapdisplay = ((findDisplay 75802) displayCtrl 758098); + +ctrlMapAnimClear _mapdisplay; + +while {dialog && (alive player)} do { + + "spawn_marker" setMarkerPosLocal markers_reset; + + ctrlEnable [75803, false]; + ctrlEnable [75804, false]; + ctrlEnable [758021, false]; + ctrlEnable [758022, false]; + ctrlEnable [758024, false]; + ctrlEnable [758025, false]; + ctrlEnable [758026, false]; + ctrlEnable [758027, false]; + ctrlEnable [758029, false]; + ctrlEnable [758030, false]; + ctrlEnable [758031, false]; + ctrlEnable [758032, false]; + ctrlEnable [758080, false]; + ctrlEnable [758081, false]; + + if (addLogiGroup == 1) then { + addLogiGroup = 0; + [_selectedGroup] remoteExec ["add_logiGroup_remote_call",2]; + waitUntil {sleep 0.5; _logi_count != (count KP_liberation_logistics)}; + }; + + if (deleteLogiGroup == 1) then { + deleteLogiGroup = 0; + [_selectedGroup] remoteExec ["del_logiGroup_remote_call",2]; + lbSetCurSel [75802,-1]; + waitUntil {sleep 0.5; _logi_count != (count KP_liberation_logistics)}; + }; + + if (buyLogiTruck == 1) then { + buyLogiTruck = 0; + _tempvariable = _selectedGroup select 1; + [_listselect, _nearfob, clientOwner, KP_liberation_supplies, KP_liberation_ammo, KP_liberation_fuel] remoteExec ["add_logiTruck_remote_call",2]; + waitUntil {sleep 0.5; (_tempvariable != ((KP_liberation_logistics select _listselect) select 1)) || (logiError == 1)}; + }; + + if (sellLogiTruck == 1) then { + sellLogiTruck = 0; + _tempvariable = _selectedGroup select 1; + [_listselect, _nearfob, clientOwner] remoteExec ["del_logiTruck_remote_call",2]; + waitUntil {sleep 0.5; (_tempvariable != ((KP_liberation_logistics select _listselect) select 1)) || (logiError == 1)}; + }; + + if (saveConvoySettings == 1) then { + saveConvoySettings = 0; + if (((lbCurSel 758024) != -1) && ((lbCurSel 758029) != -1)) then { + [_listselect, ((_logi_destinations select lbCurSel 758024) select 1), [parseNumber ctrlText 758025,parseNumber ctrlText 758026,parseNumber ctrlText 758027], ((_logi_destinations select lbCurSel 758029) select 1), [parseNumber ctrlText 758030,parseNumber ctrlText 758031,parseNumber ctrlText 758032], clientOwner] remoteExec ["save_logi_remote_call",2]; + waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KP_liberation_logistics select _listselect))) || (logiError == 1)}; + } else { + hint localize "STR_LOGISTIC_SAVE_ERROR"; + }; + }; + + if (convoyStandby == 1) then { + convoyStandby = 0; + [_listselect, clientOwner] remoteExec ["abort_logi_remote_call",2]; + waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KP_liberation_logistics select _listselect))) || (logiError == 1)}; + }; + + logiError = 0; + _tempvariable = nil; + ctrlEnable [75803, true]; + + if (_logi_count != (count KP_liberation_logistics)) then { + _logi_count = (count KP_liberation_logistics); + lbClear 75802; + { + lbAdd [75802, (_x select 0)]; + } forEach KP_liberation_logistics; + }; + + if ((_logi_count > 0) && (lbCurSel 75802 == -1)) then { + lbSetCurSel [75802,0]; + }; + + _listselect = (lbCurSel 75802); + + if ((_listselect != -1) && (_logi_count > 0)) then { + {ctrlShow [_x, true]} forEach _detailControls; + + _selectedGroup = +(KP_liberation_logistics select _listselect); + + if ((_selectedGroup select 7) == 0) then { + ctrlEnable [758021, true]; + + if ((_selectedGroup select 1) <= 0) then { + ctrlEnable [75804, true]; + } else { + ctrlEnable [758022, true]; + ctrlEnable [758024, true]; + ctrlEnable [758025, true]; + ctrlEnable [758026, true]; + ctrlEnable [758027, true]; + ctrlEnable [758029, true]; + ctrlEnable [758030, true]; + ctrlEnable [758031, true]; + ctrlEnable [758032, true]; + ctrlEnable [758080, true]; + }; + }; + + ctrlSetText [75805, (_selectedGroup select 0)]; + + switch ((_selectedGroup select 7)) do { + case 0: {ctrlSetText[758011, "-"]; ctrlSetText[75807, localize "STR_LOGISTIC_STANDBY"];}; + case 1: {ctrlSetText[758011, "B"]; ctrlSetText[75807, localize "STR_LOGISTIC_LOADING"]; ctrlEnable [758081, true]; "spawn_marker" setMarkerPosLocal (_selectedGroup select 2); _mapdisplay ctrlMapAnimAdd [0.5, 0.2,(_selectedGroup select 2)]; ctrlMapAnimCommit _mapdisplay;}; + case 2: {ctrlSetText[758011, "B"]; ctrlSetText[75807, localize "STR_LOGISTIC_TRAVEL"]; ctrlEnable [758081, true];}; + case 3: {ctrlSetText[758011, "A"]; ctrlSetText[75807, localize "STR_LOGISTIC_LOADING"]; ctrlEnable [758081, true]; "spawn_marker" setMarkerPosLocal (_selectedGroup select 3); _mapdisplay ctrlMapAnimAdd [0.5, 0.2,(_selectedGroup select 3)]; ctrlMapAnimCommit _mapdisplay;}; + case 4: {ctrlSetText[758011, "A"]; ctrlSetText[75807, localize "STR_LOGISTIC_TRAVEL"]; ctrlEnable [758081, true];}; + case 5: {ctrlSetText[758011, "A"]; ctrlSetText[75807, localize "STR_LOGISTIC_ABORT"];}; + case 6: {ctrlSetText[758011, "B"]; ctrlSetText[75807, localize "STR_LOGISTIC_ABORT"];}; + }; + + ((findDisplay 75802) displayCtrl 75809) ctrlSetTextColor [1,1,1,1]; + if ((_selectedGroup select 8) != -1) then { + switch (_selectedGroup select 9) do { + case 2: {((findDisplay 75802) displayCtrl 75809) ctrlSetTextColor [0.9,0,0,1]; ctrlSetText[75809, localize "STR_LOGISTIC_NOSPACE"];}; + case 3: {((findDisplay 75802) displayCtrl 75809) ctrlSetTextColor [0.9,0,0,1]; ctrlSetText[75809, localize "STR_LOGISTIC_NORESSOURCES"];}; + default {ctrlSetText[75809,(format [localize "STR_PRODUCTION_MINUTES",(_selectedGroup select 8)])];}; + }; + } else { + ctrlSetText[75809, "-"]; + }; + + ctrlSetText [758014, (str (_selectedGroup select 1))]; + ctrlSetText [758016, (str ((_selectedGroup select 6) select 0))]; + ctrlSetText [758018, (str ((_selectedGroup select 6) select 1))]; + ctrlSetText [758020, (str ((_selectedGroup select 6) select 2))]; + + lbClear 758024; + lbClear 758029; + { + lbAdd [758024, format ["%1 (%2/%3/%4)",(_x select 0), (_x select 2), (_x select 3), (_x select 4)]]; + lbAdd [758029, format ["%1 (%2/%3/%4)",(_x select 0), (_x select 2), (_x select 3), (_x select 4)]]; + } forEach _logi_destinations; + + if (!((_selectedGroup select 2) isEqualTo [0,0,0])) then { + ctrlShow [758024,false]; + ctrlShow [758033,true]; + { + // Why the hell does "if ((_selectedGroup select 2) isEqualTo (_x select 1)) ..." return false? -.- + if (((_selectedGroup select 2) distance2D (_x select 1) < 10)) exitWith {ctrlSetText [758033, _x select 0];}; + } forEach _logi_destinations; + } else { + ctrlShow [758024,true]; + ctrlShow [758033,false]; + }; + + if (!((_selectedGroup select 3) isEqualTo [0,0,0])) then { + ctrlShow [758029,false]; + ctrlShow [758034,true]; + { + if (((_selectedGroup select 3) distance2D (_x select 1) < 10)) exitWith {ctrlSetText [758034, _x select 0];}; + } forEach _logi_destinations; + } else { + ctrlShow [758029,true]; + ctrlShow [758034,false]; + }; + + ctrlSetText [758025, (str ((_selectedGroup select 4) select 0))]; + ctrlSetText [758026, (str ((_selectedGroup select 4) select 1))]; + ctrlSetText [758027, (str ((_selectedGroup select 4) select 2))]; + + ctrlSetText [758030, (str ((_selectedGroup select 5) select 0))]; + ctrlSetText [758031, (str ((_selectedGroup select 5) select 1))]; + ctrlSetText [758032, (str ((_selectedGroup select 5) select 2))]; + + } else { + {ctrlShow [_x, false]} forEach _detailControls; + _selectedGroup = []; + }; + + waitUntil { + !dialog + || !(alive player) + || (lbCurSel 75802) != _listselect + || addLogiGroup != 0 + || deleteLogiGroup != 0 + || buyLogiTruck != 0 + || sellLogiTruck != 0 + || saveConvoySettings != 0 + || convoyStandby != 0 + }; +}; + +"spawn_marker" setMarkerPosLocal markers_reset; diff --git a/kp_liberation.brf_sumava/scripts/client/commander/open_permissions.sqf b/kp_liberation.brf_sumava/scripts/client/commander/open_permissions.sqf new file mode 100644 index 0000000..e48cfa5 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/commander/open_permissions.sqf @@ -0,0 +1,202 @@ +waitUntil {!isNil "GRLIB_permissions"}; + +private _players_array = []; +private _uids_array = ["Default"]; +private _dialog = createDialog "liberation_permissions"; +permission_playerid = -1; +permission_toset = -1; +save_changes = 0; + +color_authorized = [0,0.9,0,1]; +color_denied = [0.9,0,0,1]; +fontsize = 0.017 * safezoneH; + +private _modify_permissions = +GRLIB_permissions; + +disableSerialization; + +waitUntil { dialog }; + + +permission_create_activetext = compileFinal ' + + params ["_idx", "_column", "_permission", "_text", "_tooltip"]; + + private _control = (findDisplay 5118) ctrlCreate ["RscActiveText", ((10 * _idx) + 111) + _column, (findDisplay 5118) displayCtrl 9969]; + _control ctrlSetPosition [0.072 * _column * safeZoneW, (_idx * 0.025) * safezoneH, 0.072 * safeZoneW, 0.025 * safezoneH]; + _control ctrlSetText _text; + _control ctrlSetFontHeight fontsize; + _control ctrlSetTooltip _tooltip; + buttonSetAction [((10 * _idx) + 111) + _column, format ["permission_playerid = %1; permission_toset = %2;", _idx, _permission]]; + _control ctrlSetTextColor color_denied; + _control ctrlSetActiveColor color_denied; + _control ctrlCommit 0; + +'; + + + +_players_array pushback ["Default", localize "STR_DEFAULT", 0]; +private _idx = 2; + +{ + if (!((name _x) in ["HC1", "HC2", "HC3"])) then { + private _nextplayer = _x; + + private _displayname = ""; + if(count (squadParams _nextplayer) != 0) then { + _displayname = "[" + ((squadParams _nextplayer select 0) select 0) + "] "; + }; + _displayname = _displayname + name _nextplayer; + + _players_array pushback [getPlayerUID _nextplayer, _displayname, _idx]; + _uids_array pushBack getPlayerUID _nextplayer; + + _idx = _idx + 1; + }; +} foreach allPlayers; + +_idx = _idx + 1; + +{ + if !((_x select 0) in _uids_array) then { + _players_array pushBack [_x select 0, _x select 1, _idx]; + _idx = _idx + 1; + } +} forEach _modify_permissions; + +{ + private _nextplayer = _x; + private _idx = _nextplayer select 2; + + if (_idx % 2 == 0) then { + + private _control = (findDisplay 5118) ctrlCreate ["RscBackground", -1, (findDisplay 5118) displayCtrl 9969]; + _control ctrlSetPosition [0, (_idx * 0.025) * safezoneH, 0.595 * safeZoneW, 0.025 * safezoneH]; + _control ctrlSetBackgroundColor [0.75,1,0.75,0.12]; + _control ctrlCommit 0; + }; + + private _control = (findDisplay 5118) ctrlCreate ["RscText", (10 * _idx), (findDisplay 5118) displayCtrl 9969]; + _control ctrlSetPosition [0, (_idx * 0.025) * safezoneH, 0.072 * safeZoneW, 0.025 * safezoneH]; + _control ctrlSetText (_nextplayer select 1); + _control ctrlSetFontHeight fontsize; + _control ctrlCommit 0; + + [_idx, 1, 0, localize "STR_PERMISSIONS_LIGHT", localize "STR_PERMISSIONS_TOOLTIP_LIGHT"] call permission_create_activetext; + [_idx, 2, 1, localize "STR_PERMISSIONS_ARMORED", localize "STR_PERMISSIONS_TOOLTIP_ARMORED"] call permission_create_activetext; + [_idx, 3, 2, localize "STR_PERMISSIONS_AIR", localize "STR_PERMISSIONS_TOOLTIP_AIR"] call permission_create_activetext; + [_idx, 4, 3, localize "STR_PERMISSIONS_CONSTRUCTION", localize "STR_PERMISSIONS_TOOLTIP_CONSTRUCTION"] call permission_create_activetext; + [_idx, 5, 4, localize "STR_PERMISSIONS_RECYCLING", localize "STR_PERMISSIONS_TOOLTIP_RECYCLING"] call permission_create_activetext; + [_idx, 6, 5, localize "STR_PERMISSIONS_MISC", localize "STR_PERMISSIONS_TOOLTIP_MISC"] call permission_create_activetext; + + _control = (findDisplay 5118) ctrlCreate ["RscButton", ((10 * _idx) + 111) + 7, (findDisplay 5118) displayCtrl 9969]; + _control ctrlSetPosition [((0.075 * 7) - 0.02) * safeZoneW, ((_idx * 0.025) * safezoneH) + 0.0025, (0.035 * safeZoneW), 0.022 * safezoneH]; + _control ctrlSetText (localize "STR_PERMISSIONS_ALL"); + _control ctrlSetFontHeight fontsize; + _control ctrlSetTooltip (localize "STR_PERMISSIONS_TOOLTIP_ALL"); + buttonSetAction [ ((10 * _idx) + 111) + 7, format ["permission_playerid = %1; permission_toset = 666;", _idx]]; + _control ctrlCommit 0; + + _control = (findDisplay 5118) ctrlCreate ["RscButton", ((10 * _idx) + 111) + 8, (findDisplay 5118) displayCtrl 9969]; + _control ctrlSetPosition [((0.075 * 7) + 0.02) * safeZoneW, (_idx * 0.025) * safezoneH + 0.0025, 0.035 * safeZoneW, 0.022 * safezoneH]; + _control ctrlSetText (localize "STR_PERMISSIONS_NONE"); + _control ctrlSetFontHeight fontsize; + _control ctrlSetTooltip (localize "STR_PERMISSIONS_TOOLTIP_NONE"); + buttonSetAction [((10 * _idx) + 111) + 8, format ["permission_playerid = %1; permission_toset = 999;", _idx]]; + _control ctrlCommit 0; + +} foreach _players_array; + +while {dialog && alive player} do { + + if (permission_playerid != -1 || permission_toset != -1) then { + + private _player_uid = ""; + private _player_name = ""; + { + if (_x select 2 == permission_playerid) exitWith {_player_uid = _x select 0; _player_name = _x select 1;}; + } foreach _players_array; + + if (_player_uid != "") then { + + private _player_idx = -1; + private _player_uids = []; + private _player_permissions = []; + { + _player_uids pushback (_x select 0); + } foreach _modify_permissions; + + _player_idx = _player_uids find _player_uid; + + if (permission_toset == 666) then { + _player_permissions = [true, true, true, true, true, true]; + }; + if (permission_toset == 999) then { + _player_permissions = [false, false, false, false, false, false]; + }; + + if (_player_idx == -1) then { + + if (permission_toset != 666 && permission_toset != 999) then { + _player_permissions = [false, false, false, false, false, false]; + _player_permissions set [permission_toset, true]; + }; + + _modify_permissions pushback [_player_uid, _player_name, _player_permissions]; + } else { + + if (permission_toset != 666 && permission_toset != 999) then { + + _player_permissions = (_modify_permissions select _player_idx) select 2; + + private _idx = 0; + { + if (permission_toset == _idx) exitWith { + if (_player_permissions select _idx) then { + _player_permissions set [_idx, false]; + } else { + _player_permissions set [_idx, true]; + }; + }; + _idx = _idx + 1; + } foreach _player_permissions; + }; + _modify_permissions set [_player_idx, [_player_uid, _player_name, _player_permissions]]; + }; + }; + + permission_playerid = -1; + permission_toset = -1; + }; + + { + private _nextplayer = _x; + { + if (_nextplayer select 0 == _x select 0) exitWith { + private _idx = _nextplayer select 2; + private _player_permissions = _x select 2; + + { + private _control = ((findDisplay 5118) displayCtrl ((10 * _idx) + _x + 111)); + if (_player_permissions select (_x - 1)) then { + _control ctrlSetTextColor color_authorized; + _control ctrlSetActiveColor color_authorized; + } else { + _control ctrlSetTextColor color_denied; + _control ctrlSetActiveColor color_denied; + }; + } foreach [1, 2, 3, 4, 5, 6]; + }; + } foreach _modify_permissions; + + } foreach _players_array; + + if (save_changes == 1) then { + GRLIB_permissions = +_modify_permissions; + publicVariable "GRLIB_permissions"; + closeDialog 0; + }; + + waitUntil {!dialog || !(alive player) || permission_playerid != -1 || permission_toset != -1 || save_changes != 0}; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/commander/open_production.sqf b/kp_liberation.brf_sumava/scripts/client/commander/open_production.sqf new file mode 100644 index 0000000..d7c7b35 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/commander/open_production.sqf @@ -0,0 +1,136 @@ +private ["_dialog", "_color_positive", "_color_neutral", "_color_negative", "_color_actual", "_sectorType", "_storage", "_crateCount", "_crateMax", "_producing", "_storagespace", "_productiontime", "_saveChanges", "_listselect", "_listcolor", "_selectedSector", "_mapdisplay", "_supplyValue", "_ammoValue", "_fuelValue"]; + +_dialog = createDialog "liberation_production"; +saveSectorSetting = 0; +new_production = 0; +_color_positive = [0,0.9,0,1]; +_color_neutral = [1,1,1,1]; +_color_negative = [0.9,0,0,1]; +_color_actual = _color_neutral; +_listselect = -1; +_listcolor = [1,1,1,1]; +_selectedSector = []; + +disableSerialization; + +waitUntil {dialog}; + +_mapdisplay = ((findDisplay 75801) displayCtrl 758016); + +lbClear 75802; +{ + lbAdd [75802, (markerText (_x select 1))]; +} forEach KP_liberation_production; + +ctrlMapAnimClear _mapdisplay; + +while {dialog && (alive player)} do { + if (lbCurSel 75802 == -1) then { + lbSetCurSel [75802,0]; + }; + + if (saveSectorSetting == 1) then { + saveSectorSetting = 0; + [(_selectedSector select 1), new_production] remoteExec ["change_prod_remote_call",2]; + waitUntil {sleep 0.5; (!(_selectedSector isEqualTo (KP_liberation_production select _listselect)))}; + }; + + _listselect = -1; + + { + _listselect = _listselect + 1; + + if ((count (_x select 3)) > 0) then { + switch (_x select 7) do { + case 1: {_listcolor = [0.75,0,0,1];}; + case 2: {_listcolor = [0.75,0.75,0,1];}; + case 3: {_listcolor = [1,1,1,1];}; + default {_listcolor = [0,0.75,0,1];}; + }; + } else { + _listcolor = [0.6,0.6,0.6,0.8]; + }; + + lbSetColor [75802, _listselect, _listcolor]; + } forEach KP_liberation_production; + + _listselect = (lbCurSel 75802); + waitUntil {_listselect == (lbCurSel 75802)}; + _selectedSector = +(KP_liberation_production select _listselect); + + ctrlSetText [75803,(_selectedSector select 0)]; + + if ((_selectedSector select 2) == 1) then {_sectorType = localize "STR_PRODUCTION_FACTORY";} else {_sectorType = localize "STR_PRODUCTION_CITY";}; + ctrlSetText [75804, _sectorType]; + + if ((count (_selectedSector select 3)) > 0) then { + _storage = ((nearestObjects [((_selectedSector select 3) select 0), [KP_liberation_small_storage_building], 25]) select 0); + _crateCount = count (attachedObjects _storage); + _crateMax = count (KP_liberation_small_storage_positions); + + if (_crateCount >= _crateMax) then { + _color_actual = _color_negative; + }; + + _storagespace = format ["%1 / %2",_crateCount,_crateMax]; + _productiontime = format [localize "STR_PRODUCTION_MINUTES",(_selectedSector select 8)]; + + switch (_selectedSector select 7) do { + case 1: {_producing = localize "STR_AMMO";}; + case 2: {_producing = localize "STR_FUEL";}; + case 3: {_producing = localize "STR_PRODUCTION_NOTHING"; _productiontime = localize "STR_PRODUCTION_NOTIMER";}; + default {_producing = localize "STR_MANPOWER";}; + }; + + ctrlSetText [75805, _producing]; + if ((_selectedSector select 7) == 3) then { + ((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_negative; + ((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_negative; + } else { + ((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_neutral; + ((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_neutral; + }; + ctrlSetText [75806, _storagespace]; + ((findDisplay 75801) displayCtrl 75806) ctrlSetTextColor _color_actual; + ctrlSetText [75807, _productiontime]; + _color_actual = _color_neutral; + } else { + _producing = localize "STR_PRODUCTION_NOTHING"; + _storagespace = localize "STR_PRODUCTION_NOSTORAGE"; + _productiontime = localize "STR_PRODUCTION_NOTIMER"; + ctrlSetText [75805, _producing]; + ((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_negative; + ctrlSetText [75806, _storagespace]; + ((findDisplay 75801) displayCtrl 75806) ctrlSetTextColor _color_negative; + ctrlSetText [75807, _productiontime]; + ((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_negative; + }; + + if (_selectedSector select 4) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;}; + ((findDisplay 75801) displayCtrl 75808) ctrlSetTextColor _color_actual; + if (_selectedSector select 5) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;}; + ((findDisplay 75801) displayCtrl 75809) ctrlSetTextColor _color_actual; + if (_selectedSector select 6) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;}; + ((findDisplay 75801) displayCtrl 758010) ctrlSetTextColor _color_actual; + _color_actual = _color_neutral; + + _supplyValue = ceil ((_selectedSector select 9) / 100); + _ammoValue = ceil ((_selectedSector select 10) / 100); + _fuelValue = ceil ((_selectedSector select 11) / 100); + + if (_supplyValue == 1) then {_supplyValue = format [localize "STR_PRODUCTION_CRATE", _supplyValue];} else {_supplyValue = format [localize "STR_PRODUCTION_CRATES", _supplyValue];}; + if (_ammoValue == 1) then {_ammoValue = format [localize "STR_PRODUCTION_CRATE", _ammoValue];} else {_ammoValue = format [localize "STR_PRODUCTION_CRATES", _ammoValue];}; + if (_fuelValue == 1) then {_fuelValue = format [localize "STR_PRODUCTION_CRATE", _fuelValue];} else {_fuelValue = format [localize "STR_PRODUCTION_CRATES", _fuelValue];}; + + ctrlSetText [758011, (str (_selectedSector select 9)) + " (" + _supplyValue + ")"]; + ctrlSetText [758012, (str (_selectedSector select 10)) + " (" + _ammoValue + ")"]; + ctrlSetText [758013, (str (_selectedSector select 11)) + " (" + _fuelValue + ")"]; + + "spawn_marker" setMarkerPosLocal (markerPos (_selectedSector select 1)); + _mapdisplay ctrlMapAnimAdd [0.5, 0.2,(markerPos (_selectedSector select 1))]; + ctrlMapAnimCommit _mapdisplay; + + waitUntil {!dialog || !(alive player) || (lbCurSel 75802) != _listselect || saveSectorSetting != 0}; +}; + +"spawn_marker" setMarkerPosLocal markers_reset; diff --git a/kp_liberation.brf_sumava/scripts/client/init_client.sqf b/kp_liberation.brf_sumava/scripts/client/init_client.sqf new file mode 100644 index 0000000..9a3e2ed --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/init_client.sqf @@ -0,0 +1,106 @@ +[] call compileFinal preprocessFileLineNumbers "scripts\client\misc\init_markers.sqf"; +switch (KP_liberation_arsenal) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\custom.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\3cbBAF.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_west.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_east.sqf";}; + case 6: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\csat.sqf";}; + case 7: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\unsung.sqf";}; + case 8: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\sfp.sqf";}; + case 9: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\bwmod.sqf";}; + case 10: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_mtp.sqf";}; + case 11: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_tropic.sqf";}; + case 12: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_wdl.sqf";}; + case 13: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_csat_hex.sqf";}; + case 14: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_csat_ghex.sqf";}; + case 15: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_aaf.sqf";}; + case 16: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_ldf.sqf";}; + default {GRLIB_arsenal_weapons = [];GRLIB_arsenal_magazines = [];GRLIB_arsenal_items = [];GRLIB_arsenal_backpacks = [];}; +}; + +if (typeOf player == "VirtualSpectator_F") exitWith { + execVM "scripts\client\markers\empty_vehicles_marker.sqf"; + execVM "scripts\client\markers\fob_markers.sqf"; + execVM "scripts\client\markers\group_icons.sqf"; + execVM "scripts\client\markers\hostile_groups.sqf"; + execVM "scripts\client\markers\sector_manager.sqf"; + execVM "scripts\client\markers\spot_timer.sqf"; + execVM "scripts\client\misc\synchronise_vars.sqf"; + execVM "scripts\client\ui\ui_manager.sqf"; +}; + +// This causes the script error with not defined variable _display in File A3\functions_f_bootcamp\Inventory\fn_arsenal.sqf [BIS_fnc_arsenal], line 2122 +// ["Preload"] call BIS_fnc_arsenal; +spawn_camera = compileFinal preprocessFileLineNumbers "scripts\client\spawn\spawn_camera.sqf"; +cinematic_camera = compileFinal preprocessFileLineNumbers "scripts\client\ui\cinematic_camera.sqf"; +write_credit_line = compileFinal preprocessFileLineNumbers "scripts\client\ui\write_credit_line.sqf"; +do_load_box = compileFinal preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; +kp_fuel_consumption = compileFinal preprocessFileLineNumbers "scripts\client\misc\kp_fuel_consumption.sqf"; +kp_vehicle_permissions = compileFinal preprocessFileLineNumbers "scripts\client\misc\vehicle_permissions.sqf"; + +execVM "scripts\client\actions\intel_manager.sqf"; +execVM "scripts\client\actions\recycle_manager.sqf"; +execVM "scripts\client\actions\unflip_manager.sqf"; +execVM "scripts\client\ammoboxes\ammobox_action_manager.sqf"; +execVM "scripts\client\build\build_overlay.sqf"; +execVM "scripts\client\build\do_build.sqf"; +execVM "scripts\client\commander\enforce_whitelist.sqf"; +if (KP_liberation_mapmarkers) then {execVM "scripts\client\markers\empty_vehicles_marker.sqf";}; +execVM "scripts\client\markers\fob_markers.sqf"; +if (!KP_liberation_high_command && KP_liberation_mapmarkers) then {execVM "scripts\client\markers\group_icons.sqf";}; +execVM "scripts\client\markers\hostile_groups.sqf"; +if (KP_liberation_mapmarkers) then {execVM "scripts\client\markers\huron_marker.sqf";} else {deleteMarkerLocal "huronmarker"}; +execVM "scripts\client\markers\sector_manager.sqf"; +execVM "scripts\client\markers\spot_timer.sqf"; +execVM "scripts\client\misc\broadcast_squad_colors.sqf"; +execVM "scripts\client\misc\init_arsenal.sqf"; +execVM "scripts\client\misc\permissions_warning.sqf"; +if (!KP_liberation_ace) then {execVM "scripts\client\misc\resupply_manager.sqf";}; +execVM "scripts\client\misc\secondary_jip.sqf"; +execVM "scripts\client\misc\synchronise_vars.sqf"; +execVM "scripts\client\misc\synchronise_eco.sqf"; +execVM "scripts\client\misc\playerNamespace.sqf"; +execVM "scripts\client\spawn\redeploy_manager.sqf"; +execVM "scripts\client\ui\ui_manager.sqf"; +execVM "scripts\client\ui\tutorial_manager.sqf"; +execVM "scripts\client\markers\update_production_sites.sqf"; + +player addMPEventHandler ["MPKilled", {_this spawn kill_manager;}]; +player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}]; +player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehiclesSeized;}]; +player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleCaptured;}]; +player addEventHandler ["GetInMan", {[_this select 2] call kp_vehicle_permissions;}]; +player addEventHandler ["SeatSwitchedMan", {[_this select 2] call kp_vehicle_permissions;}]; +player addEventHandler ["HandleRating", {if ((_this select 1) < 0) then {0};}]; + +// Disable stamina, if selected in parameter +if (!GRLIB_fatigue) then { + player enableStamina false; + player addEventHandler ["Respawn", {player enableStamina false;}]; +}; + +// Reduce aim precision coefficient, if selected in parameter +if (!KPLIB_sway) then { + player setCustomAimCoef 0.1; + player addEventHandler ["Respawn", {player setCustomAimCoef 0.1;}]; +}; + +execVM "scripts\client\ui\intro.sqf"; + +[player] joinSilent (createGroup [GRLIB_side_friendly, true]); + +// Commander init +if (player isEqualTo ([] call KPLIB_fnc_getCommander)) then { + // Start tutorial + if (KP_liberation_tutorial) then { + [] call KPLIB_fnc_tutorial; + }; + // Request Zeus if enabled + if (KP_liberation_commander_zeus) then { + [] spawn { + sleep 5; + [] call KPLIB_fnc_requestZeus; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/empty_vehicles_marker.sqf b/kp_liberation.brf_sumava/scripts/client/markers/empty_vehicles_marker.sqf new file mode 100644 index 0000000..da3d2ac --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/empty_vehicles_marker.sqf @@ -0,0 +1,52 @@ +private [ "_vehmarkers", "_markedveh", "_cfg", "_vehtomark", "_supporttomark", "_marker" ]; + +_vehmarkers = []; +_markedveh = []; +_cfg = configFile >> "cfgVehicles"; +_vehtomark = []; + +_support_to_skip = [ + KP_liberation_recycle_building, + KP_liberation_air_vehicle_building, + "B_Slingload_01_Repair_F", + "B_Slingload_01_Fuel_F", + "B_Slingload_01_Ammo_F" +]; + +{ + _vehtomark append _x; +} forEach [KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_air_classes, KPLIB_b_support_classes]; + +_vehtomark = _vehtomark - _support_to_skip; + +while { true } do { + + _markedveh = []; + { + if (alive _x && (toLower (typeof _x)) in _vehtomark && (count (crew _x)) == 0 && (_x distance2d startbase) > 500) then { + _markedveh pushback _x; + }; + } foreach vehicles; + + if ( count _markedveh != count _vehmarkers ) then { + { deleteMarkerLocal _x; } foreach _vehmarkers; + _vehmarkers = []; + + { + _marker = createMarkerLocal [ format [ "markedveh%1" ,_x], markers_reset ]; + _marker setMarkerColorLocal "ColorKhaki"; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerSizeLocal [ 0.75, 0.75 ]; + _vehmarkers pushback _marker; + } foreach _markedveh; + }; + + { + _marker = _vehmarkers select (_markedveh find _x); + _marker setMarkerPosLocal getpos _x; + _marker setMarkerTextLocal (getText (_cfg >> typeOf _x >> "displayName")); + + } foreach _markedveh; + + sleep 5; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/fob_markers.sqf b/kp_liberation.brf_sumava/scripts/client/markers/fob_markers.sqf new file mode 100644 index 0000000..d174d82 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/fob_markers.sqf @@ -0,0 +1,50 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "GRLIB_all_fobs"}; +waitUntil {save_is_loaded}; + +uiSleep 3; + +private _markers = []; +private _markers_mobilespawns = []; + +while {true} do { + if (count _markers != count GRLIB_all_fobs) then { + {deleteMarkerLocal _x;} forEach _markers; + _markers = []; + + for "_idx" from 0 to ((count GRLIB_all_fobs) - 1) do { + private _marker = createMarkerLocal [format ["fobmarker%1", _idx], markers_reset]; + _marker setMarkerTypeLocal "b_hq"; + _marker setMarkerSizeLocal [1.5, 1.5]; + _marker setMarkerPosLocal (GRLIB_all_fobs select _idx); + _marker setMarkerTextLocal format ["FOB %1",military_alphabet select _idx]; + _marker setMarkerColorLocal "ColorYellow"; + _markers pushback _marker; + }; + }; + + if (KP_liberation_mobilerespawn) then { + private _respawn_trucks = [] call KPLIB_fnc_getMobileRespawns; + + if (count _markers_mobilespawns != count _respawn_trucks) then { + {deleteMarkerLocal _x;} forEach _markers_mobilespawns; + _markers_mobilespawns = []; + + for "_idx" from 0 to ((count _respawn_trucks) - 1) do { + _marker = createMarkerLocal [format ["mobilespawn%1", _idx], markers_reset]; + _marker setMarkerTypeLocal "mil_end"; + _marker setMarkerColorLocal "ColorYellow"; + _markers_mobilespawns pushback _marker; + }; + }; + + if (count _respawn_trucks == count _markers_mobilespawns) then { + for "_idx" from 0 to ((count _markers_mobilespawns) - 1) do { + (_markers_mobilespawns select _idx) setMarkerPosLocal getPos (_respawn_trucks select _idx); + (_markers_mobilespawns select _idx) setMarkerTextLocal format ["%1 %2", localize "STR_RESPAWN_TRUCK", mapGridPosition (_respawn_trucks select _idx)]; + }; + }; + }; + + sleep 5; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/group_icons.sqf b/kp_liberation.brf_sumava/scripts/client/markers/group_icons.sqf new file mode 100644 index 0000000..4ed874e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/group_icons.sqf @@ -0,0 +1,68 @@ +private [ "_iconed_groups", "_ticks", "_localgroup", "_grouptype", "_groupicon" ]; + +_iconed_groups = []; +_ticks = 0; + +setGroupIconsVisible [true,false]; + +while { true } do { + { + if ((_x != group player) && ((side _x == GRLIB_side_friendly))) then { + if ( (_x in _iconed_groups) && ( + (count units _x == 0) || (side _x == GRLIB_side_friendly && (((leader _x) distance (markerPos GRLIB_respawn_marker) < 100) || ((leader _x) distance startbase < 500))))) then { + clearGroupIcons _x; + _iconed_groups = _iconed_groups - [_x]; + }; + + if ( !(_x in _iconed_groups) && ( + (count units _x > 0) && (side _x == GRLIB_side_friendly && (((leader _x) distance (markerPos GRLIB_respawn_marker) > 100) && ((leader _x) distance startbase > 500))))) then { + clearGroupIcons _x; + _localgroup = _x; + _grouptype = [_localgroup] call KPLIB_fnc_getGroupType; + _groupicon = ""; + switch (_grouptype) do { + case "infantry": { _groupicon = "b_inf" }; + case "light": { _groupicon = "b_motor_inf" }; + case "heavy": { _groupicon = "b_armor" }; + case "air": { _groupicon = "b_air" }; + case "support": { _groupicon = "b_maint" }; + case "static": { _groupicon = "b_mortar" }; + case "uav": { _groupicon = "b_uav" }; + default { }; + }; + + _localgroup addGroupIcon [ _groupicon, [ 0,0 ] ]; + + if ( side _localgroup == GRLIB_side_friendly ) then { + _groupiconsize = "group_0"; + _groupsize = (count (units _localgroup)); + if ( _groupsize >= 2 ) then { _groupiconsize = "group_1" }; + if ( _groupsize >= 6 ) then { _groupiconsize = "group_2" }; + if ( _groupsize >= 10 ) then { _groupiconsize = "group_3" }; + + _localgroup addGroupIcon [ _groupiconsize, [ 0,0 ] ]; + }; + + _iconed_groups pushback _x; + }; + }; + } foreach allGroups; + + { + _color = []; + if ( isplayer leader _x ) then { + _color = [0.8,0.8,0,1]; + } else { + _color = [0,0.3,0.8,1]; + }; + _x setGroupIconParams [_color,"",1,true]; + } foreach _iconed_groups; + + _ticks = _ticks + 1; + if ( _ticks >= 15 ) then { + _ticks = 0; + _iconed_groups = []; + }; + + sleep 4.7; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/hostile_groups.sqf b/kp_liberation.brf_sumava/scripts/client/markers/hostile_groups.sqf new file mode 100644 index 0000000..143ef10 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/hostile_groups.sqf @@ -0,0 +1,52 @@ +private ["_kp_markers_array","_kp_markers_start","_kp_markers_change","_kp_markers_pos","_kp_markers_posx","_kp_markers_posy","_kp_markers_name","_kp_markers_color"]; + +waitUntil {sleep 0.1; !isNil "save_is_loaded" && {save_is_loaded}}; + +_kp_markers_array = []; +_kp_markers_start = 0.2; +_kp_markers_change = 0.05; + +while {true} do { + {deleteMarkerLocal _x;} forEach _kp_markers_array; + _kp_markers_array = []; + { + if ((side _x == GRLIB_side_enemy) && (({!captive _x} count (units _x) ) > 0) && ([(getpos leader _x), GRLIB_side_friendly, GRLIB_radiotower_size] call KPLIB_fnc_getNearestTower != "")) then { + _kp_markers_pos = getPosATL leader _x; + _kp_markers_posx = floor (_kp_markers_pos select 0); + _kp_markers_posx = _kp_markers_posx - (_kp_markers_posx mod 500); + _kp_markers_posy = floor (_kp_markers_pos select 1); + _kp_markers_posy = _kp_markers_posy - (_kp_markers_posy mod 500); + + // Chernarus Grid Fix + if (worldName == "Chernarus") then { + _kp_markers_posy = _kp_markers_posy - 140; + if ((_kp_markers_posy + 500) < (_kp_markers_pos select 1)) then { + _kp_markers_posy = _kp_markers_posy + 500; + }; + }; + + // Sahrani Grid Fix + if (worldName == "Sara") then { + _kp_markers_posy = _kp_markers_posy - 20; + if ((_kp_markers_posy + 500) < (_kp_markers_pos select 1)) then { + _kp_markers_posy = _kp_markers_posy + 500; + }; + }; + + _kp_markers_name = format["kp_marker_grid_%1_%2", _kp_markers_posx, _kp_markers_posy]; + _kp_markers_color = format["Color%1", side _x]; + + if ((markerShape _kp_markers_name) isEqualTo "RECTANGLE") then { + _kp_markers_name setMarkerAlphaLocal ((markerAlpha _kp_markers_name) + _kp_markers_change); + } else { + createMarkerLocal[_kp_markers_name, [_kp_markers_posx + 250, _kp_markers_posy + 250, 0]]; + _kp_markers_name setMarkerShapeLocal "RECTANGLE"; + _kp_markers_name setMarkerSizeLocal [250,250]; + _kp_markers_name setMarkerColorLocal _kp_markers_color; + _kp_markers_name setMarkerAlphaLocal (_kp_markers_start + _kp_markers_change); + _kp_markers_array pushBack _kp_markers_name; + }; + }; + } forEach allGroups; + uiSleep (60 + (random 60)); +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/huron_marker.sqf b/kp_liberation.brf_sumava/scripts/client/markers/huron_marker.sqf new file mode 100644 index 0000000..0b62c5b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/huron_marker.sqf @@ -0,0 +1,13 @@ +private [ "_huronlocal" ]; + +"huronmarker" setMarkerTextLocal "Potato 01"; + +while { true } do { + _huronlocal = [] call KPLIB_fnc_potatoScan; + if ( !( isNull _huronlocal) ) then { + "huronmarker" setmarkerposlocal (getpos _huronlocal); + } else { + "huronmarker" setmarkerposlocal markers_reset; + }; + sleep 4.9; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/sector_manager.sqf b/kp_liberation.brf_sumava/scripts/client/markers/sector_manager.sqf new file mode 100644 index 0000000..e3be8ac --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/sector_manager.sqf @@ -0,0 +1,36 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "GRLIB_vehicle_to_military_base_links"}; +waitUntil {!isNil "blufor_sectors"}; +waitUntil {save_is_loaded}; + +private _vehicle_unlock_markers = []; +private _cfg = configFile >> "cfgVehicles"; + +{ + _x params ["_vehicle", "_base"]; + private _marker = createMarkerLocal [format ["vehicleunlockmarker%1", _base], [(markerpos _base) select 0, ((markerpos _base) select 1) + 125]]; + _marker setMarkerTextLocal (getText (_cfg >> _vehicle >> "displayName")); + _marker setMarkerColorLocal GRLIB_color_enemy; + _marker setMarkerTypeLocal "mil_pickup"; + _vehicle_unlock_markers pushback [_marker, _base]; +} forEach GRLIB_vehicle_to_military_base_links; + +private _sector_count = -1; + +uiSleep 1; + +while {true} do { + waitUntil { + uiSleep 1; + count blufor_sectors != _sector_count + }; + + {_x setMarkerColorLocal GRLIB_color_enemy;} forEach (sectors_allSectors - blufor_sectors); + {_x setMarkerColorLocal GRLIB_color_friendly;} forEach blufor_sectors; + + { + _x params ["_marker", "_base"]; + _marker setMarkerColorLocal ([GRLIB_color_enemy, GRLIB_color_friendly] select (_base in blufor_sectors)); + } forEach _vehicle_unlock_markers; + _sector_count = count blufor_sectors; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/spot_timer.sqf b/kp_liberation.brf_sumava/scripts/client/markers/spot_timer.sqf new file mode 100644 index 0000000..8a5ace2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/spot_timer.sqf @@ -0,0 +1,23 @@ +createMarkerLocal ["opfor_bg_marker", markers_reset]; +"opfor_bg_marker" setMarkerTypeLocal "mil_unknown"; +"opfor_bg_marker" setMarkerColorLocal GRLIB_color_enemy_bright; + +createMarkerLocal ["opfor_capture_marker", markers_reset]; +"opfor_capture_marker" setMarkerTypeLocal "mil_objective"; +"opfor_capture_marker" setMarkerColorLocal GRLIB_color_enemy_bright; + +if ( isNil "sector_timer" ) then { sector_timer = 0 }; + +while { true } do { + sleep 1; + if ( sector_timer > 0 ) then { + "opfor_capture_marker" setMarkerTextLocal format ["%1",([sector_timer] call KPLIB_fnc_secondsToTimer)]; + sector_timer = sector_timer - 1; + } else { + "opfor_capture_marker" setMarkerTextLocal "VULNERABLE"; + waitUntil{ + sleep 1; + sector_timer > 0 + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/markers/update_production_sites.sqf b/kp_liberation.brf_sumava/scripts/client/markers/update_production_sites.sqf new file mode 100644 index 0000000..a0f4b8b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/markers/update_production_sites.sqf @@ -0,0 +1,22 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "KP_liberation_production_markers"}; +waitUntil {save_is_loaded}; + +private _KP_liberation_production_markers_old = [0]; + +while {GRLIB_endgame == 0} do { + waitUntil {sleep 5; + !(_KP_liberation_production_markers_old isEqualTo KP_liberation_production_markers) + }; + + { + private _marker_text = (_x select 4) + " ["; + if (_x select 1) then {_marker_text = _marker_text + "S";}; + if (_x select 2) then {_marker_text = _marker_text + "A";}; + if (_x select 3) then {_marker_text = _marker_text + "F";}; + _marker_text = _marker_text + "]"; + (_x select 0) setMarkerTextLocal _marker_text; + } forEach KP_liberation_production_markers; + + _KP_liberation_production_markers_old = +KP_liberation_production_markers; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/broadcast_squad_colors.sqf b/kp_liberation.brf_sumava/scripts/client/misc/broadcast_squad_colors.sqf new file mode 100644 index 0000000..04afe19 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/broadcast_squad_colors.sqf @@ -0,0 +1,12 @@ +while { true } do { + + if ( local group player ) then { + { + if ( _x getVariable ["GRLIB_squad_color", "MAIN"] != assignedTeam _x ) then { + _x setVariable ["GRLIB_squad_color", assignedTeam _x, true ]; + }; + } foreach (units group player); + }; + + sleep 5; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/init_arsenal.sqf b/kp_liberation.brf_sumava/scripts/client/misc/init_arsenal.sqf new file mode 100644 index 0000000..b32dbd8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/init_arsenal.sqf @@ -0,0 +1,113 @@ +if (KP_liberation_arsenalUsePreset) then { + private _crawled = [] call KPLIB_fnc_crawlAllItems; + private _weapons = []; + private _magazines = []; + private _items = []; + private _backpacks = []; + KP_liberation_allowed_items = []; + + if (isNil "GRLIB_arsenal_weapons") then {GRLIB_arsenal_weapons = []}; + if (isNil "GRLIB_arsenal_magazines") then {GRLIB_arsenal_magazines = []}; + if (isNil "GRLIB_arsenal_items") then {GRLIB_arsenal_items = []}; + if (isNil "GRLIB_arsenal_backpacks") then {GRLIB_arsenal_backpacks = []}; + if (isNil "blacklisted_from_arsenal") then {blacklisted_from_arsenal = []}; + + if ((count GRLIB_arsenal_weapons) == 0) then { + if ((count blacklisted_from_arsenal) == 0) then { + _weapons = _crawled select 0; + } else { + {if (!(_x in blacklisted_from_arsenal)) then {_weapons pushBack _x};} forEach (_crawled select 0); + }; + [missionNamespace, _weapons] call BIS_fnc_addVirtualWeaponCargo; + KP_liberation_allowed_items append _weapons; + } else { + [missionNamespace, GRLIB_arsenal_weapons] call BIS_fnc_addVirtualWeaponCargo; + KP_liberation_allowed_items append GRLIB_arsenal_weapons; + }; + + // Support for CBA disposable launchers, https://github.com/CBATeam/CBA_A3/wiki/Disposable-Launchers + if !(configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) then { + private _disposableLaunchers = ["CBA_FakeLauncherMagazine"]; + { + private _loadedLauncher = cba_disposable_LoadedLaunchers get _x; + if (!isNil "_loadedLauncher") then { + _disposableLaunchers pushBack _loadedLauncher; + }; + + private _normalLauncher = cba_disposable_NormalLaunchers get _x; + if (!isNil "_normalLauncher") then { + _normalLauncher params ["_loadedLauncher"]; + _disposableLaunchers pushBack _loadedLauncher; + }; + } forEach KP_liberation_allowed_items; + KP_liberation_allowed_items append _disposableLaunchers; + }; + + if ((count GRLIB_arsenal_magazines) == 0) then { + if ((count blacklisted_from_arsenal) == 0) then { + _magazines = _crawled select 1; + } else { + {if (!(_x in blacklisted_from_arsenal)) then {_magazines pushBack _x};} forEach (_crawled select 1); + }; + [missionNamespace, _magazines] call BIS_fnc_addVirtualMagazineCargo; + KP_liberation_allowed_items append _magazines; + } else { + [missionNamespace, GRLIB_arsenal_magazines] call BIS_fnc_addVirtualMagazineCargo; + KP_liberation_allowed_items append GRLIB_arsenal_magazines; + }; + + if ((count GRLIB_arsenal_items) == 0) then { + if ((count blacklisted_from_arsenal) == 0) then { + _items = _crawled select 2; + } else { + {if (!(_x in blacklisted_from_arsenal)) then {_items pushBack _x};} forEach (_crawled select 2); + }; + [missionNamespace, _items] call BIS_fnc_addVirtualItemCargo; + KP_liberation_allowed_items append _items; + } else { + [missionNamespace, GRLIB_arsenal_items] call BIS_fnc_addVirtualItemCargo; + KP_liberation_allowed_items append GRLIB_arsenal_items; + }; + + if ((count GRLIB_arsenal_backpacks) == 0) then { + if ((count blacklisted_from_arsenal) == 0) then { + _backpacks = _crawled select 3; + } else { + {if (!(_x in blacklisted_from_arsenal)) then {_backpacks pushBack _x};} forEach (_crawled select 3); + }; + [missionNamespace, _backpacks] call BIS_fnc_addVirtualBackpackCargo; + KP_liberation_allowed_items append _backpacks; + } else { + [missionNamespace, GRLIB_arsenal_backpacks] call BIS_fnc_addVirtualBackpackCargo; + KP_liberation_allowed_items append GRLIB_arsenal_backpacks; + }; + + { + if ((_x find "rhs_acc") == 0) then { + KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"]; + }; + if ((_x find "rhsusf_acc") == 0) then { + KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"]; + }; + } forEach KP_liberation_allowed_items; + + if ((count KP_liberation_allowed_items_extension) > 0) then { + KP_liberation_allowed_items append KP_liberation_allowed_items_extension; + }; + + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + [player, KP_liberation_allowed_items, false] call ace_arsenal_fnc_addVirtualItems; + }; + + // Lowercase all classnames + KP_liberation_allowed_items = KP_liberation_allowed_items apply {toLower _x}; +} else { + [missionNamespace, true] call BIS_fnc_addVirtualWeaponCargo; + [missionNamespace, true] call BIS_fnc_addVirtualMagazineCargo; + [missionNamespace, true] call BIS_fnc_addVirtualItemCargo; + [missionNamespace, true] call BIS_fnc_addVirtualBackpackCargo; + + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + [player, true, false] call ace_arsenal_fnc_addVirtualItems; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/init_markers.sqf b/kp_liberation.brf_sumava/scripts/client/misc/init_markers.sqf new file mode 100644 index 0000000..a4db6d7 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/init_markers.sqf @@ -0,0 +1,9 @@ +_marker = createMarkerLocal ["zone_capture", markers_reset]; +_marker setMarkerColorLocal "ColorUNKNOWN"; +_marker setMarkerShapeLocal "Ellipse"; +_marker setMarkerBrushLocal "SolidBorder"; +_marker setMarkerSizeLocal [ GRLIB_capture_size, GRLIB_capture_size ]; + +_marker = createMarkerLocal ["spawn_marker", markers_reset]; +_marker setMarkerColorLocal "ColorGreen"; +_marker setMarkerTypeLocal "Select"; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/client/misc/kp_fuel_consumption.sqf b/kp_liberation.brf_sumava/scripts/client/misc/kp_fuel_consumption.sqf new file mode 100644 index 0000000..12ce8ae --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/kp_fuel_consumption.sqf @@ -0,0 +1,53 @@ +/* +kp_fuel_consumption.sqf +Author: Wyqer +Website: www.killahpotatoes.de +Date: 2017-02-02 + +Description: +This script handles the fuel consumption of vehicles, so that refueling will be necessary more often. + +Parameters: +_this select 0 - OBJECT - Vehicle + +Method: +execVM + +Example for initPlayerLocal.sqf: +player addEventHandler ["GetInMan", {[ _this select 2] execVM "scripts\kp_fuel_consumption.sqf";}]; +*/ + +//CONFIG +// Time in Minutes till a full tank depletes when the vehicle is standing with running engine +private _kp_neutral_consumption = KP_liberation_fuel_neutral; +// Time in Minutes till a full tank depletes when the vehicle is driving +private _kp_normal_consumption = KP_liberation_fuel_normal; +// Time in Minutes till a full tank depletes when the vehicle is driving at max speed +private _kp_max_consumption = KP_liberation_fuel_max; + +/* +DO NOT EDIT BELOW +*/ + +if (isNil "kp_fuel_consumption_vehicles") then { + kp_fuel_consumption_vehicles = []; +}; + +if (!((_this select 0) in kp_fuel_consumption_vehicles)) then { + kp_fuel_consumption_vehicles pushBack (_this select 0); + while {local (_this select 0)} do { + if (isEngineOn (_this select 0)) then { + if (speed (_this select 0) > 5) then { + if (speed (_this select 0) > (getNumber (configFile >> "CfgVehicles" >> typeOf (_this select 0) >> "maxSpeed") * 0.9)) then { + (_this select 0) setFuel (fuel (_this select 0) - (1 / (_kp_max_consumption * 60))); + } else { + (_this select 0) setFuel (fuel (_this select 0) - (1 / (_kp_normal_consumption * 60))); + }; + } else { + (_this select 0) setFuel (fuel (_this select 0) - (1 / (_kp_neutral_consumption * 60))); + }; + }; + uiSleep 1; + }; + kp_fuel_consumption_vehicles deleteAt (kp_fuel_consumption_vehicles find (_this select 0)); +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/permissions_warning.sqf b/kp_liberation.brf_sumava/scripts/client/misc/permissions_warning.sqf new file mode 100644 index 0000000..d751422 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/permissions_warning.sqf @@ -0,0 +1,14 @@ +if ( GRLIB_permissions_param ) then { + + waitUntil { !(isNil "GRLIB_permissions") }; + + sleep 5; + + while { count GRLIB_permissions == 0 } do { + hint localize "STR_PERMISSION_WARNING"; + sleep 5; + }; + + hintSilent ""; + +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/playerNamespace.sqf b/kp_liberation.brf_sumava/scripts/client/misc/playerNamespace.sqf new file mode 100644 index 0000000..981ca03 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/playerNamespace.sqf @@ -0,0 +1,69 @@ +/* + File: playerNamespace.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-12 + Last Update: 2020-05-08 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Tracks player state values to provide this information for other scripts. +*/ + +scriptName "KPLIB_playerNamespace"; + +waitUntil {!isNil "one_synchro_done"}; +waitUntil {!isNil "one_eco_done"}; +waitUntil {one_synchro_done}; +waitUntil {one_eco_done}; + +private _fobPos = [0, 0, 0]; +private _fobDist = 99999; +private _fobName = ""; + +while {true} do { + // FOB distance, name and position + if !(GRLIB_all_fobs isEqualTo []) then { + _fobPos = [] call KPLIB_fnc_getNearestFob; + _fobDist = player distance2d _fobPos; + _fobName = ["", ["FOB", [_fobPos] call KPLIB_fnc_getFobName] joinString " "] select (_fobDist < GRLIB_fob_range); + } else { + _fobPos = [0, 0, 0]; + _fobDist = 99999; + _fobName = ""; + }; + // TODO more self explanatory names, KPLIB_nearestFobDist, KPLIB_currentFobName, KPLIB_nearestFobPos + player setVariable ["KPLIB_fobDist", _fobDist]; + player setVariable ["KPLIB_fobName", _fobName]; + player setVariable ["KPLIB_fobPos", _fobPos]; + + // Direct acces due to config, commander or admin + player setVariable ["KPLIB_hasDirectAccess", (getPlayerUID player) in KP_liberation_commander_actions || {player == ([] call KPLIB_fnc_getCommander)} || {serverCommandAvailable "#kick"}]; + + // Outside of startbase "safezone" + player setVariable ["KPLIB_isAwayFromStart", (player distance2d startbase) > 1000]; + + // Is near an arsenal object + if (KP_liberation_mobilearsenal) then { + player setVariable ["KPLIB_isNearArsenal", !(((player nearObjects [Arsenal_typename, 5]) select {getObjectType _x >= 8}) isEqualTo [])]; + }; + + // Is near a mobile respawn + if (KP_liberation_mobilerespawn) then { + player setVariable ["KPLIB_isNearMobRespawn", !((player nearEntities [[Respawn_truck_typename, huron_typename], 10]) isEqualTo [])]; + }; + + // Is near startbase + player setVariable ["KPLIB_isNearStart", (player distance2d startbase) < 200]; + + // Nearest activated sector and possible production data + player setVariable ["KPLIB_nearProd", KP_liberation_production param [KP_liberation_production findIf {(_x select 1) isEqualTo ([100] call KPLIB_fnc_getNearestSector)}, []]]; + player setVariable ["KPLIB_nearSector", [GRLIB_sector_size] call KPLIB_fnc_getNearestSector]; + + // Zeus module synced to player + player setVariable ["KPLIB_ownedZeusModule", getAssignedCuratorLogic player]; + + // Update state in Discord rich presence + [] call KPLIB_fnc_setDiscordState; + + sleep 1; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/resupply_manager.sqf b/kp_liberation.brf_sumava/scripts/client/misc/resupply_manager.sqf new file mode 100644 index 0000000..3203990 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/resupply_manager.sqf @@ -0,0 +1,80 @@ +private [ "_resupply_dist", "_repair_increment", "_repair_speed", "_repair_altitude", "_veh", "_repaired", "_rearmed", "_refueled", "_average_damage", "_average_fuel", "_screenmsg", "_rearm_time", "_refuel_amount", "_rearm_ticker" ]; + +_repair_amount = 0.01; +_repair_speed = 2; +_repair_altitude = 2; +_resupply_dist = 30; +_rearm_time = 60; +_refuel_amount = 0.02; +_rearm_ticker = 0; + +while { true } do { + + _repaired = false; + _rearmed = false; + _refueled = false; + _average_damage = 0; + _average_fuel = 0; + _screenmsg = ""; + + _veh = vehicle player; + + if ( _veh != player ) then { + if ( effectiveCommander _veh == player ) then { + if ( (speed _veh < _repair_speed) && (((getPosATL _veh) select 2) < _repair_altitude) ) then { + + if ( count ( (getpos _veh) nearEntities [ vehicle_repair_sources , _resupply_dist] ) > 0 ) then { + if ( damage _veh > 0 ) then { + _repaired = true; + _average_damage = (damage _veh) - _repair_amount; + if ( _average_damage < 0 ) then { _average_damage = 0 }; + _veh setDamage _average_damage; + }; + }; + + if ( ( count ( (getpos _veh) nearEntities [ vehicle_rearm_sources , _resupply_dist] ) > 0 ) && ( _rearm_ticker < _rearm_time ) ) then { + _rearmed = true; + _rearm_ticker = _rearm_ticker + 1; + if ( _rearm_ticker >= _rearm_time ) then { + [_veh, 1] remoteExecCall ["setVehicleAmmo", _veh]; + }; + }; + + if ( count ( (getpos _veh) nearEntities [ vehicle_refuel_sources , _resupply_dist] ) > 0 ) then { + if ( fuel _veh < ( 1 - _refuel_amount ) ) then { + _refueled = true; + [_veh, (fuel _veh + _refuel_amount)] remoteExecCall ["setFuel", _veh]; + }; + }; + } else { + _rearm_ticker = 0; + }; + } else { + _rearm_ticker = 0; + }; + } else { + _rearm_ticker = 0; + }; + + if ( _repaired ) then { + _screenmsg = format [ "%1 : %2%3", localize "STR_REPAIRING", round ( 100 - (_average_damage * 100) ), "%" ]; + }; + + if ( _rearmed ) then { + if ( _repaired ) then { + _screenmsg = format [ "%1 - ", _screenmsg ]; + }; + _screenmsg = format [ "%1%2", _screenmsg, format [ localize "STR_REARMING", _rearm_time - _rearm_ticker ] ]; + }; + + if ( _refueled ) then { + if ( _repaired || _rearmed ) then { + _screenmsg = format [ "%1 - ", _screenmsg ]; + }; + _screenmsg = format [ "%1%2", _screenmsg, format [ "%1 : %2%3", localize "STR_REFUELING", round ( (fuel _veh) * 100 ), "%" ] ]; + }; + + titleText [ _screenmsg, "PLAIN DOWN" ]; + + sleep 1; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/secondary_jip.sqf b/kp_liberation.brf_sumava/scripts/client/misc/secondary_jip.sqf new file mode 100644 index 0000000..1ef19ad --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/secondary_jip.sqf @@ -0,0 +1,10 @@ +waitUntil { + time > 20; +}; + +if ( isNil "GRLIB_secondary_in_progress" ) exitWith {}; +if ( GRLIB_secondary_in_progress < 0 ) exitWith {}; + +if ( GRLIB_secondary_in_progress == 0 ) then { + [ 2 ] call remote_call_intel; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/synchronise_eco.sqf b/kp_liberation.brf_sumava/scripts/client/misc/synchronise_eco.sqf new file mode 100644 index 0000000..0913917 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/synchronise_eco.sqf @@ -0,0 +1,14 @@ +one_eco_done = false; +waitUntil {!isNil "sync_eco"}; + +while {true} do { + waitUntil { + sleep 0.2; + count sync_eco > 0; + }; + KP_liberation_production = sync_eco select 0; + KP_liberation_logistics = sync_eco select 1; + KP_liberation_production_markers = sync_eco select 2; + sync_eco = []; + one_eco_done = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/synchronise_vars.sqf b/kp_liberation.brf_sumava/scripts/client/misc/synchronise_vars.sqf new file mode 100644 index 0000000..6f05a22 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/synchronise_vars.sqf @@ -0,0 +1,30 @@ +one_synchro_done = false; +synchro_done = false; + +waitUntil {!isNil "sync_vars"}; + +while {true} do { + waitUntil {sleep 0.2; (count sync_vars) > 0}; + + KP_liberation_fob_resources = sync_vars select 0; + KP_liberation_supplies_global = sync_vars select 1; + KP_liberation_ammo_global = sync_vars select 2; + KP_liberation_fuel_global = sync_vars select 3; + unitcap = sync_vars select 4; + KP_liberation_heli_count = sync_vars select 5; + KP_liberation_plane_count = sync_vars select 6; + KP_liberation_heli_slots = sync_vars select 7; + KP_liberation_plane_slots = sync_vars select 8; + combat_readiness = sync_vars select 9; + resources_intel = sync_vars select 10; + infantry_cap = sync_vars select 11; + KP_liberation_civ_rep = sync_vars select 12; + KP_liberation_guerilla_strength = sync_vars select 13; + infantry_weight = sync_vars select 14; + armor_weight = sync_vars select 15; + air_weight = sync_vars select 16; + + sync_vars = []; + one_synchro_done = true; + synchro_done = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/misc/vehicle_permissions.sqf b/kp_liberation.brf_sumava/scripts/client/misc/vehicle_permissions.sqf new file mode 100644 index 0000000..376a48f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/misc/vehicle_permissions.sqf @@ -0,0 +1,20 @@ +params ["_vehicle"]; +private _vehicleClass = toLower (typeOf _vehicle); + +// Cargo is always allowed +private _isCargo = (_vehicle getCargoIndex player) != -1; +if (_isCargo || _vehicle isKindOf "ParachuteBase") exitWith {}; + +private _permissibleVehicles = [ + [KPLIB_typeLightClasses, "STR_PERMISSION_NO_LIGHT"], + [KPLIB_typeHeavyClasses, "STR_PERMISSION_NO_ARMOR"], + [KPLIB_typeAirClasses, "STR_PERMISSION_NO_AIR"] +]; + +private _permissionIdx = _permissibleVehicles findIf {_vehicleClass in (_x select 0)}; +if (_permissionIdx isEqualTo -1) exitWith {}; + +if !([_permissionIdx] call KPLIB_fnc_hasPermission) exitWith { + moveOut player; + hint localize (_permissibleVehicles select _permissionIdx select 1); +}; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_battlegroup.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_battlegroup.sqf new file mode 100644 index 0000000..63816c2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_battlegroup.sqf @@ -0,0 +1,10 @@ +if ( isDedicated ) exitWith {}; + +params [ "_battlegroup_position" ]; + +"opfor_bg_marker" setMarkerPosLocal ( markerPos _battlegroup_position ); +[ "lib_battlegroup", [ markerText ( [ 10000, markerPos _battlegroup_position ] call KPLIB_fnc_getNearestSector ) ] ] call BIS_fnc_showNotification; + +sleep 600; + +"opfor_bg_marker" setMarkerPosLocal markers_reset; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_endgame.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_endgame.sqf new file mode 100644 index 0000000..04b855f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_endgame.sqf @@ -0,0 +1,6 @@ +player allowDamage false; +(vehicle player) allowDamage false; +GRLIB_endgame = 1; +sleep 20; + +_this call compileFinal preprocessFileLineNumbers "scripts\client\ui\end_screen.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_fob.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_fob.sqf new file mode 100644 index 0000000..9c0e202 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_fob.sqf @@ -0,0 +1,30 @@ +if ( isDedicated ) exitWith {}; + +if ( isNil "sector_timer" ) then { sector_timer = 0 }; + +params [ "_fob", "_status" ]; +private [ "_fobname" ]; + +_fobname = [_fob] call KPLIB_fnc_getFobName; + +if ( _status == 0 ) then { + [ "lib_fob_built", [ _fobname ] ] call BIS_fnc_showNotification; +}; + +if ( _status == 1 ) then { + [ "lib_fob_attacked", [ _fobname ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal _fob; + sector_timer = GRLIB_vulnerability_timer; +}; + +if ( _status == 2 ) then { + [ "lib_fob_lost", [ _fobname ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal markers_reset; + sector_timer = 0; +}; + +if ( _status == 3 ) then { + [ "lib_fob_safe", [ _fobname ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal markers_reset; + sector_timer = 0; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_incoming.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_incoming.sqf new file mode 100644 index 0000000..18e85da --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_incoming.sqf @@ -0,0 +1,23 @@ +if ( isDedicated ) exitWith {}; + +params [ "_attack_destination" ]; + +if ( isNil "GRLIB_last_incoming_notif_time" ) then { GRLIB_last_incoming_notif_time = -9999 }; + +if ( time > GRLIB_last_incoming_notif_time + 60 ) then { + + GRLIB_last_incoming_notif_time = time; + + private [ "_attack_location_name" ]; + _attack_location_name = [_attack_destination] call KPLIB_fnc_getLocationName; + + [ "lib_incoming", [ _attack_location_name ] ] call BIS_fnc_showNotification; + + private [ "_mrk" ]; + _mrk = createMarkerLocal [ "opfor_incoming_marker", _attack_destination]; + "opfor_incoming_marker" setMarkerTypeLocal "selector_selectedMission"; + "opfor_incoming_marker" setMarkerColorLocal GRLIB_color_enemy_bright; + + sleep 250; + deleteMarkerLocal _mrk; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_intel.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_intel.sqf new file mode 100644 index 0000000..7411d69 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_intel.sqf @@ -0,0 +1,59 @@ +if (isDedicated) exitWith {}; + +params ["_notiftype", ["_obj_position", getpos player]]; + +switch (_notiftype) do { + case 0: {["lib_intel_prisoner"] call BIS_fnc_showNotification;}; + case 1: {["lib_intel_document"] call BIS_fnc_showNotification;}; + case 2: { + waitUntil {!isNil "secondary_objective_position_marker"}; + waitUntil {count secondary_objective_position_marker > 0}; + waitUntil {secondary_objective_position_marker distance zeropos > 1000}; + ["lib_intel_fob", [markertext ([10000, secondary_objective_position_marker] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; + _secondary_marker = createMarkerLocal ["secondarymarker", secondary_objective_position_marker]; + _secondary_marker setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker setMarkerTypeLocal "hd_unknown"; + + _secondary_marker_zone = createMarkerLocal ["secondarymarkerzone", secondary_objective_position_marker]; + _secondary_marker_zone setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker_zone setMarkerShapeLocal "ELLIPSE"; + _secondary_marker_zone setMarkerBrushLocal "FDiagonal"; + _secondary_marker_zone setMarkerSizeLocal [1500,1500]; + }; + case 3: { + ["lib_secondary_fob_destroyed"] call BIS_fnc_showNotification; + deleteMarkerLocal "secondarymarker"; + deleteMarkerLocal "secondarymarkerzone"; + secondary_objective_position_marker = []; + }; + case 4: {["lib_intel_convoy", [markertext ([10000, _obj_position] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification;}; + case 5: {["lib_secondary_convoy_destroyed"] call BIS_fnc_showNotification;}; + case 6: { + waitUntil {!isNil "secondary_objective_position_marker"}; + waitUntil {count secondary_objective_position_marker > 0}; + waitUntil {secondary_objective_position_marker distance zeropos > 1000}; + ["lib_intel_sar", [markertext ([10000, secondary_objective_position_marker] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; + _secondary_marker = createMarkerLocal ["secondarymarker", secondary_objective_position_marker]; + _secondary_marker setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker setMarkerTypeLocal "hd_unknown"; + + _secondary_marker_zone = createMarkerLocal ["secondarymarkerzone", secondary_objective_position_marker]; + _secondary_marker_zone setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker_zone setMarkerShapeLocal "ELLIPSE"; + _secondary_marker_zone setMarkerBrushLocal "FDiagonal"; + _secondary_marker_zone setMarkerSizeLocal [1500,1500]; + }; + case 7: { + ["lib_intel_sar_failed"] call BIS_fnc_showNotification; + deleteMarkerLocal "secondarymarker"; + deleteMarkerLocal "secondarymarkerzone"; + secondary_objective_position_marker = []; + }; + case 8: { + ["lib_intel_sar_succeeded"] call BIS_fnc_showNotification; + deleteMarkerLocal "secondarymarker"; + deleteMarkerLocal "secondarymarkerzone"; + secondary_objective_position_marker = []; + }; + default {[format ["remote_call_intel.sqf -> no valid value for _notiftype: %1", _notiftype], "ERROR"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_prisonner.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_prisonner.sqf new file mode 100644 index 0000000..4c597d4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_prisonner.sqf @@ -0,0 +1,86 @@ +params [ "_unit" ]; +private [ "_nearestfob", "_is_near_fob", "_is_near_blufor", "_grp", "_waypoint", "_nearblufor" ]; + +waitUntil { + sleep 0.5; + local _unit +}; + +_is_near_fob = false; +_is_near_blufor = true; + +sleep 1; +_unit playmove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon"; +sleep 2; +_unit enableAI "ANIM"; +_unit enableAI "MOVE"; +sleep 2; +[_unit, ""] remoteExecCall ["switchMove"]; + +if ( typeof _unit == pilot_classname ) exitWith {}; + +waitUntil { sleep 5; + + _nearestfob = [ getpos _unit ] call KPLIB_fnc_getNearestFob; + if ( count _nearestfob == 3) then { + if ( ( _unit distance _nearestfob ) < 30 ) then { + _is_near_fob = true; + }; + }; + + _is_near_blufor = false; + if ( !_is_near_blufor ) then { + { + if ((_x distance _unit) < 100) exitWith { _is_near_blufor = true }; + } forEach (allUnits select {!((toLower (typeof _x)) in KPLIB_o_inf_classes || (typeof _x) in militia_squad)}); + }; + + !alive _unit || !(_is_near_blufor) || (_is_near_fob && (vehicle _unit == _unit)) +}; + +if (alive _unit) then { + + if (_is_near_fob) then { + + sleep 5; + _grp = createGroup [GRLIB_side_civilian, true]; + [_unit] joinSilent _grp; + _unit playmove "AmovPercMstpSnonWnonDnon_AmovPsitMstpSnonWnonDnon_ground"; + _unit disableAI "ANIM"; + _unit disableAI "MOVE"; + sleep 5; + [_unit, "AidlPsitMstpSnonWnonDnon_ground00"] remoteExecCall ["switchMove"]; + [_unit] remoteExec ["prisonner_remote_call",2]; + sleep 600; + deleteVehicle _unit; + + } else { + + _grp = createGroup [GRLIB_side_enemy, true]; + [_unit] joinSilent _grp; + _unit setUnitPos "AUTO"; + _unit setCaptive false; + + if ((vehicle _unit != _unit) && !(_unit isEqualTo (driver vehicle _unit))) then { + unAssignVehicle _unit; + _unit action ["eject", vehicle _unit]; + _unit action ["getout", vehicle _unit]; + unAssignVehicle _unit; + }; + + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow leader _grp} foreach units _grp; + + _possible_sectors = (sectors_allSectors - blufor_sectors); + if ( count _possible_sectors > 0 ) then { + + _possible_sectors = [ _possible_sectors , [getpos _unit, 5000] , { (markerPos _x) distance _input0 } , 'ASCEND' ] call BIS_fnc_sortBy; + if ( count _possible_sectors > 0 ) then { + _target_sector = _possible_sectors select 0; + _waypoint = _grp addWaypoint [markerpos _target_sector, 300]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "FULL"; + }; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_sector.sqf b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_sector.sqf new file mode 100644 index 0000000..6368ceb --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/remotecall/remote_call_sector.sqf @@ -0,0 +1,30 @@ +if ( isDedicated ) exitWith {}; + +if ( isNil "sector_timer" ) then { sector_timer = 0 }; + +params [ "_sector", "_status" ]; + +if ( _status == 0 ) then { + [ "lib_sector_captured", [ markerText _sector ] ] call BIS_fnc_showNotification; +}; + +if ( _status == 1 ) then { + [ "lib_sector_attacked", [ markerText _sector ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal ( markerpos _sector ); + sector_timer = GRLIB_vulnerability_timer; +}; + +if ( _status == 2 ) then { + [ "lib_sector_lost", [ markerText _sector ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal markers_reset; + sector_timer = 0; +}; + +if ( _status == 3 ) then { + [ "lib_sector_safe", [ markerText _sector ] ] call BIS_fnc_showNotification; + "opfor_capture_marker" setMarkerPosLocal markers_reset; + sector_timer = 0; +}; + +{ _x setMarkerColorLocal GRLIB_color_enemy; } foreach (sectors_allSectors - blufor_sectors); +{ _x setMarkerColorLocal GRLIB_color_friendly; } foreach blufor_sectors; diff --git a/kp_liberation.brf_sumava/scripts/client/spawn/do_halo.sqf b/kp_liberation.brf_sumava/scripts/client/spawn/do_halo.sqf new file mode 100644 index 0000000..d475a78 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/spawn/do_halo.sqf @@ -0,0 +1,64 @@ +private [ "_dialog", "_backpack", "_backpackcontents" ]; + +if ( isNil "GRLIB_last_halo_jump" ) then { GRLIB_last_halo_jump = -6000; }; + +if ( GRLIB_halo_param > 1 && ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) >= time ) exitWith { + hint format [ localize "STR_HALO_DENIED_COOLDOWN", ceil ( ( ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) - time ) / 60 ) ]; +}; + +_dialog = createDialog "liberation_halo"; +dojump = 0; +halo_position = getpos player; + +_backpackcontents = []; + +[ "halo_map_event", "onMapSingleClick", { halo_position = _pos } ] call BIS_fnc_addStackedEventHandler; + +"spawn_marker" setMarkerTextLocal (localize "STR_HALO_PARAM"); + +waitUntil { dialog }; +while { dialog && alive player && dojump == 0 } do { + "spawn_marker" setMarkerPosLocal halo_position; + + sleep 0.1; +}; + +if ( dialog ) then { + closeDialog 0; + sleep 0.1; +}; + +"spawn_marker" setMarkerPosLocal markers_reset; +"spawn_marker" setMarkerTextLocal ""; + +[ "halo_map_event", "onMapSingleClick" ] call BIS_fnc_removeStackedEventHandler; + +if ( dojump > 0 ) then { + GRLIB_last_halo_jump = time; + halo_position = halo_position getPos [random 250, random 360]; + halo_position = [ halo_position select 0, halo_position select 1, GRLIB_halo_altitude + (random 200) ]; + halojumping = true; + sleep 0.1; + cutRsc ["fasttravel", "PLAIN", 1]; + playSound "parasound"; + sleep 2; + _backpack = backpack player; + if ( _backpack != "" && _backpack != "B_Parachute" ) then { + _backpackcontents = backpackItems player; + removeBackpack player; + sleep 0.1; + }; + player addBackpack "B_Parachute"; + + player setpos halo_position; + + sleep 4; + halojumping = false; + waitUntil { !alive player || isTouchingGround player }; + if ( _backpack != "" && _backpack != "B_Parachute" ) then { + sleep 2; + player addBackpack _backpack; + clearAllItemsFromBackpack player; + { player addItemToBackpack _x } foreach _backpackcontents; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/spawn/redeploy_manager.sqf b/kp_liberation.brf_sumava/scripts/client/spawn/redeploy_manager.sqf new file mode 100644 index 0000000..1a09817 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/spawn/redeploy_manager.sqf @@ -0,0 +1,229 @@ +#define DEPLOY_DISPLAY (findDisplay 5201) +#define DEPLOY_LIST_IDC 201 +#define DEPLOY_BUTTON_IDC 202 + +KPLIB_respawnPositionsList = []; +fullmap = 0; +private _old_fullmap = 0; +private _oldsel = -999; +private _standard_map_pos = []; +private _frame_pos = []; + +GRLIB_force_redeploy = false; + +waitUntil {!isNil "GRLIB_all_fobs"}; +waitUntil {!isNil "blufor_sectors"}; +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +private _spawn_str = ""; + +waitUntil {!isNil "introDone"}; +waitUntil {introDone}; +waitUntil {!isNil "cinematic_camera_stop"}; +waitUntil {cinematic_camera_stop}; + +private _basenamestr = "Operation Base"; + +KP_liberation_respawn_time = time; +KP_liberation_respawn_mobile_done = false; + +while {true} do { + waitUntil { + sleep 0.2; + (GRLIB_force_redeploy || (player distance (markerPos GRLIB_respawn_marker) < 50)) && vehicle player == player && alive player && !dialog && howtoplay == 0 + }; + + private _backpack = backpack player; + + fullmap = 0; + _old_fullmap = 0; + + GRLIB_force_redeploy = false; + + createDialog "liberation_deploy"; + deploy = 0; + _oldsel = -999; + + showCinemaBorder false; + camUseNVG false; + respawn_camera = "camera" camCreate (getposATL startbase); + respawn_object = "Sign_Arrow_Blue_F" createVehicleLocal (getposATL startbase); + respawn_object hideObject true; + respawn_camera camSetTarget respawn_object; + respawn_camera cameraEffect ["internal","back"]; + respawn_camera camcommit 0; + + waitUntil {dialog}; + + (DEPLOY_DISPLAY displayCtrl DEPLOY_LIST_IDC) ctrlAddEventHandler ["mouseButtonDblClick", { + if (ctrlEnabled (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC)) then { + deploy = 1; + }; + }]; + + _standard_map_pos = ctrlPosition (DEPLOY_DISPLAY displayCtrl 251); + _frame_pos = ctrlPosition (DEPLOY_DISPLAY displayCtrl 198); + + // Get loadouts either from ACE or BI arsenals + private ["_loadouts_data"]; + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + _loadouts_data = +(profileNamespace getVariable ["ace_arsenal_saved_loadouts", []]); + } else { + private _saved_loadouts = +(profileNamespace getVariable "bis_fnc_saveInventory_data"); + _loadouts_data = []; + private _counter = 0; + if (!isNil "_saved_loadouts") then { + { + if (_counter % 2 == 0) then { + _loadouts_data pushback _x; + }; + _counter = _counter + 1; + } forEach _saved_loadouts; + }; + }; + + lbAdd [203, "--"]; + {lbAdd [203, _x param [0]]} forEach _loadouts_data; + lbSetCurSel [203, 0]; + + while {dialog && alive player && deploy == 0} do { + // ARRAY - [[NAME, POSITION(, OBJECT)], ...] + KPLIB_respawnPositionsList = [[_basenamestr, getposATL startbase]]; + + { + KPLIB_respawnPositionsList pushBack [ + format ["FOB %1 - %2", (military_alphabet select _forEachIndex), mapGridPosition _x], + _x + ]; + } forEach GRLIB_all_fobs; + + if (KP_liberation_mobilerespawn) then { + if (KP_liberation_respawn_time <= time) then { + private _mobileRespawns = [] call KPLIB_fnc_getMobileRespawns; + + { + KPLIB_respawnPositionsList pushBack [ + format ["%1 - %2", localize "STR_RESPAWN_TRUCK", mapGridPosition getPosATL _x], + getPosATL _x, + _x + ]; + } forEach _mobileRespawns + }; + }; + + lbClear DEPLOY_LIST_IDC; + { + lbAdd [DEPLOY_LIST_IDC, (_x select 0)]; + } foreach KPLIB_respawnPositionsList; + + if (lbCurSel DEPLOY_LIST_IDC == -1) then { + lbSetCurSel [201, 0]; + }; + + if (lbCurSel DEPLOY_LIST_IDC != _oldsel) then { + _oldsel = lbCurSel DEPLOY_LIST_IDC; + private _objectpos = [0,0,0]; + if (dialog) then { + _objectpos = ((KPLIB_respawnPositionsList select _oldsel) select 1); + }; + respawn_object setPosATL ((KPLIB_respawnPositionsList select _oldsel) select 1); + private _startdist = 120; + private _enddist = 120; + private _alti = 35; + if (dialog) then { + if (((KPLIB_respawnPositionsList select (lbCurSel DEPLOY_LIST_IDC)) select 0) == _basenamestr) then { + _startdist = 200; + _enddist = 300; + _alti = 30; + }; + // Disable if sector is under attack + if (!KPLIB_respawnOnAttackedSectors && {_objectpos in KPLIB_sectorsUnderAttack}) then { + (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlSetText localize "STR_DEPLOY_UNDERATTACK"; + (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlEnable false; + } else { + (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlSetText localize "STR_DEPLOY_BUTTON"; + (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlEnable true; + }; + }; + + "spawn_marker" setMarkerPosLocal (getpos respawn_object); + ctrlMapAnimClear (DEPLOY_DISPLAY displayCtrl 251); + private _transition_map_pos = getpos respawn_object; + private _fullscreen_map_offset = 4000; + if(fullmap % 2 == 1) then { + _transition_map_pos = [(_transition_map_pos select 0) - _fullscreen_map_offset, (_transition_map_pos select 1) + (_fullscreen_map_offset * 0.75), 0]; + }; + (DEPLOY_DISPLAY displayCtrl 251) ctrlMapAnimAdd [0, 0.3,_transition_map_pos]; + ctrlMapAnimCommit (DEPLOY_DISPLAY displayCtrl 251); + + respawn_camera camSetPos [(getpos respawn_object select 0) - 70, (getpos respawn_object select 1) + _startdist, (getpos respawn_object select 2) + _alti]; + respawn_camera camcommit 0; + respawn_camera camSetPos [(getpos respawn_object select 0) - 70, (getpos respawn_object select 1) - _enddist, (getpos respawn_object select 2) + _alti]; + respawn_camera camcommit 90; + }; + + if (_old_fullmap != fullmap) then { + _old_fullmap = fullmap; + if (fullmap % 2 == 1) then { + (DEPLOY_DISPLAY displayCtrl 251) ctrlSetPosition [ (_frame_pos select 0) + (_frame_pos select 2), (_frame_pos select 1), (0.6 * safezoneW), (_frame_pos select 3)]; + } else { + (DEPLOY_DISPLAY displayCtrl 251) ctrlSetPosition _standard_map_pos; + }; + (DEPLOY_DISPLAY displayCtrl 251) ctrlCommit 0.2; + _oldsel = -1; + }; + uiSleep 0.1; + }; + + if (dialog && deploy == 1) then { + private _idxchoice = lbCurSel DEPLOY_LIST_IDC; + _spawn_str = (KPLIB_respawnPositionsList select _idxchoice) select 0; + + if (count (KPLIB_respawnPositionsList select _idxchoice) == 3) then { + private _truck = (KPLIB_respawnPositionsList select _idxchoice) select 2; + player setposATL (_truck getPos [5 + (random 3), random 360]); + KP_liberation_respawn_mobile_done = true; + } else { + private _destpos = ((KPLIB_respawnPositionsList select _idxchoice) select 1); + player setposATL [((_destpos select 0) + 5) - (random 10),((_destpos select 1) + 5) - (random 10),(_destpos select 2)]; + }; + + if ((lbCurSel 203) > 0) then { + private _selectedLoadout = _loadouts_data select ((lbCurSel 203) - 1); + if (KP_liberation_ace && KP_liberation_arsenal_type) then { + player setUnitLoadout (_selectedLoadout select 1); + } else { + [player, [profileNamespace, _selectedLoadout]] call BIS_fnc_loadInventory; + }; + }; + }; + + respawn_camera cameraEffect ["Terminate","back"]; + camDestroy respawn_camera; + deleteVehicle respawn_object; + camUseNVG false; + "spawn_marker" setMarkerPosLocal markers_reset; + + if (dialog) then { + closeDialog 0; + }; + + if (alive player && deploy == 1) then { + [_spawn_str] spawn spawn_camera; + if (KP_liberation_respawn_mobile_done) then { + KP_liberation_respawn_time = time + KP_liberation_respawn_cooldown; + KP_liberation_respawn_mobile_done = false; + }; + }; + + if (KP_liberation_arsenalUsePreset) then { + [_backpack] call KPLIB_fnc_checkGear; + }; + + if (KP_liberation_mobilerespawn && (KP_liberation_respawn_time > time)) then { + hint format [localize "STR_RESPAWN_COOLDOWN_HINT", ceil ((KP_liberation_respawn_time - time) / 60)]; + uiSleep 12; + hint ""; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/spawn/spawn_camera.sqf b/kp_liberation.brf_sumava/scripts/client/spawn/spawn_camera.sqf new file mode 100644 index 0000000..9e18e6f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/spawn/spawn_camera.sqf @@ -0,0 +1,77 @@ +private [ "_nearest_sector", "_leadingzero_hour", "_leadingzero_minute", "_startpos0", "_startpos1", "_endpos1", "_startpos2", "_endpos2", "_startpos3", "_endpos3", "_spawn_camera", "_datestring" ]; +params [ "_spawn_str" ]; + +_nearest_sector = [2000] call KPLIB_fnc_getNearestSector; +if ( _nearest_sector != "" ) then { _nearest_sector = format ["%1 %2",localize "STR_SPAWN_NEAR", markertext _nearest_sector]; }; +_leadingzero_hour = ""; +_leadingzero_minute = ""; +if ( (date select 3) < 10 ) then { _leadingzero_hour = "0" }; +if ( (date select 4) < 10 ) then { _leadingzero_minute = "0" }; +_datestring = format [ "%3/%2/%1 %4%5:%6%7", date select 0, date select 1, date select 2, _leadingzero_hour, date select 3, _leadingzero_minute, date select 4]; + +private [ "_spawn_camera", "_startpos0", "_startpos1", "_endpos1","_startpos2","_endpos2","_startpos3","_endpos3"]; + +if ( GRLIB_deployment_cinematic ) then { + + camUseNVG false; + showCinemaBorder false; + _startpos0 = [ 0, 500, 3000]; + _startpos1 = [ 0, 500, 250]; + _endpos1 = [ 0, 450, 225]; + _startpos2 = [ 0, 100, 40]; + _endpos2 = [ 0, 80, 30]; + _startpos3 = [ 0, 8, 2.8]; + _endpos3 = [ 0, 6, 2.25]; + + _spawn_camera = "camera" camCreate _startpos0; + _spawn_camera cameraEffect ["internal","front"]; + + _spawn_camera camSetTarget player; + _spawn_camera camSetRelPos _startpos0; + _spawn_camera camcommit 0; + + _spawn_camera camSetRelPos _startpos1; + _spawn_camera camcommit 0.5; + + waitUntil { camCommitted _spawn_camera }; + +}; + +[ format [ "%1
%2
%3
%4
", name player, _spawn_str, _datestring, _nearest_sector ],1,0.8,8,1 ] spawn BIS_fnc_dynamictext; + +if ( GRLIB_deployment_cinematic ) then { + + _spawn_camera camSetRelPos _endpos1; + _spawn_camera camcommit 1.75; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera camSetRelPos _startpos2; + _spawn_camera camcommit 0.25; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera camSetRelPos _endpos2; + _spawn_camera camcommit 1.75; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera camSetRelPos _startpos3; + _spawn_camera camcommit 0.25; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera camSetRelPos _endpos3; + _spawn_camera camcommit 1.75; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera camSetRelPos [0,0.4,1.75]; + _spawn_camera camcommit 1; + + waitUntil { camCommitted _spawn_camera }; + + _spawn_camera cameraEffect ["Terminate","back"]; + camDestroy _spawn_camera; + camUseNVG false; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/tutorial/CfgTaskDescriptions.hpp b/kp_liberation.brf_sumava/scripts/client/tutorial/CfgTaskDescriptions.hpp new file mode 100644 index 0000000..5f0fa2a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/tutorial/CfgTaskDescriptions.hpp @@ -0,0 +1,48 @@ +class KPLIB_Tasks_Tutorial_Main { + title = $STR_TUTORIAL_TASK_MAIN_TITLE; + description = $STR_TUTORIAL_TASK_MAIN_DESC; +}; +class KPLIB_Tasks_Tutorial_Fob { + title = $STR_TUTORIAL_TASK_FOB_TITLE; + description = $STR_TUTORIAL_TASK_FOB_DESC; +}; +class KPLIB_Tasks_Tutorial_Fob_01a { + title = $STR_TUTORIAL_TASK_FOB_01A_TITLE; + description = $STR_TUTORIAL_TASK_FOB_01A_DESC; +}; +class KPLIB_Tasks_Tutorial_Fob_01b { + title = $STR_TUTORIAL_TASK_FOB_01B_TITLE; + description = $STR_TUTORIAL_TASK_FOB_01B_DESC; +}; +class KPLIB_Tasks_Tutorial_Fob_02 { + title = $STR_TUTORIAL_TASK_FOB_02_TITLE; + description = $STR_TUTORIAL_TASK_FOB_02_DESC; +}; +class KPLIB_Tasks_Tutorial_Fob_03 { + title = $STR_TUTORIAL_TASK_FOB_03_TITLE; + description = $STR_TUTORIAL_TASK_FOB_03_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector { + title = $STR_TUTORIAL_TASK_SECTOR_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector_01 { + title = $STR_TUTORIAL_TASK_SECTOR_01_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_01_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector_02 { + title = $STR_TUTORIAL_TASK_SECTOR_02_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_02_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector_03 { + title = $STR_TUTORIAL_TASK_SECTOR_03_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_03_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector_04 { + title = $STR_TUTORIAL_TASK_SECTOR_04_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_04_DESC; +}; +class KPLIB_Tasks_Tutorial_Sector_05 { + title = $STR_TUTORIAL_TASK_SECTOR_05_TITLE; + description = $STR_TUTORIAL_TASK_SECTOR_05_DESC; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleCrateStorageTask.sqf b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleCrateStorageTask.sqf new file mode 100644 index 0000000..b1d55d8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleCrateStorageTask.sqf @@ -0,0 +1,43 @@ +/* + File: fn_handleCrateStorageTask.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-09 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Handles the monitoring for the store crate tutorial task. + + Parameter(s): + _taskId - Task ID of the task to handle [STRING, defaults to ""] + _obj - Object connected to the task [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_taskId", "", [""]], + ["_obj", objNull, [objNull]] +]; + +if (_taskId isEqualTo "" || isNull _obj) exitWith {["Invalid parameters given"] call BIS_fnc_error; false}; +if (!canSuspend) exitWith {_this spawn KPLIB_fnc_handleCrateStorageTask}; + +[ + allPlayers, + [_taskId, "KPLIB_Tasks_Tutorial_Fob_03"], + ["", localize "STR_TUTORIAL_CRATE"], + [_obj, true], + "CREATED", + -1, + false, + "default", + true +] call BIS_fnc_taskCreate; + +waitUntil {sleep 0.1; (toLower (typeOf (attachedTo _obj))) in KPLIB_storageBuildings}; + +[_taskId, "SUCCEEDED", false] call BIS_fnc_taskSetState; + +true diff --git a/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleHealCivTask.sqf b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleHealCivTask.sqf new file mode 100644 index 0000000..3af25e5 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleHealCivTask.sqf @@ -0,0 +1,43 @@ +/* + File: fn_handleHealCivTask.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-09 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Handles the monitoring for the heal civilian tutorial task. + + Parameter(s): + _taskId - Task ID of the task to handle [STRING, defaults to ""] + _obj - Object connected to the task [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_taskId", "", [""]], + ["_obj", objNull, [objNull]] +]; + +if (_taskId isEqualTo "" || isNull _obj) exitWith {["Invalid parameters given"] call BIS_fnc_error; false}; +if (!canSuspend) exitWith {_this spawn KPLIB_fnc_handleHealCivTask}; + +[ + allPlayers, + [_taskId, "KPLIB_Tasks_Tutorial_Sector_03"], + ["", localize "STR_TUTORIAL_CIVILIAN"], + [_obj, true], + "CREATED", + -1, + false, + "heal", + true +] call BIS_fnc_taskCreate; + +waitUntil {sleep 0.1; !(alive _obj && (damage _obj) > 0.4)}; + +[_taskId, "SUCCEEDED"] call BIS_fnc_taskSetState; + +true diff --git a/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleTakePowTask.sqf b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleTakePowTask.sqf new file mode 100644 index 0000000..c565a0c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_handleTakePowTask.sqf @@ -0,0 +1,43 @@ +/* + File: fn_handleTakePowTask.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-09 + Last Update: 2020-05-09 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Handles the monitoring for the capture POW tutorial task. + + Parameter(s): + _taskId - Task ID of the task to handle [STRING, defaults to ""] + _obj - Object connected to the task [OBJECT, defaults to objNull] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_taskId", "", [""]], + ["_obj", objNull, [objNull]] +]; + +if (_taskId isEqualTo "" || isNull _obj) exitWith {["Invalid parameters given"] call BIS_fnc_error; false}; +if (!canSuspend) exitWith {_this spawn KPLIB_fnc_handleTakePowTask}; + +[ + allPlayers, + [_taskId, "KPLIB_Tasks_Tutorial_Sector_03"], + ["", localize "STR_TUTORIAL_SOLDIER"], + [_obj, true], + "CREATED", + -1, + false, + "danger", + true +] call BIS_fnc_taskCreate; + +waitUntil {sleep 0.1; !(alive _obj && captive _obj)}; + +[_taskId, "SUCCEEDED"] call BIS_fnc_taskSetState; + +true diff --git a/kp_liberation.brf_sumava/scripts/client/tutorial/fn_tutorial.fsm b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_tutorial.fsm new file mode 100644 index 0000000..ce7a83e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/tutorial/fn_tutorial.fsm @@ -0,0 +1,1023 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"_",8,218,-375.000000,900.000000,-275.000000,950.000000,0.000000,""}; +item1[] = {"Attack_one_of_the",2,250,-375.000000,975.000000,-275.000000,1025.000000,0.000000,"Attack one" \n "of the near" \n "factories"}; +item2[] = {"Author__KPLIB_Dev",0,250,0.000000,0.000000,100.000000,50.000000,0.000000,"Author:" \n "KPLIB Dev Team"}; +item3[] = {"save_loaded_",4,218,0.000000,75.000000,100.000000,125.000000,0.000000,"save loaded?"}; +item4[] = {"Show_dialog_to_start",2,250,0.000000,300.000000,100.000000,350.000000,0.000000,"Show dialog" \n "to start" \n "Tutorial"}; +item5[] = {"not_commander_",4,218,125.000000,0.000000,225.000000,50.000000,1.000000,"not" \n "commander?"}; +item6[] = {"Exit",1,250,250.000000,0.000000,350.000000,50.000000,0.000000,"Exit"}; +item7[] = {"Set_all_completion",2,250,0.000000,150.000000,100.000000,200.000000,0.000000,"Set all" \n "completion" \n "conditions"}; +item8[] = {"delay_passed_",4,218,0.000000,225.000000,100.000000,275.000000,0.000000,"delay passed?"}; +item9[] = {"accepted_",4,218,0.000000,375.000000,100.000000,425.000000,0.000000,"accepted?"}; +item10[] = {"declined_",4,218,125.000000,300.000000,225.000000,350.000000,1.000000,"declined?"}; +item11[] = {"Exit_1",1,250,250.000000,300.000000,350.000000,350.000000,0.000000,"Exit"}; +item12[] = {"Init",2,250,0.000000,450.000000,100.000000,500.000000,0.000000,"Init"}; +item13[] = {"_",8,218,0.000000,525.000000,100.000000,575.000000,0.000000,""}; +item14[] = {"Check_for_next_s",2,250,0.000000,600.000000,100.000000,650.000000,0.000000,"Check for" \n "next step"}; +item15[] = {"",7,210,46.000000,696.000000,54.000000,704.000000,0.000000,""}; +item16[] = {"Deploy_first_FOB",4,218,0.000000,750.000000,100.000000,800.000000,1.000000,"Deploy" \n "first" \n "FOB"}; +item17[] = {"Init_path",2,250,0.000000,825.000000,100.000000,875.000000,0.000000,"Init" \n "path"}; +item18[] = {"FOB_crate_",4,218,-125.000000,975.000000,-25.000000,1025.000000,1.000000,"FOB crate?"}; +item19[] = {"Slingload_crate",2,250,-125.000000,1050.000000,-25.000000,1100.000000,0.000000,"Slingload" \n "crate to a" \n "suitable position"}; +item20[] = {"",7,210,46.000000,921.000000,54.000000,929.000000,0.000000,""}; +item21[] = {"",7,210,-79.000000,920.999939,-71.000000,929.000061,0.000000,""}; +item22[] = {"FOB_truck_",4,218,125.000000,975.000000,225.000000,1025.000000,0.000000,"FOB truck?"}; +item23[] = {"Drive_the_truck",2,250,125.000000,1050.000000,225.000000,1100.000000,0.000000,"Drive the truck" \n "to a suitable" \n "position"}; +item24[] = {"",7,210,171.000000,921.000000,179.000000,929.000061,0.000000,""}; +item25[] = {"tutorial_already",4,218,-125.000000,150.000000,-25.000000,200.000000,2.000000,"tutorial" \n "already done?"}; +item26[] = {"Exit_2",1,250,-250.000000,150.000000,-150.000000,200.000000,0.000000,"Exit"}; +item27[] = {"FOB_deployed_",4,218,0.000000,1200.000000,100.000000,1250.000000,0.000000,"FOB" \n "deployed?"}; +item28[] = {"",7,210,46.000000,1146.000000,54.000000,1154.000000,0.000000,""}; +item29[] = {"",7,210,-79.000008,1146.000000,-70.999992,1154.000000,0.000000,""}; +item30[] = {"",7,210,171.000000,1145.999878,179.000000,1154.000122,0.000000,""}; +item31[] = {"Build_storage_ar",2,250,0.000000,1275.000000,100.000000,1325.000000,0.000000,"Build" \n "storage area"}; +item32[] = {"start_crates_spawned",4,218,0.000000,1500.000000,100.000000,1550.000000,0.000000,"start crates" \n "spawned?"}; +item33[] = {"Create_tasks_for",2,250,0.000000,1575.000000,100.000000,1625.000000,0.000000,"Create tasks" \n "for start resources"}; +item34[] = {"Crates_stored_",4,218,0.000000,1650.000000,100.000000,1700.000000,0.000000,"Crates stored?"}; +item35[] = {"Complete_tasks",2,250,0.000000,1725.000000,100.000000,1775.000000,0.000000,"Complete tasks"}; +item36[] = {"",7,210,-79.000008,621.000000,-70.999992,629.000000,0.000000,""}; +item37[] = {"_",8,218,125.000000,600.000000,225.000000,650.000000,0.000000,""}; +item38[] = {"",7,210,296.000000,621.000000,304.000000,629.000000,0.000000,""}; +item39[] = {"",7,210,296.000000,1971.000000,304.000000,1979.000000,0.000000,""}; +item40[] = {"built_",4,218,0.000000,1350.000000,100.000000,1400.000000,0.000000,"built?"}; +item41[] = {"Complete_task",2,250,0.000000,1425.000000,100.000000,1475.000000,0.000000,"Complete task"}; +item42[] = {"",7,210,46.000000,1971.000000,54.000000,1979.000000,0.000000,""}; +item43[] = {"Capture_first_fa",4,218,-375.000000,750.000000,-275.000000,800.000000,0.000000,"Capture" \n "first" \n "factory"}; +item44[] = {"",7,210,-329.000000,696.000000,-321.000000,704.000000,0.000000,""}; +item45[] = {"Init_path_1",2,250,-375.000000,825.000000,-275.000000,875.000000,0.000000,"Init" \n "path"}; +item46[] = {"Sector_activated",4,218,-375.000000,1050.000000,-275.000000,1100.000000,0.000000,"Sector activated?"}; +item47[] = {"Capture_the_sect",2,250,-375.000000,1125.000000,-275.000000,1175.000000,0.000000,"Capture the" \n "sector"}; +item48[] = {"Sector_captured",4,218,-375.000000,1200.000000,-275.000000,1250.000000,0.000000,"Sector captured?"}; +item49[] = {"POWs_and_wounded",2,250,-375.000000,1425.000000,-275.000000,1475.000000,0.000000,"POWs and" \n "wounded civs"}; +item50[] = {"taken_care_of_",4,218,-375.000000,1500.000000,-275.000000,1550.000000,0.000000,"taken care" \n "of?"}; +item51[] = {"Build_storage",2,250,-375.000000,1575.000000,-275.000000,1625.000000,0.000000,"Build storage"}; +item52[] = {"built_",4,218,-375.000000,1650.000000,-275.000000,1700.000000,0.000000,"built?"}; +item53[] = {"Start_production",2,250,-375.000000,1725.000000,-275.000000,1775.000000,0.000000,"Start production"}; +item54[] = {"started_",4,218,-375.000000,1800.000000,-275.000000,1850.000000,0.000000,"started?"}; +item55[] = {"Complete_tasks_1",2,250,-375.000000,1875.000000,-275.000000,1925.000000,0.000000,"Complete tasks"}; +item56[] = {"",7,210,-329.000000,1971.000000,-321.000000,1979.000000,0.000000,""}; +item57[] = {"Complete_task_and",3,250,-375.000000,1275.000000,-275.000000,1325.000000,0.000000,"Complete task" \n "and wait for" \n "processing"}; +item58[] = {"delay_passed_",4,218,-375.000000,1350.000000,-275.000000,1400.000000,0.000000,"delay passed?"}; +link0[] = {0,1}; +link1[] = {1,46}; +link2[] = {2,3}; +link3[] = {2,5}; +link4[] = {3,7}; +link5[] = {4,9}; +link6[] = {4,10}; +link7[] = {5,6}; +link8[] = {7,8}; +link9[] = {7,25}; +link10[] = {8,4}; +link11[] = {9,12}; +link12[] = {10,11}; +link13[] = {12,13}; +link14[] = {13,14}; +link15[] = {14,15}; +link16[] = {14,36}; +link17[] = {15,16}; +link18[] = {15,44}; +link19[] = {16,17}; +link20[] = {17,20}; +link21[] = {18,19}; +link22[] = {19,29}; +link23[] = {20,21}; +link24[] = {20,24}; +link25[] = {21,18}; +link26[] = {22,23}; +link27[] = {23,30}; +link28[] = {24,22}; +link29[] = {25,26}; +link30[] = {27,31}; +link31[] = {28,27}; +link32[] = {29,28}; +link33[] = {30,28}; +link34[] = {31,40}; +link35[] = {32,33}; +link36[] = {33,34}; +link37[] = {34,35}; +link38[] = {35,42}; +link39[] = {36,25}; +link40[] = {37,14}; +link41[] = {38,37}; +link42[] = {39,38}; +link43[] = {40,41}; +link44[] = {41,32}; +link45[] = {42,39}; +link46[] = {43,45}; +link47[] = {44,43}; +link48[] = {45,0}; +link49[] = {46,47}; +link50[] = {47,48}; +link51[] = {48,57}; +link52[] = {49,50}; +link53[] = {50,51}; +link54[] = {51,52}; +link55[] = {52,53}; +link56[] = {53,54}; +link57[] = {54,55}; +link58[] = {55,56}; +link59[] = {56,42}; +link60[] = {57,58}; +link61[] = {58,49}; +globals[] = {0.000000,0,0,0,0,640,480,1,87,6316128,1,-872.324036,426.382813,2058.735596,1126.872803,1232,884,1}; +window[] = {2,-1,-1,-1,-1,941,182,1622,182,3,1250}; +*//*%FSM*/ +class FSM +{ + fsmName = "KPLIB Tutorial"; + class States + { + /*%FSM*/ + class Attack_one_of_the + { + name = "Attack_one_of_the"; + itemno = 1; + init = /*%FSM*/"// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector_01"", ""KPLIB_Tasks_Tutorial_Sector""]," \n + " """"," \n + " objNull," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""map""," \n + " true" \n + "] call BIS_fnc_taskCreate;" \n + "" \n + "// Get up to 3 nearest factory sectors" \n + "private _sectors = (" \n + " sectors_factory select {((markerPos _x) distance2d player) < 10000}" \n + ") apply {" \n + " [(markerPos _x) distance2d player, _x]" \n + "};" \n + "_sectors sort true;" \n + "_sectors resize 3;" \n + "_sectors = _sectors select {!isNil ""_x""};" \n + "_sectors = _sectors apply {_x select 1};" \n + "" \n + "// Create task markers for near factories" \n + "{" \n + " [" \n + " allPlayers," \n + " [" \n + " [""KPLIB_Tasks_Tutorial_Sector_01_"", _forEachIndex] joinString """"," \n + " ""KPLIB_Tasks_Tutorial_Sector_01""" \n + " ]," \n + " ["""", localize ""STR_PRODUCTION_FACTORY""]," \n + " markerPos _x," \n + " ""CREATED""," \n + " -1," \n + " false," \n + " ""default""," \n + " true" \n + " ] call BIS_fnc_taskCreate;" \n + "} forEach _sectors;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Sector_activated + { + itemno = 46; + priority = 0.000000; + to="Capture_the_sect"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(" \n + " (_sectors select {_x in active_sectors}) isEqualTo []" \n + ")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Author__KPLIB_Dev + { + name = "Author__KPLIB_Dev"; + itemno = 2; + init = /*%FSM*/"// This FSM is part of KP Liberation" \n + "// https://github.com/KillahPotatoes/KP-Liberation" \n + "// MIT License - http://www.opensource.org/licenses/MIT"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class not_commander_ + { + itemno = 5; + priority = 1.000000; + to="Exit"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"isDedicated" \n + "||" \n + "{!(player isEqualTo ([] call KPLIB_fnc_getCommander))}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class save_loaded_ + { + itemno = 3; + priority = 0.000000; + to="Set_all_completion"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""save_is_loaded""" \n + "&& {save_is_loaded}" \n + "&& {alive player}" \n + "&& {" \n + " private _locations = [startbase];" \n + " _locations append GRLIB_all_fobs;" \n + " !((_locations select {(_x distance2d player) < GRLIB_fob_range}) isEqualTo [])" \n + "}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Show_dialog_to_start + { + name = "Show_dialog_to_start"; + itemno = 4; + init = /*%FSM*/"[" \n + " format [""FSM started on: %1"", debug_source]," \n + " ""TUTORIAL""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];" \n + "" \n + "// Show dialog to offer the tutorial" \n + "[] spawn {" \n + " KPLIB_playTutorial = [" \n + " localize ""STR_TUTORIAL_DIALOG_TEXT_START""," \n + " localize ""STR_TUTORIAL_DIALOG_TITLE""," \n + " true," \n + " true," \n + " nil," \n + " false," \n + " false" \n + " ] call BIS_fnc_guiMessage;" \n + "};" \n + "" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class declined_ + { + itemno = 10; + priority = 1.000000; + to="Exit_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""KPLIB_playTutorial""" \n + "&&" \n + "{!KPLIB_playTutorial}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class accepted_ + { + itemno = 9; + priority = 0.000000; + to="Init"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""KPLIB_playTutorial""" \n + "&&" \n + "{KPLIB_playTutorial}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit + { + name = "Exit"; + itemno = 6; + init = /*%FSM*/"[" \n + " format [""FSM started by non-commander: %1"", debug_source]," \n + " ""TUTORIAL""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Set_all_completion + { + name = "Set_all_completion"; + itemno = 7; + init = /*%FSM*/"private _fobComplete = {" \n + " !(GRLIB_all_fobs isEqualTo [])" \n + " ||" \n + " {!(blufor_sectors isEqualTo [])}" \n + "};" \n + "private _sectorComplete = {" \n + " !((blufor_sectors arrayIntersect sectors_factory) isEqualTo [])" \n + "};" \n + "" \n + "private _allConditions = [" \n + " _fobComplete," \n + " _sectorComplete" \n + "];" \n + "" \n + "private _nextState = diag_tickTime + ([4, 10] select GRLIB_deployment_cinematic);"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class tutorial_already + { + itemno = 25; + priority = 2.000000; + to="Exit_2"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((_allConditions apply {[] call _x}) arrayIntersect [false]) isEqualTo []"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class delay_passed_ + { + itemno = 8; + priority = 0.000000; + to="Show_dialog_to_start"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"diag_tickTime >= _nextState"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit_1 + { + name = "Exit_1"; + itemno = 11; + init = /*%FSM*/"[" \n + " format [""FSM on %1 aborted due to declining the tutorial"", debug_source]," \n + " ""TUTORIAL""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init + { + name = "Init"; + itemno = 12; + init = /*%FSM*/"// Create tutorial parent task" \n + "[" \n + " allPlayers," \n + " ""KPLIB_Tasks_Tutorial_Main""," \n + " """"," \n + " objNull," \n + " ""CREATED""," \n + " -1," \n + " false," \n + " ""whiteboard""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 13; + priority = 0.000000; + to="Check_for_next_s"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Check_for_next_s + { + name = "Check_for_next_s"; + itemno = 14; + init = /*%FSM*/"[" \n + " format [""%1 at hub"", debug_source]," \n + " ""TUTORIAL""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class tutorial_already + { + itemno = 25; + priority = 2.000000; + to="Exit_2"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((_allConditions apply {[] call _x}) arrayIntersect [false]) isEqualTo []"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Deploy_first_FOB + { + itemno = 16; + priority = 1.000000; + to="Init_path"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(" \n + " [""KPLIB_tutorialTask_Fob""] call BIS_fnc_taskCompleted" \n + " ||" \n + " {[] call _fobComplete}" \n + ")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Capture_first_fa + { + itemno = 43; + priority = 0.000000; + to="Init_path_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(" \n + " [""KPLIB_tutorialTask_Sector""] call BIS_fnc_taskCompleted" \n + " ||" \n + " {[] call _sectorComplete}" \n + ")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init_path + { + name = "Init_path"; + itemno = 17; + init = /*%FSM*/"// Create tutorial path parent task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Fob"", ""KPLIB_Tasks_Tutorial_Main""]," \n + " """"," \n + " objNull," \n + " ""CREATED""," \n + " -1," \n + " false," \n + " ""whiteboard""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class FOB_crate_ + { + itemno = 18; + priority = 1.000000; + to="Slingload_crate"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!KP_liberation_fob_vehicle"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class FOB_truck_ + { + itemno = 22; + priority = 0.000000; + to="Drive_the_truck"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"KP_liberation_fob_vehicle"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Slingload_crate + { + name = "Slingload_crate"; + itemno = 19; + init = /*%FSM*/"// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Fob_01a"", ""KPLIB_Tasks_Tutorial_Fob""]," \n + " """"," \n + " [(base_boxspawn nearObjects [FOB_box_typename, 10]) select 0, true]," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""container""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class FOB_deployed_ + { + itemno = 27; + priority = 0.000000; + to="Build_storage_ar"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(GRLIB_all_fobs isEqualTo [])"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Drive_the_truck + { + name = "Drive_the_truck"; + itemno = 23; + init = /*%FSM*/"// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Fob_01b"", ""KPLIB_Tasks_Tutorial_Fob""]," \n + " """"," \n + " [(base_boxspawn nearObjects [FOB_box_typename, 10]) select 0, true]," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""car""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class FOB_deployed_ + { + itemno = 27; + priority = 0.000000; + to="Build_storage_ar"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(GRLIB_all_fobs isEqualTo [])"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit_2 + { + name = "Exit_2"; + itemno = 26; + init = /*%FSM*/"[" \n + " format [""FSM on %1 aborted due to all tutorials completed"", debug_source]," \n + " ""TUTORIAL""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];" \n + "" \n + "if ([""KPLIB_Tasks_Tutorial_Main""] call BIS_fnc_taskExists) then {" \n + " [] spawn {" \n + " sleep 5;" \n + " [" \n + " localize ""STR_TUTORIAL_DIALOG_TEXT_END""," \n + " localize ""STR_TUTORIAL_DIALOG_TITLE""," \n + " true," \n + " false," \n + " nil," \n + " false," \n + " false" \n + " ] call BIS_fnc_guiMessage;" \n + " };" \n + "" \n + " [""KPLIB_Tasks_Tutorial_Main"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Build_storage_ar + { + name = "Build_storage_ar"; + itemno = 31; + init = /*%FSM*/"// Complete tasks" \n + "[""KPLIB_Tasks_Tutorial_Fob_01a"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "[""KPLIB_Tasks_Tutorial_Fob_01b"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "" \n + "// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Fob_02"", ""KPLIB_Tasks_Tutorial_Fob""]," \n + " """"," \n + " objNull," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""box""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class built_ + { + itemno = 40; + priority = 0.000000; + to="Complete_task"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(" \n + " (((GRLIB_all_fobs select 0) nearObjects GRLIB_fob_range) select {" \n + " (_x getVariable [""KP_liberation_storage_type"", -1]) == 0" \n + " }) isEqualTo []" \n + ")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Create_tasks_for + { + name = "Create_tasks_for"; + itemno = 33; + init = /*%FSM*/"// Create tasks" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Fob_03"", ""KPLIB_Tasks_Tutorial_Fob""]," \n + " """"," \n + " objNull," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""download""," \n + " true" \n + "] call BIS_fnc_taskCreate;" \n + "" \n + "private _crateTasks = [];" \n + "private _taskId = """";" \n + "{" \n + " _taskId = [""KPLIB_Tasks_Tutorial_Fob_03_"", _forEachIndex] joinString """";" \n + " _crateTasks pushBack _taskId;" \n + " [_taskId, _x] call KPLIB_fnc_handleCrateStorageTask;" \n + "} forEach KPLIB_startCrates;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Crates_stored_ + { + itemno = 34; + priority = 0.000000; + to="Complete_tasks"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(" \n + " (_crateTasks apply {[_x] call BIS_fnc_taskCompleted}) arrayIntersect [false]" \n + ") isEqualTo []"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Complete_tasks + { + name = "Complete_tasks"; + itemno = 35; + init = /*%FSM*/"[""KPLIB_Tasks_Tutorial_Fob_03"", ""SUCCEEDED"", false] call BIS_fnc_taskSetState;" \n + "[""KPLIB_Tasks_Tutorial_Fob"", ""SUCCEEDED""] call BIS_fnc_taskSetState;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 37; + priority = 0.000000; + to="Check_for_next_s"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Complete_task + { + name = "Complete_task"; + itemno = 41; + init = /*%FSM*/"// Complete tasks" \n + "[""KPLIB_Tasks_Tutorial_Fob_02"", ""SUCCEEDED""] call BIS_fnc_taskSetState;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class start_crates_spawned + { + itemno = 32; + priority = 0.000000; + to="Create_tasks_for"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""KPLIB_startCrates""" \n + "&& {(count KPLIB_startCrates) >= 6}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init_path_1 + { + name = "Init_path_1"; + itemno = 45; + init = /*%FSM*/"// Create tutorial path parent task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector"", ""KPLIB_Tasks_Tutorial_Main""]," \n + " """"," \n + " objNull," \n + " ""CREATED""," \n + " -1," \n + " false," \n + " ""whiteboard""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 0; + priority = 0.000000; + to="Attack_one_of_the"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Capture_the_sect + { + name = "Capture_the_sect"; + itemno = 47; + init = /*%FSM*/"{" \n + " [" \n + " [""KPLIB_Tasks_Tutorial_Sector_01_"", _forEachIndex] joinString """"," \n + " ""SUCCEEDED""," \n + " false" \n + " ] call BIS_fnc_taskSetState;" \n + "} forEach _sectors;" \n + "[""KPLIB_Tasks_Tutorial_Sector_01"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "" \n + "// Create task" \n + "private _factory = (_sectors select {_x in active_sectors}) select 0;" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector_02"", ""KPLIB_Tasks_Tutorial_Sector""]," \n + " """"," \n + " markerPos _factory," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""attack""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Sector_captured + { + itemno = 48; + priority = 0.000000; + to="Complete_task_and"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_factory in blufor_sectors"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class POWs_and_wounded + { + name = "POWs_and_wounded"; + itemno = 49; + init = /*%FSM*/"// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector_03"", ""KPLIB_Tasks_Tutorial_Sector""]," \n + " """"," \n + " objNull," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""search""," \n + " true" \n + "] call BIS_fnc_taskCreate;" \n + "" \n + "// Get all POWs and wounded civs" \n + "private _pows = allUnits select {" \n + " captive _x" \n + " && {((markerPos _factory) distance2d _x) < 250}" \n + "};" \n + "" \n + "private _civs = [];" \n + "private _wounded_markers = allMapMarkers select {_x find ""wounded_marker_"" == 0};" \n + "{" \n + " _civs append (" \n + " ((markerPos _x) nearEntities [""Man"", 25]) select {(damage _x) > 0.4}" \n + " );" \n + "} forEach _wounded_markers;" \n + "" \n + "// Create tasks for near POWs and wounded civs" \n + "private _careTasks = [];" \n + "private _taskId = """";" \n + "{" \n + " _taskId = [""KPLIB_Tasks_Tutorial_Sector_03_pow_"", _forEachIndex] joinString """";" \n + " _careTasks pushBack _taskId;" \n + " [_taskId, _x] call KPLIB_fnc_handleTakePowTask;" \n + "} forEach _pows;" \n + "" \n + "{" \n + " _taskId = [""KPLIB_Tasks_Tutorial_Sector_03_civ_"", _forEachIndex] joinString """";" \n + " _careTasks pushBack _taskId;" \n + " [_taskId, _x] call KPLIB_fnc_handleHealCivTask;" \n + "} forEach _civs;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class taken_care_of_ + { + itemno = 50; + priority = 0.000000; + to="Build_storage"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(" \n + " (_careTasks apply {[_x] call BIS_fnc_taskCompleted}) arrayIntersect [false]" \n + ") isEqualTo []"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Build_storage + { + name = "Build_storage"; + itemno = 51; + init = /*%FSM*/"[""KPLIB_Tasks_Tutorial_Sector_03"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "" \n + "// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector_04"", ""KPLIB_Tasks_Tutorial_Sector""]," \n + " """"," \n + " markerPos _factory," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""box""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class built_ + { + itemno = 52; + priority = 0.000000; + to="Start_production"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(" \n + " (((markerPos _factory) nearObjects GRLIB_fob_range) select {" \n + " (_x getVariable [""KP_liberation_storage_type"", -1]) == 1" \n + " }) isEqualTo []" \n + ")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Start_production + { + name = "Start_production"; + itemno = 53; + init = /*%FSM*/"[""KPLIB_Tasks_Tutorial_Sector_04"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "" \n + "// Create task" \n + "[" \n + " allPlayers," \n + " [""KPLIB_Tasks_Tutorial_Sector_05"", ""KPLIB_Tasks_Tutorial_Sector""]," \n + " """"," \n + " markerPos _factory," \n + " ""ASSIGNED""," \n + " 0," \n + " true," \n + " ""use""," \n + " true" \n + "] call BIS_fnc_taskCreate;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class started_ + { + itemno = 54; + priority = 0.000000; + to="Complete_tasks_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(((KP_liberation_production select {(_x select 1) isEqualTo _factory}) select 0) select 7) < 3"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Complete_tasks_1 + { + name = "Complete_tasks_1"; + itemno = 55; + init = /*%FSM*/"[""KPLIB_Tasks_Tutorial_Sector_05"", ""SUCCEEDED"", false] call BIS_fnc_taskSetState;" \n + "[""KPLIB_Tasks_Tutorial_Sector"", ""SUCCEEDED""] call BIS_fnc_taskSetState;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 37; + priority = 0.000000; + to="Check_for_next_s"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Complete_task_and + { + name = "Complete_task_and"; + itemno = 57; + init = /*%FSM*/"[""KPLIB_Tasks_Tutorial_Sector_02"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n + "_nextState = diag_tickTime + 15;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class delay_passed_ + { + itemno = 58; + priority = 0.000000; + to="POWs_and_wounded"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"diag_tickTime >= _nextState"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + }; + initState="Author__KPLIB_Dev"; + finalStates[] = + { + "Exit", + "Exit_1", + "Exit_2", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/client/ui/cinematic_camera.sqf b/kp_liberation.brf_sumava/scripts/client/ui/cinematic_camera.sqf new file mode 100644 index 0000000..354369f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/cinematic_camera.sqf @@ -0,0 +1,275 @@ +if ( isNil "active_sectors" ) then { active_sectors = [] }; +if ( isNil "GRLIB_all_fobs" ) then { GRLIB_all_fobs = [] }; + +cinematic_camera_started = true; +private _last_transition = -1; +private _last_position = [ -1, -1, -1 ]; + +showCinemaBorder true; +private _cinematic_camera = "camera" camCreate [0,0,0]; +private _cinematic_pointer = "Sign_Arrow_Blue_F" createVehicleLocal [0,0,0]; +_cinematic_pointer hideObject true; +_cinematic_camera camSetTarget _cinematic_pointer; +_cinematic_camera cameraEffect ["internal","back"]; +_cinematic_camera camcommit 0; +if ( isNil "first_camera_round" ) then { first_camera_round = true; }; + +while { cinematic_camera_started } do { + + waitUntil { !cinematic_camera_started || camCommitted _cinematic_camera }; + + if ( cinematic_camera_started ) then { + camUseNVG false; + + private _positions = [ getpos startbase ]; + if ( !first_camera_round ) then { + + if ( count GRLIB_all_fobs > 0 ) then { + for [ {_idx=0},{_idx < 2},{_idx=_idx+1} ] do { + _positions pushback (selectRandom GRLIB_all_fobs); + }; + }; + + if ( count active_sectors > 0 ) then { + for [ {_idx=0},{_idx < 5},{_idx=_idx+1} ] do { + _positions pushback (markerPos (selectRandom active_sectors)); + }; + } else { + for [ {_idx=0},{_idx < 5},{_idx=_idx+1} ] do { + _positions pushback (markerPos (selectRandom sectors_allSectors)); + }; + }; + + if ( GRLIB_endgame == 0 ) then { + _activeplayers = (allPlayers select {alive _x && (_x distance (markerPos GRLIB_respawn_marker)) > 100}); + if ( count _activeplayers > 0 ) then { + for [ {_idx=0},{_idx < 3},{_idx=_idx+1} ] do { + _positions pushback (getpos (selectRandom _activeplayers)); + }; + }; + }; + + }; + _position = selectRandom (_positions - [_last_position]); + _last_position = _position; + _cinematic_pointer setpos [ _position select 0, _position select 1, (_position select 2) + 7 ]; + private _nearentities = _position nearEntities [ "Man", 100 ]; + private _camtarget = _cinematic_pointer; + if ( first_camera_round ) then { + _camtarget = startbase; + } else { + if (count (_nearentities select {alive _x && isPlayer _x}) != 0) then { + _camtarget = selectRandom (_nearentities select {alive _x && isPlayer _x}); + } else { + if (count (_nearentities select { alive _x }) != 0) then { + _camtarget = selectRandom (_nearentities select {alive _x}); + }; + }; + }; + + _cinematic_camera camSetTarget _camtarget; + private _startpos = [ ((getpos _camtarget) select 0) - 60, ((getpos _camtarget) select 1) + 350, 5 ]; + private _endpos = [ ((getpos _camtarget) select 0) - 60, ((getpos _camtarget) select 1) - 230, 5 ]; + private _startfov = 0.5; + private _endfov = 0.5; + + if ( !first_camera_round ) then { + _startfov = 0.8; + _endfov = 0.8; + + _next_transition = selectRandom ([0, 1, 2, 3, 4, 5, 6, 7 ,8 ,9 ,10, 11 ,12 ,13 ,14, 15] - [_last_transition]); + _last_transition = _next_transition; + + switch ( _next_transition ) do { + case 0: { + _startpos = [ ((getpos _camtarget) select 0) - 30, ((getpos _camtarget) select 1) - 50, 15 ]; + _endpos = [ ((getpos _camtarget) select 0) - 30, ((getpos _camtarget) select 1) + 50, 15 ]; + _endfov = 0.8; + }; + + case 1: { + _startpos = [ ((getpos _camtarget) select 0) + 5, ((getpos _camtarget) select 1) - 100, 1 ]; + _endpos = [ ((getpos _camtarget) select 0) + 5, ((getpos _camtarget) select 1) + 100, 40 ]; + _endfov = 0.55; + }; + + case 2: { + _startpos = [ ((getpos _camtarget) select 0) + 50, ((getpos _camtarget) select 1) - 50, 100 ]; + _endpos = [ ((getpos _camtarget) select 0) + 50, ((getpos _camtarget) select 1) + 50, 100 ]; + _startfov = 0.5; + _endfov = 0.3; + }; + + case 3: { + _startpos = [ ((getpos _camtarget) select 0) + 50, ((getpos _camtarget) select 1) - 80, 2 ]; + _endpos = [ ((getpos _camtarget) select 0) + 50, ((getpos _camtarget) select 1) + 80, 20 ]; + }; + + case 4: { + _startpos = [ ((getpos _camtarget) select 0) - 400, ((getpos _camtarget) select 1) + 400, 50 ]; + _endpos = [ ((getpos _camtarget) select 0) + 400, ((getpos _camtarget) select 1) + 400, 50 ]; + _startfov = 0.25; + _endfov = 0.25; + }; + + case 5: { + _startpos = [ ((getpos _camtarget) select 0) + 300, ((getpos _camtarget) select 1) - 100, 15 ]; + _endpos = [ ((getpos _camtarget) select 0) -300, ((getpos _camtarget) select 1) - 120, 15 ]; + }; + + case 6: { + _startpos = [ ((getpos _camtarget) select 0) + 100, ((getpos _camtarget) select 1) - 100, 1 ]; + _endpos = [ ((getpos _camtarget) select 0) + 100, ((getpos _camtarget) select 1) - 100, 50 ]; + }; + + case 7: { + _startpos = [ ((getpos _camtarget) select 0) + 50, ((getpos _camtarget) select 1) - 50, 150 ]; + _endpos = [ ((getpos _camtarget) select 0) + 20, ((getpos _camtarget) select 1) - 20, 5 ]; + _startfov = 0.6; + _endfov = 0.9; + }; + + case 8: { + _startpos = [ ((getpos _camtarget) select 0) - 300, ((getpos _camtarget) select 1) - 80, 20 ]; + _endpos = [ ((getpos _camtarget) select 0) + 300, ((getpos _camtarget) select 1) + 120, 20 ]; + _startfov = 0.55; + _endfov = 0.55; + }; + + case 9: { + _startpos = [ ((getpos _camtarget) select 0) - 80, ((getpos _camtarget) select 1) - 300, 30 ]; + _endpos = [ ((getpos _camtarget) select 0) + 120, ((getpos _camtarget) select 1) + 300, 30 ]; + _startfov = 0.65; + _endfov = 0.65; + }; + + case 10: { + _startpos = [ ((getpos _camtarget) select 0) - 5, ((getpos _camtarget) select 1) + 30, 5 ]; + _endpos = [ ((getpos _camtarget) select 0) - 25, ((getpos _camtarget) select 1) -30, 150 ]; + }; + + case 11 : { + _cinematic_camera cameraEffect ["Terminate", "BACK"]; + camDestroy _cinematic_camera; + _cinematic_camera = "camera" camCreate [0,0,0]; + _cinematic_camera cameraEffect ["internal","back"]; + _cinematic_camera camcommit 0; + _startpos = [ ((getpos _camtarget) select 0) + 2, ((getpos _camtarget) select 1) -200, 25 ]; + _endpos = [ ((getpos _camtarget) select 0) + 2, ((getpos _camtarget) select 1) +200, 25 ]; + _cinematic_camera setDir 0; + [ _cinematic_camera, -30, 0 ] call BIS_fnc_setPitchBank; + }; + + case 12 : { + _cinematic_camera cameraEffect ["Terminate", "BACK"]; + camDestroy _cinematic_camera; + _cinematic_camera = "camera" camCreate [0,0,0]; + _cinematic_camera cameraEffect ["internal","back"]; + _cinematic_camera camcommit 0; + _startpos = [ ((getpos _camtarget) select 0) + 302 , ((getpos _camtarget) select 1) + 300, 50 ]; + _endpos = [ ((getpos _camtarget) select 0) - 198, ((getpos _camtarget) select 1) - 200, 50 ]; + _cinematic_camera setDir 225; + [ _cinematic_camera, -25, 0 ] call BIS_fnc_setPitchBank; + }; + + case 13 : { + _cinematic_camera cameraEffect ["Terminate", "BACK"]; + camDestroy _cinematic_camera; + _cinematic_camera = "camera" camCreate [0,0,0]; + _cinematic_camera cameraEffect ["internal","back"]; + _cinematic_camera camcommit 0; + _startpos = [ ((getpos _camtarget) select 0) - 80 , ((getpos _camtarget) select 1) + 150, 20 ]; + _endpos = [ ((getpos _camtarget) select 0) - 80, ((getpos _camtarget) select 1) - 150, 20 ]; + _cinematic_camera setDir 90; + [ _cinematic_camera, -15, 0 ] call BIS_fnc_setPitchBank; + }; + + case 14 : { + _cinematic_camera cameraEffect ["Terminate", "BACK"]; + camDestroy _cinematic_camera; + _cinematic_camera = "camera" camCreate [0,0,0]; + _cinematic_camera cameraEffect ["internal","back"]; + _cinematic_camera camcommit 0; + _startpos = [ ((getpos _camtarget) select 0) - 50 , ((getpos _camtarget) select 1) + 2, 30 ]; + _endpos = [ ((getpos _camtarget) select 0) + 150, ((getpos _camtarget) select 1) - 2, 30 ]; + _cinematic_camera setDir 270; + [ _cinematic_camera, -20, 0 ] call BIS_fnc_setPitchBank; + _startfov = 0.55; + _endfov = 0.55; + }; + + case 15 : { + _cinematic_camera cameraEffect ["Terminate", "BACK"]; + camDestroy _cinematic_camera; + _cinematic_camera = "camera" camCreate [0,0,0]; + _cinematic_camera cameraEffect ["internal","back"]; + _cinematic_camera camcommit 0; + _startpos = [ ((getpos _camtarget) select 0) - 150 , ((getpos _camtarget) select 1) + 5, 250 ]; + _endpos = [ ((getpos _camtarget) select 0) + 150, ((getpos _camtarget) select 1) + 5, 250 ]; + _cinematic_camera setDir 0; + [ _cinematic_camera, -88, 0 ] call BIS_fnc_setPitchBank; + _startfov = 0.3; + _endfov = 0.3; + }; + }; + }; + + + if ( surfaceIsWater _position ) then { + _startpos = [ _startpos select 0, _startpos select 1, (_startpos select 2) + 25 ]; + _endpos = [ _endpos select 0, _endpos select 1, (_endpos select 2) + 25 ]; + }; + + while { terrainIntersect [ _startpos, _endpos ] } do { + _startpos = [ _startpos select 0, _startpos select 1, (_startpos select 2) + 30 ]; + _endpos = [ _endpos select 0, _endpos select 1, (_endpos select 2) + 30 ]; + }; + + _cinematic_camera camSetPos _startpos; + _cinematic_camera camSetFov _startfov; + _cinematic_camera camCommit 0; + _cinematic_camera camSetPos _endpos; + _cinematic_camera camSetFov _endfov; + + if ( isNil "howtoplay" ) then { howtoplay = 0; }; + + if ( first_camera_round ) then { + _cinematic_camera camcommit 18; + } else { + if ( howtoplay == 0 ) then { + _cinematic_camera camcommit 10; + } else { + _cinematic_camera camcommit 20; + }; + }; + first_camera_round = false; + + if ( !isNil "showcaminfo" ) then { + if ( showcaminfo && howtoplay == 0 ) then { + private _unitname = ""; + if ( isPlayer _camtarget ) then { _unitname = name _camtarget }; + private _nearest_sector = ""; + if ( _position distance startbase < 300 ) then { + _nearest_sector = "BEGIN OF OPERATION"; + } else { + _nearest_sector = [300, _position ] call KPLIB_fnc_getNearestSector; + if ( _nearest_sector != "" ) then { + _nearest_sector = markertext _nearest_sector; + } else { + _nearfobs = GRLIB_all_fobs select {_x distance _position < 300}; + if ( count _nearfobs > 0 ) then { + _nearest_sector = format [ "FOB %1", military_alphabet select ( GRLIB_all_fobs find ( _nearfobs select 0 ) ) ]; + }; + }; + }; + + [ format [ "%1
%2
", _unitname, _nearest_sector ],1,0.8,6,1 ] spawn BIS_fnc_dynamictext; + }; + }; + }; +}; + +_cinematic_camera cameraEffect ["Terminate", "BACK"]; +camDestroy _cinematic_camera; +camUseNVG false; +cinematic_camera_stop = true; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/end_screen.sqf b/kp_liberation.brf_sumava/scripts/client/ui/end_screen.sqf new file mode 100644 index 0000000..dfcfd63 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/end_screen.sqf @@ -0,0 +1,154 @@ +params [ + "_stats_ammo_produced", + "_stats_ammo_spent", + "_stats_blufor_soldiers_killed", + "_stats_blufor_soldiers_recruited", + "_stats_blufor_teamkills", + "_stats_blufor_vehicles_built", + "_stats_blufor_vehicles_killed", + "_stats_civilian_buildings_destroyed", + "_stats_civilian_vehicles_killed", + "_stats_civilian_vehicles_killed_by_players", + "_stats_civilian_vehicles_seized", + "_stats_civilians_healed", + "_stats_civilians_killed", + "_stats_civilians_killed_by_players", + "_stats_fobs_built", + "_stats_fobs_lost", + "_stats_fuel_produced", + "_stats_fuel_spent", + "_stats_hostile_battlegroups", + "_stats_ieds_detonated", + "_stats_opfor_killed_by_players", + "_stats_opfor_soldiers_killed", + "_stats_opfor_vehicles_killed", + "_stats_opfor_vehicles_killed_by_players", + "_stats_player_deaths", + "_stats_playtime", + "_stats_prisoners_captured", + "_stats_readiness_earned", + "_stats_reinforcements_called", + "_stats_resistance_killed", + "_stats_resistance_teamkills", + "_stats_resistance_teamkills_by_players", + "_stats_secondary_objectives", + "_stats_sectors_liberated", + "_stats_sectors_lost", + "_stats_spartan_respawns", + "_stats_supplies_produced", + "_stats_supplies_spent", + "_stats_vehicles_recycled", + "_stats_rabbits_killed" +]; + +// Some preparations +if (isNil "cinematic_camera_started") then {cinematic_camera_started = false}; +private _line_delay = 0.75; +private _page_delay = 5; +private _addReportLine = { + params [ + "_control", + "_string", + ["_pageEnd", false, [false]] + ]; + + if (dialog) then { + [_control, _string] call write_credit_line; + sleep ([_line_delay, _page_delay] select _pageEnd); + }; +}; +private _cleanPage = { + if (dialog) then { + ctrlSetText [691, ""]; + ctrlSetText [692, ""]; + ctrlSetText [693, ""]; + ctrlSetText [694, ""]; + ctrlSetText [695, ""]; + ctrlSetText [696, ""]; + sleep 2; + }; +}; + +// Calculate the playtime +private _playtime_days = floor (_stats_playtime / 86400); +private _playtime_hours = floor ((_stats_playtime % 86400) / 3600); +private _playtime_minutes = floor ((_stats_playtime % 3600) / 60); +private _playtime_seconds = _stats_playtime % 60; + +[] spawn cinematic_camera; + +private _dialog = createDialog "liberation_endscreen"; +waitUntil {dialog}; +if (dialog) then {sleep 3}; + +// Playtime line +[690, format [localize "STR_STATS_PLAYTIME", _playtime_days, _playtime_hours, _playtime_minutes, _playtime_seconds]] call _addReportLine; +if (dialog) then {sleep 3}; + +// First page +[691, format [localize "STR_STATS_OPFOR_K_INF", _stats_opfor_soldiers_killed]] call _addReportLine; +[692, format [localize "STR_STATS_OPFOR_K_INF_PL", _stats_opfor_killed_by_players]] call _addReportLine; +[693, format [localize "STR_STATS_OPFOR_K_VEH", _stats_opfor_vehicles_killed]] call _addReportLine; +[694, format [localize "STR_STATS_OPFOR_K_VEH_PL", _stats_opfor_vehicles_killed_by_players], true] call _addReportLine; +[] call _cleanPage; + +// Second page +[691, format [localize "STR_STATS_BLUFOR_B_INF", _stats_blufor_soldiers_recruited]] call _addReportLine; +[692, format [localize "STR_STATS_BLUFOR_K_INF", _stats_blufor_soldiers_killed]] call _addReportLine; +[693, format [localize "STR_STATS_BLUFOR_B_VEH", _stats_blufor_vehicles_built]] call _addReportLine; +[694, format [localize "STR_STATS_BLUFOR_K_VEH", _stats_blufor_vehicles_killed]] call _addReportLine; +[695, format [localize "STR_STATS_BLUFOR_K_PL", _stats_player_deaths]] call _addReportLine; +[696, format [localize "STR_STATS_BLUFOR_TK", _stats_blufor_teamkills], true] call _addReportLine; +[] call _cleanPage; + +// Third page +[691, format [localize "STR_STATS_GUE_K_INF", _stats_resistance_killed]] call _addReportLine; +[692, format [localize "STR_STATS_GUE_TK_INF", _stats_resistance_teamkills]] call _addReportLine; +[693, format [localize "STR_STATS_GUE_TK_INF_PL", _stats_resistance_teamkills_by_players]] call _addReportLine; +[694, format [localize "STR_STATS_CIV_K_INF", _stats_civilians_killed]] call _addReportLine; +[695, format [localize "STR_STATS_CIV_K_INF_PL", _stats_civilians_killed_by_players]] call _addReportLine; +[696, format [localize "STR_STATS_CIV_B_INF", _stats_civilians_healed], true] call _addReportLine; +[] call _cleanPage; + +// Fourth page +[691, format [localize "STR_STATS_CIV_K_VEH", _stats_civilian_vehicles_killed]] call _addReportLine; +[692, format [localize "STR_STATS_CIV_K_VEH_PL", _stats_civilian_vehicles_killed_by_players]] call _addReportLine; +[693, format [localize "STR_STATS_CIV_S_VEH", _stats_civilian_vehicles_seized]] call _addReportLine; +[694, format [localize "STR_STATS_CIV_K_BUILDINGS", _stats_civilian_buildings_destroyed]] call _addReportLine; +[695, format [localize "STR_STATS_VEH_RECYCLED", _stats_vehicles_recycled], true] call _addReportLine; +[] call _cleanPage; + +// Fifth page +[691, format [localize "STR_STATS_PROD_AMMO", _stats_ammo_produced]] call _addReportLine; +[692, format [localize "STR_STATS_SPENT_AMMO", _stats_ammo_spent]] call _addReportLine; +[693, format [localize "STR_STATS_PROD_FUEL", _stats_fuel_produced]] call _addReportLine; +[694, format [localize "STR_STATS_SPENT_FUEL", _stats_fuel_spent]] call _addReportLine; +[695, format [localize "STR_STATS_PROD_SUPPLY", _stats_supplies_produced]] call _addReportLine; +[696, format [localize "STR_STATS_SPENT_SUPPLY", _stats_supplies_spent], true] call _addReportLine; +[] call _cleanPage; + +// Sixth page +[691, format [localize "STR_STATS_SECTORS_CAPTURED", _stats_sectors_liberated]] call _addReportLine; +[692, format [localize "STR_STATS_SECTORS_LOST", _stats_sectors_lost]] call _addReportLine; +[693, format [localize "STR_STATS_FOBS_BUILT", _stats_fobs_built]] call _addReportLine; +[694, format [localize "STR_STATS_FOBS_LOST", _stats_fobs_lost]] call _addReportLine; +[695, format [localize "STR_STATS_SIDEMISSIONS", _stats_secondary_objectives]] call _addReportLine; +[696, format [localize "STR_STATS_PRISONERS", _stats_prisoners_captured], true] call _addReportLine; +[] call _cleanPage; + +// Seventh page +[691, format [localize "STR_STATS_BATTLEGROUPS", _stats_hostile_battlegroups]] call _addReportLine; +[692, format [localize "STR_STATS_REINFORCEMENTS", _stats_reinforcements_called]] call _addReportLine; +[693, format [localize "STR_STATS_COMBATREADINESS", round _stats_readiness_earned]] call _addReportLine; +[694, format [localize "STR_STATS_IEDS", _stats_ieds_detonated]] call _addReportLine; +[695, format [localize "STR_STATS_POTATO", _stats_spartan_respawns]] call _addReportLine; +[696, format [localize "STR_STATS_RABBITS", _stats_rabbits_killed], true] call _addReportLine; +[] call _cleanPage; + +// Eighth page +[693, localize "STR_STATS_END1"] call _addReportLine; +[694, localize "STR_STATS_END2"] call _addReportLine; +[696, localize "STR_STATS_END3"] call _addReportLine; + +waitUntil {!dialog}; +cinematic_camera_started = false; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/intro.sqf b/kp_liberation.brf_sumava/scripts/client/ui/intro.sqf new file mode 100644 index 0000000..57d6c9a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/intro.sqf @@ -0,0 +1,28 @@ +if ( isNil "cinematic_camera_started" ) then { cinematic_camera_started = false }; +sleep 0.5; +waitUntil { time > 0 }; + +[] spawn cinematic_camera; + +if ( GRLIB_introduction ) then { + + sleep 1; + cutRsc ["intro1","PLAIN",1,true]; + sleep 5.5; + cutRsc ["intro2","PLAIN",1,true]; + sleep 10; + +}; + +showcaminfo = true; +dostartgame = 0; +howtoplay = 0; +private _dialog = createDialog "liberation_menu"; +waitUntil { dialog }; +waitUntil { dostartgame == 1 || howtoplay == 1 || !dialog }; + +closeDialog 0; +if ( howtoplay == 0 ) then { + cinematic_camera_started = false; +}; +introDone = true; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/secondary_ui.sqf b/kp_liberation.brf_sumava/scripts/client/ui/secondary_ui.sqf new file mode 100644 index 0000000..05a1bdb --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/secondary_ui.sqf @@ -0,0 +1,81 @@ +if ( isNil "GRLIB_secondary_starting" ) then { GRLIB_secondary_starting = false; }; +if ( isNil "GRLIB_secondary_in_progress" ) then { GRLIB_secondary_in_progress = -1; }; + +_dialog = createDialog "liberation_secondary"; +dostartsecondary = 0; + +waitUntil { dialog }; + +{ + lbAdd [ 101, localize _x ]; +} foreach [ + "STR_SECONDARY_MISSION0", + "STR_SECONDARY_MISSION1", + "STR_SECONDARY_MISSION2" +]; + +private [ "_oldchoice", "_images", "_briefings", "_missioncost" ]; + +_images = [ + "res\secondary\fob_hunting.jpg", + "res\secondary\convoy_hijack.jpg", + "res\secondary\sar.jpg" +]; + +_briefings = [ + "STR_SECONDARY_BRIEFING0", + "STR_SECONDARY_BRIEFING1", + "STR_SECONDARY_BRIEFING2" +]; + +_oldchoice = -1; +lbSetCurSel [ 101, 0 ]; + +while { dialog && alive player && dostartsecondary == 0 } do { + + if ( _oldchoice != lbCurSel 101 ) then { + _oldchoice = lbCurSel 101; + ctrlSetText [ 106, _images select _oldchoice ]; + ((findDisplay 6842) displayCtrl (102)) ctrlSetStructuredText parseText localize (_briefings select _oldchoice); + }; + + _missioncost = GRLIB_secondary_missions_costs select _oldchoice; + + if ( ( _missioncost <= resources_intel ) && ( !GRLIB_secondary_starting ) ) then { + ctrlEnable [ 103, true ]; + ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip ""; + } else { + ctrlEnable [ 103, false ]; + if ( _missioncost > resources_intel ) then { + ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip (localize "STR_SECONDARY_NOT_ENOUGH_INTEL"); + }; + if ( GRLIB_secondary_starting ) then { + ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip (localize "STR_SECONDARY_IN_PROGRESS"); + }; + }; + + if ( GRLIB_secondary_in_progress >= 0 ) then { + lbSetCurSel [ 101, GRLIB_secondary_in_progress ]; + ctrlEnable [ 101, false ]; + } else { + ctrlEnable [ 101, true ]; + }; + + ctrlSetText [ 107, format [ localize "STR_SECONDARY_INTEL", resources_intel ] ]; + sleep 0.1; +}; + +if ( dostartsecondary == 1 ) then { + private _index = lbCurSel 101; + if !(([2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint) isEqualTo "") then { + [_index] remoteExec ["start_secondary_remote_call", 2]; + } else { + hint "There is not enough enemy territory left for secondary missions."; + uiSleep 2; + hintSilent ""; + } +}; + +if ( dialog ) then { + closeDialog 0; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/squad_management.sqf b/kp_liberation.brf_sumava/scripts/client/ui/squad_management.sqf new file mode 100644 index 0000000..27205ad --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/squad_management.sqf @@ -0,0 +1,249 @@ +private [ "_dialog", "_membercount", "_memberselection", "_unitname", "_selectedmember", "_cfgVehicles", "_cfgWeapons", "_primary_mags", "_secondary_mags", "_vehstring", "_nearfob", "_fobdistance", "_nearsquad", "_tempgmp", "_destpos", "_destdir", "_resupplied","_firstloop", "_squad_camera", "_targetobject", "_isvehicle" ]; + +GRLIB_squadaction = -1; +GRLIB_squadconfirm = -1; +_membercount = -1; +_resupplied = false; +_memberselection = -1; +_selectedmember = objNull; +_dialog = createDialog "liberation_squad"; +_cfgVehicles = configFile >> "cfgVehicles"; +_cfgWeapons = configFile >> "cfgWeapons"; +_firstloop = true; +_isvehicle = false; + +waitUntil { dialog }; + + +_targetobject = "Sign_Sphere100cm_F" createVehicleLocal [ 0, 0, 0 ]; +hideObject _targetobject; + +_squad_camera = "camera" camCreate (getpos player); +_squad_camera cameraEffect ["internal","back", "rtt"]; +_squad_camera camSetTarget _targetobject; +_squad_camera camcommit 0; +"rtt" setPiPEffect [0]; + +while { dialog && alive player } do { + + if ( { alive _x } count (units group player) != _membercount ) then { + + _membercount = { alive _x } count (units group player); + + lbClear 101; + { + if ( alive _x ) then { + _unitname = format ["%1. ", [ _x ] call KPLIB_fnc_getUnitPositionId]; + if(isPlayer _x) then { + if ( count (squadParams _x ) != 0) then { + _unitname = "[" + ((squadParams _x select 0) select 0) + "] "; + }; + }; + _unitname = _unitname + ( name _x ); + lbAdd [ 101, _unitname ]; + }; + } foreach (units group player); + + if ( _firstloop ) then { + lbSetCurSel [ 101, 0 ]; + _firstloop = false; + }; + }; + + _selectedmember = objNull; + if ( lbCurSel 101 != -1 && (count (units group player ) > lbCurSel 101 ) ) then { + _selectedmember = (units group player) select (lbCurSel 101); + }; + + if ( !(isNull _selectedmember) ) then { + "spawn_marker" setMarkerPosLocal (getpos _selectedmember); + ctrlMapAnimClear ((findDisplay 5155) displayCtrl 100); + ((findDisplay 5155) displayCtrl 100) ctrlMapAnimAdd [0, 0.3, getpos _selectedmember]; + ctrlMapAnimCommit ((findDisplay 5155) displayCtrl 100); + }; + + if ( !(isNull _selectedmember) ) then { + if ( _memberselection != lbCurSel 101 || _resupplied || ( ( vehicle _selectedmember == _selectedmember && _isvehicle ) || ( vehicle _selectedmember != _selectedmember && !_isvehicle ) ) ) then { + _memberselection = lbCurSel 101; + _resupplied = false; + + if (vehicle _selectedmember == _selectedmember) then { + _targetobject attachTo [ _selectedmember, [0, 10, 0.05], "neck" ]; + _squad_camera attachTo [ _selectedmember, [0, 0.25, 0.05], "neck" ]; + _isvehicle = false; + } else { + _targetobject attachTo [ vehicle _selectedmember, [0, 20, 2]]; + _squad_camera attachTo [ vehicle _selectedmember, [0, 0, 2]]; + _isvehicle = true; + }; + _squad_camera camcommit 0; + + _unitname = format ["%1. ", [ _selectedmember ] call KPLIB_fnc_getUnitPositionId]; + if(isPlayer _selectedmember) then { + if ( count (squadParams _selectedmember ) != 0) then { + _unitname = "[" + ((squadParams _selectedmember select 0) select 0) + "] "; + }; + }; + _unitname = _unitname + ( name _selectedmember ); + ctrlSetText [ 201, _unitname]; + + ctrlSetText [ 202, getText (_cfgVehicles >> (typeof _selectedmember) >> "displayName") ]; + ctrlSetText [ 203, format ["%1 %2%3", localize 'STR_HEALTH', round (100 - ((damage _selectedmember) * 100)), '%' ] ]; + + ((findDisplay 5155) displayCtrl 203) ctrlSetTextColor [1,1,1,1]; + if ( damage _selectedmember > 0.4 ) then { ((findDisplay 5155) displayCtrl 203) ctrlSetTextColor [1,1,0,1]; }; + if ( damage _selectedmember > 0.6 ) then { ((findDisplay 5155) displayCtrl 203) ctrlSetTextColor [1,0.5,0,1]; }; + if ( damage _selectedmember > 0.8 ) then { ((findDisplay 5155) displayCtrl 203) ctrlSetTextColor [1,0,0,1]; }; + + ctrlSetText [ 204, format ["%1 %2m", localize 'STR_DISTANCE', round (player distance _selectedmember) ] ]; + + if ( primaryWeapon _selectedmember != "") then { + ctrlSetText [ 205, format ["%1: %2", localize 'STR_PRIMARY_WEAPON', getText (_cfgWeapons >> (primaryWeapon _selectedmember) >> "displayName") ] ]; + + _primary_mags = 0; + if ( count primaryWeaponMagazine _selectedmember > 0 ) then { + _primary_mags = 1; + { if ( ( _x select 0 ) == ( ( primaryWeaponMagazine _selectedmember ) select 0 ) ) then { _primary_mags = _primary_mags + 1; } } foreach (magazinesAmmo _selectedmember); + }; + + ctrlSetText [ 206, format ["%1: %2", localize 'STR_AMMO', _primary_mags ] ]; + } else { + ctrlSetText [ 205, format ["%1: %2", localize 'STR_PRIMARY_WEAPON', localize 'STR_NONE' ] ]; + ctrlSetText [ 206, format ["%1: %2", localize 'STR_AMMO', 0 ] ]; + }; + + if ( secondaryWeapon _selectedmember != "") then { + ctrlSetText [ 207, format ["%1: %2", localize 'STR_SECONDARY_WEAPON', getText (_cfgWeapons >> (secondaryWeapon _selectedmember) >> "displayName") ] ]; + + _secondary_mags = 0; + if ( count secondaryWeaponMagazine _selectedmember > 0 ) then { + _secondary_mags = 1; + { if ( ( _x select 0 ) == ( ( secondaryWeaponMagazine _selectedmember ) select 0 ) ) then { _secondary_mags = _secondary_mags + 1; } } foreach (magazinesAmmo _selectedmember); + }; + + ctrlSetText [ 208, format ["%1: %2", localize 'STR_AMMO', _secondary_mags ] ]; + } else { + ctrlSetText [ 207, format ["%1: %2", localize 'STR_SECONDARY_WEAPON', localize 'STR_NONE' ] ]; + ctrlSetText [ 208, format ["%1: %2", localize 'STR_AMMO', 0 ] ]; + }; + + if ( vehicle _selectedmember == _selectedmember ) then { + ctrlSetText [ 209, "" ]; + } else { + _vehstring = localize 'STR_PASSENGER'; + if (driver vehicle _selectedmember == _selectedmember ) then { _vehstring = localize 'STR_DRIVER'; }; + if (gunner vehicle _selectedmember == _selectedmember ) then { _vehstring = localize 'STR_GUNNER'; }; + if (commander vehicle _selectedmember == _selectedmember ) then { _vehstring = localize 'STR_COMMANDER'; }; + _vehstring = _vehstring + format [ " (%1)", getText (_cfgVehicles >> (typeof vehicle _selectedmember) >> "displayName") ]; + ctrlSetText [ 209, _vehstring ]; + }; + }; + } else { + { ctrlSetText [ _x, "" ] } foreach [ 201, 202, 203, 204, 205, 206, 207, 208, 209 ]; + GRLIB_squadconfirm = -1; + GRLIB_squadaction = -1; + }; + + if ( GRLIB_squadaction == -1 ) then { + ctrlEnable [ 213, false ]; + ctrlEnable [ 214, false ]; + if ( !(isPlayer _selectedmember) && (vehicle _selectedmember == _selectedmember) ) then { + ctrlEnable [ 210, true ]; + if ( leader group player == player ) then { + ctrlEnable [ 211, true ]; + }; + ctrlEnable [ 212, true ]; + } else { + ctrlEnable [ 210, false ]; + ctrlEnable [ 211, false ]; + ctrlEnable [ 212, false ]; + }; + } else { + ctrlEnable [ 210, false ]; + ctrlEnable [ 211, false ]; + ctrlEnable [ 212, false ]; + ctrlEnable [ 213, true ]; + ctrlEnable [ 214, true ]; + }; + + if( GRLIB_squadconfirm == 0 ) then { + GRLIB_squadconfirm = -1; + GRLIB_squadaction = -1; + }; + + if ( GRLIB_squadconfirm == 1 ) then { + GRLIB_squadconfirm = -1; + + if ( GRLIB_squadaction == 1 ) then { + + _nearfob = [ getpos _selectedmember ] call KPLIB_fnc_getNearestFob; + _fobdistance = 9999; + if ( count _nearfob == 3 ) then { + _fobdistance = _selectedmember distance _nearfob; + }; + + _nearsquad = (getPos _selectedmember) nearEntities [KPLIB_aiResupplySources, 30]; + + if ( _fobdistance < 100 || count _nearsquad > 0 ) then { + + _tempgmp = createGroup [GRLIB_side_friendly, true]; + (typeof _selectedmember) createUnit [ markers_reset, _tempgmp,'']; + [ (units _tempgmp) select 0, _selectedmember ] call KPLIB_fnc_swapInventory; + deleteVehicle ((units _tempgmp) select 0); + _selectedmember setDamage 0; + + hint localize 'STR_RESUPPLY_OK'; + _resupplied = true; + } else { + hint localize 'STR_RESUPPLY_KO'; + }; + }; + + if (GRLIB_squadaction == 2) then { + deleteVehicle _selectedmember; + _resupplied = true; + hint localize 'STR_REMOVE_OK'; + }; + + if (GRLIB_squadaction == 3) then { + + closeDialog 0; + + if ( primaryWeapon player == "" && secondaryWeapon player == "" ) then { + [ _selectedmember, player ] call KPLIB_fnc_swapInventory; + }; + + _destpos = getposATL _selectedmember; + _destdir = getdir _selectedmember; + + if ( damage _selectedmember > 0.4 ) then { + if ( damage _selectedmember < 0.7 ) then { + player setDamage (damage _selectedmember); + } else { + player setDamage 0.7; + }; + }; + + deleteVehicle _selectedmember; + sleep 0.01; + + player setPosATL _destpos; + player setDir _destdir; + + sleep 0.01; + + [ localize 'STR_SQUAD_DEPLOY' ] spawn spawn_camera; + + }; + + GRLIB_squadaction = -1; + + }; + + sleep 0.1; +}; + +"spawn_marker" setMarkerPosLocal markers_reset; +_squad_camera cameraEffect ["terminate","back"]; +camDestroy _squad_camera; +deleteVehicle _targetobject; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/tutorial_manager.sqf b/kp_liberation.brf_sumava/scripts/client/ui/tutorial_manager.sqf new file mode 100644 index 0000000..4a43f0e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/tutorial_manager.sqf @@ -0,0 +1,65 @@ +private [ "_tutorial_titles", "_tutorial_pages", "_current_page", "_old_page", "_dialog" ]; + +if ( isNil "howtoplay" ) then { howtoplay = 0; }; + +_tutorial_titles = [ + localize "STR_TUTO_TITLE1", + localize "STR_TUTO_TITLE2", + localize "STR_TUTO_TITLE3", + localize "STR_TUTO_TITLE4", + localize "STR_TUTO_TITLE5", + localize "STR_TUTO_TITLE6", + localize "STR_TUTO_TITLE7", + localize "STR_TUTO_TITLE8", + localize "STR_TUTO_TITLE9", + localize "STR_TUTO_TITLE10" +]; + +_tutorial_pages = [ + "STR_TUTO_TEXT1", + "STR_TUTO_TEXT2", + "STR_TUTO_TEXT3", + "STR_TUTO_TEXT4", + "STR_TUTO_TEXT5", + "STR_TUTO_TEXT6", + "STR_TUTO_TEXT7", + "STR_TUTO_TEXT8", + "STR_TUTO_TEXT9", + "STR_TUTO_TEXT10" +]; + +_current_page = 0; +_old_page = -99; + +while { true } do { + waitUntil { sleep 0.3; howtoplay == 1 }; + waitUntil { !dialog }; + sleep 0.1; + + _dialog = createDialog "liberation_tutorial"; + if ( !cinematic_camera_started ) then { + [] spawn cinematic_camera; + }; + + waitUntil { dialog }; + + { + lbAdd [ 513, _x]; + } foreach _tutorial_titles; + + lbSetCurSel [ 513, 0 ]; + + while { howtoplay == 1 && alive player && dialog } do { + _current_page = lbCurSel 513; + if ( _current_page != _old_page ) then { + ctrlSetText [ 514, _tutorial_titles select _current_page ]; + ((findDisplay 5353) displayCtrl (515)) ctrlSetStructuredText parseText localize (_tutorial_pages select _current_page); + _old_page = _current_page; + }; + sleep 0.2; + }; + if ( dialog ) then { closeDialog 0 }; + + cinematic_camera_started = false; + howtoplay = 0; +} diff --git a/kp_liberation.brf_sumava/scripts/client/ui/ui_manager.sqf b/kp_liberation.brf_sumava/scripts/client/ui/ui_manager.sqf new file mode 100644 index 0000000..ecfc21b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/ui_manager.sqf @@ -0,0 +1,177 @@ +scriptName "KPLIB_uiManager"; + +disableSerialization; + +private _sectorcontrols = [ + 201, // BG Picture Sector + 202, // Capture Frame + 203, // Capture Frame OPFOR + 205, // Label Point + 244 // Capture Frame BLUFOR +]; + +GRLIB_ui_notif = ""; +KP_liberation_supplies = 0; +KP_liberation_ammo = 0; +KP_liberation_fuel = 0; +KP_liberation_air_vehicle_building_near = false; +KP_liberation_recycle_building_near = false; + +waitUntil { !isNil "synchro_done" }; +waitUntil { synchro_done }; + +if (isNil "cinematic_camera_started") then {cinematic_camera_started = false;}; +if (isNil "halojumping") then {halojumping = false;}; + +private _uiticks = 0; +private _active_sectors_hint = false; +private _attacked_string = ""; +private _nearest_active_sector = ""; +private _zone_size = 0; +private _colorzone = "ColorGrey"; +private _bar = controlNull; +private _barwidth = 0; + +private _overlay = displayNull; +private _overlayVisible = false; +private _showHud = false; +private _showResources = false; +private _currentFob = ""; + +while {true} do { + _currentFob = player getVariable ["KPLIB_fobName", ""]; + _showHud = alive player && {!dialog && {isNull curatorCamera && {!cinematic_camera_started && !halojumping}}}; + _visibleMap = visibleMap; + + if (_showHud && {!_overlayVisible}) then { + "KPLIB_ui" cutRsc ["KPLIB_overlay", "PLAIN", 1]; + _uiticks = 0; + }; + if (!_showHud && {_overlayVisible}) then { + "KPLIB_ui" cutText ["", "PLAIN"]; + }; + + _overlay = uiNamespace getVariable ["KPLIB_overlay", displayNull]; + _overlayVisible = !isNull _overlay; + + // Player is at FOB + if (_currentFob != "" || {_visibleMap}) then { + _showResources = true; + + private _nearestFob = player getVariable "KPLIB_fobPos"; + ([_nearestFob] call KPLIB_fnc_getFobResources) params ["", "_supplies", "_ammo", "_fuel", "_hasAir", "_hasRecycling"]; + + if (KP_liberation_resources_global || {_visibleMap}) then { + // Overwrite FOB name in global mode + _currentFob = localize "STR_RESOURCE_GLOBAL"; + + KP_liberation_supplies = KP_liberation_supplies_global; + KP_liberation_ammo = KP_liberation_ammo_global; + KP_liberation_fuel = KP_liberation_fuel_global; + } else { + KP_liberation_supplies = _supplies; + KP_liberation_ammo = _ammo; + KP_liberation_fuel = _fuel; + }; + // TODO this is used by build scripts, move to relevant places + KP_liberation_air_vehicle_building_near = _hasAir; + KP_liberation_recycle_building_near = _hasRecycling; + } else { + _showResources = false; + KP_liberation_supplies = 0; + KP_liberation_ammo = 0; + KP_liberation_fuel = 0; + KP_liberation_air_vehicle_building_near = false; + KP_liberation_recycle_building_near = false; + }; + + if (_overlayVisible) then { + + (_overlay displayCtrl (266)) ctrlSetText format [ "%1", GRLIB_ui_notif ]; + (_overlay displayCtrl (267)) ctrlSetText format [ "%1", GRLIB_ui_notif ]; + + if ((markerPos "opfor_capture_marker") distance markers_reset > 100 ) then { + + private [ "_attacked_string" ]; + _attacked_string = [markerpos "opfor_capture_marker"] call KPLIB_fnc_getLocationName; + + (_overlay displayCtrl (401)) ctrlShow true; + (_overlay displayCtrl (402)) ctrlSetText _attacked_string; + (_overlay displayCtrl (403)) ctrlSetText (markerText "opfor_capture_marker"); + } else { + (_overlay displayCtrl (401)) ctrlShow false; + (_overlay displayCtrl (402)) ctrlSetText ""; + (_overlay displayCtrl (403)) ctrlSetText ""; + }; + + // Update resources overlay + [ + _overlay, + _showResources, + _uiticks % 5 == 0, // update values + _currentFob // area title + ] call KPLIB_fnc_overlayUpdateResources; + + if (_uiticks % 25 == 0) then { + + if (!isNil "active_sectors" && ([] call KPLIB_fnc_getOpforCap >= GRLIB_sector_cap)) then { + + (_overlay displayCtrl (517)) ctrlShow true; + + if (!_active_sectors_hint) then { + hint localize "STR_OVERLOAD_HINT"; + _active_sectors_hint = true; + }; + + _active_sectors_string = "" + (localize "STR_ACTIVE_SECTORS") + "
"; + { + _active_sectors_string = [_active_sectors_string, markerText _x, "
"] joinString ""; + } forEach active_sectors; + _active_sectors_string = [_active_sectors_string, "
"] joinString ""; + (_overlay displayCtrl (516)) ctrlSetStructuredText parseText _active_sectors_string; + + } else { + (_overlay displayCtrl (516)) ctrlSetStructuredText parseText " "; + (_overlay displayCtrl (517)) ctrlShow false; + }; + + _nearest_active_sector = [GRLIB_sector_size] call KPLIB_fnc_getNearestSector; + if ( _nearest_active_sector != "" ) then { + _zone_size = GRLIB_capture_size; + if ( _nearest_active_sector in sectors_bigtown ) then { + _zone_size = GRLIB_capture_size * 1.4; + }; + + "zone_capture" setmarkerposlocal (markerpos _nearest_active_sector); + _colorzone = "ColorGrey"; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_friendly ) then { _colorzone = GRLIB_color_friendly }; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) then { _colorzone = GRLIB_color_enemy }; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_resistance ) then { _colorzone = "ColorCivilian" }; + "zone_capture" setmarkercolorlocal _colorzone; + + _ratio = [_nearest_active_sector] call KPLIB_fnc_getBluforRatio; + _barwidth = 0.084 * safezoneW * _ratio; + _bar = _overlay displayCtrl (244); + _bar ctrlSetPosition [(ctrlPosition _bar) select 0,(ctrlPosition _bar) select 1,_barwidth,(ctrlPosition _bar) select 3]; + _bar ctrlCommit ([0, 2] select ctrlShown _bar); + + (_overlay displayCtrl (205)) ctrlSetText (markerText _nearest_active_sector); + {(_overlay displayCtrl (_x)) ctrlShow true;} forEach _sectorcontrols; + if (_nearest_active_sector in blufor_sectors) then { + (_overlay displayCtrl (205)) ctrlSetTextColor [0,0.3,1.0,1]; + } else { + (_overlay displayCtrl (205)) ctrlSetTextColor [0.85,0,0,1]; + }; + + "zone_capture" setMarkerSizeLocal [ _zone_size,_zone_size ]; + } else { + {(_overlay displayCtrl (_x)) ctrlShow false;} forEach _sectorcontrols; + "zone_capture" setmarkerposlocal markers_reset; + }; + }; + }; + + _uiticks = _uiticks + 1; + if (_uiticks > 1000) then {_uiticks = 0;}; + uiSleep 0.25; +}; diff --git a/kp_liberation.brf_sumava/scripts/client/ui/write_credit_line.sqf b/kp_liberation.brf_sumava/scripts/client/ui/write_credit_line.sqf new file mode 100644 index 0000000..7289875 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/client/ui/write_credit_line.sqf @@ -0,0 +1,20 @@ +params [ + "_control", + "_linearray" +]; + +_linearray = toArray _linearray; +private _caretPosition = 0; + +private ["_currentline", "_caretcharacter"]; +while {dialog && (_caretPosition <= count _linearray)} do { + _currentline = []; + while {count _currentline < _caretPosition} do { + _currentline pushback (_linearray select (count _currentline)); + }; + _caretcharacter = ""; + if ((_caretPosition % 2 == 0) && (_caretPosition != count _linearray)) then {_caretcharacter = "_"}; + ctrlSetText [_control, format ["%1%2", toString _currentline, _caretcharacter]]; + _caretPosition = _caretPosition + 1; + sleep 0.04; +}; diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/apex/template1.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template1.sqf new file mode 100644 index 0000000..83cb7f2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template1.sqf @@ -0,0 +1,75 @@ +private _objects_to_build = [ + ["Land_BarGate_F", [3.08, -23.93, 0.00], 0.00], + ["Land_Cargo_Patrol_V4_F", [-16.67, -17.67, 0.00], 0.00], + ["Land_Cargo_Patrol_V4_F", [16.25, -17.52, 0.00], 0.00], + ["Land_Cargo_Tower_V4_F", [14.05, 13.65, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-0.88, 21.72, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-16.20, 1.19, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-16.62, -21.26, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-18.34, 21.81, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-21.59, -0.83, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.67, 7.65, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [-21.74, 16.44, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [-21.75, -17.91, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.78, -9.42, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [-4.29, -4.05, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [-4.32, 6.54, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-7.45, 1.15, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-8.11, -21.27, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-9.19, -15.91, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-9.61, 21.68, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [15.84, -21.56, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [16.21, 5.06, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [16.57, 21.48, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [21.40, -18.40, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [21.49, -9.60, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [21.52, 16.26, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [21.56, -1.31, 0.00], 90.00], + ["Land_HBarrier_01_big_4_green_F", [21.59, 7.47, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [4.60, 16.17, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [6.21, -16.03, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [7.33, -21.54, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [7.51, 5.16, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [7.73, 21.59, 0.00], 180.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [-17.69, 6.55, 0.00], 0.00], + [opfor_ammo_container, [-8.52, 6.50, 0.00], 0.00], + [opfor_fuel_container, [-12.98, 6.80, 0.00], 0.00], + [opfor_fuel_container, [-17.49, 15.73, 0.00], 0.00], + [opfor_fuel_truck, [14.76, -3.44, 0.00], 270.00], + [opfor_ammo_truck, [14.92, 1.33, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [15.07, -0.94, 0.00], 258.84], + [opfor_heavygunner, [-18.40, -1.96, 0.00], 134.25], + [opfor_heavygunner, [17.84, -17.31, 4.35], 162.32], + [opfor_medic, [-0.88, -22.03, 0.00], 170.13], + [opfor_medic, [-6.09, -18.08, 0.00], 106.59], + [opfor_medic, [18.34, 12.30, 0.00], 229.95], + [opfor_officer, [17.04, 14.01, 15.37], 228.55], + [opfor_sharpshooter, [18.24, 16.25, 17.89], 60.85], + [opfor_rifleman, [-10.67, 19.15, 0.00], 145.13], + [opfor_rifleman, [-15.09, -17.86, 4.35], 152.65], + [opfor_rifleman, [14.53, -17.52, 4.35], 183.66], + [opfor_rifleman, [17.84, 9.35, 17.89], 120.37], + [opfor_rifleman, [8.78, -18.50, 0.00], 38.44], + [opfor_rifleman, [9.42, 8.60, 12.77], 0.00], + [opfor_rpg, [10.13, 6.74, 17.79], 190.12], + [opfor_sentry, [-15.34, 11.18, 0.00], 43.12], + [opfor_sentry, [15.14, 9.85, 12.77], 0.00], + [opfor_marksman, [-17.65, -17.73, 4.35], 192.66], + [opfor_grenadier, [-7.66, -1.47, 0.00], 186.27], + [opfor_grenadier, [18.23, -6.30, 0.00], 235.17] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/apex/template2.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template2.sqf new file mode 100644 index 0000000..d18c5f5 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template2.sqf @@ -0,0 +1,76 @@ +private _objects_to_build = [ + [opfor_flag, [-3.09, -13.03, 0.00], 0.00], + ["Land_BarGate_F", [-20.99, -7.13, 0.00], 270.00], + ["Land_Cargo_HQ_V4_F", [12.64, -4.76, 0.00], 0.00], + ["Land_Cargo_Patrol_V4_F", [18.54, 14.75, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-13.52, 18.55, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-15.72, -15.44, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-19.05, 15.24, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-19.26, -2.85, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-4.90, 18.58, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [-7.19, -15.46, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [1.42, -15.43, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [12.17, 18.58, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [18.50, -15.42, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [20.69, 18.51, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [23.87, -12.24, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [24.00, -3.73, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [24.08, 4.75, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [24.10, 13.14, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [3.55, 18.60, 0.00], 180.00], + ["Land_HBarrier_01_big_4_green_F", [9.87, -15.40, 0.00], 180.00], + ["Land_HBarrier_01_line_1_green_F", [-4.98, 2.23, 0.00], 0.00], + ["Land_HBarrier_01_line_1_green_F", [-5.01, 0.74, 0.00], 0.00], + ["Land_HBarrier_01_line_3_green_F", [0.30, 3.78, 0.00], 0.00], + ["Land_HBarrier_01_line_3_green_F", [6.91, 11.77, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [-15.28, 3.84, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [-4.16, 3.81, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [-4.90, -5.79, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [-4.91, -11.49, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [-9.68, 3.85, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [14.49, 3.65, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [2.76, 14.38, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [2.77, 5.83, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [20.08, 3.65, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [6.90, 7.29, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [8.91, 3.67, 0.00], 0.00], + ["Land_HBarrier_01_tower_green_F", [-21.15, 6.09, 0.00], 0.00], + [opfor_mrap_armed, [-15.71, -1.05, -0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [-2.27, 6.72, 0.00], 270.00], + [opfor_ammo_container, [-2.50, 14.76, 0.00], 270.00], + [opfor_fuel_container, [-11.02, 13.18, 0.00], 0.00], + [opfor_fuel_container, [-15.81, 13.28, 0.00], 0.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [-13.04, 1.42, 0.00], 145.49], + [opfor_medic, [12.00, -11.32, 0.72], 0.00], + [opfor_machinegunner, [9.36, -9.69, 3.13], 224.39], + [opfor_rifleman, [-15.90, 6.20, 0.00], 53.33], + [opfor_rifleman, [-18.61, -12.86, 0.00], 256.70], + [opfor_rifleman, [-2.21, 2.14, 0.00], 154.38], + [opfor_rifleman, [-21.42, 5.74, 0.00], 0.00], + [opfor_rifleman, [-21.63, 3.43, 2.78], 259.20], + [opfor_rifleman, [-7.60, 14.78, 0.00], 177.51], + [opfor_rifleman, [17.97, -2.54, 0.60], 222.59], + [opfor_at, [9.42, -3.19, 3.13], 299.23], + [opfor_sentry, [-1.28, -12.69, 0.00], 0.00], + [opfor_sentry, [21.72, 6.34, 0.00], 290.24], + [opfor_marksman, [16.94, 14.54, 4.35], 333.07], + [opfor_marksman, [19.91, 14.21, 4.35], 0.00], + [opfor_team_leader, [10.12, -4.12, 0.60], 175.70], + [opfor_grenadier, [-21.11, 7.85, 2.78], 285.67], + [opfor_grenadier, [9.27, 7.95, 0.00], 0.00] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/apex/template3.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template3.sqf new file mode 100644 index 0000000..f16907e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template3.sqf @@ -0,0 +1,85 @@ +private _objects_to_build = [ + ["Land_Cargo_House_V4_F", [-0.52, 23.34, 0.00], 0.00], + ["Land_Cargo_Patrol_V4_F", [-21.19, 11.02, 0.00], 128.79], + ["Land_Cargo_Patrol_V4_F", [-24.11, -12.44, 0.00], 53.88], + ["Land_Cargo_Patrol_V4_F", [16.19, -17.03, 0.00], 326.34], + ["Land_Cargo_Tower_V4_F", [0.19, -0.19, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-0.88, 29.09, 0.00], 0.39], + ["Land_HBarrier_01_big_4_green_F", [-12.38, -17.50, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-13.32, -22.93, 0.00], 9.33], + ["Land_HBarrier_01_big_4_green_F", [-16.11, 21.91, 0.00], 137.09], + ["Land_HBarrier_01_big_4_green_F", [-20.94, -20.05, 0.00], 211.80], + ["Land_HBarrier_01_big_4_green_F", [-21.73, 15.89, 0.00], 312.44], + ["Land_HBarrier_01_big_4_green_F", [-25.24, -2.23, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-26.90, 9.27, 0.00], 301.34], + ["Land_HBarrier_01_big_4_green_F", [-26.91, -14.48, 0.00], 54.18], + ["Land_HBarrier_01_big_4_green_F", [-29.94, 1.62, 0.00], 98.93], + ["Land_HBarrier_01_big_4_green_F", [-30.03, -7.00, 0.00], 82.51], + ["Land_HBarrier_01_big_4_green_F", [-4.80, -23.61, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-6.35, -8.76, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-6.46, 6.01, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-9.21, 26.96, 0.00], 330.73], + ["Land_HBarrier_01_big_4_green_F", [-9.69, 0.90, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-9.71, 20.75, 0.00], 63.17], + ["Land_HBarrier_01_big_4_green_F", [13.66, -22.20, 0.00], 340.93], + ["Land_HBarrier_01_big_4_green_F", [15.15, 23.89, 0.00], 35.54], + ["Land_HBarrier_01_big_4_green_F", [2.00, 6.02, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [2.11, -8.75, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [20.94, -11.73, 0.00], 61.05], + ["Land_HBarrier_01_big_4_green_F", [21.16, -18.23, 0.00], 322.90], + ["Land_HBarrier_01_big_4_green_F", [21.21, 18.03, 0.00], 230.46], + ["Land_HBarrier_01_big_4_green_F", [25.25, 10.64, 0.00], 253.46], + ["Land_HBarrier_01_big_4_green_F", [26.38, 2.20, 0.00], 271.37], + ["Land_HBarrier_01_big_4_green_F", [3.87, -23.65, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [7.17, -5.47, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [7.21, 22.33, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [7.23, 2.91, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [7.34, 11.22, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [7.61, 27.67, 0.00], 18.42], + ["Land_HBarrier_01_big_4_green_F", [9.03, -20.34, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [9.11, -11.97, 0.00], 270.00], + [opfor_mrap, [10.41, -1.98, -0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_truck, [15.60, 18.85, 0.00], 136.21], + [opfor_fuel_truck, [21.62, 8.37, 0.00], 167.18], + [opfor_ammo_container, [-2.98, -19.06, 0.00], 0.00], + [opfor_ammo_container, [-8.06, -19.04, 0.00], 0.00], + [opfor_fuel_container, [1.23, -19.09, 0.00], 0.00], + [opfor_fuel_container, [5.80, -19.12, 0.00], 0.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [19.58, 13.89, 0.00], 244.49], + [opfor_heavygunner, [-14.31, 17.85, 0.00], 149.97], + [opfor_medic, [-1.31, 25.09, 0.73], 135.61], + [opfor_aa, [3.89, 2.24, 17.89], 0.00], + [opfor_machinegunner, [-25.14, -10.78, 4.35], 214.93], + [opfor_at, [2.97, -4.28, 17.89], 130.54], + [opfor_rifleman, [-16.34, -19.12, 0.00], 0.00], + [opfor_rifleman, [-21.59, 9.39, 4.35], 282.14], + [opfor_rifleman, [-3.73, 2.96, 17.89], 0.00], + [opfor_rifleman, [-4.31, -3.06, 12.77], 0.00], + [opfor_rifleman, [-5.05, -15.86, 0.00], 0.00], + [opfor_rifleman, [-6.97, 23.81, 0.00], 143.84], + [opfor_rifleman, [24.14, 0.05, 0.00], 177.25], + [opfor_rifleman, [4.39, 9.33, 0.00], 317.44], + [opfor_sentry, [12.06, -16.47, 0.00], 0.00], + [opfor_sentry, [5.83, -11.76, 0.00], 233.53], + [opfor_marksman, [-20.07, 11.31, 4.35], 327.13], + [opfor_marksman, [14.45, -17.63, 4.35], 143.40], + [opfor_squad_leader, [-1.89, -3.39, 15.37], 0.00], + [opfor_grenadier, [-1.96, -2.51, 0.00], 265.28], + [opfor_grenadier, [-23.10, -13.48, 4.35], 220.27], + [opfor_grenadier, [17.35, -16.11, 4.35], 139.83] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/apex/template4.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template4.sqf new file mode 100644 index 0000000..34f273d --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template4.sqf @@ -0,0 +1,73 @@ +private _objects_to_build = [ + ["Land_BarGate_F", [-1.35, -21.90, 0.00], 0.00], + ["Land_BarGate_F", [-25.97, 14.85, 0.00], 270.00], + ["Land_Cargo_HQ_V4_F", [12.54, 8.46, 0.00], 270.00], + ["Land_Cargo_Patrol_V4_F", [-4.11, 12.99, 0.00], 141.00], + ["Land_HBarrier_01_big_4_green_F", [-13.36, 0.92, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-19.91, -15.83, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-22.01, 1.08, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-25.39, -12.68, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-25.39, -4.13, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-4.64, 0.77, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-6.31, 20.00, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-9.46, 6.24, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-9.47, 14.79, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-9.67, -4.48, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [10.62, 19.99, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [10.68, -16.06, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [19.16, 19.99, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [19.22, -16.07, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [2.23, 20.00, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [22.25, -10.84, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [22.25, -2.29, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [22.34, 14.71, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [22.35, 6.16, 0.00], 270.00], + ["Land_HBarrier_01_big_tower_green_F", [-12.34, -16.79, 0.00], 0.00], + ["Land_HBarrier_01_big_tower_green_F", [2.99, -16.95, 0.00], 0.00], + ["Land_HBarrier_01_line_1_green_F", [-22.72, 19.94, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [-13.55, 19.94, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [-19.12, 19.94, 0.00], 0.00], + ["Land_HBarrier_01_line_5_green_F", [-24.19, 5.00, 0.00], 270.00], + ["Land_HBarrier_01_line_5_green_F", [-24.22, 17.71, 0.00], 270.00], + [opfor_mrap_armed, [-17.72, 14.91, -0.00], 270.00], + [opfor_transport_truck, [-16.45, 7.09, 0.00], 270.00] +]; + +private _objectives_to_build = [ + [opfor_fuel_truck, [14.36, -11.61, 0.00], 270.00], + [opfor_fuel_container, [-19.81, -11.27, 0.00], 270.00], + [opfor_fuel_container, [-19.85, -3.96, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [-13.45, 3.53, 0.00], 280.96], + [opfor_heavygunner, [17.42, 5.17, 3.13], 137.06], + [opfor_medic, [17.92, 5.97, 0.60], 274.39], + [opfor_officer, [12.32, 11.76, 0.60], 140.46], + [opfor_sharpshooter, [-5.79, 11.84, 4.35], 297.99], + [opfor_machinegunner, [-11.76, -18.72, 2.28], 152.95], + [opfor_machinegunner, [-12.18, -3.17, 0.00], 204.36], + [opfor_rifleman, [-13.48, -17.94, 2.28], 170.62], + [opfor_rifleman, [-21.78, 17.73, 0.00], 176.87], + [opfor_rifleman, [-5.56, -18.04, 0.00], 155.59], + [opfor_rifleman, [10.34, 6.15, 0.60], 99.59], + [opfor_rifleman, [19.16, 0.25, 0.00], 252.60], + [opfor_rifleman, [4.08, 16.23, 0.00], 195.28], + [opfor_rifleman, [8.68, -11.60, 0.00], 258.53], + [opfor_rpg, [11.21, 13.16, 3.13], 309.16], + [opfor_sentry, [-21.30, -7.60, 0.00], 97.63], + [opfor_sentry, [-6.04, 4.12, 0.00], 80.41], + [opfor_sentry, [2.14, -17.64, 2.28], 246.88], + [opfor_marksman, [-3.27, 13.64, 4.35], 332.14], + [opfor_marksman, [11.79, 5.74, 3.13], 224.23], + [opfor_grenadier, [3.70, -19.06, 2.28], 179.85] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/apex/template5.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template5.sqf new file mode 100644 index 0000000..a72f62d --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/apex/template5.sqf @@ -0,0 +1,69 @@ +private _objects_to_build = [ + ["Land_BarGate_F", [-1.56, -21.23, 0.00], 180.00], + ["Land_Cargo_House_V4_F", [-15.99, -15.32, 0.00], 180.00], + ["Land_Cargo_House_V4_F", [-8.30, -15.39, 0.00], 180.00], + ["Land_Cargo_Patrol_V4_F", [-17.07, 15.12, 0.00], 90.00], + ["Land_Cargo_Patrol_V4_F", [15.11, -18.26, 0.00], 0.00], + ["Land_Cargo_Tower_V4_F", [14.91, 13.60, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-15.68, 20.47, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-16.02, -21.09, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-20.99, 17.26, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.00, -0.12, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.00, 8.55, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.13, -8.80, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-21.39, -17.39, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [-7.33, 20.43, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [-7.69, -21.22, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [1.12, 20.34, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [11.11, -21.90, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [18.02, 20.28, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [19.55, -21.95, 0.00], 0.00], + ["Land_HBarrier_01_big_4_green_F", [22.71, -16.70, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [22.81, -8.28, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [22.89, 0.29, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [23.00, 8.71, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [23.12, 17.03, 0.00], 270.00], + ["Land_HBarrier_01_big_4_green_F", [9.57, 20.36, 0.00], 0.00], + [opfor_mrap, [14.22, -4.50, -0.00], 270.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_truck, [15.77, -10.81, 0.00], 270.00], + [opfor_fuel_truck, [15.39, 1.95, 0.00], 270.00], + [opfor_ammo_container, [-12.54, 6.21, 0.00], 0.00], + [opfor_ammo_container, [-16.98, 6.38, 0.00], 0.00], + [opfor_fuel_container, [-12.00, -3.02, 0.00], 0.00], + [opfor_fuel_container, [-16.72, -3.11, 0.00], 0.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [16.86, -0.86, 0.00], 257.93], + [opfor_heavygunner, [2.53, -18.79, 0.00], 162.42], + [opfor_medic, [-8.69, -15.93, 0.59], 0.00], + [opfor_sharpshooter, [-17.05, 16.71, 4.35], 272.72], + [opfor_sharpshooter, [10.26, 6.69, 17.79], 198.44], + [opfor_machinegunner, [-15.20, 1.00, 0.00], 86.01], + [opfor_rifleman, [-13.07, 16.89, 0.00], 139.62], + [opfor_rifleman, [-16.95, 13.45, 4.35], 259.48], + [opfor_rifleman, [-17.18, -17.18, 0.73], 0.00], + [opfor_rifleman, [10.74, 10.43, 15.37], 81.16], + [opfor_rifleman, [11.20, 10.90, 12.77], 0.00], + [opfor_rifleman, [12.76, -16.90, 0.00], 323.09], + [opfor_rifleman, [16.63, 12.67, 0.00], 229.50], + [opfor_rifleman, [18.63, 15.47, 17.89], 46.70], + [opfor_at, [-17.43, -7.40, 0.00], 101.79], + [opfor_rpg, [10.88, 16.67, 17.89], 313.11], + [opfor_sentry, [18.68, 15.42, 15.37], 240.93], + [opfor_marksman, [13.72, -18.55, 4.35], 210.97], + [opfor_squad_leader, [-14.42, -16.98, 0.73], 333.26], + [opfor_grenadier, [16.74, -18.14, 4.35], 172.08] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template1.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template1.sqf new file mode 100644 index 0000000..b0d130e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template1.sqf @@ -0,0 +1,82 @@ +private _objects_to_build = [ + ["Land_HBarrierBig_F",[-15,-8,0],90], + ["Land_HBarrierBig_F",[-15,-16.5,0],90], + ["Land_HBarrierBig_F",[-15,-25,0],90], + ["Land_HBarrierBig_F",[-15,8,0],90], + ["Land_HBarrierBig_F",[-15,16.5,0],90], + ["Land_HBarrierBig_F",[-15,25,0],90], + ["Land_HBarrierBig_F",[15,-8,0],90], + ["Land_HBarrierBig_F",[15,-16.5,0],90], + ["Land_HBarrierBig_F",[15,-25,0],90], + ["Land_HBarrierBig_F",[15,8,0],90], + ["Land_HBarrierBig_F",[15,16.5,0],90], + ["Land_HBarrierBig_F",[15,25,0],90], + ["Land_HBarrierBig_F",[11,30,0],0], + ["Land_HBarrierBig_F",[4,30,0],0], + ["Land_HBarrierBig_F",[-4,30,0],0], + ["Land_HBarrierBig_F",[-11,30,0],0], + ["Land_HBarrierBig_F",[11,-30,0],0], + ["Land_HBarrierBig_F",[4,-30,0],0], + ["Land_HBarrierBig_F",[-4,-30,0],0], + ["Land_HBarrierBig_F",[-11,-30,0],0], + ["Land_Cargo_Patrol_V3_F",[-10,-26,0],0], + ["Land_Cargo_HQ_V3_F",[4,-20,0],0], + ["Land_Cargo_House_V3_F",[-9,24,0],0], + ["Land_Cargo_House_V3_F",[-1,24,0],0], + ["Land_Cargo_Patrol_V3_F",[10,24,0],180], + ["Land_CncBarrierMedium4_F",[-21,-5,0],180], + ["Land_CncBarrierMedium4_F",[-21,5,0],180], + ["Land_CncBarrierMedium4_F",[21,-5,0],180], + ["Land_CncBarrierMedium4_F",[21,5,0],180], + ["Land_Razorwire_F",[-22,-7,0],180], + ["Land_Razorwire_F",[-22,7,0],180], + ["Land_Razorwire_F",[19,-7,0],180], + ["Land_Razorwire_F",[19,7,0],180], + ["Land_Tank_rust_F",[-9,10,0],180], + ["Land_Tank_rust_F",[-9,14,0],180], + ["Land_Tank_rust_F",[-9,6,0],180], + [opfor_flag,[-14,-5,0],180], + [opfor_flag,[-14,5,0],180], + [opfor_flag,[14,-5,0],90], + ["Land_BarGate_F",[20,0,0],90], + ["Land_BarGate_F",[-13,0,0],270], + [opfor_mrap,[7,-7,0],60] +]; + +private _objectives_to_build = [ + [opfor_fuel_truck,[10,8,0],185], + [opfor_fuel_truck,[5,8.5,0],190], + [opfor_fuel_truck,[0,9,0],192], + [opfor_ammo_truck,[-9,-8,0],10], + [opfor_ammo_truck,[-3,-8,0],15] +]; + +private _defenders_to_build = [ + [opfor_marksman,[11,26.5,4.5],0], + [opfor_marksman,[-11,-26.5,4.5],180], + [opfor_heavygunner,[9,26.5,4.5],0], + [opfor_heavygunner,[-9,-26.5,4.5],180], + [opfor_rifleman,[12,23,4.5],90], + [opfor_rifleman,[-12,-23,4.5],270], + [opfor_sentry,[6,-20,1],0], + [opfor_sentry,[3,-23,1],90], + [opfor_rifleman,[3,-20,1],180], + [opfor_team_leader,[6,-23,1],270], + [opfor_team_leader,[3,-18,1],180], + [opfor_sentry,[6,-18,1],270], + [opfor_rifleman,[-9,25,1],180], + [opfor_sentry,[-11,25,1],180], + [opfor_rifleman,[-1,25,1],180], + [opfor_sentry,[-3,25,1],180], + [opfor_sentry,[0,-5,0],0], + [opfor_sentry,[2,5,0],180] +]; + +private _base_corners = [ + [30,40,0], + [30,-40,0], + [-30,-40,0], + [-30,40,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template10.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template10.sqf new file mode 100644 index 0000000..954d359 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template10.sqf @@ -0,0 +1,64 @@ +private _objects_to_build = [ + ["Land_Cargo_HQ_V3_F", [10.61, -10.99, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-17.12, 17.91, 0.00], 90.00], + ["Land_Cargo_Patrol_V3_F", [-6.10, -17.32, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [16.21, 19.89, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-0.63, 24.21, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-11.09, -16.24, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-11.31, -7.55, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-11.58, 9.48, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-17.32, 12.59, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-17.75, 23.50, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-20.65, 17.97, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-7.86, -21.51, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-9.08, 23.97, 0.00], 0.00], + ["Land_HBarrier_Big_F", [0.86, -21.32, 0.00], 0.00], + ["Land_HBarrier_Big_F", [16.73, 24.67, 0.00], 0.00], + ["Land_HBarrier_Big_F", [18.13, -20.90, 0.00], 0.00], + ["Land_HBarrier_Big_F", [20.43, 19.27, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.71, 10.54, 0.00], 270.00], + ["Land_HBarrier_Big_F", [21.02, 1.91, 0.00], 270.00], + ["Land_HBarrier_Big_F", [21.24, -6.77, 0.00], 270.00], + ["Land_HBarrier_Big_F", [21.51, -15.29, 0.00], 270.00], + ["Land_HBarrier_Big_F", [8.11, 24.41, 0.00], 0.00], + ["Land_HBarrier_Big_F", [9.42, -21.10, 0.00], 0.00], + [opfor_mrap_armed, [12.38, 7.12, -0.00], 270.00], + [opfor_transport_truck, [13.36, 2.53, 0.00], 270.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [-1.20, 20.76, 0.00], 270.00], + [opfor_ammo_container, [-1.59, 15.88, 0.00], 270.00], + [opfor_fuel_container, [6.70, 15.99, 0.00], 270.00], + [opfor_fuel_container, [6.82, 21.17, 0.00], 270.00], + [opfor_ammo_truck, [13.86, -1.90, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [16.56, 0.29, 0.00], 272.36], + [opfor_heavygunner, [15.94, 21.60, 4.35], 0.00], + [opfor_medic, [13.96, -10.08, 0.60], 212.28], + [opfor_sharpshooter, [-16.85, 16.02, 4.35], 262.35], + [opfor_machinegunner, [-7.51, -17.34, 4.35], 172.74], + [opfor_rifleman, [-8.52, -15.95, 0.00], 25.64], + [opfor_rifleman, [-9.09, 6.77, 0.00], 198.94], + [opfor_rifleman, [14.18, -6.52, 3.08], 0.00], + [opfor_rifleman, [16.20, 18.42, 4.35], 94.53], + [opfor_rifleman, [2.83, 18.98, 0.00], 179.03], + [opfor_rifleman, [7.46, -17.77, 0.72], 0.00], + [opfor_at, [7.10, -9.09, 3.13], 279.26], + [opfor_sentry, [16.67, 16.95, 0.00], 231.16], + [opfor_marksman, [-17.06, 19.60, 4.35], 273.13], + [opfor_squad_leader, [9.67, -10.00, 0.60], 198.89], + [opfor_grenadier, [-14.41, 20.23, 0.00], 137.98], + [opfor_grenadier, [-4.67, -17.54, 4.35], 177.14] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template2.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template2.sqf new file mode 100644 index 0000000..37f13ab --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template2.sqf @@ -0,0 +1,102 @@ +private _objects_to_build = [ + [ "Land_Cargo_Tower_V3_F", [-5.7, 3.42, 0], 0 ], + [ "Land_HBarrierBig_F", [-0.8, -6.62, 0], 0.11 ], + [ "Land_PaperBox_open_empty_F", [5.84, -3.25, 0], 332.09 ], + [ "Land_HBarrierBig_F", [7.84, -6.52, 0], 359.62 ], + [ "Land_PaperBox_closed_F", [10.77, -2.11, 0], 90.97 ], + [ opfor_flag, [2.46, 10.93, 0], 90 ], + [ "Land_HBarrierBig_F", [-9.22, -6.62, 0], 0.11 ], + [ opfor_transport_truck, [4.9, -10.96, -0.03], 272.46 ], + [ "Land_HBarrierBig_F", [-1.17, 12.94, 0], 0.25 ], + [ opfor_transport_truck, [-8.91, -11.52, -0.03], 266.11 ], + [ "Land_HBarrierWall_corridor_F", [-14.26, 3.18, 0], 180.24 ], + [ "Land_PaperBox_open_full_F", [11.39, 9.16, 0], 302.69 ], + [ "Land_HBarrierBig_F", [-14.52, -3.07, 0], 89.68 ], + [ "Land_HBarrierBig_F", [7.22, 13.02, 0], 359.82 ], + [ "Land_HBarrierBig_F", [-9.58, 12.94, 0], 0.25 ], + [ "Land_HBarrierBig_F", [14.88, -6.47, 0], 0.11 ], + [ "Land_HBarrier_1_F", [-16.19, -4.29, 0], 179.54 ], + [ "Land_HBarrierBig_F", [-14.55, 9.47, 0], 89.68 ], + [ "Land_HBarrierBig_F", [17.26, -0.38, 0], 89.87 ], + [ "Land_HBarrierBig_F", [13.25, 13.06, 0], 359.82 ], + [ "Land_HBarrierBig_F", [-0.52, 18.6, 0], 359.5 ], + [ "Land_HBarrier_1_F", [-18.56, -4.33, 0], 179.54 ], + [ "Land_HBarrierBig_F", [17.2, 8.48, 0], 88.84 ], + [ "Land_HBarrierBig_F", [8.34, 18.55, 0], 0.52 ], + [ "Land_HBarrierBig_F", [-9.38, 18.42, 0], 359.5 ], + [ "Land_HBarrier_1_F", [-21.07, -4.36, 0], 179.54 ], + [ opfor_mrap_armed, [-13.81, -17.08, 0.01], 254.24 ], + [ "Land_HBarrierBig_F", [-1.71, -21.88, 0], 179.75 ], + [ "Land_HBarrierBig_F", [22.65, -1.94, 0], 89.87 ], + [ opfor_flag, [-21.18, -9.33, 0], 90 ], + [ "Land_HBarrierBig_F", [7.15, -21.71, 0], 179.75 ], + [ "Land_Cargo_Patrol_V3_F", [17.02, -16.67, 0], 359.51 ], + [ "Land_HBarrierBig_F", [-22.85, 1.21, 0], 269.41 ], + [ "Land_HBarrierBig_F", [22.51, 6.8, 0], 89.87 ], + [ "Land_HBarrierBig_F", [-22.77, -7.28, 0], 269.41 ], + [ opfor_flag, [-11.36, -21.78, 0], 90 ], + [ "Land_HBarrierBig_F", [-13.12, 20.99, 0], 90.15 ], + [ "Land_HBarrierBig_F", [-10.02, -22.67, 0], 347.15 ], + [ "Land_HBarrierBig_F", [-22.81, 10.07, 0], 270.43 ], + [ "Land_HBarrierBig_F", [22.74, -10.58, 0], 89.87 ], + [ "Land_HBarrierBig_F", [17.1, 18.61, 0], 0.52 ], + [ "Land_Cargo_Patrol_V3_F", [-18.01, 19.63, 0], 180.02 ], + [ "Land_CncBarrierMedium4_F", [-23.12, -12.98, 0], 235.1 ], + [ "Land_HBarrierBig_F", [15.93, -21.54, 0], 179.75 ], + [ opfor_flag, [20.64, 16.83, 0], 90 ], + [ "Land_BarGate_F", [-19.55, -17.64, 0], 235.1 ], + [ "Land_HBarrierBig_F", [22.45, 15.67, 0], 88.84 ], + [ "Land_HBarrierBig_F", [22.23, -18.72, 0], 277.09 ], + [ "Land_HBarrierBig_F", [-22.89, 18.81, 0], 270.43 ], + [ "Land_HBarrierBig_F", [-18.23, 24.37, 0], 0.12 ], + [ "Land_Pallet_MilBoxes_F", [12.11, 6.54, 0], 235.35 ], + [ "Land_Pallet_MilBoxes_F", [8.96, 2.73, 0], 127.39 ], + [ "Land_Pallet_MilBoxes_F", [11.85, 1.74, 0], 347.11 ], + [ "Land_Pallet_MilBoxes_F", [13.39, 8.21, 0], 25.62 ] +]; + +private _objectives_to_build = [ + [ opfor_ammo_container, [-3.32, 3.11, 0], 270.02 ], + [ opfor_ammo_container, [6.28, 8, 0], 270.25 ] +]; + +private _defenders_to_build = [ + [ opfor_sentry, [3.35, -3.18, 0], 285.5 ], + [ opfor_machinegunner, [-4.14, 3.26, 4.64], 155.19 ], + [ opfor_marksman, [-1.97, 5.92, 17.89], 39.77 ], + [ opfor_sentry, [-5.07, 4.03, 13.02], 288.05 ], + [ opfor_team_leader, [-6.25, 3.04, 15.37], 288.05 ], + [ opfor_sentry, [5.03, 5.17, 0], 245.18 ], + [ opfor_sentry, [7.48, 0.16, 0], 140.42 ], + [ opfor_sentry, [-7.52, 2.19, 15.37], 53.89 ], + [ opfor_rifleman, [-6.91, 4.18, 12.77], 105.44 ], + [ opfor_rifleman, [8.29, -1.01, 0], 15.07 ], + [ opfor_sentry, [-7.72, 3.47, 15.37], 129.9 ], + [ opfor_aa, [-8.16, -3.53, 17.79], 162.03 ], + [ opfor_rifleman, [-7.69, 5.02, 8.59], 339.29 ], + [ opfor_engineer, [9.66, -0.3, 0], 270.08 ], + [ opfor_heavygunner, [-9.94, -3.52, 17.79], 197.2 ], + [ opfor_aa, [-8.92, 7.21, 17.89], 17.44 ], + [ opfor_sentry, [-12.71, -1.34, 0], 70.65 ], + [ opfor_sentry, [-0.21, -13.35, 0], 222.75 ], + [ opfor_sentry, [12.7, 4.78, 0], 245.18 ], + [ opfor_sentry, [-12.62, 7.78, 0], 95.16 ], + [ opfor_heavygunner, [-17.46, 1.05, 0], 191.23 ], + [ opfor_sentry, [-15.52, -9.95, 0], 222.75 ], + [ opfor_sentry, [-20.07, 1.58, 0], 162.91 ], + [ opfor_heavygunner, [15.94, -17.43, 4.35], 264.53 ], + [ opfor_rpg, [-19.21, -14.96, 0], 184.12 ], + [ opfor_marksman, [18.17, -16.98, 4.35], 120.79 ], + [ opfor_machinegunner, [-15.66, -20.49, 0], 272.29 ], + [ opfor_heavygunner, [-16.9, 20.39, 4.35], 85.04 ], + [ opfor_marksman, [-19.16, 19.94, 4.35], 301.3 ] +]; + +private _base_corners = [ + [35,35,0], + [35,-35,0], + [-35,-35,0], + [-35,35,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template3.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template3.sqf new file mode 100644 index 0000000..5a31c2e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template3.sqf @@ -0,0 +1,82 @@ + +private _objects_to_build = [ + [ "Land_HBarrierWall_corridor_F", [-0.11, 4.98, 0], 270.45 ], + [ "Land_HBarrierBig_F", [-3.24, 5.12, 0], 90.35 ], + [ "CamoNet_OPFOR_open_F", [-1.91, 5.06, 0], 0 ], + [ "Land_HBarrierBig_F", [3.27, 5.52, 0], 90.35 ], + [ "Land_HBarrierBig_F", [8.17, 5.21, 0], 181.2 ], + [ "Land_HBarrierBig_F", [-8.76, 5.21, 0], 0.69 ], + [ "Land_HelipadSquare_F", [-0.84, -11.68, 0], 270.25 ], + [ "Land_Cargo_Patrol_V3_F", [15.5, -0.02, 0], 178.97 ], + [ "Land_Cargo_Patrol_V3_F", [-17.12, -0.35, 0], 179.97 ], + [ "CamoNet_OPFOR_open_F", [13.71, -11.54, 0], 270.25 ], + [ "Land_HBarrierBig_F", [16.94, 5.18, 0], 181.2 ], + [ "Land_Cargo_House_V3_F", [-16.03, -9.69, 0], 269.88 ], + [ opfor_transport_truck, [-10.4, 14.9, -0.02], 181.03 ], + [ "Land_HBarrierBig_F", [-17.6, 5.28, 0], 359.67 ], + [ "Land_Cargo_HQ_V3_F", [11.25, 14.59, 0], 89.97 ], + [ "Land_HBarrierBig_F", [20.42, 1.73, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-1.65, -21.15, 0], 0.36 ], + [ opfor_flag, [-20.59, 7.5, 0], 90 ], + [ "Land_HBarrierBig_F", [21.02, -7.36, 0], 90.4 ], + [ "Land_HBarrierBig_F", [7.21, -21.33, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-22.71, 1.71, 0], 91.24 ], + [ opfor_mrap_armed, [-17.33, 14.88, 0.01], 359.22 ], + [ "Land_HBarrierBig_F", [20.76, 10.25, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-10.52, -21.21, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-22.91, -6.7, 0], 270.29 ], + [ "Land_HBarrierBig_F", [-23.19, 10.11, 0], 89.68 ], + [ "Land_HBarrierBig_F", [21.1, -16.14, 0], 90.4 ], + [ "Land_HBarrierBig_F", [15.97, -21.41, 0], 1.39 ], + [ opfor_flag, [18.67, -19.05, 0], 90 ], + [ opfor_mrap, [11.09, 25.14, 0.01], 268.69 ], + [ opfor_flag, [-20.66, -18.6, 0], 90 ], + [ "Land_HBarrierBig_F", [-23.05, -15.49, 0], 271.36 ], + [ "Land_HBarrierBig_F", [20.55, 19.13, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-19.29, -21.29, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-23.27, 18.53, 0], 89.68 ] +]; + +private _objectives_to_build = [ + [ opfor_fuel_container, [2.64, -13.76, -0.04], 0.35 ], + [ opfor_ammo_container, [-3.69, -14.92, 0], 180.33 ], + [ opfor_fuel_container, [2.7, -5.53, -0.04], 358.03 ], + [ opfor_ammo_container, [-3.96, -5.86, 0], 180.38 ] +]; + +private _defenders_to_build = [ + [ opfor_rifleman, [-6.54, 2.05, 0], 157.41 ], + [ opfor_sentry, [6.66, 2.1, 0], 192.72 ], + [ opfor_rifleman, [-3.64, 12.06, 0], 339.29 ], + [ opfor_sentry, [-10.31, -7.7, 0], 122.29 ], + [ opfor_marksman, [14.38, 0.22, 4.35], 346.89 ], + [ opfor_grenadier, [-2.56, 14.33, 0], 228.17 ], + [ opfor_machinegunner, [-4.79, 14.33, 0], 155.19 ], + [ opfor_heavygunner, [-16.04, 0.4, 4.35], 84.99 ], + [ opfor_heavygunner, [16.6, 0.75, 4.35], 83.99 ], + [ opfor_rifleman, [10.82, 12.69, 0.6], 105.44 ], + [ opfor_sentry, [12.36, 12.48, 0.6], 288.05 ], + [ opfor_machinegunner, [14.41, -10.39, 0], 183.06 ], + [ opfor_engineer, [9.45, 15.46, 0.6], 53.89 ], + [ opfor_sharpshooter, [-18.26, -0.02, 4.35], 301.25 ], + [ opfor_sentry, [13.86, -12.54, 0], 348.81 ], + [ opfor_engineer, [15.06, -11.78, 0], 288.05 ], + [ opfor_rifleman, [9.24, 16.75, 0.6], 129.9 ], + [ opfor_team_leader, [10.71, 16.31, 0.6], 288.05 ], + [ opfor_aa, [15.62, 12.01, 3.09], 124.01 ], + [ opfor_sentry, [-17.92, -8.58, 0.73], 122.29 ], + [ opfor_aa, [8.45, 18.85, 3.13], 335.85 ], + [ opfor_sentry, [-18, -11.54, 0.73], 122.29 ], + [ opfor_sentry, [-13.77, 16.65, 0], 339.29 ], + [ opfor_heavygunner, [14.04, 17.46, 3.13], 48.56 ], + [ opfor_rpg, [12.44, 18.69, 3.13], 16.72 ] +]; + +private _base_corners = [ + [35,35,0], + [35,-35,0], + [-35,-35,0], + [-35,35,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template4.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template4.sqf new file mode 100644 index 0000000..d1936c2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template4.sqf @@ -0,0 +1,79 @@ +private _objects_to_build = [ + [ opfor_mrap, [13.31, 0, 0.01], 268.69 ], + [ "Land_Cargo_HQ_V3_F", [11.47, -12.17, 0], 89.97 ], + [ "Land_CncBarrierMedium4_F", [-15.55, -1.69, 0], 90.88 ], + [ "Land_HBarrierBig_F", [-13.27, -8.61, 0], 91.24 ], + [ opfor_transport_truck, [1.21, 15.8, -0.03], 274.41 ], + [ "Land_BarGate_F", [-16.65, 2.15, 0], 90.88 ], + [ opfor_mrap_armed, [-20.26, -3.22, 0.01], 359.22 ], + [ "Land_HBarrierBig_F", [1.23, 20.94, 0], 0.69 ], + [ "Land_Cargo_Patrol_V3_F", [16.23, 15.36, 0], 269.81 ], + [ opfor_flag, [-12.14, 18.09, 0], 90 ], + [ "Land_HBarrierBig_F", [22.07, -0.21, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-18.87, 11.86, 0], 182.13 ], + [ "Land_HBarrierBig_F", [-19.02, -11.48, 0], 180.79 ], + [ "Land_HBarrierBig_F", [-7.55, 20.91, 0], 0.69 ], + [ "Land_Cargo_Patrol_V3_F", [-16.73, 16.16, 0], 89.4 ], + [ "Land_HBarrierBig_F", [-0.63, -22.83, 0], 0.36 ], + [ opfor_flag, [-11.33, -19.92, 0], 90 ], + [ "Land_HBarrierBig_F", [9.38, 20.92, 0], 181.2 ], + [ "Land_Cargo_Patrol_V3_F", [-16.22, -17.77, 0], 0.54 ], + [ "Land_HBarrierBig_F", [21.86, 8.66, 0], 89.37 ], + [ "Land_HBarrierBig_F", [22.03, -9.04, 0], 90.4 ], + [ "Land_HBarrierBig_F", [8.22, -23.01, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-9.5, -22.89, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-16.39, 20.98, 0], 359.67 ], + [ "Land_HBarrierBig_F", [-21.5, 17.42, 0], 91.24 ], + [ "Land_HBarrierBig_F", [18.15, 20.89, 0], 181.2 ], + [ "Land_HBarrierBig_F", [21.63, 17.44, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-22.04, -17.17, 0], 271.36 ], + [ opfor_flag, [19.21, -20.29, 0], 90 ], + [ "Land_HBarrierBig_F", [22.12, -17.82, 0], 90.4 ], + [ "Land_HBarrierBig_F", [16.99, -23.08, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-18.27, -22.97, 0], 0.36 ] +]; + +private _objectives_to_build = [ + [ opfor_fuel_truck, [1.41, 11.53, -0.03], 271.88 ], + [ opfor_ammo_truck, [-1.45, -13.1, -0.04], 357.37 ], + [ opfor_ammo_container, [13.59, 4.13, 0.02], 96.77 ], + [ opfor_ammo_truck, [-7.67, -13, -0.04], 0.71 ], + [ opfor_ammo_container, [13.76, 9.31, 0.02], 270.25 ] +]; + +private _defenders_to_build = [ + [ opfor_machinegunner, [-3.53, 4.47, 0], 348.81 ], + [ opfor_sentry, [-2.09, 5.78, 0], 288.05 ], + [ opfor_rifleman, [-5.93, -4.74, 0], 288.05 ], + [ opfor_sentry, [-7.45, -5.82, 0], 348.81 ], + [ opfor_engineer, [8.02, 6.59, 0], 87.82 ], + [ opfor_sentry, [-4.42, -10.1, 0], 349.58 ], + [ opfor_heavygunner, [8.68, -7.9, 3.13], 335.85 ], + [ opfor_engineer, [-4.24, 12.69, 0], 71.91 ], + [ opfor_sentry, [-13.57, -0.21, 0], 280.01 ], + [ opfor_rifleman, [9.47, -10.01, 0.6], 129.9 ], + [ opfor_rifleman, [9.67, -11.29, 0.6], 53.89 ], + [ opfor_team_leader, [10.93, -10.44, 0.6], 288.05 ], + [ opfor_aa, [14.26, -9.29, 3.13], 48.56 ], + [ opfor_rifleman, [11.05, -14.06, 0.6], 105.44 ], + [ opfor_at, [8.89, -16.68, 3.13], 201.77 ], + [ opfor_rifleman, [12.59, -14.27, 0.6], 288.05 ], + [ opfor_rifleman, [-20.21, 2.04, 0], 286.68 ], + [ opfor_machinegunner, [-19.96, 4.15, 0], 241.27 ], + [ opfor_marksman, [15.84, -14.74, 3.09], 124.01 ], + [ opfor_heavygunner, [17.02, 14.26, 4.35], 174.84 ], + [ opfor_marksman, [-16.98, 15.1, 4.35], 210.68 ], + [ opfor_sharpshooter, [16.58, 16.48, 4.35], 31.1 ], + [ opfor_machinegunner, [-15.08, -18.12, 4.35], 121.82 ], + [ opfor_heavygunner, [-17.42, 17.33, 4.35], 354.42 ], + [ opfor_sharpshooter, [-17.31, -18.53, 4.35], 265.56 ] +]; + +private _base_corners = [ + [35,35,0], + [35,-35,0], + [-35,-35,0], + [-35,35,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template5.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template5.sqf new file mode 100644 index 0000000..df1a589 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template5.sqf @@ -0,0 +1,72 @@ +private _objects_to_build = [ + [ "Land_HelipadCircle_F", [-1.31, 11.44, 0], 0 ], + [ opfor_transport_helo, [-1.31, 11.45, 0], 134.19 ], + [ "Land_Cargo_Patrol_V3_F", [17.36, 1.08, 0], 269.81 ], + [ "Land_Cargo_House_V3_F", [15.93, -7.13, 0], 90.12 ], + [ "Land_Cargo_HQ_V3_F", [-11.82, -13.91, 0], 89.97 ], + [ opfor_transport_truck, [-17.59, 5.76, -0.03], 310.87 ], + [ opfor_flag, [-20.4, -2.8, 0], 90 ], + [ "Land_PaperBox_open_full_F", [12.36, -16.46, 0], 228.14 ], + [ opfor_flag, [20.06, 6.22, 0], 90 ], + [ "Land_PaperBox_open_empty_F", [14.86, -16.08, 0], 2.94 ], + [ "Land_PaperBox_closed_F", [13.68, -18.27, 0], 287.62 ], + [ "Land_HBarrierBig_F", [-22.99, -3.72, 0], 89.34 ], + [ "CamoNet_OPFOR_open_F", [14.88, -18.51, 0], 0 ], + [ "Land_HBarrierBig_F", [22.88, 3.58, 0], 89.34 ], + [ opfor_mrap, [17.18, 16.24, 0.01], 326.13 ], + [ "Land_HBarrierBig_F", [23.08, -5.21, 0], 89.34 ], + [ "Land_HBarrierBig_F", [0.66, -24.24, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-8.2, -24.3, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-22.79, -12.51, 0], 89.34 ], + [ "Land_HBarrierBig_F", [9.52, -24.42, 0], 1.39 ], + [ "Land_HBarrierBig_F", [23.35, -14.06, 0], 89.34 ], + [ opfor_flag, [19.21, -21.72, 0], 90 ], + [ "Land_HBarrierBig_F", [-16.97, -24.38, 0], 0.36 ], + [ "Land_HBarrierBig_F", [18.28, -24.49, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-22.52, -21.36, 0], 89.34 ], + [ "Land_HBarrierBig_F", [22.45, -21.48, 0], 103.04 ] +]; + +private _objectives_to_build = [ + [ opfor_fuel_container, [-16.82, 17.67, -0.01], 47.97 ], + [ opfor_ammo_container, [-0.42, -3.26, 0.02], 104.66 ], + [ opfor_fuel_container, [-9.52, -0.47, -0.04], 295.86 ], + [ opfor_ammo_container, [2.85, -14.48, 0], 0.69 ] +]; + +private _defenders_to_build = [ + [ opfor_engineer, [2.32, 3.25, 0], 10.12 ], + [ opfor_engineer, [3.59, 3.89, 0], 288.05 ], + [ opfor_engineer, [2.31, 4.93, 0], 158.22 ], + [ opfor_rifleman, [3.96, -9.85, 0], 37.83 ], + [ opfor_machinegunner, [-9.04, -11.04, 3.13], 48.56 ], + [ opfor_team_leader, [-12.46, -12.21, 0.6], 288.05 ], + [ opfor_aa, [-14.62, -9.64, 3.13], 335.85 ], + [ opfor_sharpshooter, [17.7, 2.21, 4.35], 31.1 ], + [ opfor_aa, [-7.46, -16.48, 3.09], 124.01 ], + [ opfor_heavygunner, [18.14, -0.02, 4.35], 174.84 ], + [ opfor_rifleman, [-13.89, -11.76, 0.6], 129.9 ], + [ opfor_sentry, [-13.62, -13.03, 0.6], 53.89 ], + [ opfor_sentry, [10.86, -15.42, 0], 348.81 ], + [ opfor_sentry, [17.87, -6.07, 0.73], 294.41 ], + [ opfor_rifleman, [12.59, -14.14, 0], 288.05 ], + [ opfor_rifleman, [-10.49, -15.94, 0.6], 288.05 ], + [ opfor_sentry, [-12.03, -15.74, 0.6], 105.44 ], + [ opfor_sentry, [17.96, -8.4, 0.73], 294.41 ], + [ opfor_sentry, [-2.5, 20.13, 0], 288.05 ], + [ opfor_grenadier, [-5.17, 20.37, 0], 84.75 ], + [ opfor_engineer, [-17.83, 11.21, 0], 288.05 ], + [ opfor_at, [-13.21, -18.42, 3.13], 196.73 ], + [ opfor_sentry, [-20.27, 11.9, 0], 112.14 ], + [ opfor_sentry, [13.03, 19.64, 0], 348.81 ], + [ opfor_rifleman, [14.76, 20.92, 0], 288.05 ] +]; + +private _base_corners = [ + [30,40,0], + [30,-40,0], + [-30,-40,0], + [-30,40,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template6.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template6.sqf new file mode 100644 index 0000000..31a0d80 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template6.sqf @@ -0,0 +1,63 @@ +private _objects_to_build = [ + ["Land_HBarrier_Big_F", [1.26, 3.05, 0.00], 270.00], + ["Land_HBarrierWall_corridor_F", [3.15, -3.47, 0.00], 0.00], + ["Land_HBarrier_3_F", [6.63, -1.77, 0.00], 0.00], + ["Land_HBarrier_Big_F", [1.30, -10.24, 0.00], 270.00], + ["Land_HBarrier_3_F", [-11.31, -3.66, 0.00], 0.00], + ["Land_HBarrier_3_F", [10.17, -1.77, 0.00], 0.00], + ["Land_HBarrier_Big_F", [1.30, 11.84, 0.00], 270.00], + ["Land_HBarrier_3_F", [10.39, -5.08, 0.00], 0.00], + ["Land_HBarrier_5_F", [-17.00, -3.61, 0.00], 0.00], + ["Land_HBarrier_3_F", [13.91, -4.95, 0.00], 0.00], + ["Land_HBarrier_Big_F", [4.46, -15.53, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [14.31, -9.82, 0.00], 270.00], + ["Land_BarGate_F", [-2.24, -15.93, 0.00], 0.00], + ["Land_HBarrier_Big_F", [2.95, 17.31, 0.00], 0.00], + ["Land_HBarrier_Big_F", [17.88, -2.95, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-5.57, 17.11, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-13.93, 12.36, 0.00], 180.00], + ["Land_HBarrier_Big_F", [17.64, 5.67, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-18.70, -3.80, 0.00], 270.00], + ["Land_HBarrier_Big_F", [12.73, -15.14, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-19.06, 4.79, 0.00], 270.00], + ["Land_HBarrier_Big_F", [11.68, 17.41, 0.00], 0.00], + ["Land_HBarrier_Big_F", [18.24, -11.71, 0.00], 270.00], + ["Land_HBarrierTower_F", [-14.27, -16.29, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-14.18, 16.76, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-18.39, -12.33, 0.00], 270.00], + ["Land_HBarrier_Big_F", [17.25, 14.49, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-19.27, 13.26, 0.00], 270.00] +]; + +private _objectives_to_build = [ + [opfor_fuel_truck, [-13.32, -0.24, 0.00], 270.00], + [opfor_ammo_truck, [-13.24, 3.86, 0.00], 270.00], + [opfor_fuel_container, [6.71, 13.81, 0.00], 270.00], + [opfor_ammo_container, [7.09, 1.62, 0.00], 270.00], + [opfor_fuel_container, [6.87, 7.71, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_machinegunner, [3.87, -7.16, 0.00], 102.55], + [opfor_rpg, [4.48, 10.62, 0.00], 90.00], + [opfor_rpg, [-1.45, 14.18, 0.00], 199.35], + [opfor_sentry, [4.03, -13.81, 0.00], 45.23], + [opfor_engineer, [14.05, -8.39, 4.35], 58.33], + [opfor_grenadier, [-16.46, -5.86, 0.00], 90.00], + [opfor_machinegunner, [-16.45, 6.53, 0.00], 90.00], + [opfor_sentry, [-12.40, 12.03, 4.35], 0.00], + [opfor_rifleman, [14.11, -11.35, 4.35], 134.48], + [opfor_rifleman, [-15.71, 12.02, 4.35], 355.76], + [opfor_rifleman, [14.62, 15.10, 0.00], 180.00], + [opfor_rifleman, [-13.29, -17.54, 2.28], 163.03], + [opfor_heavygunner, [-14.64, -17.31, 2.28], 180.00] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template7.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template7.sqf new file mode 100644 index 0000000..82194c4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template7.sqf @@ -0,0 +1,70 @@ +private _objects_to_build = [ + ["Land_HBarrier_Big_F", [-0.69, -3.60, 0.00], 270.00], + ["Land_HBarrierWall4_F", [-4.80, 0.99, 0.00], 180.00], + ["Land_HBarrier_5_F", [4.39, -1.64, 0.00], 0.00], + ["Land_HBarrier_5_F", [4.55, -7.50, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-8.78, 2.77, 0.00], 270.00], + ["Land_HBarrier_5_F", [10.12, -1.58, 0.00], 0.00], + ["Land_Cargo_House_V3_F", [10.28, -6.52, 0.00], 0.00], + ["Land_HBarrierWall_corner_F", [0.68, -13.90, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-9.26, 11.33, 0.00], 270.00], + ["Land_Cargo_Tower_V3_F", [-1.90, 7.25, 0.00], 180.00], + ["Land_HBarrier_Big_F", [16.38, -5.51, 0.00], 270.00], + ["Land_HBarrier_Big_F", [4.00, 16.85, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-4.72, 16.74, 0.00], 0.00], + ["Land_BarGate_F", [-3.40, -15.97, 0.00], 0.00], + ["Land_HBarrier_Big_F", [2.53, -17.80, 0.00], 0.00], + ["Land_HBarrier_Big_F", [11.20, -17.64, 0.00], 0.00], + ["Land_HBarrierWall_corner_F", [-13.71, -15.85, 0.00], 90.00], + [opfor_flag, [13.91, -15.57, 0.00], 0.00], + ["Land_HBarrier_Big_F", [12.50, 17.11, 0.00], 0.00], + ["Land_HBarrier_Big_F", [21.62, -1.75, 0.00], 0.00], + ["Land_HBarrier_Big_F", [16.65, -14.10, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-14.65, 16.14, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-22.73, -0.69, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-21.66, -10.67, 0.00], 90.00], + ["Land_HBarrier_Big_F", [24.93, 3.64, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-22.27, 12.82, 0.00], 133.60], + ["Land_HBarrier_Big_F", [-25.24, 4.73, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-19.88, -17.77, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-25.81, -6.16, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.92, 17.41, 0.00], 0.00], + ["Land_HBarrier_Big_F", [24.76, 12.32, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-25.42, -14.65, 0.00], 270.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_truck, [-13.14, 10.16, 0.00], 0.00], + [opfor_fuel_container, [18.22, 5.43, 0.00], 270.00], + [opfor_fuel_container, [17.86, 11.39, 0.00], 270.00], + [opfor_fuel_truck, [-17.96, 9.56, 0.00], 0.00] +]; + +private _defenders_to_build = [ + [opfor_heavygunner, [-5.65, 0.87, 1.25], 196.97], + [opfor_rifleman, [8.77, -4.14, 0.73], 133.49], + [opfor_grenadier, [12.04, -4.37, 0.73], 205.94], + [opfor_heavygunner, [0.80, -16.01, 1.25], 224.40], + [opfor_rifleman, [-4.46, 5.64, 15.37], 0.00], + [opfor_rifleman, [1.55, 11.61, 12.77], 202.68], + [opfor_at, [1.20, 3.98, 17.89], 176.06], + [opfor_rifleman, [10.76, -15.11, 0.00], 291.66], + [opfor_sentry, [-16.09, 10.06, 0.00], 184.01], + [opfor_rifleman, [18.18, 8.32, 0.00], 264.25], + [opfor_marksman, [-5.72, 10.17, 17.89], 287.12], + [opfor_rifleman, [-14.59, -16.40, 1.24], 156.40], + [opfor_medic, [22.50, 1.32, 0.00], 275.86], + [opfor_rifleman, [-23.11, 1.83, 0.00], 77.87], + [opfor_rifleman, [-21.51, -9.11, 4.35], 279.37], + [opfor_sentry, [-23.58, -2.96, 0.00], 118.12], + [opfor_marksman, [-21.28, -12.32, 4.35], 232.31] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template8.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template8.sqf new file mode 100644 index 0000000..70aaca5 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template8.sqf @@ -0,0 +1,85 @@ +private _objects_to_build = [ + ["Land_BarGate_F", [25.69, 12.03, 0.00], 257.61], + ["Land_Cargo_House_V3_F", [6.05, 17.88, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-18.68, 18.47, 0.00], 180.00], + ["Land_Cargo_Patrol_V3_F", [23.76, -10.91, 0.00], 270.00], + ["Land_Cargo_Tower_V3_F", [-4.99, -5.71, 0.00], 180.00], + ["Land_HBarrier_Big_F", [-10.92, 22.43, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-11.55, -10.66, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-11.58, -2.00, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-12.47, -28.10, 0.00], 25.81], + ["Land_HBarrier_Big_F", [-12.81, 16.72, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-13.96, 3.47, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-19.69, 22.10, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-19.71, -23.42, 0.00], 222.44], + ["Land_HBarrier_Big_F", [-2.15, 22.72, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-22.39, 3.29, 0.00], 180.12], + ["Land_HBarrier_Big_F", [-25.43, -16.67, 0.00], 63.49], + ["Land_HBarrier_Big_F", [-26.11, 17.30, 0.00], 299.18], + ["Land_HBarrier_Big_F", [-27.46, -8.47, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-27.75, 0.13, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-28.03, 8.89, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-3.88, -30.03, 0.00], 6.18], + ["Land_HBarrier_Big_F", [-5.77, 3.82, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-6.24, -13.67, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-7.83, -24.34, 0.00], 270.00], + ["Land_HBarrier_Big_F", [1.02, -18.87, 0.00], 0.00], + ["Land_HBarrier_Big_F", [11.27, 17.63, 0.00], 270.00], + ["Land_HBarrier_Big_F", [11.46, -0.32, 0.00], 270.00], + ["Land_HBarrier_Big_F", [11.64, -11.36, 0.00], 270.00], + ["Land_HBarrier_Big_F", [11.87, -20.07, 0.00], 270.00], + ["Land_HBarrier_Big_F", [13.46, -27.49, 0.00], 341.74], + ["Land_HBarrier_Big_F", [14.74, -5.71, 0.00], 0.00], + ["Land_HBarrier_Big_F", [15.58, 22.08, 0.00], 198.74], + ["Land_HBarrier_Big_F", [2.81, 3.93, 0.00], 0.00], + ["Land_HBarrier_Big_F", [20.94, -23.33, 0.00], 324.95], + ["Land_HBarrier_Big_F", [22.75, 17.19, 0.00], 230.73], + ["Land_HBarrier_Big_F", [23.45, -5.60, 0.00], 0.00], + ["Land_HBarrier_Big_F", [26.55, -16.84, 0.00], 299.95], + ["Land_HBarrier_Big_F", [28.45, -0.09, 0.00], 263.54], + ["Land_HBarrier_Big_F", [28.92, -8.70, 0.00], 274.95], + ["Land_HBarrier_Big_F", [4.95, -29.68, 0.00], 354.59], + ["Land_HBarrier_Big_F", [6.30, -1.30, 0.00], 270.00], + ["Land_HBarrier_Big_F", [6.52, -9.98, 0.00], 270.00], + ["Land_HBarrier_Big_F", [6.78, -18.56, 0.00], 270.00], + ["Land_HBarrier_Big_F", [6.93, 23.16, 0.00], 180.13], + [opfor_flag, [14.12, 19.01, 0.00], 0.00], + [opfor_mrap_armed, [23.49, 2.01, -0.00], 0.00], + [opfor_mrap, [16.54, 1.76, -0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [-20.65, -16.90, 0.00], 326.51], + [opfor_ammo_container, [-13.62, -23.20, 0.00], 306.22], + [opfor_ammo_truck, [-9.16, 16.70, 0.00], 0.00], + [opfor_fuel_container, [-18.07, -7.63, 0.00], 270.00], + [opfor_fuel_truck, [-4.62, 16.86, 0.00], 0.00], + [opfor_fuel_container, [-18.02, -2.18, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [1.33, 20.43, 0.00], 224.42], + [opfor_heavygunner, [-9.34, -1.30, 17.89], 0.00], + [opfor_medic, [-15.26, 18.70, 0.00], 198.18], + [opfor_officer, [4.52, 20.27, 0.73], 121.81], + [opfor_sharpshooter, [23.62, -12.61, 4.35], 90.59], + [opfor_rifleman, [-2.12, -1.42, 12.77], 205.28], + [opfor_rifleman, [-20.20, 18.70, 4.35], 0.00], + [opfor_rifleman, [-6.93, -5.71, 15.37], 0.00], + [opfor_rifleman, [20.35, -0.20, 0.00], 0.00], + [opfor_rifleman, [3.38, 0.09, 0.00], 182.65], + [opfor_rpg, [0.18, -8.11, 17.79], 129.88], + [opfor_sentry, [-25.60, 0.02, 0.00], 156.91], + [opfor_marksman, [-17.47, 18.68, 4.35], 0.00], + [opfor_marksman, [23.70, -9.01, 4.35], 74.26], + [opfor_grenadier, [14.67, -8.28, 0.00], 160.61] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/default/template9.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/default/template9.sqf new file mode 100644 index 0000000..d12a8cd --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/default/template9.sqf @@ -0,0 +1,66 @@ +private _objects_to_build = [ + [opfor_flag, [-19.05, -5.29, 0.00], 0.00], + [opfor_flag, [2.55, 4.91, 0.00], 0.00], + ["Land_BarGate_F", [-18.53, 3.79, 0.00], 270.00], + ["Land_Cargo_HQ_V3_F", [8.99, 1.74, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-3.15, 24.19, 0.00], 180.00], + ["Land_HBarrier_Big_F", [-11.04, -17.98, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-11.45, 19.44, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-16.53, -7.99, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-16.80, 9.31, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-2.23, -17.62, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-3.20, 28.38, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-8.29, 25.01, 0.00], 270.00], + ["Land_HBarrier_Big_F", [14.65, 20.26, 0.00], 0.00], + ["Land_HBarrier_Big_F", [15.06, -17.16, 0.00], 0.00], + ["Land_HBarrier_Big_F", [2.51, 25.17, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.34, 10.15, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.43, 1.59, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.60, -7.15, 0.00], 270.00], + ["Land_HBarrier_Big_F", [5.93, 20.00, 0.00], 0.00], + ["Land_HBarrier_Big_F", [6.34, -17.42, 0.00], 0.00], + ["Land_HBarrierTower_F", [-17.31, -15.72, 0.00], 90.00], + ["Land_HBarrierTower_F", [-17.88, 17.11, 0.00], 90.00], + ["Land_HBarrierTower_F", [21.12, 18.04, 0.00], 270.00], + ["Land_HBarrierTower_F", [21.43, -14.52, 0.00], 270.00], + [opfor_mrap, [-12.85, -10.52, -0.00], 180.00], + [opfor_transport_truck, [-8.65, -8.70, 0.00], 180.00] +]; +private _objectives_to_build = [ + [opfor_ammo_container, [12.70, -11.73, 0.00], 0.00], + [opfor_ammo_container, [8.19, -11.71, 0.00], 0.00], + [opfor_fuel_container, [12.28, 15.45, 0.00], 0.00], + [opfor_fuel_container, [7.56, 15.24, 0.00], 0.00], + [opfor_ammo_truck, [-12.86, 10.58, 0.00], 0.00], + [opfor_fuel_truck, [-8.32, 10.38, 0.00], 0.00] +]; +private _defenders_to_build = [ + [opfor_engineer, [-10.53, -4.64, 0.00], 0.00], + [opfor_heavygunner, [-18.74, -15.05, 2.28], 270.00], + [opfor_heavygunner, [22.80, 18.84, 2.28], 0.00], + [opfor_heavygunner, [6.31, -14.37, 0.00], 318.61], + [opfor_medic, [12.50, 1.07, 0.60], 244.47], + [opfor_squad_leader, [7.16, -3.84, 0.60], 308.87], + [opfor_at, [5.57, 4.09, 3.13], 270.00], + [opfor_rifleman, [-10.39, 6.70, 0.00], 181.51], + [opfor_rifleman, [-18.42, -16.71, 2.28], 263.48], + [opfor_rifleman, [-19.11, 5.66, 0.00], 251.10], + [opfor_rifleman, [-19.58, 16.36, 2.28], 262.09], + [opfor_rifleman, [-4.32, 24.55, 4.35], 0.00], + [opfor_rifleman, [22.19, -15.53, 2.28], 155.63], + [opfor_rifleman, [23.32, -13.89, 2.28], 84.56], + [opfor_rifleman, [5.96, -3.84, 3.13], 265.58], + [opfor_sentry, [-20.00, 17.92, 2.28], 0.00], + [opfor_sentry, [10.18, 11.45, 0.00], 214.49], + [opfor_marksman, [-2.31, 24.52, 4.35], 0.00], + [opfor_grenadier, [-6.11, -14.77, 0.00], 0.00], + [opfor_grenadier, [22.96, 17.33, 2.28], 82.66] +]; +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/export_template.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/export_template.sqf new file mode 100644 index 0000000..9668ebe --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/export_template.sqf @@ -0,0 +1,84 @@ +/* + --- USAGE --- + + Place this file in the Eden mission folder where you want to build your FOB templates. + After building your FOB in Eden, place down a center object in the middle of your FOB. + I recommend a small cluttercutter object (Land_ClutterCutter_small_F) for this. + + In the init field of the center object add: + _ = [this] execVM "export_template.sqf"; + + Then preview the mission in eden to execute the script. + + The fetched information can be found in your client rpt (between the START and END line) for copy/paste. + Ref for finding your RPT file: https://community.bistudio.com/wiki/Crash_Files#Arma_3 + + --- RECOMMENDATIONS --- + + !IMPORTANT! Don't (!) exceed an area with a radius of 35m for the FOB. !IMPORTANT! + + You could create a trigger with that radius and use it as "build area helper". + After exporting the template, you should replace possible placed vehicles or crates etc. with the Liberation variables. + Have a look at the other templates to get an idea of it. +*/ + +params [ + ["_center", player, [objNull]] +]; + +diag_log text ""; +diag_log text ""; +diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- START ----------"; + +// Fetch all objects +diag_log text ""; +diag_log text "private _objects_to_build = ["; +{ + diag_log text format [ + " [""%1"", [%2, %3, %4], %5],", + typeof _x, + ((getpos _x select 0) - (getpos _center select 0)) toFixed 2, + ((getpos _x select 1) - (getpos _center select 1)) toFixed 2, + (getposatl _x select 2) toFixed 2, + (getdir _x) toFixed 2 + ]; +} forEach ((nearestObjects [_center, ["All"], 40]) - ((nearestObjects [_center, ["Man","Animal"], 40]) + [_center])); +diag_log text "];"; + +diag_log text ""; +diag_log text "private _objectives_to_build = ["; +diag_log text " // Move all things which should be destroyed to accomplish the mission from the above to this array"; +diag_log text "];"; + +// Fetch all infantry/guards +diag_log text ""; +diag_log text "private _defenders_to_build = ["; +{ + diag_log text format [ + " [""%1"", [%2, %3, %4], %5],", + typeof _x, + ((getpos _x select 0) - (getpos _center select 0)) toFixed 2, + ((getpos _x select 1) - (getpos _center select 1)) toFixed 2, + (getposatl _x select 2) toFixed 2, + (getdir _x) toFixed 2 + ]; +} forEach ((nearestObjects [_center, ["Man"], 40]) - ((nearestObjects [_center, [ "Animal" ], 40]) + [_center])); +diag_log text "];"; + +diag_log text ""; +diag_log text "private _base_corners = ["; +diag_log text " [40, 40, 0],"; +diag_log text " [40, -40, 0],"; +diag_log text " [-40, -40, 0],"; +diag_log text " [-40, 40, 0],"; +diag_log text "];"; + +diag_log text ""; +diag_log text "[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners]"; + +diag_log text ""; +diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- END ----------"; +diag_log text ""; +diag_log text ""; + +true diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template1.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template1.sqf new file mode 100644 index 0000000..1548bf8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template1.sqf @@ -0,0 +1,57 @@ +private _objects_to_build = [ + ["csj_VCshelter01", [-3.22, -7.46, 0.00], 180.00], + ["Land_Campfire_burning", [-1.45, -2.75, -0.04], 0.00], + ["LAND_uns_firepit1", [-5.16, 6.73, 0.00], 0.00], + ["LAND_uns_vcshelter4", [13.86, 2.46, 0.00], 270.00], + ["LAND_uns_vcshelter4", [13.93, -2.34, 0.00], 270.00], + ["LAND_uns_vcshelter6", [-10.17, 4.53, 0.00], 61.07], + ["LAND_uns_vcshelter6", [-3.45, 11.60, 0.00], 0.00], + ["LAND_uns_vcshelter6", [-8.32, 9.97, 0.00], 153.44], + ["LAND_uns_vctower1", [10.47, -11.34, 0.00], 324.04], + ["LAND_uns_vctower1", [12.42, 14.10, 0.00], 211.82], + ["LAND_uns_vctower2", [-11.86, -6.29, 0.00], 57.67], + [opfor_mrap_armed, [5.61, 12.49, -0.00], 90.00], + [opfor_flag, [0.39, -10.73, 0.00], 0.00], + ["Vil_Fence", [-13.37, 11.66, 0.00], 270.00], + ["Vil_Fence", [-13.42, 5.62, 0.00], 270.00], + ["Vil_Fence", [-2.75, 15.24, 0.00], 0.00], + ["Vil_Fence", [-2.98, -11.88, 0.00], 0.00], + ["Vil_Fence", [-8.69, 15.22, 0.00], 323.79], + ["Vil_Fence", [17.07, 6.81, 0.00], 270.00], + ["Vil_Fence", [17.13, 0.67, 0.00], 270.00], + ["Vil_Fence", [2.98, -11.87, 0.00], 0.00], + ["Vil_Fence", [3.49, 15.37, 0.00], 0.00], + ["Vil_Fence", [9.04, -11.90, 0.00], 0.00], + ["Vil_Fence", [9.63, 15.27, 0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_fuel_container, [13.71, -1.74, 0.00], 270.00], + [opfor_ammo_container, [13.61, 3.38, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [4.25, 10.00, 0.00], 176.53], + [opfor_heavygunner, [12.59, 14.31, 4.85], 35.26], + [opfor_medic, [-2.52, -5.68, 0.00], 209.23], + [opfor_officer, [-2.23, -8.35, 0.00], 336.06], + [opfor_rifleman, [-12.16, 0.48, 0.00], 258.30], + [opfor_rifleman, [-4.69, -7.79, 0.00], 23.76], + [opfor_rifleman, [-4.84, 8.98, 0.00], 165.32], + [opfor_rifleman, [1.21, -9.56, 0.00], 157.97], + [opfor_rifleman, [10.06, 1.24, 0.00], 255.76], + [opfor_rifleman, [10.65, -11.13, 4.86], 155.65], + [opfor_rifleman, [15.96, 6.35, 0.00], 78.60], + [opfor_rpg, [-7.23, 13.95, 0.00], 312.21], + [opfor_sentry, [-7.64, 5.85, 0.00], 99.50], + [opfor_marksman, [-12.80, -6.27, 4.80], 248.21] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template2.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template2.sqf new file mode 100644 index 0000000..db815f7 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template2.sqf @@ -0,0 +1,70 @@ +private _objects_to_build = [ + ["csj_VCbunk01", [-17.58, -2.59, 0.00], 90.00], + ["csj_VCshelter01", [-14.59, 14.24, 0.00], 332.83], + ["csj_VCshelter01", [7.63, 12.90, 0.00], 20.24], + ["Land_Campfire_burning", [-3.66, 1.91, -0.03], 0.00], + ["LAND_uns_crate6", [-14.81, 15.10, 0.00], 149.10], + ["LAND_uns_eastbunker2", [15.23, -13.65, 0.00], 301.85], + ["LAND_uns_eastbunker2", [16.35, 4.79, 0.00], 252.88], + ["LAND_uns_vcshelter1", [-1.84, 5.94, 0.00], 0.00], + ["LAND_uns_vcshelter1", [-5.30, 5.93, 0.00], 0.00], + ["LAND_uns_vcshelter4", [-4.57, -12.19, 0.00], 0.00], + ["LAND_uns_vcshelter4", [0.56, -12.12, 0.00], 0.00], + ["LAND_uns_vcshelter4", [5.59, -11.87, 0.00], 0.00], + ["LAND_uns_vctower1", [-10.29, -12.49, 0.00], 22.32], + ["LAND_uns_villseat", [-1.36, 5.83, 0.00], 5.87], + ["LAND_uns_villseat", [-3.15, 5.83, 0.00], 355.74], + ["LAND_uns_villseat", [-4.65, 5.90, 0.00], 351.41], + ["LAND_uns_villseat", [-6.29, 5.83, 0.00], 0.00], + ["LAND_uns_villtable1a", [-5.51, 5.85, 0.00], 0.00], + ["uns_crate1", [-13.79, 15.85, 0.00], 163.23], + [opfor_flag, [14.77, -9.94, 0.00], 0.00], + [opfor_flag, [15.10, 1.55, 0.00], 0.00], + ["uns_villtable1", [-2.26, 5.86, 0.00], 0.00], + ["Vil_Fence", [-0.27, 16.94, 0.00], 205.79], + ["Vil_Fence", [-0.65, -15.95, 0.00], 0.00], + ["Vil_Fence", [-11.76, 15.16, 0.00], 165.34], + ["Vil_Fence", [-13.68, -10.35, 0.00], 60.18], + ["Vil_Fence", [-16.58, 5.64, 0.00], 270.00], + ["Vil_Fence", [-16.67, 5.85, 0.00], 90.00], + ["Vil_Fence", [-5.97, 16.63, 0.00], 177.63], + ["Vil_Fence", [10.30, 11.70, 0.00], 238.67], + ["Vil_Fence", [12.19, -14.97, 0.00], 349.45], + ["Vil_Fence", [5.31, -16.06, 0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_truck, [2.50, -6.89, 0.00], 90.00], + [opfor_fuel_container, [-3.77, -11.61, 0.00], 0.00], + [opfor_fuel_container, [1.46, -11.62, 0.00], 0.00], + [opfor_fuel_container, [6.37, -11.54, 0.00], 0.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [-1.39, -7.99, 0.00], 320.58], + [opfor_heavygunner, [-18.11, -3.26, 0.00], 253.65], + [opfor_medic, [-12.55, 13.97, 0.00], 177.21], + [opfor_medic, [-3.45, 15.76, 0.00], 0.00], + [opfor_rifleman, [-14.83, 13.12, 0.00], 138.45], + [opfor_rifleman, [-18.42, -1.54, 0.00], 319.02], + [opfor_rifleman, [-6.20, -14.27, 0.00], 244.68], + [opfor_rifleman, [11.79, 7.26, 0.00], 58.15], + [opfor_rifleman, [13.05, -8.81, 0.00], 39.37], + [opfor_rpg, [16.12, -13.59, 0.00], 70.33], + [opfor_sentry, [-11.88, 0.79, 0.00], 0.00], + [opfor_sentry, [-5.27, 3.62, 0.00], 143.78], + [opfor_marksman, [-10.45, -12.21, 4.84], 206.60], + [opfor_squad_leader, [7.02, 13.98, 0.00], 190.09], + [opfor_team_leader, [9.40, 12.45, 0.00], 240.68], + [opfor_grenadier, [-1.73, 3.11, 0.00], 215.79], + [opfor_grenadier, [16.61, 5.00, 0.00], 71.25] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template3.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template3.sqf new file mode 100644 index 0000000..e76f115 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template3.sqf @@ -0,0 +1,64 @@ +private _objects_to_build = [ + ["csj_VCbunk01", [2.11, 12.76, 0.00], 180.00], + ["Land_Campfire_burning", [-9.11, 3.99, 0.00], 0.00], + ["LAND_uns_eastbunker1", [-16.60, -12.28, 0.00], 60.70], + ["LAND_uns_eastbunker1", [16.15, 13.08, 0.00], 245.97], + ["LAND_uns_eastbunker2", [-10.93, 18.73, 0.00], 164.64], + ["LAND_uns_eastbunker2", [10.31, -16.80, 0.00], 323.39], + ["LAND_uns_vcshelter2", [-10.73, 6.26, 0.00], 9.31], + ["LAND_uns_vcshelter2", [-11.45, 1.27, 0.00], 347.58], + ["LAND_uns_vcshelter2", [-7.96, 8.47, 0.00], 63.79], + ["LAND_uns_vcshelter4", [-5.80, -14.27, 0.00], 270.00], + ["LAND_uns_vcshelter4", [-5.87, -9.61, 0.00], 270.00], + ["LAND_uns_vcshelter4", [1.77, -14.25, 0.00], 270.00], + ["LAND_uns_vcshelter4", [1.78, -9.53, 0.00], 270.00], + [opfor_flag, [-15.79, -3.95, 0.00], 0.00], + [opfor_flag, [16.39, 1.56, 0.00], 0.00], + ["Vil_Fence", [-0.49, -16.46, 0.00], 0.00], + ["Vil_Fence", [-1.22, 16.53, 0.00], 0.00], + ["Vil_Fence", [-15.78, 9.56, 0.00], 114.93], + ["Vil_Fence", [-17.10, -2.51, 0.00], 86.64], + ["Vil_Fence", [-17.32, 3.62, 0.00], 102.65], + ["Vil_Fence", [-6.45, -16.40, 0.00], 0.00], + ["Vil_Fence", [12.93, -12.98, 0.00], 107.43], + ["Vil_Fence", [16.42, 2.24, 0.00], 81.60], + ["Vil_Fence", [4.74, 16.50, 0.00], 0.00], + ["Vil_Fence", [4.98, 16.37, 0.00], 190.02], + ["Vil_Fence", [5.42, -16.54, 0.00], 0.00] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [1.76, -8.89, 0.00], 270.00], + [opfor_ammo_container, [1.85, -13.44, 0.00], 270.00], + [opfor_fuel_container, [-6.11, -13.37, 0.00], 270.00], + [opfor_fuel_container, [-6.15, -8.81, 0.00], 270.00] + ]; + +private _defenders_to_build = [ + [opfor_engineer, [14.44, 1.66, 0.00], 124.27], + [opfor_heavygunner, [3.22, 13.79, 0.00], 0.00], + [opfor_medic, [2.37, 3.09, 0.00], 86.61], + [opfor_officer, [0.73, 13.99, 0.00], 154.25], + [opfor_rifleman, [-11.72, 19.08, 0.00], 308.60], + [opfor_rifleman, [-14.81, -10.93, 0.00], 297.93], + [opfor_rifleman, [-2.47, -11.92, 0.00], 0.00], + [opfor_rifleman, [11.05, -16.87, 0.00], 103.44], + [opfor_rifleman, [13.61, -6.92, 0.00], 70.80], + [opfor_rifleman, [14.00, 11.59, 0.00], 107.80], + [opfor_rpg, [9.81, -17.28, 0.00], 183.70], + [opfor_sentry, [-11.14, 1.90, 0.00], 64.87], + [opfor_sentry, [-2.53, 15.10, 0.00], 0.00], + [opfor_sentry, [3.43, 0.56, 0.00], 0.00], + [opfor_marksman, [-10.66, 19.57, 0.00], 0.00], + [opfor_grenadier, [-10.48, 6.93, 0.00], 121.83], + [opfor_grenadier, [14.28, 12.52, 0.00], 0.00] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template4.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template4.sqf new file mode 100644 index 0000000..fce59b0 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template4.sqf @@ -0,0 +1,67 @@ +private _objects_to_build = [ + ["Land_Campfire_burning", [-2.54, 0.11, -0.03], 0.00], + ["LAND_uns_vcshelter1", [-3.90, 0.16, 0.00], 0.00], + ["LAND_uns_vcshelter2", [5.75, 9.72, 0.00], 90.00], + ["LAND_uns_vcshelter2", [9.24, 6.72, 0.00], 175.56], + ["LAND_uns_vctower1", [-13.31, 13.96, 0.00], 144.79], + ["LAND_uns_vctower1", [-14.13, -13.21, 0.00], 42.90], + ["LAND_uns_vctower1", [12.95, -12.88, 0.00], 318.28], + ["LAND_uns_vctower1", [13.68, 14.05, 0.00], 224.50], + [opfor_mrap, [9.04, -7.43, -0.00], 270.00], + [opfor_flag, [-6.05, -13.43, 0.00], 0.00], + [opfor_flag, [0.55, 14.33, 0.00], 0.00], + ["Vil_Fence", [-14.66, 12.34, 0.00], 270.00], + ["Vil_Fence", [-14.71, 6.41, 0.00], 270.00], + ["Vil_Fence", [-14.77, 0.42, 0.00], 270.00], + ["Vil_Fence", [-14.86, -5.61, 0.00], 270.00], + ["Vil_Fence", [-6.15, 14.69, 0.00], 0.00], + ["Vil_Fence", [-6.50, -14.03, 0.00], 0.00], + ["Vil_Fence", [11.80, -13.94, 0.00], 0.00], + ["Vil_Fence", [12.15, 14.78, 0.00], 0.00], + ["Vil_Fence", [14.65, -5.31, 0.00], 270.00], + ["Vil_Fence", [14.74, 0.72, 0.00], 270.00], + ["Vil_Fence", [14.79, 6.71, 0.00], 270.00], + ["Vil_Fence", [14.85, 12.65, 0.00], 270.00], + ["Vil_Fence", [5.86, -13.88, 0.00], 0.00], + ["Vil_Fence", [6.21, 14.84, 0.00], 0.00], + ["wx_chair", [-3.49, 1.43, 0.00], 322.25], + ["wx_chair", [-4.20, -0.30, 0.00], 283.18] +]; + +private _objectives_to_build = [ + [opfor_ammo_truck, [9.96, -2.73, 0.00], 270.00], + [opfor_fuel_truck, [10.24, 2.73, 0.00], 270.00], + [opfor_ammo_container, [-10.12, -7.24, 0.00], 270.00], + [opfor_ammo_container, [-9.74, -2.72, 0.00], 270.00], + [opfor_fuel_container, [-9.75, 2.07, 0.00], 270.00], + [opfor_fuel_container, [-9.82, 6.30, 0.00], 270.00] +]; + +private _defenders_to_build = [ + [opfor_engineer, [12.94, -4.11, 0.00], 93.06], + [opfor_heavygunner, [-13.52, -13.88, 4.88], 186.59], + [opfor_medic, [8.98, 11.77, 0.00], 210.35], + [opfor_rifleman, [-13.37, 0.92, 0.00], 271.85], + [opfor_rifleman, [-13.78, 13.34, 4.87], 235.25], + [opfor_rifleman, [-4.09, 0.81, 0.00], 114.75], + [opfor_rifleman, [-6.94, 13.46, 0.00], 0.00], + [opfor_rifleman, [14.09, 13.37, 4.83], 98.03], + [opfor_at, [6.97, 0.37, 0.00], 285.40], + [opfor_sentry, [-14.61, -12.85, 4.83], 239.93], + [opfor_sentry, [-4.64, -1.39, 0.00], 147.93], + [opfor_sentry, [12.63, -13.31, 4.83], 197.32], + [opfor_marksman, [-13.29, 14.03, 4.85], 323.41], + [opfor_marksman, [12.96, 14.41, 4.87], 0.00], + [opfor_marksman, [13.41, -12.52, 4.86], 126.65], + [opfor_squad_leader, [9.30, 8.28, 0.00], 250.30], + [opfor_grenadier, [1.15, -12.96, 0.00], 206.96] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template5.sqf b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template5.sqf new file mode 100644 index 0000000..7711c6c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/fob_templates/unsung/template5.sqf @@ -0,0 +1,80 @@ +private _objects_to_build = [ + ["csj_VCbunk01", [-2.92, -19.96, 0.00], 17.74], + ["csj_VCbunk01", [18.36, -8.12, 0.00], 284.30], + ["csj_VCshelter01", [-12.86, -11.05, 0.00], 238.31], + ["csj_VCshelter01", [-15.63, -5.00, 0.00], 253.72], + ["csj_VCshelter01", [-16.15, 1.49, 0.00], 269.83], + ["Land_Campfire_burning", [-6.25, -5.76, 0.00], 0.00], + ["Land_CongCage", [12.43, -13.26, 0.00], 34.77], + ["Land_CongCage", [13.73, -11.25, 0.00], 19.58], + ["LAND_uns_vcshelter4", [12.02, 7.05, 0.00], 243.49], + ["LAND_uns_vcshelter4", [14.64, 1.79, 0.00], 248.42], + ["LAND_uns_vcshelter4", [8.44, 12.23, 0.00], 222.74], + ["LAND_uns_vctower1", [-16.64, 9.00, 0.00], 88.93], + ["LAND_uns_vctower1", [0.36, 19.12, 0.00], 179.83], + ["LAND_uns_vctower2", [-10.19, 17.03, 0.00], 138.17], + ["LAND_uns_villseat", [-3.60, -1.42, 0.00], 353.67], + ["LAND_uns_villseat", [-3.72, 2.47, 0.00], 173.03], + ["LAND_uns_villseat", [-5.30, -1.47, 0.00], 0.00], + ["LAND_uns_villseat", [-5.43, 2.58, 0.00], 355.54], + ["LAND_uns_villseat", [-7.23, 2.51, 0.00], 4.85], + ["LAND_uns_villseat", [-7.24, -1.44, 0.00], 5.24], + ["LAND_uns_villseat", [-9.06, 2.52, 0.00], 355.69], + ["LAND_uns_villseat", [-9.11, -1.45, 0.00], 4.71], + [opfor_mrap, [-3.07, 15.27, -0.00], 89.49], + ["uns_bench1", [-4.67, -6.81, 0.00], 30.92], + ["uns_bench1", [-7.78, -7.16, 0.00], 136.72], + [opfor_flag, [12.70, -15.73, 0.00], 0.00], + [opfor_flag, [4.94, -19.60, 0.00], 0.00], + ["uns_villtable1", [-4.48, -1.54, 0.00], 0.00], + ["uns_villtable1", [-4.62, 2.33, 0.00], 0.00], + ["uns_villtable1", [-8.15, 2.62, 0.00], 0.00], + ["uns_villtable1", [-8.18, -1.47, 0.00], 0.00], + ["Vil_Fence", [-16.69, 12.13, 0.00], 129.93], + ["Vil_Fence", [-2.38, 19.26, 0.00], 0.67], + ["Vil_Fence", [-5.93, -17.85, 0.00], 36.44], + ["Vil_Fence", [12.36, 14.38, 0.00], 232.54], + ["Vil_Fence", [16.06, 9.59, 0.00], 246.56], + ["Vil_Fence", [16.91, -11.44, 0.00], 307.87], + ["Vil_Fence", [18.50, 4.07, 0.00], 261.70], + ["Vil_Fence", [5.68, -20.35, 0.00], 0.67], + ["Vil_Fence", [7.69, 18.17, 0.00], 218.47] +]; + +private _objectives_to_build = [ + [opfor_ammo_container, [11.83, 7.85, 0.00], 244.41], + [opfor_fuel_container, [14.17, 2.33, 0.00], 247.91], + [opfor_fuel_container, [7.65, 12.72, 0.00], 223.11] +]; + +private _defenders_to_build = [ + [opfor_engineer, [-4.18, 13.73, 0.00], 176.93], + [opfor_heavygunner, [-12.66, -10.52, 0.00], 0.00], + [opfor_heavygunner, [-4.12, -20.00, 0.00], 249.04], + [opfor_medic, [-15.97, -6.49, 0.00], 0.00], + [opfor_sharpshooter, [1.09, 18.82, 4.83], 0.00], + [opfor_rifleman, [-1.82, -20.39, 0.00], 154.51], + [opfor_rifleman, [-10.58, 17.79, 4.81], 143.79], + [opfor_rifleman, [-15.11, 2.16, 0.00], 108.85], + [opfor_rifleman, [-16.03, -3.77, 0.00], 91.87], + [opfor_rifleman, [-4.67, -4.78, 0.00], 212.50], + [opfor_rifleman, [18.35, -7.05, 0.00], 0.00], + [opfor_rifleman, [6.01, -19.19, 0.00], 133.28], + [opfor_rifleman, [7.52, 8.87, 0.00], 220.50], + [opfor_rpg, [10.95, -10.90, 0.00], 291.65], + [opfor_sentry, [11.95, 4.52, 0.00], 43.29], + [opfor_marksman, [-0.29, 18.86, 4.87], 305.92], + [opfor_marksman, [-16.39, 9.43, 4.84], 317.61], + [opfor_marksman, [-16.53, 8.30, 4.87], 223.01], + [opfor_grenadier, [-7.72, -4.93, 0.00], 120.76], + [opfor_grenadier, [18.02, -9.31, 0.00], 141.02] +]; + +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/kp_liberation.brf_sumava/scripts/server/CfgFunctions.hpp b/kp_liberation.brf_sumava/scripts/server/CfgFunctions.hpp new file mode 100644 index 0000000..630afd0 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/CfgFunctions.hpp @@ -0,0 +1,20 @@ +class server_highcommand { + file = "scripts\server\highcommand"; + + class highcommand {ext = ".fsm";}; +}; + +class server_sector { + file = "scripts\server\sector"; + + class destroyFob {}; + class sectorMonitor {ext = ".fsm";}; + class spawnSectorCrates {}; + class spawnSectorIntel {}; +}; + +class server_support { + file = "scripts\server\support"; + + class createSuppModules {}; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/add_civ_waypoints.sqf b/kp_liberation.brf_sumava/scripts/server/ai/add_civ_waypoints.sqf new file mode 100644 index 0000000..5000915 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/add_civ_waypoints.sqf @@ -0,0 +1,48 @@ +private _grp = _this select 0; +private _basepos = getpos (leader _grp); + +while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; +{_x doFollow leader _grp} foreach units _grp; + +private _wpPositions = [ + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360] +]; + +private _waypoint = _grp addWaypoint [_wpPositions select 0, 10]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 5; + +_waypoint = _grp addWaypoint [_wpPositions select 1, 10]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 5; + +_waypoint = _grp addWaypoint [_wpPositions select 2, 10]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 5; + +_waypoint = _grp addWaypoint [_wpPositions select 3, 10]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 5; + +_waypoint = _grp addWaypoint [_wpPositions select 4, 10]; +_waypoint setWaypointType "CYCLE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 5; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/add_defense_waypoints.sqf b/kp_liberation.brf_sumava/scripts/server/ai/add_defense_waypoints.sqf new file mode 100644 index 0000000..bd4e95a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/add_defense_waypoints.sqf @@ -0,0 +1,85 @@ +private _grp = _this select 0; +private _flagpos = _this select 1; +private _basepos = getpos (leader _grp); +private _is_infantry = false; +private _wpPositions = []; +private _waypoint = []; +if (vehicle (leader _grp) == (leader _grp)) then {_is_infantry = true;}; + +sleep 5; +while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; +sleep 1; +{_x doFollow leader _grp} foreach units _grp; +sleep 1; + +if (_is_infantry) then { + _wpPositions = [ + _flagpos getPos [random 150, random 360], + _flagpos getPos [random 150, random 360], + _flagpos getPos [random 150, random 360], + _flagpos getPos [random 150, random 360], + _flagpos getPos [random 150, random 360] + ]; + _waypoint = _grp addWaypoint [_wpPositions select 0, 10]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointCompletionRadius 10; + + _waypoint = _grp addWaypoint [_wpPositions select 1, 10]; + _waypoint setWaypointType "MOVE"; + _waypoint = _grp addWaypoint [_wpPositions select 2, 10]; + _waypoint setWaypointType "MOVE"; + _waypoint = _grp addWaypoint [_wpPositions select 3, 10]; + _waypoint setWaypointType "MOVE"; + + _waypoint = _grp addWaypoint [_wpPositions select 4, 10]; + _waypoint setWaypointType "CYCLE"; +} else { + _waypoint = _grp addWaypoint [_basepos, 1]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointCompletionRadius 30; +}; + +_grp setCurrentWaypoint [_grp, 0]; + +waitUntil { + sleep 10; + ({alive _x} count (units _grp) == 0) || !(isNull ((leader _grp) findNearestEnemy (leader _grp))) +}; + +if ({alive _x} count (units _grp) > 0) then { + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0)}; + sleep 1; + {_x doFollow leader _grp} foreach units _grp; + sleep 1; + _wpPositions = [ + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360], + _basepos getPos [random 150, random 360] + ]; + _waypoint = _grp addWaypoint [_wpPositions select 0, 10]; + _waypoint setWaypointType "SAD"; + _waypoint setWaypointBehaviour "COMBAT"; + _waypoint setWaypointCombatMode "YELLOW"; + if (_is_infantry) then { + _waypoint setWaypointSpeed "NORMAL"; + } else { + _waypoint setWaypointSpeed "LIMITED"; + }; + _waypoint = _grp addWaypoint [_wpPositions select 1, 10]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_wpPositions select 2, 10]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_wpPositions select 3, 10]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_wpPositions select 4, 10]; + _waypoint setWaypointType "CYCLE"; + _grp setCurrentWaypoint [_grp, 0]; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/battlegroup_ai.sqf b/kp_liberation.brf_sumava/scripts/server/ai/battlegroup_ai.sqf new file mode 100644 index 0000000..b9e7167 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/battlegroup_ai.sqf @@ -0,0 +1,53 @@ +params [ + ["_grp", grpNull, [grpNull]] +]; + +if (isNull _grp) exitWith {}; +if (isNil "reset_battlegroups_ai") then {reset_battlegroups_ai = false}; + +sleep (5 + (random 5)); + +private _objPos = [getPos (leader _grp)] call KPLIB_fnc_getNearestBluforObjective; + +[_objPos] remoteExec ["remote_call_incoming"]; + +private _startpos = getPos (leader _grp); + +private _waypoint = []; +while {((getPos (leader _grp)) distance _startpos) < 100} do { + + while {!((waypoints _grp) isEqualTo [])} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow leader _grp} forEach units _grp; + + _startpos = getPos (leader _grp); + + _waypoint = _grp addWaypoint [_objPos, 100]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "NORMAL"; + _waypoint setWaypointBehaviour "AWARE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointCompletionRadius 30; + + _waypoint = _grp addWaypoint [_objPos, 100]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_objPos, 100]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_objPos, 100]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [_objPos, 100]; + _waypoint setWaypointType "CYCLE"; + + sleep 90; +}; + +waitUntil { + sleep 5; + (((units _grp) select {alive _x}) isEqualTo []) || reset_battlegroups_ai +}; + +sleep (5 + (random 5)); +reset_battlegroups_ai = false; + +if (!((units _grp) isEqualTo []) && (GRLIB_endgame == 0)) then { + [_grp] spawn battlegroup_ai; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/building_defence_ai.sqf b/kp_liberation.brf_sumava/scripts/server/ai/building_defence_ai.sqf new file mode 100644 index 0000000..d6ceb06 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/building_defence_ai.sqf @@ -0,0 +1,42 @@ +params ["_unit", ["_sector", ""]]; + +_unit setUnitPos "UP"; +_unit disableAI "PATH"; +private _move_is_disabled = true; +private _hostiles = 0; +private _ratio = 0.4; +private _range = 40; + +while {_move_is_disabled && local _unit && alive _unit && !(captive _unit)} do { + + if !(_sector isEqualTo "") then { + _ratio = [_sector] call KPLIB_fnc_getBluforRatio; + }; + + _range = floor (linearConversion [0, 1, _ratio, 0, GRLIB_capture_size / 3 * 2, true]); + + _hostiles = ((getPos _unit) nearEntities [["Man"], _range]) select {side _x == GRLIB_side_friendly}; + + if (_move_is_disabled && + { + (_sector in blufor_sectors) || + {!(_hostiles isEqualTo [])} || + {damage _unit > 0.25} + } + ) then { + _move_is_disabled = false; + _unit enableAI "PATH"; + _unit setUnitPos "AUTO"; + }; + + if (_move_is_disabled) then { + private _target = assignedTarget _unit; + if(!(isnull _target)) then { + private _vd = (getPosASL _target) vectorDiff (getpos _unit); + private _newdir = (_vd select 0) atan2 (_vd select 1); + if (_newdir < 0) then {_dir = 360 + _newdir}; + _unit setdir (_newdir); + }; + }; + sleep 5; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/patrol_ai.sqf b/kp_liberation.brf_sumava/scripts/server/ai/patrol_ai.sqf new file mode 100644 index 0000000..d778cda --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/patrol_ai.sqf @@ -0,0 +1,60 @@ +private _grp = _this select 0; +private _waypoint = []; +if ( isNil "reinforcements_sector_under_attack" ) then { reinforcements_sector_under_attack = "" }; + +while { count (units _grp) > 0 } do { + + if ( reinforcements_sector_under_attack != "" ) then { + + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow leader _grp} foreach units _grp; + + _waypoint = _grp addWaypoint [markerpos reinforcements_sector_under_attack, 50]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "FULL"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointCompletionRadius 30; + _waypoint = _grp addWaypoint [markerpos reinforcements_sector_under_attack, 50]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos reinforcements_sector_under_attack, 50]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos reinforcements_sector_under_attack, 50]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "CYCLE"; + + sleep 300; + }; + + if ( reinforcements_sector_under_attack == "" ) then { + private _sectors_patrol = []; + private _patrol_startpos = getpos (leader _grp); + { + if ( _patrol_startpos distance (markerpos _x) < 2500) then { + _sectors_patrol pushBack _x; + }; + } foreach (sectors_allSectors - blufor_sectors); + + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow leader _grp} foreach units _grp; + + { + _waypoint = _grp addWaypoint [markerpos _x, 300]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "NORMAL"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointCompletionRadius 30; + } foreach _sectors_patrol; + + _waypoint = _grp addWaypoint [_patrol_startpos, 300]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointCompletionRadius 100; + _waypoint = _grp addWaypoint [_patrol_startpos , 300]; + _waypoint setWaypointType "CYCLE"; + }; + + waitUntil { sleep 5;(count (units _grp) == 0) || (reinforcements_sector_under_attack != "") }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/prisonner_ai.sqf b/kp_liberation.brf_sumava/scripts/server/ai/prisonner_ai.sqf new file mode 100644 index 0000000..5ceeb16 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/prisonner_ai.sqf @@ -0,0 +1,52 @@ +params ["_unit", ["_force_surrender", false]]; + +if ((!_force_surrender) && ((random 100) > GRLIB_surrender_chance)) exitWith {}; + +if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == GRLIB_side_enemy)) then { + + if (vehicle _unit != _unit) then {deleteVehicle _unit}; + + sleep (random 5); + + if (alive _unit) then { + + removeAllWeapons _unit; + if (typeof _unit != pilot_classname) then { + removeHeadgear _unit; + }; + removeBackpack _unit; + removeVest _unit; + _unit unassignItem "NVGoggles_OPFOR"; + _unit removeItem "NVGoggles_OPFOR"; + _unit unassignItem "NVGoggles_INDEP"; + _unit removeItem "NVGoggles_INDEP"; + _unit setUnitPos "UP"; + sleep 1; + private _grp = createGroup [GRLIB_side_civilian, true]; + [_unit] joinSilent _grp; + if (KP_liberation_ace) then { + ["ace_captives_setSurrendered", [_unit, true], _unit] call CBA_fnc_targetEvent; + } else { + _unit disableAI "ANIM"; + _unit disableAI "MOVE"; + _unit playmove "AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon"; + sleep 2; + _unit setCaptive true; + }; + waitUntil {sleep 1; + !alive _unit || side group _unit == GRLIB_side_friendly + }; + + if (alive _unit) then { + if (KP_liberation_ace) then { + ["ace_captives_setSurrendered", [_unit, false], _unit] call CBA_fnc_targetEvent; + } else { + _unit enableAI "ANIM"; + _unit enableAI "MOVE"; + _unit setCaptive false; + }; + sleep 1; + [_unit] remoteExec ["remote_call_prisonner", _unit]; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/ai/troup_transport.sqf b/kp_liberation.brf_sumava/scripts/server/ai/troup_transport.sqf new file mode 100644 index 0000000..81cbc22 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/ai/troup_transport.sqf @@ -0,0 +1,74 @@ +params [ + ["_transVeh", objNull, [objNull]] +]; + +if (isNull _transVeh) exitWith {}; +sleep 1; + +private _transGrp = (group (driver _transVeh)); +private _start_pos = getpos _transVeh; +private _objPos = [getpos _transVeh] call KPLIB_fnc_getNearestBluforObjective; +private _unload_distance = 500; +private _crewcount = count crew _transVeh; + +waitUntil { + sleep 0.2; + !(alive _transVeh) || + !(alive (driver _transVeh)) || + (((_transVeh distance _objPos) < _unload_distance) && !(surfaceIsWater (getpos _transVeh))) +}; + +if ((alive _transVeh) && (alive (driver _transVeh))) then { + _infGrp = createGroup [GRLIB_side_enemy, true]; + + { + [_x, _start_pos, _infGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + } foreach ([] call KPLIB_fnc_getSquadComp); + + {_x moveInCargo _transVeh} forEach (units _infGrp); + + while {(count (waypoints _infGrp)) != 0} do {deleteWaypoint ((waypoints _infGrp) select 0);}; + + sleep 3; + + private _transVehWp = _transGrp addWaypoint [getpos _transVeh, 0,0]; + _transVehWp setWaypointType "TR UNLOAD"; + _transVehWp setWaypointCompletionRadius 200; + + private _infWp = _infGrp addWaypoint [getpos _transVeh, 0]; + _infWp setWaypointType "GETOUT"; + _infWp setWaypointCompletionRadius 200; + + _infWp synchronizeWaypoint [_transVehWp]; + + {unassignVehicle _transVeh} forEach (units _infGrp); + _infGrp leaveVehicle _transVeh; + (units _infGrp) allowGetIn false; + + private _infWp_2 = _infGrp addWaypoint [getpos _transVeh, 250]; + _infWp_2 setWaypointType "MOVE"; + _infWp_2 setWaypointCompletionRadius 5; + + waitUntil {sleep 0.5; _crewcount >= count crew _transVeh}; + + sleep 5; + + while {(count (waypoints _transGrp)) != 0} do {deleteWaypoint ((waypoints _transGrp) select 0);}; + + _transVehWp = _transGrp addWaypoint [_objPos, 100]; + _transVehWp setWaypointType "SAD"; + _transVehWp setWaypointSpeed "NORMAL"; + _transVehWp setWaypointBehaviour "COMBAT"; + _transVehWp setWaypointCombatMode "RED"; + _transVehWp setWaypointCompletionRadius 30; + + _transVehWp = _transGrp addWaypoint [_objPos, 100]; + _transVehWp setWaypointType "SAD"; + + _transVehWp = _transGrp addWaypoint [_objPos, 100]; + _transVehWp setWaypointType "CYCLE"; + + sleep 10; + + [_infGrp] spawn battlegroup_ai; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/asymmetric_loop.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/asymmetric_loop.sqf new file mode 100644 index 0000000..38287d9 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/asymmetric_loop.sqf @@ -0,0 +1,63 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "KP_liberation_civ_rep"}; +waitUntil {save_is_loaded}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +KP_liberation_asymmetric_sectors = []; + +while {GRLIB_endgame == 0} do { + private _sectors_to_remove = []; + + { + if (!(_x in blufor_sectors) || (KP_liberation_civ_rep > -25)) then { + _sectors_to_remove pushBack _x; + }; + } forEach KP_liberation_asymmetric_sectors; + + KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - _sectors_to_remove; + + if (KP_liberation_civ_rep <= -25) then { + { + private _sector = _x; + private _blocked = false; + private _units_at_sector = [markerPos _sector, GRLIB_sector_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + + { + if ((_x select 0) == _sector) exitWith { + if ((((_x select 1) + 1800) < time) && (_units_at_sector == 0)) then { + asymm_blocked_sectors = asymm_blocked_sectors - [_x]; + if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 removed from blocked sectors", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + } else { + _blocked = true; + if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 still blocked for ambush", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + }; + }; + } forEach asymm_blocked_sectors; + + if ((_units_at_sector > 0) && !(_sector in KP_liberation_asymmetric_sectors) && !_blocked) then { + KP_liberation_asymmetric_sectors pushBack _sector; + + if ((random 100) <= KP_liberation_resistance_ambush_chance) then { + private _hc = [] call KPLIB_fnc_getLessLoadedHC; + private _ieds = round (([] call KPLIB_fnc_crGetMulti) * GRLIB_difficulty_modifier); + + if (isNull _hc) then { + [_sector, _ieds] spawn manage_asymIED; + [_sector] spawn asym_sector_ambush; + } else { + [_sector, _ieds] remoteExec ["manage_asymIED", _hc]; + [_sector] remoteExec ["asym_sector_ambush",_hc]; + }; + }; + }; + + if (!(_units_at_sector > 0) && (_sector in KP_liberation_asymmetric_sectors)) then { + KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - [_sector]; + }; + } forEach ((sectors_capture + sectors_bigtown) select {_x in blufor_sectors}); + }; + publicVariable "KP_liberation_asymmetric_sectors"; + publicVariable "asymm_blocked_sectors"; + sleep 10; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf new file mode 100644 index 0000000..7c896e3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf @@ -0,0 +1,140 @@ +params ["_convoy"]; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1: spawning ambush", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +private _pos = [0,0,0]; + +switch ((_convoy select 7)) do { + case 2: {_pos = (_convoy select 3) getPos [(_convoy select 8) * 400, (_convoy select 3) getDir (_convoy select 2)]}; + case 4: {_pos = (_convoy select 2) getPos [(_convoy select 8) * 400, (_convoy select 2) getDir (_convoy select 3)]}; + default {[format ["Logistic convoy %1 ambush: convoy is not travelling", (_convoy select 0)], "ERROR"] call KPLIB_fnc_log;}; +}; + +if (_pos isEqualTo [0,0,0]) exitWith {[format ["Logistic convoy %1 ambush: no position", (_convoy select 0)], "ERROR"] call KPLIB_fnc_log;}; + +private _roadObj = [_pos, 400, []] call BIS_fnc_nearestRoad; +if (isNull _roadObj) exitWith { + if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: no road near current convoy position", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + KP_liberation_convoy_ambush_check = 1; +}; + +KP_liberation_convoy_ambush_check = 2; +KP_liberation_convoy_ambush_inProgress = true; +[0, getPos _roadObj] remoteExec ["asymm_notifications"]; + +private _vehicleArray = []; +for "_i" from 1 to (_convoy select 1) do { + private _veh = createVehicle [KP_liberation_truck_classname, getPos _roadObj, [], 50, "NONE"]; + _veh setDir (getDir _roadObj); + { + private _damage = random 0.6; + if ((_x find "Wheel") != -1) then { + _damage = _damage + 0.6; + } else { + _damage = _damage + 0.3; + }; + if (_damage > 1) then {_damage = 1.0}; + _veh setHitPointDamage [_x, _damage]; + } forEach ((getAllHitPointsDamage _veh) select 0); + _vehicleArray pushBack _veh; + + private _driver = createVehicle [crewman_classname, getPos _veh, [], 12, "NONE"]; + _driver setDamage 1; +}; +if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: truck spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +private _supplies = (_convoy select 6) select 0; +private _ammo = (_convoy select 6) select 1; +private _fuel = (_convoy select 6) select 2; +private _crateArray = []; + +while {_supplies > 0} do { + private _amount = 100; + if ((_supplies / 100) < 1) then { + _amount = _supplies; + }; + _supplies = _supplies - _amount; + private _crate = [KP_liberation_supply_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + _crate setPos (_crate getPos [random 60, random 360]); + _crateArray pushBack [_crate]; +}; + +while {_ammo > 0} do { + private _amount = 100; + if ((_ammo / 100) < 1) then { + _amount = _ammo; + }; + _ammo = _ammo - _amount; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + _crate setPos (_crate getPos [random 60, random 360]); + _crateArray pushBack [_crate]; +}; + +while {_fuel > 0} do { + private _amount = 100; + if ((_fuel / 100) < 1) then { + _amount = _fuel; + }; + _fuel = _fuel - _amount; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + _crate setPos (_crate getPos [random 60, random 360]); + _crateArray pushBack [_crate]; +}; +if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: resource spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +private _grp = [getPos _roadObj] call KPLIB_fnc_spawnGuerillaGroup; + +private _waypoint = _grp addWaypoint [getPos _roadObj, 150]; +_waypoint setWaypointType "SAD"; +_waypoint setWaypointCompletionRadius 10; +_waypoint = _grp addWaypoint [getPos _roadObj, 150]; +_waypoint setWaypointType "SAD"; +_waypoint setWaypointCompletionRadius 10; +_waypoint = _grp addWaypoint [getPos _roadObj, 150]; +_waypoint setWaypointType "SAD"; +_waypoint setWaypointCompletionRadius 10; +_waypoint = _grp addWaypoint [getPos _roadObj, 150]; +_waypoint setWaypointType "CYCLE"; +_waypoint setWaypointCompletionRadius 10; +if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +private _waitingTime = KP_liberation_convoy_ambush_duration; + +while {(({alive _x} count (units _grp)) > 0) && (_waitingTime > 0)} do { + uiSleep 1; + private _player_near = false; + { + if (((_x distance _roadObj) < 250) && (alive _x)) exitWith {_player_near = true}; + } foreach allPlayers; + + if !(_player_near) then { + _waitingTime = _waitingTime - 1; + }; +}; +if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: ambush finished", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + +KP_liberation_convoy_ambush_inProgress = false; + +if ((_waitingTime <= 0) && (({alive _x} count (units _grp)) > 0)) then { + [2] remoteExec ["asymm_notifications"]; + private _gain = 0; + { + if (alive _x) then { + deleteVehicle _x; + _gain = _gain + 2; + }; + } forEach (units _grp); + { + if ((typeOf (_x select 0)) == KP_liberation_ammo_crate) then { + _gain = _gain + 3; + } else { + _gain = _gain + 2; + }; + deleteVehicle (_x select 0); + } forEach _crateArray; + KP_liberation_guerilla_strength = KP_liberation_guerilla_strength + _gain; + if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas escaped", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +} else { + [1] remoteExec ["asymm_notifications"]; + if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas defeated", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/ied/manage_asymIED.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/ied/manage_asymIED.sqf new file mode 100644 index 0000000..8896d22 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/ied/manage_asymIED.sqf @@ -0,0 +1,51 @@ +params ["_sector", "_count"]; + +if (_count <= 0) exitWith {}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +waitUntil {sleep 1; _sector in KP_liberation_asymmetric_sectors}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> spawning IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _activation_radius_infantry = 6.66; +private _activation_radius_vehicles = 10; +private _spread = 7; +private _infantry_trigger = 1 + (ceil (random 2)); +private _vehicle_trigger = 1; +private _ied_type = selectRandom ["IEDLandBig_F","IEDLandSmall_F","IEDUrbanBig_F","IEDUrbanSmall_F"]; +private _ied_obj = objNull; +private _roadobj = [(markerPos (_sector) getPos [random (200), random (360)]), 200, []] call BIS_fnc_nearestRoad; +private _goes_boom = false; +private _ied_marker = ""; + +if (_count > 0) then { + [_sector, _count - 1] spawn manage_asymIED; +}; + +if (!(isnull _roadobj)) then { + private _roadpos = getpos _roadobj; + _ied_obj = createMine [_ied_type, _roadpos getPos [_spread, random (360)], [], 0]; + _ied_obj setdir (random 360); + + if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> IED %1 spawned at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + while {(_sector in KP_liberation_asymmetric_sectors) && (mineActive _ied_obj) && !_goes_boom} do { + _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == GRLIB_side_friendly}; + _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == GRLIB_side_friendly}; + if (count _nearinfantry >= _infantry_trigger || count _nearvehicles >= _vehicle_trigger) then { + _ied_obj setDamage 1; + stats_ieds_detonated = stats_ieds_detonated + 1; publicVariable "stats_ieds_detonated"; + _goes_boom = true; + }; + sleep 1; + }; +} else { + if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> _roadobj is Null for IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; + +if ((KP_liberation_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["manage_asymIED.sqf -> exit IED %1 loop at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +sleep 60; + +if (!(isNull _ied_obj)) then {deleteVehicle _ied_obj;}; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/init_module.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/init_module.sqf new file mode 100644 index 0000000..626067e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/init_module.sqf @@ -0,0 +1,17 @@ +// Scripts +// Logistic convoy ambush +logistic_convoy_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\convoy\logistic_convoy_ambush.sqf"; +// IED spawner for blufor sectors +manage_asymIED = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; +// Spawner for guerilla ambushes in blufor sectors +asym_sector_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; +// Spawner for guerilla forces who join a fight at an opfor sector +sector_guerilla = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; + +// Globals +// List sectors which are just liberated. Preventing direct ambush spawn. +asymm_blocked_sectors = []; +publicVariable "asymm_blocked_sectors"; + +// Start module loop +execVM "scripts\server\asymmetric\asymmetric_loop.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/random/asym_sector_ambush.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/random/asym_sector_ambush.sqf new file mode 100644 index 0000000..cc4ab35 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/random/asym_sector_ambush.sqf @@ -0,0 +1,74 @@ +params ["_sector"]; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf for %1 spawned on: %2 - Time: %3", markerText _sector, debug_source, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +waitUntil {sleep 1; _sector in KP_liberation_asymmetric_sectors}; + +private _buildings = (nearestObjects [(markerPos _sector), ["House"], 75]) select {(alive _x) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}; +private _positions = []; +{ + _positions = _positions + ([_x] call BIS_fnc_buildingPositions); +} forEach _buildings; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Found %1 suitable buildings in %2 - Time: %3", count _buildings, markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _position_indexes = []; +private _position_count = count _positions; +while {count _position_indexes < 10} do { + private _nextposit = floor (random _position_count); + if !(_nextposit in _position_indexes) then { + _position_indexes pushback _nextposit; + }; +}; + +private _grp = [(markerPos _sector)] call KPLIB_fnc_spawnGuerillaGroup; +_grp setBehaviour "STEALTH"; +private _idxposit = 0; +{ + _x setpos (_positions select (_position_indexes select _idxposit)); + _x setUnitPos "UP"; + doStop _x; + + _idxposit = _idxposit + 1; +} forEach (units _grp); + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Units spawned in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _attack = false; + +while {(_sector in KP_liberation_asymmetric_sectors) && (!isNull _grp)} do { + private _blufor_near = {alive _x && side _x == GRLIB_side_friendly} count ((getpos (leader _grp)) nearEntities [["LAND"], 140]); + if ((_blufor_near > 0) && !_attack) then { + _attack = true; + { + _x setUnitPos "AUTO"; + } forEach (units _grp); + (units _grp) doFollow (leader _grp); + _grp setBehaviour "COMBAT"; + _grp setCombatMode "RED"; + private _waypoint = _grp addWaypoint [markerpos _sector, 20]; + _waypoint setWaypointType "SAD"; + _waypoint setWaypointSpeed "FULL"; + _waypoint = _grp addWaypoint [markerpos _sector, 150]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos _sector, 150]; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos _sector, 150]; + _waypoint setWaypointType "SAD"; + }; + sleep 1; +}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Exit Loop in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +sleep 60; + +if (!isNull _grp) then { + { + if (alive _x) then { + deleteVehicle _x; + }; + } forEach (units _grp); +}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Ambush dropped in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; diff --git a/kp_liberation.brf_sumava/scripts/server/asymmetric/random/sector_guerilla.sqf b/kp_liberation.brf_sumava/scripts/server/asymmetric/random/sector_guerilla.sqf new file mode 100644 index 0000000..050d575 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/asymmetric/random/sector_guerilla.sqf @@ -0,0 +1,131 @@ +params ["_sector"]; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla spawned on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _startpos = (markerPos _sector) getPos [(1200 + (round (random 400))), (random 360)]; + +while {(([_startpos, 500, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0) || (surfaceIsWater _startpos)} do { + _startpos = (markerPos _sector) getPos [(1200 + (round (random 400))), (random 360)]; +}; + +private _incDir = (markerPos _sector) getDir _startpos; +private _incString = "unknown"; + +if (_incDir < 23) then { + _incString = "N"; +} else { + if (_incDir < 68) then { + _incString = "NE"; + } else { + if (_incDir < 113) then { + _incString = "E"; + } else { + if (_incDir < 158) then { + _incString = "SE"; + } else { + if (_incDir < 203) then { + _incString = "S"; + } else { + if (_incDir < 248) then { + _incString = "SW"; + } else { + if (_incDir < 293) then { + _incString = "W"; + } else { + if (_incDir < 338) then { + _incString = "NW"; + } else { + _incString = "N"; + }; + }; + }; + }; + }; + }; + }; +}; + +[5, [(markerText _sector), _incString]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + +private _spawnedGroups = []; +private _grp = [_startpos] call KPLIB_fnc_spawnGuerillaGroup; + +while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; +{_x doFollow (leader _grp)} forEach (units _grp); + +private _waypoint = _grp addWaypoint [markerpos _sector, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "AWARE"; +_waypoint setWaypointCombatMode "YELLOW"; +_waypoint setWaypointCompletionRadius 30; +_waypoint = _grp addWaypoint [markerpos _sector, 200]; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [markerpos _sector, 200]; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [markerpos _sector, 200]; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [markerpos _sector, 200]; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointType "CYCLE"; + +_spawnedGroups pushBack _grp; + +sleep 30; + +if (((random 100) <= 25) && !(KP_liberation_guerilla_vehicles isEqualTo [])) then { + private _vehicle = (selectRandom KP_liberation_guerilla_vehicles) createVehicle _startpos; + [_vehicle] call KPLIB_fnc_allowCrewInImmobile; + + private _grp = [_startpos, 2] call KPLIB_fnc_spawnGuerillaGroup; + ((units _grp) select 0) moveInDriver _vehicle; + ((units _grp) select 1) moveInGunner _vehicle; + + _waypoint = _grp addWaypoint [markerpos _sector, 100]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointBehaviour "AWARE"; + _waypoint setWaypointCombatMode "YELLOW"; + _waypoint setWaypointCompletionRadius 30; + _waypoint = _grp addWaypoint [markerpos _sector, 300]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos _sector, 300]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos _sector, 300]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "SAD"; + _waypoint = _grp addWaypoint [markerpos _sector, 300]; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointType "CYCLE"; + + _spawnedGroups pushBack _grp; +}; + +waitUntil {sleep 60; !(_sector in active_sectors)}; + +sleep 60; + +private _strengthChanged = false; + +{ + if (!isNull _x) then { + { + if (alive _x) then { + deleteVehicle _x; + KP_liberation_guerilla_strength = KP_liberation_guerilla_strength + 2; + _strengthChanged = true; + }; + } forEach (units _x); + }; +} forEach _spawnedGroups; + +if (!isServer && _strengthChanged) then { + publicVariableServer "KP_liberation_guerilla_strength"; +}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla dropped on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; diff --git a/kp_liberation.brf_sumava/scripts/server/base/huron_manager.sqf b/kp_liberation.brf_sumava/scripts/server/base/huron_manager.sqf new file mode 100644 index 0000000..4588526 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/base/huron_manager.sqf @@ -0,0 +1,40 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +huron = objNull; + +// Detect possible huron from loaded save data +private _savedHuron = vehicles select {(toLower (typeOf _x)) isEqualTo (toLower huron_typename)}; +if !(_savedHuron isEqualTo []) then { + huron = _savedHuron select 0; +}; + +while {true} do { + // Spawn new huron if not loaded or destroyed + if !(alive huron) then { + huron = huron_typename createVehicle [(getposATL huronspawn) select 0, (getposATL huronspawn) select 1, ((getposATL huronspawn) select 2) + 0.2]; + huron enableSimulationGlobal false; + huron allowdamage false; + huron setDir (getDir huronspawn); + huron setPosATL (getposATL huronspawn); + huron setDamage 0; + sleep 0.5; + huron enableSimulationGlobal true; + huron setDamage 0; + huron allowdamage true; + [huron] call KPLIB_fnc_addObjectInit; + }; + [huron] call KPLIB_fnc_clearCargo; + huron setVariable ["ace_medical_isMedicalVehicle", true, true]; + publicVariable "huron"; + + // Wait until huron is destroyed to respawn it + waitUntil {sleep 5; !alive huron}; + stats_spartan_respawns = stats_spartan_respawns + 1; + sleep 10; + + // Delete wreck, if near startbase + if (huron distance startbase < 500) then { + deletevehicle huron; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/base/startgame.sqf b/kp_liberation.brf_sumava/scripts/server/base/startgame.sqf new file mode 100644 index 0000000..47c22f5 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/base/startgame.sqf @@ -0,0 +1,73 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +// Check if there is no FOB yet (new campaign) +if (GRLIB_all_fobs isEqualTo []) then { + + // Prebuild FOB (parameter setting) or spawn FOB box + if (GRLIB_build_first_fob) then { + // Only accept spawnpoints which are at least 800m away from any sector + private _y = ""; + private _validPlaces = sectors_opfor select { + _y = _x; + (sectors_allSectors findIf {((markerPos _x) distance2d (markerPos _y)) < 800}) isEqualTo -1 + }; + + // Spawn first FOB on random valid spawnpoint + [markerPos (selectRandom _validPlaces), true] remoteExec ["build_fob_remote_call", 2]; + } else { + // Spawn FOB box and wait until the first FOB was built + private _fobbox = objNull; + while {GRLIB_all_fobs isEqualTo []} do { + _fobbox = ([FOB_box_typename, FOB_truck_typename] select KP_liberation_fob_vehicle) createVehicle (getposATL base_boxspawn); + _fobbox setdir getDir base_boxspawn; + _fobbox setposATL (getposATL base_boxspawn); + [_fobbox, true] call KPLIB_fnc_clearCargo; + [_fobbox] call KPLIB_fnc_addObjectInit; + + // If the FOB box has fallen into the sea or is destroyed, start again with spawning a new one + waitUntil { + sleep 1; + !(alive _fobbox) || !(GRLIB_all_fobs isEqualTo []) || (((getPosASL _fobbox) select 2) < 0) + }; + sleep 10; + }; + deleteVehicle _fobbox; + }; + + // Wait a short time before paradropping the start resource crates + waitUntil {sleep 1; !(GRLIB_all_fobs isEqualTo [])}; + if (KP_liberation_tutorial && {["KPLIB_Tasks_Tutorial_Fob"] call BIS_fnc_taskExists}) then { + waitUntil {sleep 1; ["KPLIB_Tasks_Tutorial_Fob_02"] call BIS_fnc_taskCompleted}; + sleep 3; + } else { + sleep 10; + }; + + // Spawn start resource crates and attach them to parachutes + KPLIB_startCrates = []; + private _crate = objNull; + for "_i" from 1 to 6 do { + _crate = createVehicle [ + (KPLIB_crates select (_i % 3)), + [((GRLIB_all_fobs select 0) select 0), ((GRLIB_all_fobs select 0) select 1), 150], + [], + 80, + "FLY" + ]; + [_crate, true] call KPLIB_fnc_clearCargo; + _crate setVariable ["KP_liberation_crate_value", 100, true]; + [_crate, 500] remoteExec ["setMass", _crate]; + [objNull, _crate] call BIS_fnc_curatorObjectEdited; + if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + KPLIB_startCrates pushBack _crate; + }; + + // Spawn green smoke on the crates short before they hit the ground + uiSleep 25; + private _smoke = objNull; + { + _smoke = "SmokeShellGreen" createVehicle (getPos _x); + _smoke attachTo [_x]; + } forEach KPLIB_startCrates; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/base/startvehicle_spawn.sqf b/kp_liberation.brf_sumava/scripts/server/base/startvehicle_spawn.sqf new file mode 100644 index 0000000..88ac95d --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/base/startvehicle_spawn.sqf @@ -0,0 +1,51 @@ +/* + Spawning of start vehicles at placeholder objects + + This file spawns the so called "start vehicles" like boats + and little birds at the starting base/carrier. + + The array at the end can be used to add start vehicles + by using the variable name of the grasscutter placeholder + and the variable defined in the preset or a direct classname. + + Format: [, ] + + E.g. the variables of the grasscutter placeholder objects for the + little birds are named "littlebird_0", "littlebird_1", etc. + while the variable from the preset is KP_liberation_little_bird_classname. + This leads to the entry below. + + You can also remove unwanted start vehicles by deleting the corresponding line + in the array below. Just keep the correct comma separation in mind. + Refer to: https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_ImportantHints#commas-inside-an-array +*/ + +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +private _placeholder = objNull; +private _spawnPos = []; +private _veh = objNull; +{ + _x params ["_id", "_classname"]; + + for [{_i = 0}, {!isNil ([_id, _i] joinString "")}, {_i = _i + 1}] do { + _placeholder = missionNamespace getVariable ([_id, _i] joinString ""); + _spawnPos = getPosATL _placeholder; + _veh = _classname createVehicle [_spawnPos select 0, _spawnPos select 1, (_spawnPos select 2) + 0.2]; + _veh enableSimulationGlobal false; + _veh allowDamage false; + _veh setDir (getDir _placeholder); + _veh setPosATL _spawnPos; + [_veh] call KPLIB_fnc_clearCargo; + sleep 0.5; + _veh enableSimulationGlobal true; + _veh setDamage 0; + _veh allowDamage true; + _veh setVariable ["KP_liberation_preplaced", true, true]; + [_veh] call KPLIB_fnc_addObjectInit; + }; +} forEach [ + ["littlebird_", KP_liberation_little_bird_classname], + ["boat_", KP_liberation_boat_classname] +]; diff --git a/kp_liberation.brf_sumava/scripts/server/battlegroup/counter_battlegroup.sqf b/kp_liberation.brf_sumava/scripts/server/battlegroup/counter_battlegroup.sqf new file mode 100644 index 0000000..d015897 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/battlegroup/counter_battlegroup.sqf @@ -0,0 +1,38 @@ +if (isNil "infantry_weight") then {infantry_weight = 33;}; +if (isNil "armor_weight") then {armor_weight = 33;}; +if (isNil "air_weight") then {air_weight = 33;}; + +sleep 1800; +private _sleeptime = 0; +private _target_player = objNull; +private _target_pos = ""; +while {GRLIB_csat_aggressivity >= 0.9 && GRLIB_endgame == 0} do { + _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * GRLIB_csat_aggressivity); + + if (combat_readiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; + if (combat_readiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; + if (combat_readiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; + + sleep _sleeptime; + + waitUntil {sleep 5; + combat_readiness >= 70 && {armor_weight >= 50 || air_weight >= 50} + }; + + _target_player = objNull; + { + if ( + (armor_weight >= 50 && {(objectParent _x) isKindOf "Tank"}) + || (air_weight >= 50 && {(objectParent _x) isKindOf "Air"}) + ) exitWith { + _target_player = _x; + }; + } forEach (allPlayers - entities "HeadlessClient_F"); + + if (!isNull _target_player) then { + _target_pos = [99999, getPos _target_player] call KPLIB_fnc_getNearestSector; + if !(_target_pos isEqualTo "") then { + [_target_pos] spawn spawn_air; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/battlegroup/random_battlegroups.sqf b/kp_liberation.brf_sumava/scripts/server/battlegroup/random_battlegroups.sqf new file mode 100644 index 0000000..fb391e3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/battlegroup/random_battlegroups.sqf @@ -0,0 +1,27 @@ +sleep (900 / GRLIB_csat_aggressivity); +private _sleeptime = 0; +while {GRLIB_csat_aggressivity > 0.9 && GRLIB_endgame == 0} do { + _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * GRLIB_csat_aggressivity); + + if (combat_readiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; + if (combat_readiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; + if (combat_readiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; + + sleep _sleeptime; + + if (!isNil "GRLIB_last_battlegroup_time") then { + waitUntil { + sleep 5; + diag_tickTime > (GRLIB_last_battlegroup_time + (2100 / GRLIB_csat_aggressivity)) + }; + }; + + if ( + (count (allPlayers - entities "HeadlessClient_F") >= (6 / GRLIB_csat_aggressivity)) + && {combat_readiness >= (60 - (5 * GRLIB_csat_aggressivity))} + && {[] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap} + && {diag_fps > 15.0} + ) then { + ["", (random 100) < 45] spawn spawn_battlegroup; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/battlegroup/readiness_increase.sqf b/kp_liberation.brf_sumava/scripts/server/battlegroup/readiness_increase.sqf new file mode 100644 index 0000000..2520475 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/battlegroup/readiness_increase.sqf @@ -0,0 +1,19 @@ +waitUntil {!isNil "save_is_loaded" && {save_is_loaded}}; + +while {true} do { + if ((count blufor_sectors) >= ((count sectors_allSectors) * 0.9)) then { + if (combat_readiness > 0) then { + combat_readiness = combat_readiness - 0.25; + }; + } else { + if ( + (combat_readiness < ((count blufor_sectors) * 2) && combat_readiness < 35) + || (combat_readiness < ((count blufor_sectors) * 1.25) && combat_readiness < 60) + ) then { + combat_readiness = combat_readiness + 0.25; + stats_readiness_earned = stats_readiness_earned + 0.25; + }; + }; + if (combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2) then {combat_readiness = 100.0}; + sleep (180 + random (180)); +}; diff --git a/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_air.sqf b/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_air.sqf new file mode 100644 index 0000000..218cdff --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_air.sqf @@ -0,0 +1,59 @@ +params ["_first_objective"]; + +if (opfor_air isEqualTo []) exitWith {false}; + +private _planes_number = ((floor linearConversion [40, 100, combat_readiness, 1, 3]) min 3) max 0; + +if (_planes_number < 1) exitWith {}; + +private _class = selectRandom opfor_air; +private _spawnPoint = ([sectors_airspawn, [_first_objective], {(markerPos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; +private _spawnPos = []; +private _plane = objNull; +private _grp = createGroup [GRLIB_side_enemy, true]; + +for "_i" from 1 to _planes_number do { + _spawnPos = markerPos _spawnPoint; + _spawnPos = [(((_spawnPos select 0) + 500) - random 1000), (((_spawnPos select 1) + 500) - random 1000), 200]; + _plane = createVehicle [_class, _spawnPos, [], 0, "FLY"]; + createVehicleCrew _plane; + _plane flyInHeight (120 + (random 180)); + _plane addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + [_plane] call KPLIB_fnc_addObjectInit; + {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _plane); + (crew _plane) joinSilent _grp; + sleep 1; +}; + +while {!((waypoints _grp) isEqualTo [])} do {deleteWaypoint ((waypoints _grp) select 0);}; +sleep 1; +{_x doFollow leader _grp} forEach (units _grp); +sleep 1; + +private _waypoint = _grp addWaypoint [_first_objective, 500]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "AWARE"; +_waypoint setWaypointCombatMode "RED"; + +_waypoint = _grp addWaypoint [_first_objective, 500]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "AWARE"; +_waypoint setWaypointCombatMode "RED"; + +_waypoint = _grp addWaypoint [_first_objective, 500]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "AWARE"; +_waypoint setWaypointCombatMode "RED"; + +for "_i" from 1 to 6 do { + _waypoint = _grp addWaypoint [_first_objective, 500]; + _waypoint setWaypointType "SAD"; +}; + +_waypoint = _grp addWaypoint [_first_objective, 500]; +_waypoint setWaypointType "CYCLE"; + +_grp setCurrentWaypoint [_grp, 2]; diff --git a/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_battlegroup.sqf b/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_battlegroup.sqf new file mode 100644 index 0000000..244285c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/battlegroup/spawn_battlegroup.sqf @@ -0,0 +1,89 @@ +// TODO Refactor and create function +params [ + ["_spawn_marker", "", [""]], + ["_infOnly", false, [false]] +]; + +if (GRLIB_endgame == 1) exitWith {}; + +_spawn_marker = [[2000, 1000] select _infOnly, 3000, false, markerPos _spawn_marker] call KPLIB_fnc_getOpforSpawnPoint; + +if !(_spawn_marker isEqualTo "") then { + GRLIB_last_battlegroup_time = diag_tickTime; + + private _bg_groups = []; + private _selected_opfor_battlegroup = []; + private _target_size = (round (GRLIB_battlegroup_size * ([] call KPLIB_fnc_getOpforFactor) * (sqrt GRLIB_csat_aggressivity))) min 16; + if (combat_readiness < 60) then {_target_size = round (_target_size * 0.65);}; + + [_spawn_marker] remoteExec ["remote_call_battlegroup"]; + + if (worldName in KP_liberation_battlegroup_clearance) then { + [markerPos _spawn_marker, 15] call KPLIB_fnc_createClearance; + }; + + if (_infOnly) then { + // Infantry units to choose from + private _infClasses = [KPLIB_o_inf_classes, militia_squad] select (combat_readiness < 50); + + // Adjust target size for infantry + _target_size = 12 max (_target_size * 4); + + // Create infantry groups with up to 8 units per squad + private _grp = createGroup [GRLIB_side_enemy, true]; + for "_i" from 0 to (_target_size - 1) do { + if (_i > 0 && {(_i % 8) isEqualTo 0}) then { + _bg_groups pushBack _grp; + _grp = createGroup [GRLIB_side_enemy, true]; + }; + [selectRandom _infClasses, markerPos _spawn_marker, _grp] call KPLIB_fnc_createManagedUnit; + }; + [_grp] spawn battlegroup_ai; + _bg_groups pushBack _grp; + } else { + private _vehicle_pool = [opfor_battlegroup_vehicles, opfor_battlegroup_vehicles_low_intensity] select (combat_readiness < 50); + + while {count _selected_opfor_battlegroup < _target_size} do { + _selected_opfor_battlegroup pushback (selectRandom _vehicle_pool); + }; + + private ["_nextgrp", "_vehicle"]; + { + _nextgrp = createGroup [GRLIB_side_enemy, true]; + _vehicle = [markerpos _spawn_marker, _x] call KPLIB_fnc_spawnVehicle; + + sleep 0.5; + + (crew _vehicle) joinSilent _nextgrp; + [_nextgrp] spawn battlegroup_ai; + _bg_groups pushback _nextgrp; + + if ((_x in opfor_troup_transports) && ([] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap)) then { + if (_vehicle isKindOf "Air") then { + [[markerPos _spawn_marker] call KPLIB_fnc_getNearestBluforObjective, _vehicle] spawn send_paratroopers; + } else { + [_vehicle] spawn troup_transport; + }; + }; + } forEach _selected_opfor_battlegroup; + + if (GRLIB_csat_aggressivity > 0.9) then { + [[markerPos _spawn_marker] call KPLIB_fnc_getNearestBluforObjective] spawn spawn_air; + }; + }; + + sleep 3; + + combat_readiness = (combat_readiness - (round ((count _bg_groups) + (random (count _bg_groups))))) max 0; + stats_hostile_battlegroups = stats_hostile_battlegroups + 1; + + { + if (local _x) then { + _headless_client = [] call KPLIB_fnc_getLessLoadedHC; + if (!isNull _headless_client) then { + _x setGroupOwner (owner _headless_client); + }; + }; + sleep 1; + } forEach _bg_groups; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_delivered.sqf b/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_delivered.sqf new file mode 100644 index 0000000..3c35f19 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_delivered.sqf @@ -0,0 +1,19 @@ +params ["_informant"]; + +if (isServer && alive _informant) then { + resources_intel = resources_intel + KP_liberation_civinfo_intel; + [2] spawn F_cr_changeCR; + [1] remoteExec ["civinfo_notifications"]; + + sleep 6; + + if ((random 100) <= KP_liberation_civinfo_task_chance) then { + private _hc = [] call KPLIB_fnc_getLessLoadedHC; + + if (isNull _hc) then { + [] spawn civinfo_task; + } else { + [] remoteExec ["civinfo_task", _hc]; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_loop.sqf b/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_loop.sqf new file mode 100644 index 0000000..db3a360 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civinformant/civinfo_loop.sqf @@ -0,0 +1,79 @@ +waitUntil {sleep 10; ({_x in sectors_capture || _x in sectors_bigtown} count blufor_sectors) > 0}; + +if (KP_liberation_civinfo_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +while {true} do { + uiSleep (KP_liberation_civinfo_min + round (random (KP_liberation_civinfo_max - KP_liberation_civinfo_min))); + + if (KP_liberation_civinfo_debug > 0) then {["Informant sleep passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + waitUntil { + sleep 10; + ({_x in sectors_capture || _x in sectors_bigtown} count blufor_sectors) > 0 && + KP_liberation_civ_rep >= 25 + }; + + if (KP_liberation_civinfo_debug > 0) then {["Informant waitUntil passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + if ((KP_liberation_civinfo_chance >= (random 100)) && GRLIB_endgame == 0) then { + private _sector = selectRandom (blufor_sectors select {_x in sectors_capture || _x in sectors_bigtown}); + private _house = (nearestObjects [[((markerPos _sector select 0) - 100 + (random 200)), ((markerPos _sector select 1) - 100 + (random 200))],["House", "Building"], 100]) select 0; + + private _grp = createGroup [GRLIB_side_civilian, true]; + private _informant = [selectRandom civilians, markerPos _sector, _grp] call KPLIB_fnc_createManagedUnit; + private _waiting_time = KP_liberation_civinfo_duration; + + _informant setPos (selectRandom (_house buildingPos -1)); + _informant setUnitPos "UP"; + sleep 1; + if (KP_liberation_ace) then { + ["ace_captives_setSurrendered", [_informant, true], _informant] call CBA_fnc_targetEvent; + } else { + _informant disableAI "ANIM"; + _informant disableAI "MOVE"; + _informant playmove "AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon"; + sleep 2; + _informant setCaptive true; + }; + + if (KP_liberation_civinfo_debug > 0) then {[format ["Informant %1 spawned on: %2 - Position: %3", name _informant, debug_source, getPos _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + [0, [((((getPos _informant) select 0) + 200) - random 400),((((getPos _informant) select 1) + 200) - random 400),0]] remoteExec ["civinfo_notifications"]; + + while {alive _informant && ((side (group _informant)) == GRLIB_side_civilian) && _waiting_time > 0} do { + uiSleep 1; + private _player_near = false; + { + if (((_x distance _informant) < 150) && (alive _x)) exitWith {_player_near = true}; + } foreach allPlayers; + + if !(_player_near) then { + _waiting_time = _waiting_time - 1; + }; + + if ((KP_liberation_civinfo_debug > 0) && ((_waiting_time % 60) == 0)) then {[format ["Informant will despawn in %1 minutes", round (_waiting_time / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + }; + + if (_waiting_time > 0) then { + if (alive _informant) then { + if (KP_liberation_ace) then { + ["ace_captives_setSurrendered", [_informant, false], _informant] call CBA_fnc_targetEvent; + } else { + _informant enableAI "ANIM"; + _informant enableAI "MOVE"; + }; + sleep 1; + [_informant] remoteExec ["civinfo_escort"]; + } else { + if (KP_liberation_civinfo_debug > 0) then {["Informant is dead", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + [3] remoteExec ["civinfo_notifications"]; + }; + } else { + deleteVehicle _informant; + if (KP_liberation_civinfo_debug > 0) then {["Informant despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + [2] remoteExec ["civinfo_notifications"]; + }; + } else { + if (KP_liberation_civinfo_debug > 0) then {["Informant spawn chance missed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civinformant/init_module.sqf b/kp_liberation.brf_sumava/scripts/server/civinformant/init_module.sqf new file mode 100644 index 0000000..30d789a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civinformant/init_module.sqf @@ -0,0 +1,6 @@ +// Scripts +// Task selection and spawning +civinfo_task = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; + +// Start spawn loop +execVM "scripts\server\civinformant\civinfo_loop.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/server/civinformant/tasks/civinfo_task.sqf b/kp_liberation.brf_sumava/scripts/server/civinformant/tasks/civinfo_task.sqf new file mode 100644 index 0000000..8f949a1 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civinformant/tasks/civinfo_task.sqf @@ -0,0 +1,76 @@ +if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _spawn_marker = [2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint; +private _roadObj = [markerPos _spawn_marker, 400, []] call BIS_fnc_nearestRoad; + +if (isNull _roadObj) exitWith {if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> no road found", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; + +private _veh = createVehicle [opfor_mrap, getPos _roadObj, [], 0, "NONE"]; +_veh setDir (getDir _roadObj); +{ + if ((_x find "FWheel") != -1) then { + _veh setHitPointDamage [_x, 1]; + }; +} forEach ((getAllHitPointsDamage _veh) select 0); + +private _grp = createGroup [GRLIB_side_enemy, true]; +private _hvt = [opfor_officer, getPos _roadObj, _grp, "CAPTAIN", 30] call KPLIB_fnc_createManagedUnit; + +for "_i" from 1 to 4 do { + [selectRandom militia_squad, _grp, _grp] call KPLIB_fnc_createManagedUnit; + sleep 0.1; +}; + +private _waypoint = _grp addWaypoint [getPos _roadObj, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointBehaviour "SAFE"; +_waypoint setWaypointCombatMode "YELLOW"; +_waypoint setWaypointSpeed "LIMITED"; +_waypoint setWaypointCompletionRadius 10; + +_waypoint = _grp addWaypoint [getPos _roadObj, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint = _grp addWaypoint [getPos _roadObj, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint = _grp addWaypoint [getPos _roadObj, 100]; +_waypoint setWaypointType "MOVE"; + +_waypoint = _grp addWaypoint [getPos _roadObj, 100]; +_waypoint setWaypointType "CYCLE"; + +if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> vehicle and group created on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _marker_pos = [((((getPos _roadObj) select 0) + 200) - random 400),((((getPos _roadObj) select 1) + 200) - random 400),0]; + +[4, _marker_pos] remoteExec ["civinfo_notifications"]; + +private _time_remaining = KP_liberation_civinfo_task_duration; + +while {(alive _hvt) && _time_remaining > 0} do { + uiSleep 1; + private _player_near = false; + { + if (((_x distance _veh) < 1000) && (alive _x)) exitWith {_player_near = true}; + } foreach allPlayers; + + if !(_player_near) then { + _time_remaining = _time_remaining - 1; + }; + if ((KP_liberation_civinfo_debug > 0) && ((_time_remaining % 60) == 0)) then {[format ["civinfo_task.sqf -> Task will despawn in %1 minutes", round (_time_remaining / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; + +if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> loop exited on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +if (alive _hvt) then { + deleteVehicle _veh; + {deleteVehicle _x} forEach (units _grp); + [6] remoteExec ["civinfo_notifications"]; + if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> Task despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +} else { + combat_readiness = round (combat_readiness * 0.6); + if (!isServer) then { + publicVariableServer "combat_readiness"; + }; + [5] remoteExec ["civinfo_notifications"]; + if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> Task ended with success", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf new file mode 100644 index 0000000..28adaf3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf @@ -0,0 +1,25 @@ +params ["_amount", ["_negative", false]]; + +if (!isServer) exitWith {}; + +if (KP_liberation_civrep_debug > 0) then {[format ["changeCR called - Parameters [%1, %2]", _amount, _negative], "CIVREP"] call KPLIB_fnc_log;}; + +if (_negative) then { + KP_liberation_civ_rep = KP_liberation_civ_rep - _amount; +} else { + KP_liberation_civ_rep = KP_liberation_civ_rep + _amount; +}; + +KP_liberation_civ_rep = -100 max (KP_liberation_civ_rep min 100); + +// Set correct resistance standing +private _resistanceEnemy = [0, 1] select (KP_liberation_civ_rep < 25); +private _resistanceFriendly = [0, 1] select (KP_liberation_civ_rep >= -25); + +GRLIB_side_resistance setFriend [GRLIB_side_enemy, _resistanceEnemy]; +GRLIB_side_enemy setFriend [GRLIB_side_resistance, _resistanceEnemy]; +GRLIB_side_resistance setFriend [GRLIB_side_friendly, _resistanceFriendly]; +GRLIB_side_friendly setFriend [GRLIB_side_resistance, _resistanceFriendly]; + +if (KP_liberation_civrep_debug > 0) then {[format ["changeCR finished - New value: %1", KP_liberation_civ_rep], "CIVREP"] call KPLIB_fnc_log;}; +if (KP_liberation_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", GRLIB_side_resistance, GRLIB_side_enemy, (GRLIB_side_resistance getFriend GRLIB_side_enemy), GRLIB_side_friendly, (GRLIB_side_resistance getFriend GRLIB_side_friendly)], "CIVREP"] call KPLIB_fnc_log;}; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf new file mode 100644 index 0000000..1aded43 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf @@ -0,0 +1,11 @@ +params ["_sector"]; + +private _return = 0; + +if (KP_liberation_cr_param_buildings) then { + _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * GRLIB_capture_size] select {(damage _x == 0) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}); +} else { + _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * GRLIB_capture_size] select {(alive _x) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}); +}; + +_return diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf new file mode 100644 index 0000000..1fd0de0 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf @@ -0,0 +1,25 @@ +params ["_sector"]; + +if (_sector in sectors_bigtown || _sector in sectors_capture) then { + private _penalty = 0; + + { + if (_sector == (_x select 0)) exitWith {_penalty = (_x select 1) - ([_sector] call F_cr_getBuildings)}; + } forEach KP_liberation_cr_sectorbuildings; + + stats_civilian_buildings_destroyed = stats_civilian_buildings_destroyed + _penalty; + + _penalty = _penalty * KP_liberation_cr_building_penalty; + + if (_penalty > 0) then { + [1, [(_penalty / KP_liberation_cr_building_penalty)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + }; + + if (_sector in sectors_bigtown) then { + [(2 * KP_liberation_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; + } else { + [(KP_liberation_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; + }; + + [format ["Civilian sector %1 (%2) captured. Penalty: %3", markerText _sector, _sector, _penalty], "CIVREP"] call KPLIB_fnc_log; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_woundedAnim.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_woundedAnim.sqf new file mode 100644 index 0000000..606cfc0 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/fnc/f_kp_cr_woundedAnim.sqf @@ -0,0 +1,11 @@ +/* +f_kp_cr_woundedAnim.sqf +Author: veteran29 + +Description: +Play random wounded animation on given unit +*/ +params ["_unit"]; + +private _anim = selectRandom ["Acts_CivilInjuredHead_1", "Acts_CivilInjuredArms_1", "Acts_CivilInjuredChest_1", "Acts_CivilInjuredLegs_1", "Acts_CivilInjuredGeneral_1", "Acts_SittingWounded_loop"]; +[_unit, _anim] remoteExec ["switchMove"]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/altis.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/altis.sqf new file mode 100644 index 0000000..97e6c5f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/altis.sqf @@ -0,0 +1,61 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Cargo_House_V1_F", + "Land_Cargo_House_V2_F", + "Land_Cargo_House_V3_F", + "Land_Cargo_HQ_V1_F", + "Land_Cargo_Patrol_V1_F", + "Land_Cargo_Tower_V1_F", + "Land_Carousel_01_F", + "Land_Communication_anchor_F", + "Land_Crane_F", + "Land_d_Addon_02_V1_F", + "Land_d_House_Big_01_V1_F", + "Land_d_House_Big_02_V1_F", + "Land_d_House_Small_01_V1_F", + "Land_d_House_Small_02_V1_F", + "Land_d_Shop_01_V1_F", + "Land_d_Shop_02_V1_F", + "Land_d_Stone_HouseBig_V1_F", + "Land_d_Stone_HouseSmall_V1_F", + "Land_d_Stone_Shed_V1_F", + "Land_d_Windmill01_F", + "Land_Dome_Big_F", + "Land_dp_transformer_F", + "Land_Flush_Light_green_F", + "Land_Flush_Light_yellow_F", + "Land_fs_feed_F", + "Land_fs_roof_F", + "Land_HighVoltageColumn_F", + "Land_HighVoltageColumnWire_F", + "Land_HighVoltageEnd_F", + "Land_HighVoltageTower_large_F", + "Land_HighVoltageTower_largeCorner_F", + "Land_IndPipe2_big_ground1_F", + "Land_IndPipe2_big_ground2_F", + "Land_IndPipe2_bigL_R_F", + "Land_LampAirport_F", + "Land_LampAirport_off_F", + "Land_LampDecor_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampSolar_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_LifeguardTower_01_F", + "Land_nav_pier_m_F", + "Land_Pier_F", + "Land_Pier_small_F", + "Land_PierLadder_F", + "Land_PowerPoleWooden_L_F", + "Land_PowerWireBig_direct_F", + "Land_PowerWireBig_left_F", + "Land_PowerWireBig_right_F", + "Land_Research_house_V1_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_SlideCastle_F", + "Land_spp_Mirror_F", + "Land_TTowerSmall_1_F", + "Land_TTowerSmall_2_F" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus.sqf new file mode 100644 index 0000000..8244efb --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus.sqf @@ -0,0 +1,157 @@ +KP_liberation_cr_ign_buildings = [ + "Land_A_Crane_02a", + "Land_A_Crane_02b", + "Land_A_FuelStation_Shed", + "Land_BoatSmall_1", + "Land_BoatSmall_2a", + "Land_BoatSmall_2b", + "Land_Brana02nodoor", + "Land_Company3_2", + "Land_D_Mlyn_Vys", + "Land_D_Pec_Vez1", + "Land_D_Pec_Vez2", + "Land_D_Vez_Mlyn", + "Land_Farm_WTower", + "Land_Gate_Wood1_5", + "Land_Gate_wood2_5", + "Land_Ind_BoardsPack1", + "Land_Ind_BoardsPack2", + "Land_Ind_Expedice_1", + "Land_Ind_Expedice_2", + "Land_Ind_Expedice_3", + "Land_Ind_IlluminantTower", + "Land_Ind_Mlyn_01", + "Land_Ind_Mlyn_02", + "Land_Ind_Mlyn_03", + "Land_Ind_Mlyn_04", + "Land_Ind_Mlyn_D1", + "Land_Ind_Mlyn_D2", + "Land_Ind_SawMillPen", + "Land_Ind_Shed_01_end", + "Land_Ind_Shed_01_main", + "Land_Ind_Shed_02_end", + "Land_Ind_Shed_02_main", + "Land_Ind_SiloVelke_most", + "Land_Ind_TankSmall", + "Land_Ind_TankSmall2", + "Land_Ind_Timbers", + "Land_IndPipe1_stair", + "Land_IndPipe2_big_18", + "Land_IndPipe2_big_18ladder", + "Land_IndPipe2_big_9", + "Land_IndPipe2_big_ground1", + "Land_IndPipe2_big_ground2", + "Land_IndPipe2_big_support", + "Land_IndPipe2_bigBuild1_R", + "Land_IndPipe2_bigBuild2_L", + "Land_IndPipe2_bigL_L", + "Land_IndPipe2_bigL_R", + "Land_IndPipe2_Small_9", + "Land_IndPipe2_Small_ground1", + "Land_IndPipe2_Small_ground2", + "Land_IndPipe2_SmallBuild1_R", + "Land_IndPipe2_SmallBuild2_R", + "Land_IndPipe2_SmallL_L", + "Land_IndPipe2_SmallL_R", + "Land_IndPipe2_T_L", + "Land_IndPipe2_T_R", + "Land_KBud", + "Land_Kontejner", + "Land_Lampa_ind", + "Land_Lampa_ind_zebr", + "Land_Lampa_sidl", + "Land_Lampa_sidl_2", + "Land_Lampa_sidl_3", + "Land_loco_742_blue", + "Land_Misc_Cargo1Ao", + "Land_Misc_Cargo1B", + "Land_Misc_Cargo1Bo", + "Land_Misc_Cargo1C", + "Land_Misc_Cargo1D", + "Land_Misc_Cargo2B", + "Land_Misc_Cargo2C", + "Land_Misc_Cargo2D", + "Land_Misc_Cargo2E", + "Land_Misc_deerstand", + "Land_Misc_GContainer_Big", + "Land_Misc_Scaffolding", + "Land_Molo_drevo_bs", + "Land_Molo_drevo_end", + "Land_Nasypka", + "Land_Nav_Boathouse_PierT", + "land_nav_pier_c", + "land_nav_pier_c_270", + "land_nav_pier_c_90", + "land_nav_pier_c_big", + "land_nav_pier_C_L10", + "land_nav_pier_C_R10", + "land_nav_pier_C_R30", + "land_nav_pier_c_t15", + "land_nav_pier_c_t20", + "land_nav_pier_c2", + "land_nav_pier_c2_end", + "land_nav_pier_F_17", + "land_nav_pier_F_23", + "Land_nav_pier_m_2", + "land_nav_pier_m_end", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_PowLines_ConcL", + "Land_PowLines_WoodL", + "Land_Psi_bouda", + "Land_Pumpa", + "Land_Rail_Semafor", + "Land_Rail_Zavora", + "Land_ruin_wall", + "Land_seno_balik", + "Land_Shed_M02", + "Land_sign_altar", + "Land_sign_balota", + "Land_Sign_Bar_RU", + "Land_sign_berezino", + "Land_Sign_BES", + "Land_sign_chernogorsk", + "Land_sign_elektrozavodsk", + "Land_sign_kamenka", + "Land_sign_kamyshovo", + "Land_sign_komarovo", + "Land_sign_solnichnyi", + "Land_SignB_Gov", + "Land_SignB_GovPolice", + "Land_SignB_GovSchool", + "Land_SignB_GovSign", + "Land_SignB_Hotel_CZ2", + "Land_SignB_PostOffice", + "Land_SignB_Pub_CZ1", + "Land_SignB_Pub_CZ2", + "Land_SignB_Pub_CZ3", + "Land_SignB_Pub_RU1", + "Land_SignB_Pub_RU2", + "Land_SignB_Pub_RU3", + "Land_sloup_vn", + "Land_sloup_vn_drat", + "Land_sloup_vn_drat_d", + "Land_sloup_vn_dratZ", + "Land_Stoplight02", + "Land_Tec", + "Land_Trafostanica_velka", + "Land_Trafostanica_velka_draty", + "Land_Vez", + "Land_Vez_Pec", + "Land_wagon_box", + "Land_Wall_CBrk_5_D", + "Land_Wall_CGry_5_D", + "Land_Wall_Gate_Ind1_L", + "Land_Wall_Gate_Ind1_R", + "Land_Wall_Gate_Ind2A_L", + "Land_Wall_Gate_Ind2A_R", + "Land_Wall_Gate_Ind2B_L", + "Land_Wall_Gate_Ind2B_R", + "Land_Wall_Gate_Ind2Rail_L", + "Land_Wall_Gate_Ind2Rail_R", + "Land_Wall_Gate_Kolchoz", + "Land_Wall_Gate_Village", + "Land_Wall_Gate_Wood1" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus2020.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus2020.sqf new file mode 100644 index 0000000..f050ee3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/chernarus2020.sqf @@ -0,0 +1,159 @@ +KP_liberation_cr_ign_buildings = [ + "Land_A_Crane_02a", + "Land_popelnice", + "Land_fuel_tank_small", + "Land_A_Crane_02b", + "Land_A_FuelStation_Shed", + "Land_BoatSmall_1", + "Land_BoatSmall_2a", + "Land_BoatSmall_2b", + "Land_Brana02nodoor", + "Land_Company3_2", + "Land_D_Mlyn_Vys", + "Land_D_Pec_Vez1", + "Land_D_Pec_Vez2", + "Land_D_Vez_Mlyn", + "Land_Farm_WTower", + "Land_Gate_Wood1_5", + "Land_Gate_wood2_5", + "Land_Ind_BoardsPack1", + "Land_Ind_BoardsPack2", + "Land_Ind_Expedice_1", + "Land_Ind_Expedice_2", + "Land_Ind_Expedice_3", + "Land_Ind_IlluminantTower", + "Land_Ind_Mlyn_01", + "Land_Ind_Mlyn_02", + "Land_Ind_Mlyn_03", + "Land_Ind_Mlyn_04", + "Land_Ind_Mlyn_D1", + "Land_Ind_Mlyn_D2", + "Land_Ind_SawMillPen", + "Land_Ind_Shed_01_end", + "Land_Ind_Shed_01_main", + "Land_Ind_Shed_02_end", + "Land_Ind_Shed_02_main", + "Land_Ind_SiloVelke_most", + "Land_Ind_TankSmall", + "Land_Ind_TankSmall2", + "Land_Ind_Timbers", + "Land_IndPipe1_stair", + "Land_IndPipe2_big_18", + "Land_IndPipe2_big_18ladder", + "Land_IndPipe2_big_9", + "Land_IndPipe2_big_ground1", + "Land_IndPipe2_big_ground2", + "Land_IndPipe2_big_support", + "Land_IndPipe2_bigBuild1_R", + "Land_IndPipe2_bigBuild2_L", + "Land_IndPipe2_bigL_L", + "Land_IndPipe2_bigL_R", + "Land_IndPipe2_Small_9", + "Land_IndPipe2_Small_ground1", + "Land_IndPipe2_Small_ground2", + "Land_IndPipe2_SmallBuild1_R", + "Land_IndPipe2_SmallBuild2_R", + "Land_IndPipe2_SmallL_L", + "Land_IndPipe2_SmallL_R", + "Land_IndPipe2_T_L", + "Land_IndPipe2_T_R", + "Land_KBud", + "Land_Kontejner", + "Land_Lampa_ind", + "Land_Lampa_ind_zebr", + "Land_Lampa_sidl", + "Land_Lampa_sidl_2", + "Land_Lampa_sidl_3", + "Land_loco_742_blue", + "Land_Misc_Cargo1Ao", + "Land_Misc_Cargo1B", + "Land_Misc_Cargo1Bo", + "Land_Misc_Cargo1C", + "Land_Misc_Cargo1D", + "Land_Misc_Cargo2B", + "Land_Misc_Cargo2C", + "Land_Misc_Cargo2D", + "Land_Misc_Cargo2E", + "Land_Misc_deerstand", + "Land_Misc_GContainer_Big", + "Land_Misc_Scaffolding", + "Land_Molo_drevo_bs", + "Land_Molo_drevo_end", + "Land_Nasypka", + "Land_Nav_Boathouse_PierT", + "land_nav_pier_c", + "land_nav_pier_c_270", + "land_nav_pier_c_90", + "land_nav_pier_c_big", + "land_nav_pier_C_L10", + "land_nav_pier_C_R10", + "land_nav_pier_C_R30", + "land_nav_pier_c_t15", + "land_nav_pier_c_t20", + "land_nav_pier_c2", + "land_nav_pier_c2_end", + "land_nav_pier_F_17", + "land_nav_pier_F_23", + "Land_nav_pier_m_2", + "land_nav_pier_m_end", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_PowLines_ConcL", + "Land_PowLines_WoodL", + "Land_Psi_bouda", + "Land_Pumpa", + "Land_Rail_Semafor", + "Land_Rail_Zavora", + "Land_ruin_wall", + "Land_seno_balik", + "Land_Shed_M02", + "Land_sign_altar", + "Land_sign_balota", + "Land_Sign_Bar_RU", + "Land_sign_berezino", + "Land_Sign_BES", + "Land_sign_chernogorsk", + "Land_sign_elektrozavodsk", + "Land_sign_kamenka", + "Land_sign_kamyshovo", + "Land_sign_komarovo", + "Land_sign_solnichnyi", + "Land_SignB_Gov", + "Land_SignB_GovPolice", + "Land_SignB_GovSchool", + "Land_SignB_GovSign", + "Land_SignB_Hotel_CZ2", + "Land_SignB_PostOffice", + "Land_SignB_Pub_CZ1", + "Land_SignB_Pub_CZ2", + "Land_SignB_Pub_CZ3", + "Land_SignB_Pub_RU1", + "Land_SignB_Pub_RU2", + "Land_SignB_Pub_RU3", + "Land_sloup_vn", + "Land_sloup_vn_drat", + "Land_sloup_vn_drat_d", + "Land_sloup_vn_dratZ", + "Land_Stoplight02", + "Land_Tec", + "Land_Trafostanica_velka", + "Land_Trafostanica_velka_draty", + "Land_Vez", + "Land_Vez_Pec", + "Land_wagon_box", + "Land_Wall_CBrk_5_D", + "Land_Wall_CGry_5_D", + "Land_Wall_Gate_Ind1_L", + "Land_Wall_Gate_Ind1_R", + "Land_Wall_Gate_Ind2A_L", + "Land_Wall_Gate_Ind2A_R", + "Land_Wall_Gate_Ind2B_L", + "Land_Wall_Gate_Ind2B_R", + "Land_Wall_Gate_Ind2Rail_L", + "Land_Wall_Gate_Ind2Rail_R", + "Land_Wall_Gate_Kolchoz", + "Land_Wall_Gate_Village", + "Land_Wall_Gate_Wood1" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/enoch.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/enoch.sqf new file mode 100644 index 0000000..c5d8691 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/enoch.sqf @@ -0,0 +1,84 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Bunker_02_double_F", + "Land_Bunker_02_left_F", + "Land_Bunker_02_light_double_F", + "Land_Bunker_02_light_left_F", + "Land_Bunker_02_light_right_F", + "Land_Bunker_02_right_F", + "Land_Calvary_03_F", + "Land_CastleRuins_01_wall_10m_F", + "Land_CastleRuins_01_wall_d_L_F", + "Land_CastleRuins_01_wall_d_R_F", + "Land_ChickenCoop_01_F", + "Land_cmp_Shed_dam_F", + "Land_Communication_F", + "Land_ConcreteWell_02_F", + "Land_Cross_01_small_F", + "Land_DeerStand_01_F", + "Land_DPP_01_waterCooler_F", + "Land_DryToilet_01_F", + "Land_FeedRack_01_F", + "Land_FeedStorage_01_F", + "Land_FuelStation_03_pump_F", + "Land_Grave_08_F", + "Land_Grave_09_F", + "Land_Grave_10_F", + "Land_Grave_11_F", + "Land_GraveFence_01_F", + "Land_GraveFence_02_F", + "Land_GraveFence_03_F", + "Land_GraveFence_04_F", + "Land_Greenhouse_01_damaged_F", + "Land_GuardTower_02_F", + "Land_HighVoltageEnd_F", + "Land_HighVoltageTower_large_F", + "Land_Hutch_01_F", + "Land_IndPipe3_big_ground1_F", + "Land_IndPipe3_big_ground2_F", + "Land_IndPipe3_bigL_L_F", + "Land_IndPipe3_bigL_R_F", + "Land_LampDecor_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampIndustrial_01_F", + "Land_LampIndustrial_01_off_F", + "Land_LampIndustrial_02_F", + "Land_LampIndustrial_02_off_F", + "Land_LampShabby_F", + "Land_LampStreet_02_amplion_F", + "Land_LampStreet_02_amplion_off_F", + "Land_LampStreet_02_double_F", + "Land_LampStreet_02_double_off_F", + "Land_LampStreet_02_F", + "Land_LampStreet_02_off_F", + "Land_LampStreet_02_triple_off_F", + "Land_Power_Pole_Wood1_Amp", + "Land_Power_Pole_Wood1_Lamp_Amp", + "Land_Power_Pole_Wood1_Lamp", + "Land_Power_Pole_Wood1", + "Land_Power_Pole_Wood3", + "Land_PowerLine_01_wire_50m_F", + "Land_PowerLine_01_wire_50m_main_F", + "Land_PowerLine_02_pole_junction_A_F", + "Land_powerline_02_pole_junction_nest_a_f", + "Land_PowerLine_02_pole_small_A_F", + "Land_PowerLine_02_pole_small_end_A_F", + "Land_PowerLine_02_pole_small_F", + "Land_powerline_02_pole_small_hook_end_f", + "Land_PowerLine_02_pole_small_hook_F", + "Land_powerline_02_pole_small_hook_junction_f", + "Land_PowerLine_03_pole_end_F", + "Land_PowerLine_03_pole_F", + "Land_PowerLine_03_pole_junction_F", + "Land_PowerWireBig_direct_F", + "Land_PowerWireBig_end_F", + "Land_Radar_01_airshaft_F", + "Land_Rail_ConcreteRamp_F", + "Land_Rail_Crossing_Barrier_F", + "Land_Sawmill_01_illuminati_tower_F", + "Land_Shed_06_F", + "Land_Shed_10_F", + "Land_StoneWell_01_F", + "Land_TelephoneLine_01_wire_50m_main_F", + "Land_TTowerSmall_2_F" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf new file mode 100644 index 0000000..948a312 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf @@ -0,0 +1,122 @@ +KP_liberation_cr_ign_buildings = [ + "land_gm_euro_beersign_01", + "land_gm_euro_beersign_02", + "land_gm_euro_beersign_03", + "land_gm_euro_beersign_04", + "land_gm_euro_beersign_05", + "land_gm_euro_bridge_01_25_pathlod", + "land_gm_euro_bridge_02_20_pathlod", + "land_gm_euro_bridge_03_50_pathlod", + "land_gm_euro_busstop_01", + "land_gm_euro_busstop_02", + "land_gm_euro_deerstand_01", + "land_gm_euro_fuelpump_01_e", + "land_gm_euro_fuelpump_01_w", + "land_gm_euro_fuelpump_02_e", + "land_gm_euro_fuelpump_02_w", + "land_gm_euro_fuelstation_02", + "land_gm_euro_gardenshed_01", + "land_gm_euro_gardenshed_05", + "land_gm_euro_gardenshed_06", + "land_gm_euro_misc_awning_01", + "land_gm_euro_misc_awning_02", + "land_gm_euro_misc_awning_03", + "land_gm_euro_misc_awning_04", + "land_gm_euro_misc_awning_05", + "land_gm_euro_misc_bargate_01_open", + "land_gm_euro_misc_bargate_02", + "land_gm_euro_misc_chickencoop_01", + "land_gm_euro_misc_clothesline_01", + "land_gm_euro_misc_clothesline_02", + "land_gm_euro_misc_container_02_blu", + "land_gm_euro_misc_container_02_grn", + "land_gm_euro_misc_container_02_gry", + "land_gm_euro_misc_container_02_orn", + "land_gm_euro_misc_feh_62_e", + "land_gm_euro_misc_mailbox_01_01", + "land_gm_euro_misc_mailbox_01_02", + "land_gm_euro_misc_mailbox_02_01", + "land_gm_euro_misc_mailbox_02_02", + "land_gm_euro_misc_mailbox_03_01", + "land_gm_euro_misc_mailbox_03_02", + "land_gm_euro_misc_mailbox_04_01", + "land_gm_euro_misc_mailbox_04_02", + "land_gm_euro_misc_mailbox_05_01", + "land_gm_euro_misc_mailbox_05_02", + "land_gm_euro_misc_mailbox_06_01", + "land_gm_euro_misc_mailbox_06_02", + "land_gm_euro_misc_postbox_e", + "land_gm_euro_misc_postbox_w", + "land_gm_euro_misc_powerbox_04_w", + "land_gm_euro_misc_powerbox_05", + "land_gm_euro_misc_sandbox_01", + "land_gm_euro_misc_telh_78_w", + "land_gm_euro_misc_trashbin_02", + "land_gm_euro_powerline_01_01", + "land_gm_euro_powerline_01_02", + "land_gm_euro_powerline_01_50_0", + "land_gm_euro_powerline_02_01", + "land_gm_euro_powerline_02_02", + "land_gm_euro_powerline_02_03", + "land_gm_euro_powerline_02_50_0", + "land_gm_euro_powerline_02_50_23", + "land_gm_euro_powerline_02_50_5", + "land_gm_euro_powerline_03_01_e", + "land_gm_euro_powerline_03_01_w", + "land_gm_euro_powerline_03_100_0", + "land_gm_euro_powerline_03_100_23", + "land_gm_euro_powerline_03_100_5", + "land_gm_euro_pubsign_01", + "land_gm_euro_pubsign_02", + "land_gm_euro_pubsign_03", + "land_gm_euro_pubsign_04", + "land_gm_euro_pubsign_05", + "land_gm_euro_pubsign_06", + "land_gm_euro_shed_02", + "land_gm_euro_sidewall_01", + "land_gm_fence_garden_02_300", + "land_gm_fence_garden_04_300", + "land_gm_fence_garden_06_300", + "land_gm_fence_garden_07_300", + "land_gm_fence_garden_08_400", + "land_gm_fence_garden_09_400", + "land_gm_fence_garden_10_300", + "land_gm_fence_garden_13_300_01", + "land_gm_fence_garden_13_300_02", + "land_gm_fence_garden_13_300_03", + "land_gm_fence_garden_13_300_04", + "land_gm_fence_garden_13_post", + "land_gm_fence_garden_15_400", + "land_gm_fence_railing_01_200", + "land_gm_fence_railing_02_200", + "land_gm_fence_railing_03_60", + "land_gm_gc_ds977_50", + "land_gm_gc_lamp_01_01", + "land_gm_gc_lamp_02_01", + "land_gm_gc_lamp_03", + "land_gm_gc_lamp_04", + "land_gm_ge_einheitssirene_57", + "land_gm_ge_lamp_01_01", + "land_gm_ge_lamp_01_02", + "land_gm_ge_lamp_02_01", + "land_gm_ge_lamp_02_02", + "land_gm_ge_lamp_03_01", + "land_gm_ge_lamp_05", + "land_gm_inset_pub_01", + "land_gm_inset_shop_empty_01", + "land_gm_inset_shop_grocer_01", + "land_gm_inset_shop_grocer_02_e", + "land_gm_inset_shop_grocer_02_w", + "land_gm_inset_shop_post_01", + "land_gm_inset_shop_toystore_01", + "land_gm_sign_ge_post_01", + "land_gm_sign_ge_post_02", + "land_gm_wall_castle_01_arches_01", + "land_gm_wall_castle_01_corner_01", + "land_gm_wall_castle_01_end_01", + "land_gm_wall_castle_01_end_02", + "land_gm_wall_castle_01_gate_01", + "land_gm_wall_castle_01_stairs_01", + "land_gm_wall_castle_01_tower_01", + "land_gm_wall_castle_01_wall_01" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf new file mode 100644 index 0000000..d6b269a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf @@ -0,0 +1,122 @@ +KP_liberation_cr_ign_buildings = [ + "land_gm_euro_beersign_01", + "land_gm_euro_beersign_02", + "land_gm_euro_beersign_03", + "land_gm_euro_beersign_04", + "land_gm_euro_beersign_05", + "land_gm_euro_bridge_01_25_pathlod", + "land_gm_euro_bridge_02_20_pathlod", + "land_gm_euro_bridge_03_50_pathlod", + "land_gm_euro_busstop_01", + "land_gm_euro_busstop_02", + "land_gm_euro_deerstand_01", + "land_gm_euro_fuelpump_01_e", + "land_gm_euro_fuelpump_01_w", + "land_gm_euro_fuelpump_02_e", + "land_gm_euro_fuelpump_02_w", + "land_gm_euro_fuelstation_02_win", + "land_gm_euro_gardenshed_01", + "land_gm_euro_gardenshed_05", + "land_gm_euro_gardenshed_06", + "land_gm_euro_misc_awning_01_win", + "land_gm_euro_misc_awning_02_win", + "land_gm_euro_misc_awning_03_win", + "land_gm_euro_misc_awning_04_win", + "land_gm_euro_misc_awning_05_win", + "land_gm_euro_misc_bargate_01_open", + "land_gm_euro_misc_bargate_02", + "land_gm_euro_misc_chickencoop_01", + "land_gm_euro_misc_clothesline_01_win", + "land_gm_euro_misc_clothesline_02_win", + "land_gm_euro_misc_container_02_blu", + "land_gm_euro_misc_container_02_grn", + "land_gm_euro_misc_container_02_gry", + "land_gm_euro_misc_container_02_orn", + "land_gm_euro_misc_feh_62_e", + "land_gm_euro_misc_mailbox_01_01", + "land_gm_euro_misc_mailbox_01_02", + "land_gm_euro_misc_mailbox_02_01", + "land_gm_euro_misc_mailbox_02_02", + "land_gm_euro_misc_mailbox_03_01", + "land_gm_euro_misc_mailbox_03_02", + "land_gm_euro_misc_mailbox_04_01", + "land_gm_euro_misc_mailbox_04_02", + "land_gm_euro_misc_mailbox_05_01", + "land_gm_euro_misc_mailbox_05_02", + "land_gm_euro_misc_mailbox_06_01", + "land_gm_euro_misc_mailbox_06_02", + "land_gm_euro_misc_postbox_e", + "land_gm_euro_misc_postbox_w", + "land_gm_euro_misc_powerbox_04_w", + "land_gm_euro_misc_powerbox_05", + "land_gm_euro_misc_sandbox_01", + "land_gm_euro_misc_telh_78_w", + "land_gm_euro_misc_trashbin_02", + "land_gm_euro_powerline_01_01", + "land_gm_euro_powerline_01_02", + "land_gm_euro_powerline_01_50_0", + "land_gm_euro_powerline_02_01", + "land_gm_euro_powerline_02_02", + "land_gm_euro_powerline_02_03", + "land_gm_euro_powerline_02_50_0", + "land_gm_euro_powerline_02_50_23", + "land_gm_euro_powerline_02_50_5", + "land_gm_euro_powerline_03_01_e", + "land_gm_euro_powerline_03_01_w", + "land_gm_euro_powerline_03_100_0", + "land_gm_euro_powerline_03_100_23", + "land_gm_euro_powerline_03_100_5", + "land_gm_euro_pubsign_01", + "land_gm_euro_pubsign_02", + "land_gm_euro_pubsign_03", + "land_gm_euro_pubsign_04", + "land_gm_euro_pubsign_05", + "land_gm_euro_pubsign_06", + "land_gm_euro_shed_02_win", + "land_gm_euro_sidewall_01", + "land_gm_fence_garden_02_300", + "land_gm_fence_garden_04_300", + "land_gm_fence_garden_06_300", + "land_gm_fence_garden_07_300", + "land_gm_fence_garden_08_400", + "land_gm_fence_garden_09_400", + "land_gm_fence_garden_10_300", + "land_gm_fence_garden_13_300_01", + "land_gm_fence_garden_13_300_02", + "land_gm_fence_garden_13_300_03", + "land_gm_fence_garden_13_300_04", + "land_gm_fence_garden_13_post", + "land_gm_fence_garden_15_400", + "land_gm_fence_railing_01_200", + "land_gm_fence_railing_02_200", + "land_gm_fence_railing_03_60", + "land_gm_gc_ds977_50", + "land_gm_gc_lamp_01_01", + "land_gm_gc_lamp_02_01", + "land_gm_gc_lamp_03", + "land_gm_gc_lamp_04", + "land_gm_ge_einheitssirene_57", + "land_gm_ge_lamp_01_01", + "land_gm_ge_lamp_01_02", + "land_gm_ge_lamp_02_01", + "land_gm_ge_lamp_02_02", + "land_gm_ge_lamp_03_01", + "land_gm_ge_lamp_05", + "land_gm_inset_pub_01", + "land_gm_inset_shop_empty_01", + "land_gm_inset_shop_grocer_01", + "land_gm_inset_shop_grocer_02_e", + "land_gm_inset_shop_grocer_02_w", + "land_gm_inset_shop_post_01", + "land_gm_inset_shop_toystore_01", + "land_gm_sign_ge_post_01", + "land_gm_sign_ge_post_02", + "land_gm_wall_castle_01_arches_01", + "land_gm_wall_castle_01_corner_01", + "land_gm_wall_castle_01_end_01", + "land_gm_wall_castle_01_end_02", + "land_gm_wall_castle_01_gate_01", + "land_gm_wall_castle_01_stairs_01", + "land_gm_wall_castle_01_tower_01", + "land_gm_wall_castle_01_wall_01" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/lythium.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/lythium.sqf new file mode 100644 index 0000000..d19ab52 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/lythium.sqf @@ -0,0 +1,100 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Cargo_House_V1_F", + "Land_Cargo_House_V2_F", + "Land_Cargo_House_V3_F", + "Land_Cargo_HQ_V1_F", + "Land_Cargo_HQ_V3_F", + "Land_Cargo_Patrol_V1_F", + "Land_Cargo_Patrol_V3_F", + "Land_Carousel_01_F", + "Land_cmp_Shed_dam_F", + "Land_Communication_F", + "Land_Crane_F", + "Land_Factory_Conv1_10_F", + "Land_Factory_Conv2_F", + "Land_ffaa_casa_caseta_peq", + "Land_fs_feed_F", + "Land_FuelStation_Feed_F", + "Land_FuelStation_Shed_F", + "Land_IndPipe2_big_ground1_F", + "Land_Jbad_Cargo1_int", + "Land_Jbad_Cargo2_int", + "Land_Jbad_Cargo3_int", + "Land_Jbad_Cargo4_int", + "Land_Jbad_Cargo5_int", + "Land_Jbad_Cargo6_int", + "Land_Jbad_Cargo7_int", + "Land_jbad_Com_tower", + "Land_Jbad_Ind_Coltan_Conv1_10", + "Land_Jbad_Ind_Coltan_Conv1_Main", + "Land_Jbad_Ind_Coltan_Main", + "Land_Jbad_Ind_Conveyer", + "Land_Jbad_Ind_FuelStation_Feed", + "Land_Jbad_Ind_FuelStation_Shed", + "Land_Jbad_Ind_FuelStation_Sign", + "Land_Jbad_Ind_Shed_01", + "Land_Jbad_Ind_Shed_02", + "Land_Jbad_Kamenny_most30", + "Land_Jbad_Lamp_small", + "Land_Jbad_Lamp_Street1", + "Land_Jbad_lampa_ind", + "Land_jbad_Misc_Cable", + "Land_jbad_Misc_Cable_Rugs1", + "Land_jbad_Misc_ConcBox", + "Land_jbad_Misc_ConcOutlet", + "Land_jbad_Misc_Rubble", + "Land_Jbad_Misc_Well_C", + "Land_Jbad_Misc_Well_L", + "Land_Jbad_most_stred30", + "Land_jbad_terrace", + "Land_jbad_Wall_L_2m5", + "Land_jbad_Wall_L_2m5_corner", + "Land_jbad_Wall_L_2m5_corner_dam", + "Land_jbad_Wall_L_2m5_dam", + "Land_jbad_Wall_L_2m5_gate", + "Land_jbad_Wall_L_2m5_gate_dam", + "Land_jbad_wall_l_5m", + "Land_jbad_wall_l_5m_dam", + "Land_jbad_wall_l_5m_damV2", + "Land_jbad_Wall_L_Mosque_1", + "Land_jbad_Wall_L_Mosque_1_dam", + "Land_jbad_Wall_L_Mosque_2", + "Land_jbad_Wall_L_Mosque_2_dam", + "Land_jbad_Wall_L1_2m5", + "Land_jbad_Wall_L1_2m5_dam", + "Land_jbad_Wall_L1_5m", + "Land_jbad_Wall_L1_5m_dam", + "Land_jbad_wall_l1_gate", + "Land_jbad_Wall_L1_Pillar", + "Land_jbad_Wall_L1_Pillar_dam", + "Land_jbad_Wall_L2_5m", + "Land_jbad_Wall_L2_5m_dam", + "Land_jbad_wall_L2_5m_End", + "Land_jbad_wall_l2_5m_End_dam", + "Land_jbad_Wall_L3_5m", + "Land_jbad_Wall_L3_5m_dam", + "Land_jbad_wall_l3_gate", + "Land_jbad_Wall_L3_Pillar", + "Land_LampAirport_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_LandMark_F", + "Land_Medevac_house_V1_F", + "Land_Medevac_HQ_V1_F", + "Land_NavigLight", + "Land_Pier_F", + "Land_Pier_small_F", + "Land_Research_house_V1_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_spp_Mirror_F", + "Land_TentHangar_V1_dam_F", + "Land_TentHangar_V1_F", + "Land_TTowerBig_2_F", + "Land_TTowerSmall_1_F", + "Land_TTowerSmall_2_F", + "Land_u_Addon_01_V1_dam_F" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/malden.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/malden.sqf new file mode 100644 index 0000000..faf77a3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/malden.sqf @@ -0,0 +1,61 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Bunker_01_big_F", + "Land_Bunker_01_small_F", + "Land_cargo_addon02_V1_F", + "Land_Cargo_House_V4_F", + "Land_Cargo_Patrol_V4_F", + "Land_Cargo_Tower_V4_F", + "Land_Carousel_01_F", + "Land_Communication_F", + "Land_d_House_Big_01_V1_F", + "Land_d_House_Big_02_V1_F", + "Land_d_House_Small_01_V1_F", + "Land_d_House_Small_02_V1_F", + "Land_d_Stone_HouseBig_V1_F", + "Land_d_Stone_HouseSmall_V1_F", + "Land_d_Stone_Shed_V1_F", + "Land_Flush_Light_green_F", + "Land_Flush_Light_red_F", + "Land_Flush_Light_yellow_F", + "Land_fs_feed_F", + "Land_fs_roof_F", + "Land_FuelStation_01_pump_malevil_F", + "Land_FuelStation_01_roof_malevil_F", + "Land_FuelStation_Feed_F", + "Land_IndPipe2_big_18ladder_F", + "Land_IndPipe2_big_ground1_F", + "Land_IndPipe2_big_ground2_F", + "Land_IndPipe2_bigL_L_F", + "Land_IndPipe2_bigL_R_F", + "Land_LampAirport_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_MetalShelter_01_F", + "Land_MetalShelter_02_F", + "Land_nav_pier_m_F", + "Land_NavigLight", + "Land_NavigLight_3_F", + "Land_Pier_addon", + "Land_Pier_Box_F", + "Land_Pier_F", + "Land_Pier_small_F", + "Land_PierLadder_F", + "Land_PortableLight_single_F", + "Land_PowerLine_01_pole_junction_F", + "Land_PowerLine_01_pole_small_F", + "Land_PowerLine_01_pole_tall_F", + "Land_PowerLine_01_pole_transformer_F", + "Land_PowerLine_01_wire_50m_F", + "Land_PowerLine_01_wire_50m_main_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_SlideCastle_F", + "Land_SM_01_shelter_wide_F", + "Land_TentHangar_V1_F", + "Land_TTowerSmall_1_F", + "Land_TTowerSmall_2_F", + "MetalBarrel_burning_F" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/panthera3.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/panthera3.sqf new file mode 100644 index 0000000..a97edd8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/panthera3.sqf @@ -0,0 +1,103 @@ +KP_liberation_cr_ign_buildings = [ + "Land_AfDum_mesto2", + "Land_AfDum_mesto2L", + "Land_AfDum_mesto3", + "Land_bouda_plech", + "Land_Brana02nodoor", + "Land_Dulni_bs", + "Land_Dum_zboreny", + "Land_Dum_zboreny_total", + "Land_Helfenburk_budova2", + "Land_Helfenburk_cimburi", + "Land_Helfenburk_zed", + "Land_Hlaska", + "Land_Hut03", + "Land_KBud", + "Land_Kontejner", + "Land_Kontejner_papir", + "Land_Kontejner_plasty", + "Land_Kontejner_sklo", + "Land_Kostel_trosky", + "Land_ladder", + "Land_ladder_half", + "Land_Lampa_ind", + "Land_Lampa_ind_b", + "Land_Lampa_ind_zebr", + "Land_Lampa_sidl", + "Land_Lampa_sidl_2", + "Land_Lampa_sidl_3", + "Land_Lampa_vysoka", + "Land_Leseni2x", + "Land_Leseni4x", + "Land_Majak_podesta", + "Land_Molo_beton", + "Land_Molo_drevo_bs", + "Land_Molo_drevo_end", + "Land_Molo_krychle", + "Land_Molo_krychle2", + "Land_Nabrezi", + "Land_Nabrezi_najezd", + "Land_Nasypka", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_istan1_rovny_gate", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_Plot_zboreny", + "Land_Plot_zed_drevo1_branka", + "Land_Podesta_1_cornl", + "Land_Podesta_1_cornp", + "Land_Podesta_1_cube", + "Land_Podesta_1_cube_long", + "Land_Podesta_1_mid", + "Land_Podesta_1_mid_cornl", + "Land_Podesta_1_mid_cornp", + "Land_Podesta_1_stairs", + "Land_Podesta_1_stairs2", + "Land_Podesta_1_stairs3", + "Land_Podesta_1_stairs4", + "Land_Podesta_10", + "Land_Podesta_5", + "Land_Podesta_s10", + "Land_Podesta_s5", + "Land_Posed", + "Land_Psi_bouda", + "Land_Pumpa", + "Land_seno_balik", + "Land_sloup_vn", + "Land_sloup_vn_drat", + "Land_sloup_vn_dratZ", + "land_statek_brana_open", + "Land_Stoplight01", + "Land_Stoplight02", + "Land_Trafostanica_mala", + "Land_Trafostanica_velka", + "Land_Trafostanica_velka_draty", + "Land_Vez", + "Land_Vysilac_FM", + "Land_Vysilac_FM2", + "Land_water_tank", + "Land_Zastavka_jih", + "Land_Zastavka_sever", + "Land_Zavora", + "Land_Zavora_2_a1", + "Land_Fuel_tank_big", + "Land_Ind_Shed_01_end", + "Land_Ind_Shed_01_main", + "land_nav_pier_c_t15", + "Land_popelnice", + "land_nav_pier_F_23", + "land_nav_pier_m_end", + "Land_nav_pier_m_2", + "Land_A_statue01", + "Land_Misc_GContainer_Big", + "Land_fuel_tank_small", + "Land_Misc_Cargo1B", + "Land_Misc_Cargo1D", + "Land_Misc_Cargo1C", + "land_nav_pier_F_17", + "Land_Ind_TankSmall2", + "Land_LifeguardTower_01_F", + "Land_Pier_F", + "Land_Zed_dira_civil" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/pja310.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/pja310.sqf new file mode 100644 index 0000000..af490c6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/pja310.sqf @@ -0,0 +1,81 @@ +KP_liberation_cr_ign_buildings = [ + "Land_A_Castle_Bastion", + "Land_A_Crane_02a", + "Land_A_Crane_02b", + "Land_A_CraneCon", + "Land_BoatSmall_1", + "Land_BoatSmall_2a", + "Land_BoatSmall_2b", + "Land_Brana02nodoor", + "Land_Communication_F", + "Land_Farm_WTower", + "Land_Ind_BoardsPack1", + "Land_Ind_BoardsPack2", + "Land_Ind_Expedice_3", + "Land_Ind_FuelStation_Feed_EP1", + "Land_Ind_FuelStation_Shed_EP1", + "Land_Ind_IlluminantTower", + "Land_Ind_SawMillPen", + "Land_Ind_Shed_01_end", + "Land_Ind_Shed_01_main", + "Land_Ind_Shed_02_end", + "Land_Ind_Shed_02_EP1", + "Land_Ind_Shed_02_main", + "Land_Ind_Timbers", + "Land_IndPipe1_stair", + "Land_IndPipe2_Small_9", + "Land_IndPipe2_Small_ground2", + "Land_KBud", + "Land_Kontejner", + "Land_Lamp_Small_EP1", + "Land_Lamp_Street1_EP1", + "Land_Lampa_ind", + "Land_Lampa_Ind_EP1", + "Land_LampShabby_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_loco_742_blue", + "Land_Majak_podesta", + "Land_Misc_Cargo1Ao_EP1", + "Land_Misc_Cargo1B", + "Land_Misc_Cargo1B_EP1", + "Land_Misc_Cargo1Bo_EP1", + "Land_Misc_Cargo1C", + "Land_Misc_Cargo1C_EP1", + "Land_Misc_Cargo1D", + "Land_Misc_Cargo1D_EP1", + "Land_Misc_Cargo2B", + "Land_Misc_Cargo2B_EP1", + "Land_Misc_Cargo2C", + "Land_Misc_Cargo2C_EP1", + "Land_Misc_Cargo2D", + "Land_Misc_Cargo2E", + "Land_Misc_Scaffolding", + "Land_Misc_Well_C_EP1", + "Land_Misc_Well_L_EP1", + "Land_Nav_Boathouse_PierR", + "Land_Nav_Boathouse_PierT", + "land_nav_pier_c", + "land_nav_pier_c_270", + "land_nav_pier_c_90", + "land_nav_pier_C_L10", + "land_nav_pier_C_R30", + "land_nav_pier_c_t20", + "land_nav_pier_c2_end", + "land_nav_pier_F_23", + "Land_PowLines_Conc2L_EP1", + "land_statek_brana_open", + "Land_Terrace_K_1_EP1", + "Land_Trafostanica_mala", + "Land_Trafostanica_velka", + "Land_Vez", + "Land_Vysilac_FM", + "Land_Wall_L_2m5_gate_EP1", + "Land_Wall_L_Mosque_1_EP1", + "Land_Wall_L_Mosque_2_EP1", + "Land_Wall_L1_gate_EP1", + "Land_Wall_L3_5m_EP1", + "Land_Wall_L3_gate_EP1", + "Land_Wall_L3_pillar_EP1", + "Land_water_tank" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/sara.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/sara.sqf new file mode 100644 index 0000000..5799474 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/sara.sqf @@ -0,0 +1,85 @@ +KP_liberation_cr_ign_buildings = [ + "Land_AfDum_mesto2", + "Land_AfDum_mesto2L", + "Land_AfDum_mesto3", + "Land_bouda_plech", + "Land_Brana02nodoor", + "Land_Dulni_bs", + "Land_Dum_zboreny", + "Land_Dum_zboreny_total", + "Land_Helfenburk_budova2", + "Land_Helfenburk_cimburi", + "Land_Helfenburk_zed", + "Land_Hlaska", + "Land_Hut03", + "Land_KBud", + "Land_Kontejner", + "Land_Kontejner_papir", + "Land_Kontejner_plasty", + "Land_Kontejner_sklo", + "Land_Kostel_trosky", + "Land_ladder", + "Land_ladder_half", + "Land_Lampa_ind", + "Land_Lampa_ind_b", + "Land_Lampa_ind_zebr", + "Land_Lampa_sidl", + "Land_Lampa_sidl_2", + "Land_Lampa_sidl_3", + "Land_Lampa_vysoka", + "Land_Leseni2x", + "Land_Leseni4x", + "Land_Majak_podesta", + "Land_Molo_beton", + "Land_Molo_drevo_bs", + "Land_Molo_drevo_end", + "Land_Molo_krychle", + "Land_Molo_krychle2", + "Land_Nabrezi", + "Land_Nabrezi_najezd", + "Land_Nasypka", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_istan1_rovny_gate", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_Plot_zboreny", + "Land_Plot_zed_drevo1_branka", + "Land_Podesta_1_cornl", + "Land_Podesta_1_cornp", + "Land_Podesta_1_cube", + "Land_Podesta_1_cube_long", + "Land_Podesta_1_mid", + "Land_Podesta_1_mid_cornl", + "Land_Podesta_1_mid_cornp", + "Land_Podesta_1_stairs", + "Land_Podesta_1_stairs2", + "Land_Podesta_1_stairs3", + "Land_Podesta_1_stairs4", + "Land_Podesta_10", + "Land_Podesta_5", + "Land_Podesta_s10", + "Land_Podesta_s5", + "Land_Posed", + "Land_Psi_bouda", + "Land_Pumpa", + "Land_seno_balik", + "Land_sloup_vn", + "Land_sloup_vn_drat", + "Land_sloup_vn_dratZ", + "land_statek_brana_open", + "Land_Stoplight01", + "Land_Stoplight02", + "Land_Trafostanica_mala", + "Land_Trafostanica_velka", + "Land_Trafostanica_velka_draty", + "Land_Vez", + "Land_Vysilac_FM", + "Land_Vysilac_FM2", + "Land_water_tank", + "Land_Zastavka_jih", + "Land_Zastavka_sever", + "Land_Zavora", + "Land_Zavora_2_a1", + "Land_Zed_dira_civil" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/song_bin_tanh.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/song_bin_tanh.sqf new file mode 100644 index 0000000..da59eee --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/song_bin_tanh.sqf @@ -0,0 +1,11 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Communication_F", + "LAND_fort2", + "Land_fortified_nest_big_ep1", + "Land_LampShabby_F", + "Land_misc_well_c_ep1", + "Land_statek_brana_open", + "Land_vez", + "Land_Vysilac_FM", + "Land_Water_Tank" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/takistan.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/takistan.sqf new file mode 100644 index 0000000..fcb8824 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/takistan.sqf @@ -0,0 +1,36 @@ +KP_liberation_cr_ign_buildings = [ + "Land_BoatSmall_1", + "Land_BoatSmall_2a", + "Land_BoatSmall_2b", + "Land_Fort_Watchtower_EP1", + "Land_fortified_nest_big_EP1", + "Land_fortified_nest_small_EP1", + "Land_Ind_FuelStation_Feed_EP1", + "Land_Ind_FuelStation_Shed_EP1", + "Land_Ind_Shed_02_EP1", + "Land_Lamp_Small_EP1", + "Land_Lamp_Street1_EP1", + "Land_Lampa_Ind_EP1", + "Land_Misc_Cargo1B_EP1", + "Land_Misc_Cargo1Bo_EP1", + "Land_Misc_Cargo1C_EP1", + "Land_Misc_Cargo2B_EP1", + "Land_Misc_Cargo2C_EP1", + "Land_Misc_Well_C_EP1", + "Land_Misc_Well_L_EP1", + "Land_Nav_Boathouse_PierR", + "Land_PowLine_wire_A_left_EP1", + "Land_PowLine_wire_A_right_EP1", + "Land_PowLine_wire_AB_EP1", + "Land_PowLine_wire_BB_EP1", + "Land_PowLines_Conc2L_EP1", + "Land_Terrace_K_1_EP1", + "Land_Vez", + "Land_Wall_L_2m5_gate_EP1", + "Land_Wall_L_Mosque_1_EP1", + "Land_Wall_L_Mosque_2_EP1", + "Land_Wall_L1_gate_EP1", + "Land_Wall_L3_5m_EP1", + "Land_Wall_L3_gate_EP1", + "Land_Wall_L3_pillar_EP1" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/tanoa.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/tanoa.sqf new file mode 100644 index 0000000..f86788b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/tanoa.sqf @@ -0,0 +1,74 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Cargo_House_V4_F", + "Land_Cargo_Patrol_V4_F", + "Land_Cargo_Tower_V4_F", + "Land_Communication_F", + "Land_ContainerLine_01_F", + "Land_ContainerLine_02_F", + "Land_ContainerLine_03_F", + "Land_DPP_01_waterCooler_F", + "Land_DPP_01_waterCooler_ladder_F", + "Land_FireEscape_01_short_F", + "Land_FireEscape_01_tall_F", + "Land_Flush_Light_green_F", + "Land_Flush_Light_red_F", + "Land_Flush_Light_yellow_F", + "Land_FuelStation_01_pump_F", + "Land_FuelStation_02_pump_F", + "Land_FuelStation_02_roof_F", + "Land_GantryCrane_01_F", + "Land_LampDecor_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampSolar_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_MetalShelter_01_F", + "Land_MetalShelter_02_F", + "Land_MobileCrane_01_F", + "Land_MobileCrane_01_hook_F", + "Land_NavigLight_3_F", + "Land_NavigLight_3_short_F", + "Land_PierConcrete_01_4m_ladders_F", + "Land_PierWooden_01_10m_noRails_F", + "Land_PierWooden_01_16m_F", + "Land_PierWooden_01_dock_F", + "Land_PierWooden_01_hut_F", + "Land_PierWooden_01_ladder_F", + "Land_PierWooden_01_platform_F", + "Land_PierWooden_02_16m_F", + "Land_PierWooden_02_30deg_F", + "Land_PierWooden_02_barrel_F", + "Land_PierWooden_02_hut_F", + "Land_PierWooden_02_ladder_F", + "Land_PortableLight_single_F", + "Land_PowerLine_01_pole_end_v1_F", + "Land_PowerLine_01_pole_end_v2_F", + "Land_PowerLine_01_pole_junction_F", + "Land_PowerLine_01_pole_lamp_F", + "Land_PowerLine_01_pole_small_F", + "Land_PowerLine_01_pole_tall_F", + "Land_PowerLine_01_pole_transformer_F", + "Land_PowerLine_01_wire_50m_F", + "Land_PowerLine_01_wire_50m_main_F", + "Land_QuayConcrete_01_5m_ladder_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_Shed_06_F", + "Land_SM_01_shelter_narrow_F", + "Land_SM_01_shelter_wide_F", + "Land_SY_01_conveyor_end_F", + "Land_SY_01_reclaimer_F", + "Land_SY_01_shiploader_arm_F", + "Land_SY_01_shiploader_F", + "Land_Track_01_bridge_F", + "Land_TTowerBig_1_F", + "Land_TTowerBig_2_F", + "Land_TTowerSmall_1_F", + "Land_Walkover_01_F", + "Land_Warehouse_01_ladder_F", + "Land_Warehouse_02_ladder_F", + "Land_WarehouseShelter_01_F", + "Land_WoodenShelter_01_F" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/wl_rosche.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/wl_rosche.sqf new file mode 100644 index 0000000..c7c2a56 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/wl_rosche.sqf @@ -0,0 +1,155 @@ +KP_liberation_cr_ign_buildings = [ + "Land_Barn_W_01_dam", + "Land_Barracks_01_grey_F", + "Land_BellTower_01_V1_F", + "Land_BoatSmall_1", + "Land_BoatSmall_2a", + "Land_BoatSmall_2b", + "Land_cargo_house_slum_F", + "Land_cmp_Shed_F", + "Land_cmp_Tower_F", + "Land_CncShelter_F", + "Land_Communication_F", + "Land_Dirthump01", + "Land_dp_smallTank_F", + "Land_DPP_01_waterCooler_ladder_F", + "Land_Dulni_bs", + "Land_FireEscape_01_short_F", + "Land_FuelStation_01_pump_F", + "Land_FuelStation_02_pump_F", + "Land_FuelStation_Build_PMC", + "Land_Gate_IndVar2_5", + "Land_Gate_Wood1_5", + "Land_Gate_wood2_5", + "Land_GuardHouse_01_F", + "Land_hag_bridge_rail", + "Land_Hag_Garage", + "Land_hopper_old_PMC", + "Land_Hut06", + "Land_i_Addon_03_V1_F", + "Land_i_Addon_03mid_V1_F", + "Land_i_Addon_04_V1_F", + "Land_i_Barracks_V2_F", + "Land_i_Garage_V1_F", + "Land_i_Garage_V2_F", + "Land_Ind_BoardsPack1", + "Land_Ind_BoardsPack2", + "Land_Ind_MalyKomin", + "Land_Ind_SawMillPen", + "Land_Ind_Shed_01_EP1", + "Land_Ind_Shed_01_main", + "Land_Ind_Shed_02_end", + "Land_Ind_Shed_02_EP1", + "Land_Ind_Shed_02_main", + "Land_Ind_TankSmall", + "Land_Ind_TankSmall2", + "Land_Ind_Timbers", + "Land_Ind_Vysypka", + "Land_Ind_Workshop01_box", + "Land_KBud", + "Land_Kontejner", + "Land_Kulna", + "Land_LampDecor_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_Leseni2x", + "Land_Leseni4x", + "Land_Mausoleum_01_F", + "Land_MBG_ATC_Segment", + "Land_MBG_Beach_Chair_1", + "Land_MBG_Beach_Chair_2", + "Land_Metal_Shed_F", + "Land_MetalShelter_01_F", + "Land_MetalShelter_02_F", + "Land_Mil_Barracks", + "Land_MilOffices_V1_F", + "Land_Misc_Cargo1Ao", + "Land_Misc_Cargo1B", + "Land_Misc_Cargo1Bo", + "Land_Misc_Cargo1C", + "Land_Misc_Cargo1E", + "Land_Misc_Cargo1F", + "Land_Misc_deerstand", + "Land_Misc_GContainer_Big", + "Land_Misc_Scaffolding", + "Land_Misc_Well_C_EP1", + "Land_Molo_krychle", + "Land_Nasypka", + "Land_PierLadder_F", + "Land_PierWooden_01_10m_noRails_F", + "Land_PierWooden_01_ladder_F", + "Land_PierWooden_01_platform_F", + "Land_PierWooden_02_16m_F", + "Land_PierWooden_02_ladder_F", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_istan1_rovny_gate", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_Plot_zed_drevo1_branka", + "Land_popelnice", + "Land_PortableLight_double_F", + "Land_PortableLight_single_F", + "Land_Posed", + "Land_Psi_bouda", + "Land_pumpa", + "Land_Rail_Zavora", + "Land_ReservoirTank_Rust_F", + "Land_ruin_01", + "Land_ruin_01_PMC", + "Land_ruin_chimney", + "Land_ruin_chimney_PMC", + "Land_ruin_rubble", + "Land_ruin_wall", + "Land_ruin_walldoor", + "Land_Sara_zluty_statek_in", + "Land_SCF_01_heap_bagasse_F", + "Land_seno_balik", + "Land_Shed_03_F", + "Land_Shed_04_F", + "Land_Shed_06_F", + "Land_Shed_07_F", + "Land_Shed_Big_F", + "Land_Shed_M01", + "Land_Shed_M01_EP1", + "Land_Shed_M02", + "Land_Shed_M03", + "Land_Shed_Small_F", + "Land_Shed_W01", + "Land_Shed_W02_EP1", + "Land_Shed_W03", + "Land_Shed_wooden", + "Land_SignB_Hotel_CZ2", + "Land_SignB_Hotel_CZ3", + "Land_SignB_Pharmacy", + "Land_Slum_House01_F", + "Land_Slum_House02_F", + "Land_Slum_House03_F", + "Land_SM_01_shed_unfinished_F", + "Land_SM_01_shelter_narrow_F", + "Land_SM_01_shelter_wide_F", + "Land_TTowerBig_2_F", + "Land_u_Addon_01_V1_dam_F", + "Land_u_Addon_01_V1_F", + "Land_u_Shed_Ind_F", + "Land_Walkover_01_F", + "Land_Wall_CBrk_5_D", + "Land_Wall_CGry_5_D", + "Land_Wall_Gate_Ind1_L", + "Land_Wall_Gate_Ind1_R", + "Land_Wall_Gate_Ind2A_L", + "Land_Wall_Gate_Ind2A_R", + "Land_Wall_Gate_Ind2B_L", + "Land_Wall_Gate_Ind2B_R", + "Land_Wall_Gate_Ind2Rail_L", + "Land_Wall_Gate_Ind2Rail_R", + "Land_Wall_Gate_Village", + "Land_Wall_Gate_Wood1", + "Land_Warehouse_01_ladder_F", + "Land_WindmillPump_01_F", + "Land_WoodenShelter_01_F", + "Land_zavora_2" +]; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/ignored/xcam_taunus.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/xcam_taunus.sqf new file mode 100644 index 0000000..cb138f8 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/ignored/xcam_taunus.sqf @@ -0,0 +1,278 @@ +KP_liberation_cr_ign_buildings = [ + "Land_A_Castle_Bastion", + "Land_A_Castle_Gate", + "Land_A_Castle_Stairs_A", + "Land_A_Castle_Wall1_20", + "Land_A_Castle_Wall1_Corner", + "Land_A_Castle_Wall1_Corner_2", + "Land_A_Castle_Wall1_End", + "Land_A_Castle_Wall1_End_2", + "Land_A_Castle_Wall2_Corner_2", + "Land_A_Castle_WallS_5_D", + "Land_A_Castle_WallS_End", + "Land_balken_125_025_025_clean_cnc", + "Land_balken_125_025_025_cnc", + "Land_balken_250_025_025_clean_cnc", + "Land_balken_250_025_025_cnc", + "Land_balken_250_025_025_wood", + "Land_balken_500_025_025_clean_cnc", + "Land_balken_500_025_025_cnc", + "Land_balken_500_025_025_wood", + "Land_boden_125_125_025_clean_cnc", + "Land_boden_125_125_025_cnc", + "Land_boden_125_125_025_wood", + "Land_boden_250_250_025_clean_cnc", + "Land_boden_250_250_025_cnc", + "Land_boden_250_250_025_wood", + "Land_boden_500_500_025_clean_cnc", + "Land_boden_500_500_025_cnc", + "Land_boden_500_500_025_wood", + "Land_bouda_plech", + "Land_Brana02", + "Land_Brana02nodoor", + "Land_Cargo_Patrol_V1_F", + "Land_Carousel_01_F", + "Land_Climbing_Obstacle", + "Land_Communication_F", + "Land_Crane_F", + "Land_d_Addon_02_V1_F", + "Land_d_House_Big_01_V1_F", + "Land_d_House_Big_02_V1_F", + "Land_d_Stone_HouseSmall_V1_F", + "Land_d_Stone_Shed_V1_F", + "Land_deox_BarrierGateOpenable", + "Land_deox_carport_a1", + "Land_deox_carport_a2", + "Land_deox_fachwerkA1", + "Land_deox_fachwerkB1", + "Land_deox_fachwerkC2", + "Land_deox_fachwerkD2", + "Land_deox_fachwerkE1", + "Land_deox_fachwerkE1B", + "Land_deox_fachwerkE1O", + "Land_deox_fachwerkS1", + "Land_deox_fachwerkS1_offen", + "Land_deox_fachwerkS1Giebel", + "Land_deox_fachwerkSO1", + "Land_deox_fachwerkSO1_offen", + "Land_deox_fence_B1", + "Land_deox_fence_B2", + "Land_deox_fence_B3", + "Land_deox_fence_C1", + "Land_deox_fence_C1s", + "Land_deox_fwh_dach", + "Land_deox_fwh_dach2", + "Land_deox_fwh_dach3", + "Land_deox_fwhE1", + "Land_deox_fwhf1", + "Land_deox_gate_A1", + "Land_deox_gate_B1", + "Land_deox_gate_B2", + "Land_deox_gate_B2door", + "Land_deox_gate_B3", + "Land_deox_gate_B3door", + "Land_deox_gate_B5", + "Land_deox_gate_c1", + "Land_deox_House_D_medium3_4", + "Land_deox_rampe_a1", + "Land_deox_rampe_c1", + "Land_deox_rampe_d1", + "Land_deox_rampe_d3", + "Land_deox_tuer1", + "Land_deox_unterbau1a", + "Land_deox_unterbau1b", + "Land_deox_unterbau1c", + "Land_deox_unterbau2a", + "Land_deox_unterbau2b", + "Land_deox_wall01", + "Land_deox_wall01s", + "Land_deox_wall02", + "Land_deox_wall02s", + "Land_deox_wall06", + "Land_Dirthump01", + "Land_Dirthump01_EP1", + "Land_Dirthump02", + "Land_Dirthump02_EP1", + "Land_Dirthump03", + "Land_Dirthump03_EP1", + "Land_ecke_075_025_300_clean_cnc", + "Land_ecke_075_025_300_wood", + "Land_Factory_Conv1_10_F", + "Land_Factory_Conv1_Main_F", + "Land_Farm_WTower", + "Land_fenster_250_025_300_clean_cnc", + "Land_fenster_250_025_300_cnc", + "Land_fenster_250_025_300_wood", + "Land_Gate_IndVar2_5", + "Land_Gate_Wood1_5", + "Land_Gate_wood2_5", + "Land_glass_125_0025_125", + "Land_glass_125_0025_300", + "Land_glass_250_0025_300", + "Land_glass_500_0025_300", + "Land_glass_platte_500_500_0025", + "Land_Grave_dirt_F", + "Land_Grave_forest_F", + "Land_Grave_rocks_F", + "Land_HighVoltageTower_F", + "Land_Hut03", + "Land_i_House_Small_02_V2_dam_F", + "Land_i_House_Small_02_V3_dam_F", + "Land_i_Stone_Shed_V1_dam_F", + "Land_i_Stone_Shed_V2_dam_F", + "Land_Ind_BoardsPack1", + "Land_Ind_BoardsPack2", + "Land_Ind_Expedice_1", + "Land_Ind_Expedice_3", + "Land_Ind_Mlyn_03", + "Land_Ind_SawMillPen", + "Land_Ind_Shed_01_end", + "Land_Ind_Shed_01_EP1", + "Land_Ind_Shed_01_main", + "Land_Ind_Shed_02_end", + "Land_Ind_Shed_02_EP1", + "Land_Ind_Shed_02_main", + "Land_Ind_TankSmall", + "Land_Ind_TankSmall2", + "Land_Ind_TankSmall2_EP1", + "Land_Ind_Timbers", + "Land_Kontejner", + "Land_Kontejner_papir", + "Land_Kontejner_plasty", + "Land_Kontejner_sklo", + "Land_Kostel_trosky", + "Land_ladder", + "Land_Lampa_cut", + "Land_Lampa_Ind_EP1", + "Land_LampDecor_F", + "Land_LampHalogen_F", + "Land_LampHarbour_F", + "Land_LampShabby_F", + "Land_LampStreet_F", + "Land_LampStreet_small_F", + "Land_Leseni2x", + "Land_Leseni4x", + "Land_LifeguardTower_01_F", + "Land_lift", + "Land_Majak_podesta", + "Land_MBG_Cinderwall_2p5", + "Land_MBG_Cinderwall_5", + "Land_MBG_Cinderwall_5_Corner", + "Land_MBG_Cinderwall_5_Gate", + "Land_mbg_cinderwall_5_low", + "Land_MBG_Cinderwall_5_SteelDoor", + "Land_MBG_Cinderwall_5_WoodDoor", + "Land_MBG_Cinderwall_5dam", + "Land_MBG_Shoothouse_1", + "Land_Misc_Cargo1A_EP1", + "Land_Misc_Cargo1B_EP1", + "Land_Misc_Cargo1Bo", + "Land_Misc_Cargo1C_EP1", + "Land_Misc_Cargo1D_EP1", + "Land_Misc_Cargo1E", + "Land_Misc_Cargo1E_EP1", + "Land_Misc_Cargo1F", + "Land_Misc_Cargo1G", + "Land_Misc_CargoMarket1a_EP1", + "Land_Misc_Coltan_Heap_EP1", + "Land_Misc_deerstand", + "Land_Misc_GContainer_Big", + "Land_Misc_Scaffolding", + "Land_Misc_Well_C_EP1", + "Land_Misc_Well_L_EP1", + "Land_Molo_krychle", + "Land_Molo_krychle2", + "Land_MXDorfschild", + "Land_Nasypka", + "land_nav_pier_c", + "land_nav_pier_F_17", + "land_nav_pier_F_23", + "Land_Obstacle_Climb_F", + "Land_pfeiler_025_025_300_clean_cnc", + "Land_pfeiler_025_025_300_cnc", + "Land_pfeiler_025_025_300_wood", + "Land_Plot_green_branka", + "Land_Plot_green_vrata", + "Land_Plot_istan1_rovny_gate", + "Land_Plot_rust_branka", + "Land_Plot_rust_vrata", + "Land_Plot_zboreny", + "Land_Plot_zed_drevo1_branka", + "Land_plp_ctm_PartitioningFenceGreyDoorOpen", + "Land_Podesta_1_cornl", + "Land_Podesta_1_cornp", + "Land_Podesta_1_cube", + "Land_Podesta_1_cube_long", + "Land_Podesta_1_mid", + "Land_Podesta_1_mid_cornl", + "Land_Podesta_1_mid_cornp", + "Land_Podesta_1_stairs", + "Land_Podesta_1_stairs2", + "Land_Podesta_1_stairs4", + "Land_Podesta_10", + "Land_Podesta_5", + "Land_Podesta_s10", + "Land_Podesta_s5", + "Land_pool_water", + "Land_PortableLight_double_F", + "Land_PortableLight_single_F", + "Land_Posed", + "Land_PowerWireSmall_direct_F", + "Land_PowLines_Conc2L_EP1", + "Land_PowLines_ConcL", + "Land_PowLines_WoodL", + "Land_Psi_bouda", + "Land_R_HouseV_2L", + "Land_Ruin_Cowshed_a_PMC", + "Land_Ruin_Cowshed_b_PMC", + "Land_Ruin_Cowshed_c_PMC", + "Land_ruin_rubble", + "Land_Ruiny_obvod_3", + "Land_seno_balik", + "Land_Shed_M02", + "Land_SignB_Hotel_CZ", + "Land_SignB_Hotel_CZ2", + "Land_SlideCastle_F", + "land_statek_brana_open", + "Land_Stoplight01", + "Land_Stoplight02", + "Land_t_light_r", + "Land_TACO_Lampa_sidl", + "Land_TACO_Lampa_sidl_2", + "Land_TACO_Lampa_sidl_3", + "Land_Tec", + "Land_teich_klein", + "Land_treppe_250_100_150_clean_cnc", + "Land_treppe_250_100_150_cnc", + "Land_treppe_250_100_150_wood", + "Land_TTowerBig_2_F", + "Land_ture_250_025_300_clean_cnc", + "Land_ture_250_025_300_cnc", + "Land_ture_250_025_300_wood", + "Land_u_Addon_01_V1_dam_F", + "Land_Wall_CGry_5_D", + "Land_Wall_Gate_Ind1_L", + "Land_Wall_Gate_Ind2A_L", + "Land_Wall_Gate_Ind2A_R", + "Land_Wall_Gate_Ind2B_L", + "Land_Wall_Gate_Ind2B_R", + "Land_Wall_Gate_Ind2Rail_L", + "Land_Wall_Gate_Ind2Rail_R", + "Land_Wall_Gate_Kolchoz", + "Land_Wall_Gate_Village", + "Land_Wall_Gate_Wood1", + "Land_Wall_L1_gate_EP1", + "Land_wand_125_025_300_clean_cnc", + "Land_wand_125_025_300_cnc", + "Land_wand_125_025_300_wood", + "Land_wand_250_025_300_clean_cnc", + "Land_wand_250_025_300_cnc", + "Land_wand_250_025_300_wood", + "Land_wand_500_025_300_clean_cnc", + "Land_wand_500_025_300_cnc", + "Land_wand_500_025_300_wood", + "Land_xCam_Build_00", + "Land_Zastavka_jih", + "Land_Zastavka_sever", + "Land_zavora_2" +]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/init_buildings.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/init_buildings.sqf new file mode 100644 index 0000000..f472924 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/init_buildings.sqf @@ -0,0 +1,38 @@ +private _start = diag_tickTime; +if (isServer) then {["init_buildings.sqf initialising...", "CIVREP"] call KPLIB_fnc_log;}; + +switch (worldName) do { + case "Chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"}; + case "cup_chernarus_A3": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus2020.sqf"}; + case "Enoch": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\enoch.sqf"}; + case "gm_weferlingen_summer": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_summer.sqf"}; + case "gm_weferlingen_winter": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_winter.sqf"}; + case "lythium": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\lythium.sqf"}; + case "Malden": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\malden.sqf"}; + case "panthera3": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\panthera3.sqf"}; + case "pja310": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\pja310.sqf"}; + case "Sara": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\sara.sqf"}; + case "song_bin_tanh": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\song_bin_tanh.sqf"}; + case "Takistan": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\takistan.sqf"}; + case "Tanoa": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\tanoa.sqf"}; + case "WL_Rosche": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\wl_rosche.sqf"}; + case "xcam_taunus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\xcam_taunus.sqf"}; + default {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\altis.sqf"}; +}; + +KP_liberation_cr_sectorbuildings = []; + +{ + KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; +} forEach sectors_capture; + +{ + KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; +} forEach sectors_bigtown; + +if (isServer) then {[format ["init_buildings.sqf finished. Time needed: %1 seconds", diag_ticktime - _start], "CIVREP"] call KPLIB_fnc_log;}; +if (KP_liberation_civrep_debug > 0) then { + { + [format ["%1: %2", markerText (_x select 0), (_x select 1)], "CIVREP"] call KPLIB_fnc_log; + } forEach KP_liberation_cr_sectorbuildings; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/init_module.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/init_module.sqf new file mode 100644 index 0000000..a857016 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/init_module.sqf @@ -0,0 +1,15 @@ +// Functions +// Get buildings count for sector +F_cr_getBuildings = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_getBuildings.sqf"; +// Change CR value +F_cr_changeCR = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_changeCR.sqf"; +// Reputation gain for liberating a sector +F_cr_liberatedSector = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_liberatedSector.sqf"; +// Play random wounded animation on unit +F_cr_woundedAnim = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_woundedAnim.sqf"; + +// Scripts +// Spawn wounded civilians in a sector +civrep_wounded_civs = compileFinal preprocessFileLineNumbers "scripts\server\civrep\wounded\civrep_wounded_civs.sqf"; +// Count initial buildings on each city and bigtown +execVM "scripts\server\civrep\init_buildings.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/server/civrep/wounded/civrep_wounded_civs.sqf b/kp_liberation.brf_sumava/scripts/server/civrep/wounded/civrep_wounded_civs.sqf new file mode 100644 index 0000000..eda9210 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/civrep/wounded/civrep_wounded_civs.sqf @@ -0,0 +1,66 @@ +params ["_sector"]; + +if (!(_sector in sectors_bigtown) && !(_sector in sectors_capture) && !(_sector in sectors_factory)) exitWith {}; + +if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned for %1 on: %2", markerText _sector, debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _count = 2 + (ceil (random 2)); +private _grp = creategroup [GRLIB_side_civilian, true]; +private _civs = []; +private _markers = []; + +for "_i" from 1 to _count do { + private _pos = (markerPos _sector) getPos [(50 + (random 150)), (random 360)]; + while {(surfaceIsWater _pos) || ((count ([_pos, 30] call KPLIB_fnc_getNearbyPlayers)) > 0)} do { + _pos = (markerPos _sector) getPos [(50 + (random 200)), (random 360)]; + }; + private _civ = [selectRandom civilians, _pos, _grp] call KPLIB_fnc_createManagedUnit; + _civ setDir (random 360); + {_civ disableAI _x} forEach ["ANIM", "TARGET", "AUTOTARGET", "MOVE"]; + removeAllItems _civ; + _civ setDamage 0.5; + _civ call F_cr_woundedAnim; + if (KP_liberation_ace) then {[_civ] remoteExec ["KPLIB_fnc_crAddAceAction"];}; + _civs pushBack _civ; + private _marker = createMarker ["wounded_marker_" + str _i, [((_pos select 0) - 20 + (random 40)),((_pos select 1) - 20 + (random 40))]]; + _marker setMarkerShape "ELLIPSE"; + _marker setMarkerSize [25,25]; + _marker setMarkerColor "ColorCIV"; + _marker setMarkerAlpha 0.35; + _markers pushBack _marker; +}; + +if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned %1 wounded civilians at %2", _count, markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +private _units_near = [markerPos _sector, 300, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +private _healed_civs = []; + +while {_units_near > 0} do { + _units_near = [markerPos _sector, 300, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + { + if (((damage _x) < 0.5) && !(_x in _healed_civs)) then { + (_markers select _forEachIndex) setMarkerAlpha 0; + private _civ = _x; + [_civ, "AinjPpneMstpSnonWnonDnon_kneel"] remoteExec ["switchMove"]; + sleep 2; + {_civ enableAI _x} forEach ["ANIM", "TARGET", "AUTOTARGET", "MOVE"]; + [4, [(name _civ)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + [KP_liberation_cr_wounded_gain] call F_cr_changeCR; + _healed_civs pushBack _civ; + stats_civilians_healed = stats_civilians_healed +1; + } + } forEach _civs; + sleep 1; +}; + +sleep 60; + +{ + deleteVehicle _x; +} forEach _civs; + +{ + deleteMarker _x; +} forEach _markers; + +if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> dropped at %1", markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2]}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/apply_default_permissions.sqf b/kp_liberation.brf_sumava/scripts/server/game/apply_default_permissions.sqf new file mode 100644 index 0000000..4b2c771 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/apply_default_permissions.sqf @@ -0,0 +1,30 @@ +if (!GRLIB_permissions_param) exitWith {}; + +waitUntil {!isNil "GRLIB_permissions"}; +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +while {true} do { + + private _default_permissions = []; + {if ((_x select 0) == "Default") exitWith {_default_permissions = (_x select 2);}} foreach GRLIB_permissions; + + if (count _default_permissions > 0) then { + private _all_players_uids = []; + {if ((_x select 0) != "Default") then {_all_players_uids pushback (_x select 0)}} foreach GRLIB_permissions; + + private _old_count = count GRLIB_permissions; + { + if !(((getPlayerUID _x) in _all_players_uids) || ((getPlayerUID _x) isEqualTo "")) then { + GRLIB_permissions pushBack [getPlayerUID _x, name _x, _default_permissions]; + }; + } foreach (allPlayers - entities "HeadlessClient_F"); + + if (_old_count != count GRLIB_permissions) then { + publicVariable "GRLIB_permissions" + }; + }; + + sleep 10; + +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/check_victory_conditions.sqf b/kp_liberation.brf_sumava/scripts/server/game/check_victory_conditions.sqf new file mode 100644 index 0000000..a6e3024 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/check_victory_conditions.sqf @@ -0,0 +1,105 @@ +sleep 5; + +if ([] call KP_liberation_victoryCheck && GRLIB_endgame != 1) then { + GRLIB_endgame = 1; + publicVariable "GRLIB_endgame"; + {_x allowDamage false; (vehicle _x) allowDamage false;} forEach allPlayers; + + private _rabbits = round (random 75) + round (random 80); + + publicstats = []; + publicstats pushback stats_ammo_produced; + publicstats pushback stats_ammo_spent; + publicstats pushback stats_blufor_soldiers_killed; + publicstats pushback stats_blufor_soldiers_recruited; + publicstats pushback stats_blufor_teamkills; + publicstats pushback stats_blufor_vehicles_built; + publicstats pushback stats_blufor_vehicles_killed; + publicstats pushback stats_civilian_buildings_destroyed; + publicstats pushback stats_civilian_vehicles_killed; + publicstats pushback stats_civilian_vehicles_killed_by_players; + publicstats pushback stats_civilian_vehicles_seized; + publicstats pushback stats_civilians_healed; + publicstats pushback stats_civilians_killed; + publicstats pushback stats_civilians_killed_by_players; + publicstats pushback stats_fobs_built; + publicstats pushback stats_fobs_lost; + publicstats pushback stats_fuel_produced; + publicstats pushback stats_fuel_spent; + publicstats pushback stats_hostile_battlegroups; + publicstats pushback stats_ieds_detonated; + publicstats pushback stats_opfor_killed_by_players; + publicstats pushback stats_opfor_soldiers_killed; + publicstats pushback stats_opfor_vehicles_killed; + publicstats pushback stats_opfor_vehicles_killed_by_players; + publicstats pushback stats_player_deaths; + publicstats pushback stats_playtime; + publicstats pushback stats_prisoners_captured; + publicstats pushback stats_readiness_earned; + publicstats pushback stats_reinforcements_called; + publicstats pushback stats_resistance_killed; + publicstats pushback stats_resistance_teamkills; + publicstats pushback stats_resistance_teamkills_by_players; + publicstats pushback stats_secondary_objectives; + publicstats pushback stats_sectors_liberated; + publicstats pushback stats_sectors_lost; + publicstats pushback stats_spartan_respawns; + publicstats pushback stats_supplies_produced; + publicstats pushback stats_supplies_spent; + publicstats pushback stats_vehicles_recycled; + publicstats pushback _rabbits; + + publicstats remoteExec ["remote_call_endgame"]; + + private _playtime_days = floor (stats_playtime / 86400); + private _playtime_hours = floor ((stats_playtime % 86400) / 3600); + private _playtime_minutes = floor ((stats_playtime % 3600) / 60); + private _playtime_seconds = stats_playtime % 60; + + ["------------------------------------", "MISSION END"] call KPLIB_fnc_log; + [format ["Playtime: %1 days, %2 hours, %3 minutes, %4 seconds", _playtime_days, _playtime_hours, _playtime_minutes, _playtime_seconds], "MISSION END"] call KPLIB_fnc_log; + [format ["OPFOR infantry killed: %1", stats_opfor_soldiers_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["OPFOR infantry killed by players: %1", stats_opfor_killed_by_players], "MISSION END"] call KPLIB_fnc_log; + [format ["OPFOR vehicles destroyed: %1", stats_opfor_vehicles_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["OPFOR vehicles destroyed by players: %1", stats_opfor_vehicles_killed_by_players], "MISSION END"] call KPLIB_fnc_log; + [format ["BLUFOR infantry recruited: %1", stats_blufor_soldiers_recruited], "MISSION END"] call KPLIB_fnc_log; + [format ["BLUFOR infantry killed: %1", stats_blufor_soldiers_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["BLUFOR vehicles built: %1", stats_blufor_vehicles_built], "MISSION END"] call KPLIB_fnc_log; + [format ["BLUFOR vehicles destroyed: %1", stats_blufor_vehicles_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["Player deaths: %1", stats_player_deaths], "MISSION END"] call KPLIB_fnc_log; + [format ["BLUFOR friendly fire incidents: %1", stats_blufor_teamkills], "MISSION END"] call KPLIB_fnc_log; + [format ["Resistance fighters killed: %1", stats_resistance_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["Resistance fighters (friendly) killed: %1", stats_resistance_teamkills], "MISSION END"] call KPLIB_fnc_log; + [format ["Resistance fighters (friendly) killed by players: %1", stats_resistance_teamkills_by_players], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilians killed: %1", stats_civilians_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilians killed by players: %1", stats_civilians_killed_by_players], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilians healed: %1", stats_civilians_healed], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilian vehicles destroyed: %1", stats_civilian_vehicles_killed], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilian vehicles destroyed by players: %1", stats_civilian_vehicles_killed_by_players], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilian vehicles seized: %1", stats_civilian_vehicles_seized], "MISSION END"] call KPLIB_fnc_log; + [format ["Civilian buildings destroyed: %1", stats_civilian_buildings_destroyed], "MISSION END"] call KPLIB_fnc_log; + [format ["Vehicles recycled: %1", stats_vehicles_recycled], "MISSION END"] call KPLIB_fnc_log; + [format ["Ammunition units produced: %1", stats_ammo_produced], "MISSION END"] call KPLIB_fnc_log; + [format ["Ammunition units spent: %1", stats_ammo_spent], "MISSION END"] call KPLIB_fnc_log; + [format ["Fuel units produced: %1", stats_fuel_produced], "MISSION END"] call KPLIB_fnc_log; + [format ["Fuel units spent: %1", stats_fuel_spent], "MISSION END"] call KPLIB_fnc_log; + [format ["Supply units produced: %1", stats_supplies_produced], "MISSION END"] call KPLIB_fnc_log; + [format ["Supply units spent: %1", stats_supplies_spent], "MISSION END"] call KPLIB_fnc_log; + [format ["Sectors liberated: %1", stats_sectors_liberated], "MISSION END"] call KPLIB_fnc_log; + [format ["Sectors lost: %1", stats_sectors_lost], "MISSION END"] call KPLIB_fnc_log; + [format ["FOBs built: %1", stats_fobs_built], "MISSION END"] call KPLIB_fnc_log; + [format ["FOBs lost: %1", stats_fobs_lost], "MISSION END"] call KPLIB_fnc_log; + [format ["Secondary objectives accomplished: %1", stats_secondary_objectives], "MISSION END"] call KPLIB_fnc_log; + [format ["Prisoners captured: %1", stats_prisoners_captured], "MISSION END"] call KPLIB_fnc_log; + [format ["Hostile battlegroups called: %1", stats_hostile_battlegroups], "MISSION END"] call KPLIB_fnc_log; + [format ["Hostile reinforcements called: %1", stats_reinforcements_called], "MISSION END"] call KPLIB_fnc_log; + [format ["Total combat readiness raised: %1", round stats_readiness_earned], "MISSION END"] call KPLIB_fnc_log; + [format ["IEDs detonated: %1", stats_ieds_detonated], "MISSION END"] call KPLIB_fnc_log; + [format ["Number of Potato 01 losses: %1", stats_spartan_respawns], "MISSION END"] call KPLIB_fnc_log; + [format ["Rabbits killed: %1", _rabbits], "MISSION END"] call KPLIB_fnc_log; + ["------------------------------------", "MISSION END"] call KPLIB_fnc_log; + + sleep 20; + + {if !(isPlayer _x) then {deleteVehicle _x;}} forEach allUnits; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/cleanup_vehicles.sqf b/kp_liberation.brf_sumava/scripts/server/game/cleanup_vehicles.sqf new file mode 100644 index 0000000..ae353ee --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/cleanup_vehicles.sqf @@ -0,0 +1,37 @@ +private [ "_nextvehicle", "_nearestfob", "_reset_ticker" ]; + +_cleanup_classnames = []; +{ + _cleanup_classnames append _x; +} forEach [KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_air_classes]; + +while { GRLIB_cleanup_vehicles > 0 } do { + + sleep 600; + + { + _reset_ticker = true; + _nextvehicle = _x; + _nearestfob = [ getpos _nextvehicle ] call KPLIB_fnc_getNearestFob; + if ( count _nearestfob == 3 ) then { + if ( ( _nextvehicle distance _nearestfob > ( 1.2 * GRLIB_fob_range ) ) && ( _nextvehicle distance startbase > ( 1.2 * GRLIB_fob_range ) ) ) then { + if ((toLower (typeof _nextvehicle)) in _cleanup_classnames) then { + if ( count ( crew _nextvehicle ) == 0 ) then { + _nextvehicle setVariable [ "GRLIB_empty_vehicle_ticker", ( _nextvehicle getVariable [ "GRLIB_empty_vehicle_ticker", 0 ] ) + 1 ]; + _reset_ticker = false; + }; + }; + }; + } ; + + if ( _reset_ticker ) then { + _nextvehicle setVariable [ "GRLIB_empty_vehicle_ticker", 0 ]; + }; + + if ( _nextvehicle getVariable [ "GRLIB_empty_vehicle_ticker", 0 ] >= ( 6 * GRLIB_cleanup_vehicles ) ) then { + deleteVehicle _nextvehicle; + }; + + sleep 0.5; + } foreach vehicles; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/fucking_set_fog.sqf b/kp_liberation.brf_sumava/scripts/server/game/fucking_set_fog.sqf new file mode 100644 index 0000000..709afc3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/fucking_set_fog.sqf @@ -0,0 +1,4 @@ +while {true} do { + 5 setFog [0, 0, 0]; + sleep 30; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/manage_time.sqf b/kp_liberation.brf_sumava/scripts/server/game/manage_time.sqf new file mode 100644 index 0000000..8e8d33a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/manage_time.sqf @@ -0,0 +1,8 @@ +while {true} do { + if (GRLIB_shorter_nights && (daytime > 20 || daytime < 4)) then { + setTimeMultiplier (GRLIB_time_factor * 4); + } else { + setTimeMultiplier GRLIB_time_factor; + }; + sleep 10; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/manage_weather.sqf b/kp_liberation.brf_sumava/scripts/server/game/manage_weather.sqf new file mode 100644 index 0000000..eb01fb0 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/manage_weather.sqf @@ -0,0 +1,18 @@ +private _weathers = [ + [0.25], + [0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55], + [0, 0.1, 0.15, 0.2, 0.25, 0.3, 0.325, 0.35, 0.375, 0.4, 0.425, 0.45, 0.475, 0.5, 0.525, 0.55, 0.575, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1] +] select (GRLIB_weather_param - 1); + +private _newWeather = selectRandom _weathers; +0 setOvercast _newWeather; +forceWeatherChange; + +[format ["Set initial weather to: %1 - Param Value: %2 - Time: %3", _newWeather, GRLIB_weather_param, diag_tickTime], "WEATHER"] call KPLIB_fnc_log; + +while {GRLIB_endgame == 0} do { + _newWeather = selectRandom _weathers; + (3600 * timeMultiplier) setOvercast _newWeather; + [format ["Set next weather transition to: %1 - Time: %2", _newWeather, diag_tickTime], "WEATHER"] call KPLIB_fnc_log; + sleep 3000; // Slighty less than weather transition time, as sleep duration is depending on FPS +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/playtime.sqf b/kp_liberation.brf_sumava/scripts/server/game/playtime.sqf new file mode 100644 index 0000000..ec6b761 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/playtime.sqf @@ -0,0 +1,7 @@ +waitUntil { !isNil "save_is_loaded" }; +waitUntil { save_is_loaded }; + +while { true } do { + sleep 1; + stats_playtime = stats_playtime + 1; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/save_manager.sqf b/kp_liberation.brf_sumava/scripts/server/game/save_manager.sqf new file mode 100644 index 0000000..77cab50 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/save_manager.sqf @@ -0,0 +1,575 @@ +scriptName "KPLIB_saveLoop"; + +private _start = diag_tickTime; +["----- Loading save data", "SAVE"] call KPLIB_fnc_log; + +// Handle possible enabled "wipe save" mission parameters +if (GRLIB_param_wipe_savegame_1 == 1 && GRLIB_param_wipe_savegame_2 == 1) then { + profileNamespace setVariable [GRLIB_save_key,nil]; + saveProfileNamespace; + ["Save wiped via mission parameters", "SAVE"] call KPLIB_fnc_log; +} else { + ["No save wipe", "SAVE"] call KPLIB_fnc_log; +}; + +// Auto save when last player exits +if (hasInterface) then { + [] spawn { + waitUntil {!isNull findDisplay 46}; + (findDisplay 46) displayAddEventHandler ["Unload", { + if (!isServer) exitWith {}; + ["Player server exit. Saving mission data.", "SAVE"] call KPLIB_fnc_log; + [] call KPLIB_fnc_doSave; + }]; + }; +} else { + addMissionEventHandler ["HandleDisconnect", { + if !(allPlayers isEqualTo []) exitWith {false}; + params ["_unit"]; + deleteVehicle _unit; + ["Last player disconnected. Saving mission data.", "SAVE"] call KPLIB_fnc_log; + [] call KPLIB_fnc_doSave; + }]; +}; + +// All classnames of objects which should be saved +KPLIB_classnamesToSave = [toLower FOB_typename, toLower huron_typename]; + +/* + --- Locals --- + Variables which are only used inside the save_manager.sqf +*/ +// All AI squads +private _aiGroups = []; +// Current campaign date and time +private _dateTime = []; +// Vehicles which shouldn't be handled in the kill manager +private _noKillHandler = [toLower FOB_typename, toLower huron_typename]; +// All objects which should be loaded/saved +private _objectsToSave = []; +// All storages which are handled for resource persistence +private _resourceStorages = []; +// Collection array for the statistic values +private _stats = []; +// Collection array for the enemy weights +private _weights = []; +// All mines around FOBs +private _allMines = []; +// All unclaimed crates from crate spawning sectors +private _allCrates = []; + +/* + --- Globals --- + Initializes global variables which are used at several places in the framework +*/ + +// Enemy weight for anti air +air_weight = 33; +// Enemy weight for anti armor +armor_weight = 33; +// Blufor sectors +blufor_sectors = []; +// Enemy combat readiness (0-100) +combat_readiness = 0; +// All FOBs +GRLIB_all_fobs = []; +// Player permissions data +GRLIB_permissions = []; +// Vehicle unlock links +GRLIB_vehicle_to_military_base_links = []; +// Enemy weight for anti infantry +infantry_weight = 33; +// Civilian reputation value (-100 - +100) +KP_liberation_civ_rep = 0; +// Clearances +KP_liberation_clearances = []; +// Strength value of the resistance forces +KP_liberation_guerilla_strength = 0; +// Logistic handling data +KP_liberation_logistics = []; +// Production handling data +KP_liberation_production = []; +// Factory markers to display the current available facilities +KP_liberation_production_markers = []; +// Radio tower classnames per radio tower sector +KPLIB_sectorTowers = []; +// Sectors under attack +KPLIB_sectorsUnderAttack = []; +// Global Intel resource +resources_intel = 0; +// State if the save is fully loaded +save_is_loaded = false; + +// Add all buildings for saving and kill manager ignore +_noKillHandler append KPLIB_b_buildings_classes; +KPLIB_classnamesToSave append KPLIB_b_buildings_classes; +KPLIB_classnamesToSave append KPLIB_b_allVeh_classes; + +// Add opfor and civilian vehicles for saving +KPLIB_classnamesToSave append KPLIB_o_allVeh_classes; +KPLIB_classnamesToSave append civilian_vehicles; + +// Remove duplicates +KPLIB_classnamesToSave = KPLIB_classnamesToSave arrayIntersect KPLIB_classnamesToSave; + +/* + --- Statistic Variables --- +*/ + +stats_ammo_produced = 0; +stats_ammo_spent = 0; +stats_blufor_soldiers_killed = 0; +stats_blufor_soldiers_recruited = 0; +stats_blufor_teamkills = 0; +stats_blufor_vehicles_built = 0; +stats_blufor_vehicles_killed = 0; +stats_civilian_buildings_destroyed = 0; +stats_civilian_vehicles_killed = 0; +stats_civilian_vehicles_killed_by_players = 0; +stats_civilian_vehicles_seized = 0; +stats_civilians_healed = 0; +stats_civilians_killed = 0; +stats_civilians_killed_by_players = 0; +stats_fobs_built = 0; +stats_fobs_lost = 0; +stats_fuel_produced = 0; +stats_fuel_spent = 0; +stats_hostile_battlegroups = 0; +stats_ieds_detonated = 0; +stats_opfor_killed_by_players = 0; +stats_opfor_soldiers_killed = 0; +stats_opfor_vehicles_killed = 0; +stats_opfor_vehicles_killed_by_players = 0; +stats_player_deaths = 0; +stats_playtime = 0; +stats_prisoners_captured = 0; +stats_readiness_earned = 0; +stats_reinforcements_called = 0; +stats_resistance_killed = 0; +stats_resistance_teamkills = 0; +stats_resistance_teamkills_by_players = 0; +stats_secondary_objectives = 0; +stats_sectors_liberated = 0; +stats_sectors_lost = 0; +stats_spartan_respawns = 0; +stats_supplies_produced = 0; +stats_supplies_spent = 0; +stats_vehicles_recycled = 0; + +// Prevent saving/duplication of objects placed in Eden +{ + _x setVariable ["KP_liberation_edenObject", true]; +} forEach (allMissionObjects ""); + +// Get possible save data +private _saveData = profileNamespace getVariable GRLIB_save_key; + +// Load save data, when retrieved +if (!isNil "_saveData") then { + + // Convert from string to array + if (_saveData isEqualType "") then { + _saveData = parseSimpleArray _saveData; + }; + + if (((_saveData select 0) select 0) isEqualType 0) then { + [format ["Save data from version: %1", (_saveData select 0) joinstring "."], "SAVE"] call KPLIB_fnc_log; + + _dateTime = _saveData select 1; + _objectsToSave = _saveData select 2; + _resourceStorages = _saveData select 3; + _stats = _saveData select 4; + _weights = _saveData select 5; + _aiGroups = _saveData select 6; + blufor_sectors = _saveData select 7; + combat_readiness = _saveData select 8; + GRLIB_all_fobs = _saveData select 9; + GRLIB_permissions = _saveData select 10; + GRLIB_vehicle_to_military_base_links = _saveData select 11; + KP_liberation_civ_rep = _saveData select 12; + KP_liberation_clearances = _saveData select 13; + KP_liberation_guerilla_strength = _saveData select 14; + KP_liberation_logistics = _saveData select 15; + KP_liberation_production = _saveData select 16; + KP_liberation_production_markers = _saveData select 17; + resources_intel = _saveData select 18; + _allMines = _saveData param [19, []]; + _allCrates = _saveData param [20, []]; + KPLIB_sectorTowers = _saveData param [21, []]; + + stats_ammo_produced = _stats select 0; + stats_ammo_spent = _stats select 1; + stats_blufor_soldiers_killed = _stats select 2; + stats_blufor_soldiers_recruited = _stats select 3; + stats_blufor_teamkills = _stats select 4; + stats_blufor_vehicles_built = _stats select 5; + stats_blufor_vehicles_killed = _stats select 6; + stats_civilian_buildings_destroyed = _stats select 7; + stats_civilian_vehicles_killed = _stats select 8; + stats_civilian_vehicles_killed_by_players = _stats select 9; + stats_civilian_vehicles_seized = _stats select 10; + stats_civilians_healed = _stats select 11; + stats_civilians_killed = _stats select 12; + stats_civilians_killed_by_players = _stats select 13; + stats_fobs_built = _stats select 14; + stats_fobs_lost = _stats select 15; + stats_fuel_produced = _stats select 16; + stats_fuel_spent = _stats select 17; + stats_hostile_battlegroups = _stats select 18; + stats_ieds_detonated = _stats select 19; + stats_opfor_killed_by_players = _stats select 20; + stats_opfor_soldiers_killed = _stats select 21; + stats_opfor_vehicles_killed = _stats select 22; + stats_opfor_vehicles_killed_by_players = _stats select 23; + stats_player_deaths = _stats select 24; + stats_playtime = _stats select 25; + stats_prisoners_captured = _stats select 26; + stats_readiness_earned = _stats select 27; + stats_reinforcements_called = _stats select 28; + stats_resistance_killed = _stats select 29; + stats_resistance_teamkills = _stats select 30; + stats_resistance_teamkills_by_players = _stats select 31; + stats_secondary_objectives = _stats select 32; + stats_sectors_liberated = _stats select 33; + stats_sectors_lost = _stats select 34; + stats_spartan_respawns = _stats select 35; + stats_supplies_produced = _stats select 36; + stats_supplies_spent = _stats select 37; + stats_vehicles_recycled = _stats select 38; + } else { + // --- Compatibility for older save data --- + ["Save data from version: pre 0.96.5", "SAVE"] call KPLIB_fnc_log; + + blufor_sectors = _saveData select 0; + GRLIB_all_fobs = _saveData select 1; + _objectsToSave = _saveData select 2; + _dateTime = _saveData select 3; + combat_readiness = _saveData select 4; + _resourceStorages = _saveData select 5; + KP_liberation_production = _saveData select 6; + KP_liberation_logistics = _saveData select 7; + _stats = _saveData select 8; + _weights = _saveData select 9; + GRLIB_vehicle_to_military_base_links = _saveData select 10; + GRLIB_permissions = _saveData select 11; + _aiGroups = _saveData select 12; + resources_intel = _saveData select 13; + KP_liberation_civ_rep = _saveData select 15; + KP_liberation_production_markers = _saveData select 16; + KP_liberation_guerilla_strength = _saveData select 17; + + stats_opfor_soldiers_killed = _stats select 0; + stats_opfor_killed_by_players = _stats select 1; + stats_blufor_soldiers_killed = _stats select 2; + stats_player_deaths = _stats select 3; + stats_opfor_vehicles_killed = _stats select 4; + stats_opfor_vehicles_killed_by_players = _stats select 5; + stats_blufor_vehicles_killed = _stats select 6; + stats_blufor_soldiers_recruited = _stats select 7; + stats_blufor_vehicles_built = _stats select 8; + stats_civilians_killed = _stats select 9; + stats_civilians_killed_by_players = _stats select 10; + stats_sectors_liberated = _stats select 11; + stats_playtime = _stats select 12; + stats_spartan_respawns = _stats select 13; + stats_secondary_objectives = _stats select 14; + stats_hostile_battlegroups = _stats select 15; + stats_ieds_detonated = _stats select 16; + stats_reinforcements_called = _stats select 19; + stats_prisoners_captured = _stats select 20; + stats_blufor_teamkills = _stats select 21; + stats_vehicles_recycled = _stats select 22; + stats_ammo_spent = _stats select 23; + stats_sectors_lost = _stats select 24; + stats_fobs_built = _stats select 25; + stats_fobs_lost = _stats select 26; + stats_readiness_earned = _stats select 27; + }; + + // Extract weigths from collection array + infantry_weight = _weights select 0; + armor_weight = _weights select 1; + air_weight = _weights select 2; + + // Set correct resistance standing + private _resistanceEnemy = [0, 1] select (KP_liberation_civ_rep < 25); + private _resistanceFriendly = [0, 1] select (KP_liberation_civ_rep >= -25); + + GRLIB_side_resistance setFriend [GRLIB_side_enemy, _resistanceEnemy]; + GRLIB_side_enemy setFriend [GRLIB_side_resistance, _resistanceEnemy]; + GRLIB_side_resistance setFriend [GRLIB_side_friendly, _resistanceFriendly]; + GRLIB_side_friendly setFriend [GRLIB_side_resistance, _resistanceFriendly]; + + if (KP_liberation_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", GRLIB_side_resistance, GRLIB_side_enemy, (GRLIB_side_resistance getFriend GRLIB_side_enemy), GRLIB_side_friendly, (GRLIB_side_resistance getFriend GRLIB_side_friendly)], "CIVREP"] call KPLIB_fnc_log;}; + + // Apply current date and time + if (_dateTime isEqualType []) then { + setDate _dateTime; + } else { + setDate [2045, 6, 6, _dateTime, 0]; // Compatibility for older save data + }; + + // Create clearances + { + [_x select 0, _x select 1] call KPLIB_fnc_createClearance; + } forEach KP_liberation_clearances; + + // Collection array for all objects which are loaded + private _spawnedObjects = []; + + // Spawn all saved objects + private _object = objNull; + { + // Fetch data of saved object + _x params ["_class", "_pos", "_vecDir", "_vecUp", ["_hasCrew", false]]; + + // This will be removed if we reach a 0.96.7 due to more released Arma 3 DLCs until we finish 0.97.0 + if !(((_saveData select 0) select 0) isEqualType 0) then { + // Pre 0.96.5 compatibility with repair building, as it was replaced by default with a different classname + if ((KP_liberation_recycle_building != "Land_CarService_F") && (_class == "Land_CarService_F")) then { + _class = KP_liberation_recycle_building; + }; + + // Pre 0.96.5 compatibility with air building, as it was replaced by default with a different classname + if ((KP_liberation_air_vehicle_building != "Land_Radar_Small_F") && (_class == "Land_Radar_Small_F")) then { + _class = KP_liberation_air_vehicle_building; + }; + }; + + // Only spawn, if the classname is still in the presets + if ((toLower _class) in KPLIB_classnamesToSave) then { + + // Create object without damage handling and simulation + _object = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + _object allowdamage false; + _object enableSimulation false; + + // Add object to spawned objects collection + _spawnedObjects pushBack _object; + + // Reposition spawned object + _object setPosWorld _pos; + _object setVectorDirAndUp [_vecDir, _vecUp]; + + // Process KP object init + [_object] call KPLIB_fnc_addObjectInit; + + // Apply kill manager handling, if not excluded + if !((toLower _class) in _noKillHandler) then { + _object addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + }; + + // Set enemy vehicle as captured + if ((toLower _class) in KPLIB_o_allVeh_classes) then { + _object setVariable ["KPLIB_captured", true, true]; + }; + + // Set civilian vehicle as seized + if (_class in civilian_vehicles) then { + _object setVariable ["KPLIB_seized", true, true]; + }; + + // Determine if cargo should be cleared + [_object] call KPLIB_fnc_clearCargo; + + // Add blufor crew, if it had crew or is a UAV + if ((unitIsUAV _object) || _hascrew) then { + [_object] call KPLIB_fnc_forceBluforCrew; + }; + }; + } forEach _objectsToSave; + + // Re-enable physics on the spawned objects + { + _x enableSimulation true; + _x setdamage 0; + _x allowdamage true; + } forEach _spawnedObjects; + ["Saved buildings and vehicles placed", "SAVE"] call KPLIB_fnc_log; + + // Spawn all saved mines + private _mine = objNull; + { + _x params ["_minePos", "_dirAndUp", "_class", "_known"]; + + _mine = createVehicle [_class, _minePos, [], 0]; + _mine setPosWorld _minePos; + _mine setVectorDirAndUp _dirAndUp; + + // reveal mine to player side if it was detected + if (_known) then { + GRLIB_side_friendly revealMine _mine; + }; + + } forEach _allMines; + ["Saved mines placed", "SAVE"] call KPLIB_fnc_log; + + // Spawn saved resource storages and their content + { + _x params ["_class", "_pos", "_vecDir", "_vecUp", "_supply", "_ammo", "_fuel"]; + + // Only spawn, if the classname is still in the presets + if ((toLower _class) in KPLIB_classnamesToSave) then { + + // Create object without damage handling and simulation + _object = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + _object allowdamage false; + _object enableSimulation false; + + // Reposition spawned object + _object setPosWorld _pos; + _object setVectorDirAndUp [_vecDir, _vecUp]; + + // Re-enable physics on spawned object + _object setdamage 0; + _object enableSimulation true; + _object allowdamage true; + + // Mark it as FOB storage + _object setVariable ["KP_liberation_storage_type", 0, true]; + + // Fill storage with saved resources + [floor _supply, floor _ammo, floor _fuel, _object] call KPLIB_fnc_fillStorage; + }; + } forEach _resourceStorages; + ["Saved FOB storages placed and filled", "SAVE"] call KPLIB_fnc_log; + + // Spawn saved sector storages and their content + private _storage = []; + { + _storage = _x select 3; + + // Spawn storage, if sector has valid storage + if ((count _storage) == 3) then { + _storage params ["_pos", "_dir", "_vecUp"]; + + // Create object without damage handling and simulation + _object = createVehicle [KP_liberation_small_storage_building, _pos, [], 0, "CAN_COLLIDE"]; + _object enableSimulationGlobal false; + _object allowdamage false; + + // Reposition spawned object + _object setdir _dir; + _object setVectorUp _vecUp; + _object setPosATL _pos; + + // Re-enable physics on spawned object + _object setdamage 0; + _object enableSimulation true; + _object allowdamage true; + + // Mark it as sector storage + _object setVariable ["KP_liberation_storage_type", 1, true]; + + // Fill storage + [floor (_x select 9), floor (_x select 10), floor (_x select 11), _object] call KPLIB_fnc_fillStorage; + }; + } forEach KP_liberation_production; + ["Saved sector storages placed and filled", "SAVE"] call KPLIB_fnc_log; + + // Spawn BLUFOR AI groups + // This will be removed if we reach a 0.96.7 due to more released Arma 3 DLCs until we finish 0.97.0 + private _grp = grpNull; + if (((_saveData select 0) select 0) isEqualType 0) then { + { + _x params ["_spawnPos", "_units"]; + _grp = createGroup [GRLIB_side_friendly, true]; + { + [_x, [_spawnPos, _grp] select (_forEachIndex > 0), _grp] call KPLIB_fnc_createManagedUnit; + } forEach _units; + } forEach _aiGroups; + } else { + // Pre 0.96.5 compatibility + private _pos = []; + private _dir = 0; + private _unit = objNull; + { + _grp = createGroup [GRLIB_side_friendly, true]; + { + _pos = [(_x select 1) select 0, (_x select 1) select 1, ((_x select 1) select 2) + 0.2]; + _dir = _x select 2; + _unit = [(_x select 0), _pos, _grp] call KPLIB_fnc_createManagedUnit; + _unit setDir _dir; + _unit setPosATL _pos; + } forEach _x; + } forEach _aiGroups; + }; + ["Saved AI units placed", "SAVE"] call KPLIB_fnc_log; + + // Spawn all saved sector crates + { + _x call KPLIB_fnc_createCrate; + } forEach _allCrates; + ["Saved crates placed", "SAVE"] call KPLIB_fnc_log; +} else { + ["Save nil", "SAVE"] call KPLIB_fnc_log; +}; + +publicVariable "stats_civilian_vehicles_seized"; +publicVariable "stats_ieds_detonated"; +publicVariable "blufor_sectors"; +publicVariable "GRLIB_all_fobs"; +publicVariable "KPLIB_sectorsUnderAttack"; +publicVariable "KP_liberation_clearances"; + +// Check for deleted military sectors or deleted classnames in the locked vehicles array +GRLIB_vehicle_to_military_base_links = GRLIB_vehicle_to_military_base_links select {((_x select 0) in elite_vehicles) && ((_x select 1) in sectors_military)}; + +// Remove links for vehicles of possibly removed mods +GRLIB_vehicle_to_military_base_links = GRLIB_vehicle_to_military_base_links select {[_x select 0] call KPLIB_fnc_checkClass}; + +// Check for additions in the locked vehicles array +private _lockedVehCount = count GRLIB_vehicle_to_military_base_links; +if ((_lockedVehCount < (count sectors_military)) && (_lockedVehCount < (count elite_vehicles))) then { + private _assignedVehicles = []; + private _assignedBases = []; + private _nextVehicle = ""; + private _nextBase = ""; + + { + _assignedVehicles pushBack (_x select 0); + _assignedBases pushBack (_x select 1); + } forEach GRLIB_vehicle_to_military_base_links; + + // Add new entries, when there are elite vehicles and military sectors are not yet assigned + while {((count _assignedVehicles) < (count elite_vehicles)) && ((count _assignedBases) < (count sectors_military))} do { + _nextVehicle = selectRandom (elite_vehicles - _assignedVehicles); + _nextBase = selectRandom (sectors_military - _assignedBases); + _assignedVehicles pushBack _nextVehicle; + _assignedBases pushBack _nextBase; + GRLIB_vehicle_to_military_base_links pushBack [_nextVehicle, _nextBase]; + }; + ["Additional military sectors or unlockable vehicles detected and assigned", "SAVE"] call KPLIB_fnc_log; +}; + +publicVariable "GRLIB_vehicle_to_military_base_links"; +publicVariable "GRLIB_permissions"; +save_is_loaded = true; publicVariable "save_is_loaded"; + +[format ["----- Saved data loaded - Time needed: %1 seconds", diag_tickTime - _start], "SAVE"] call KPLIB_fnc_log; + +// Start the save loop +private _saveTime = time + KP_liberation_save_interval; +while {true} do { + waitUntil { + sleep 0.5; + (time > _saveTime) || {GRLIB_endgame == 1}; + }; + _start = diag_tickTime; + + // Exit the while and wipe save, if campaign ended + if (GRLIB_endgame == 1) exitWith { + profileNamespace setVariable [GRLIB_save_key, nil]; + saveProfileNamespace; + }; + + [] call KPLIB_fnc_doSave; + + if (KP_liberation_savegame_debug > 0) then {[format ["Campaign saved - Time needed: %1 seconds", diag_tickTime - _start], "SAVE"] call KPLIB_fnc_log;}; + + _saveTime = time + KP_liberation_save_interval; +}; + +["Left saving loop", "SAVE"] call KPLIB_fnc_log; + +true diff --git a/kp_liberation.brf_sumava/scripts/server/game/server_restart.sqf b/kp_liberation.brf_sumava/scripts/server/game/server_restart.sqf new file mode 100644 index 0000000..2c259a6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/server_restart.sqf @@ -0,0 +1,72 @@ +if (!isDedicated) exitWith {}; + +_serverDuration = (KP_liberation_restart * 60 * 60); + +[format ["Restart Timer Set To %1", _serverDuration], "RESTART"] call KPLIB_fnc_log; + +private _30minspassed = false; +private _15minspassed = false; +private _5minspassed = false; +private _60secondspassed = false; + +private _timeStart = diag_tickTime; + +private ["_timeSinceStart","_timeUntilRestart"]; +while{true} do +{ + _timeSinceStart = diag_tickTime - _timeStart; + _timeUntilRestart = _serverDuration - _timeSinceStart; + + switch true do + { + case ((_timeUntilRestart < (1 * 60)) && !_60secondspassed) : + { + ["lib_restart_60_s"] remoteExecCall ["BIS_fnc_showNotification"]; + ["60 seconds until server restart.", "RESTART"] call KPLIB_fnc_log; + _60secondspassed = true; + _5minspassed = true; + _15minspassed = true; + _30minspassed = true; + }; + case ((_timeUntilRestart < (5 * 60)) && !_5minspassed) : + { + ["lib_restart_5_min"] remoteExecCall ["BIS_fnc_showNotification"]; + ["5 minutes until server restart.", "RESTART"] call KPLIB_fnc_log; + _5minspassed = true; + _15minspassed = true; + _30minspassed = true; + }; + case ((_timeUntilRestart < (15 * 60)) && !_15minspassed) : + { + ["lib_restart_15_min"] remoteExecCall ["BIS_fnc_showNotification"]; + ["15 minutes until server restart.", "RESTART"] call KPLIB_fnc_log; + _15minspassed = true; + _30minspassed = true; + }; + case ((_timeUntilRestart < (30 * 60)) && !_30minspassed) : + { + ["lib_restart_30_min"] remoteExecCall ["BIS_fnc_showNotification"]; + ["30 minutes until server restart.", "RESTART"] call KPLIB_fnc_log; + _30minspassed = true; + }; + }; + + if(_timeSinceStart > _serverDuration) then + { + ["Restart timeout elapsed, attempting server shutdown.", "RESTART"] call KPLIB_fnc_log; + sleep 5; + + private _myPass = call compile preprocessFileLineNumbers "\userconfig\restart\myPass.hpp"; + private _shutdownSuccess = _myPass serverCommand (["#restart", "#restartserver"] select ((productVersion select 6) isEqualTo "Windows")); + + if(_shutdownSuccess) then + { + ["Shutting down server!", "RESTART"] call KPLIB_fnc_log; + } + else + { + ["Shutdown failed!", "RESTART"] call KPLIB_fnc_log; + }; + }; + sleep 15; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/spawn_radio_towers.sqf b/kp_liberation.brf_sumava/scripts/server/game/spawn_radio_towers.sqf new file mode 100644 index 0000000..f76f64e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/spawn_radio_towers.sqf @@ -0,0 +1,21 @@ +uiSleep 3; + +private _sector = ""; +private _saved = []; +private _classname = ""; +private _tower = objNull; + +{ + _sector = _x; + _saved = KPLIB_sectorTowers select {(_x select 0) isEqualTo _sector}; + if (_saved isEqualTo []) then { + _classname = selectRandom KPLIB_radioTowerClassnames; + KPLIB_sectorTowers pushBack [_sector, _classname]; + } else { + _classname = (_saved select 0) select 1; + }; + _tower = _classname createVehicle (markerpos _x); + _tower setPos (markerpos _x); + _tower setVectorUp [0, 0, 1]; + _tower addEventHandler ["HandleDamage", {0}]; +} forEach sectors_tower; diff --git a/kp_liberation.brf_sumava/scripts/server/game/synchronise_eco.sqf b/kp_liberation.brf_sumava/scripts/server/game/synchronise_eco.sqf new file mode 100644 index 0000000..b887f9b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/synchronise_eco.sqf @@ -0,0 +1,41 @@ +sync_eco = []; publicVariable "sync_eco"; + +waitUntil{!isNil "save_is_loaded"}; +waitUntil{!isNil "KP_liberation_production"}; +waitUntil{!isNil "KP_liberation_logistics"}; +waitUntil{!isNil "KP_liberation_production_markers"}; +waitUntil {save_is_loaded}; + +if (KP_liberation_production_markers isEqualTo []) then { + { + private _facility = selectRandom [[true,false,false], [false,true,false], [false,false,true]]; + KP_liberation_production_markers pushBack [_x, _facility select 0, _facility select 1, _facility select 2, markerText _x]; + } forEach sectors_factory; +}; + +private _KP_liberation_production_old = [0]; +private _KP_liberation_logistics_old = [0]; + +while {true} do { + + waitUntil {sleep 0.25; + !(_KP_liberation_production_old isEqualTo KP_liberation_production) + || !(_KP_liberation_logistics_old isEqualTo KP_liberation_logistics) + }; + { + private _sector = _x; + { + if ((_sector select 1) == (_x select 0)) exitWith { + _x set [1, (_sector select 4)]; + _x set [2, (_sector select 5)]; + _x set [3, (_sector select 6)]; + }; + } forEach KP_liberation_production_markers; + } forEach KP_liberation_production; + sleep 0.25; + sync_eco = [KP_liberation_production,KP_liberation_logistics,KP_liberation_production_markers]; + publicVariable "sync_eco"; + + _KP_liberation_production_old = +KP_liberation_production; + _KP_liberation_logistics_old = +KP_liberation_logistics; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/synchronise_vars.sqf b/kp_liberation.brf_sumava/scripts/server/game/synchronise_vars.sqf new file mode 100644 index 0000000..623305c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/synchronise_vars.sqf @@ -0,0 +1,103 @@ +sync_vars = []; publicVariable "sync_vars"; + +waitUntil{!isNil "save_is_loaded"}; +waitUntil{!isNil "KP_liberation_fob_resources"}; +waitUntil{!isNil "KP_liberation_supplies_global"}; +waitUntil{!isNil "KP_liberation_ammo_global"}; +waitUntil{!isNil "KP_liberation_fuel_global"}; +waitUntil{!isNil "combat_readiness"}; +waitUntil{!isNil "unitcap"}; +waitUntil{!isNil "KP_liberation_heli_count"}; +waitUntil{!isNil "KP_liberation_plane_count"}; +waitUntil{!isNil "KP_liberation_heli_slots"}; +waitUntil{!isNil "KP_liberation_plane_slots"}; +waitUntil{!isNil "resources_intel"}; +waitUntil{!isNil "infantry_cap"}; +waitUntil{!isNil "KP_liberation_civ_rep"}; +waitUntil{!isNil "KP_liberation_guerilla_strength"}; +waitUntil{!isNil "infantry_weight"}; +waitUntil{!isNil "armor_weight"}; +waitUntil{!isNil "air_weight"}; +waitUntil {save_is_loaded}; + +private _KP_liberation_fob_resources_old = []; +private _KP_liberation_supplies_global_old = -1; +private _KP_liberation_ammo_global_old = -1; +private _KP_liberation_fuel_global_old = -1; +private _unitcap_old = -1; +private _KP_liberation_heli_count_old = -1; +private _KP_liberation_plane_count_old = -1; +private _KP_liberation_heli_slots_old = -1; +private _KP_liberation_plane_slots_old = -1; +private _combat_readiness_old = -1; +private _resources_intel_old = -999; +private _infantry_cap_old = -999; +private _KP_liberation_civ_rep_old = -999; +private _KP_liberation_guerilla_strength_old = -999; +private _infantry_weight_old = -1; +private _armor_weight_old = -1; +private _air_weight_old = -1; + +while {true} do { + waitUntil {sleep 0.25; + !(_KP_liberation_fob_resources_old isEqualTo KP_liberation_fob_resources) + || _KP_liberation_supplies_global_old != KP_liberation_supplies_global + || _KP_liberation_ammo_global_old != KP_liberation_ammo_global + || _KP_liberation_fuel_global_old != KP_liberation_fuel_global + || _unitcap_old != unitcap + || _KP_liberation_heli_count_old != KP_liberation_heli_count + || _KP_liberation_plane_count_old != KP_liberation_plane_count + || _KP_liberation_heli_slots_old != KP_liberation_heli_slots + || _KP_liberation_plane_slots_old != KP_liberation_plane_slots + || _combat_readiness_old != combat_readiness + || _resources_intel_old != resources_intel + || _infantry_cap_old != infantry_cap + || _KP_liberation_civ_rep_old != KP_liberation_civ_rep + || _KP_liberation_guerilla_strength_old != KP_liberation_guerilla_strength + || _infantry_weight_old != infantry_weight + || _armor_weight_old != armor_weight + || _air_weight_old != air_weight + }; + + if (KP_liberation_guerilla_strength < 0) then {KP_liberation_guerilla_strength = 0;}; + + sleep 0.25; + sync_vars = [ + KP_liberation_fob_resources, + KP_liberation_supplies_global, + KP_liberation_ammo_global, + KP_liberation_fuel_global, + unitcap, + KP_liberation_heli_count, + KP_liberation_plane_count, + KP_liberation_heli_slots, + KP_liberation_plane_slots, + combat_readiness, + resources_intel, + infantry_cap, + KP_liberation_civ_rep, + KP_liberation_guerilla_strength, + infantry_weight, + armor_weight, + air_weight + ]; + publicVariable "sync_vars"; + + _KP_liberation_fob_resources_old = +KP_liberation_fob_resources; + _KP_liberation_supplies_global_old = KP_liberation_supplies_global; + _KP_liberation_ammo_global_old = KP_liberation_ammo_global; + _KP_liberation_fuel_global_old = KP_liberation_fuel_global; + _unitcap_old = unitcap; + _KP_liberation_heli_count_old = KP_liberation_heli_count; + _KP_liberation_plane_count_old = KP_liberation_plane_count; + _KP_liberation_heli_slots_old = KP_liberation_heli_slots; + _KP_liberation_plane_slots_old = KP_liberation_plane_slots; + _combat_readiness_old = combat_readiness; + _resources_intel_old = resources_intel; + _infantry_cap_old = infantry_cap; + _KP_liberation_civ_rep_old = KP_liberation_civ_rep; + _KP_liberation_guerilla_strength_old = KP_liberation_guerilla_strength; + _infantry_weight_old = infantry_weight; + _armor_weight_old = armor_weight; + _air_weight_old = air_weight; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/game/zeus_synchro.sqf b/kp_liberation.brf_sumava/scripts/server/game/zeus_synchro.sqf new file mode 100644 index 0000000..ad47666 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/game/zeus_synchro.sqf @@ -0,0 +1,61 @@ +waitUntil {!isNil "huron_typename"}; + +// Classnames of objects which should be added as editable for Zeus +private _vehicleClassnames = [toLower huron_typename]; +{ + _vehicleClassnames append _x; +} forEach [ + KPLIB_crates, + KPLIB_b_light_classes, + KPLIB_b_heavy_classes, + KPLIB_b_air_classes, + KPLIB_b_static_classes, + KPLIB_b_support_classes +]; +if (KP_liberation_enemies_zeus) then {_vehicleClassnames append KPLIB_o_allVeh_classes;}; + +private _valids = []; +private _toRemove = []; +private _toAdd = []; + +while {true} do { + waitUntil {sleep 1; !(allCurators isEqualTo [])}; + + // Add units + _valids = allUnits select { + (alive _x) // Alive + && { + (KP_liberation_enemies_zeus && {!(side (group _x) isEqualTo GRLIB_side_civilian)}) // Not civilian side, if enemy adding is enabled + || {side (group _x) isEqualTo GRLIB_side_friendly} // Player side if enemy adding is disabled + } + && {((str _x) find "BIS_SUPP_HQ_") isEqualTo -1} // Not a HQ entity from support module + }; + + // Add vehicles + _valids append (vehicles select { + (alive _x) // Alive + && { + ((toLower (typeOf _x)) in _vehicleClassnames) // In valid classnames + || (_x getVariable ["KPLIB_captured", false]) // or captured + || (_x getVariable ["KPLIB_seized", false]) // or seized + } + && {isNull (attachedTo _x)} // Not attached to something + }); + + // Add playable units + _valids append switchableUnits; + _valids append playableUnits; + + { + // Remove death or attached units + _toRemove = ((curatorEditableObjects _x) select {!(alive _x) || !(isNull (attachedTo _x))}); + + // Filter already added units of this curator + _toAdd = _valids - (curatorEditableObjects _x); + + // Add and remove units + _x addCuratorEditableObjects [_toAdd, true]; + _x removeCuratorEditableObjects [_toRemove, true]; + } forEach allCurators; + sleep 9; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/highcommand/fn_highcommand.fsm b/kp_liberation.brf_sumava/scripts/server/highcommand/fn_highcommand.fsm new file mode 100644 index 0000000..bc13f2c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/highcommand/fn_highcommand.fsm @@ -0,0 +1,433 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"Author__KPLIB_Dev",0,250,0.000000,0.000000,100.000000,50.000000,0.000000,"Author:" \n "KPLIB Dev Team"}; +item1[] = {"save_and_cmdr_ready",4,218,0.000000,75.000000,100.000000,125.000000,0.000000,"save and" \n "cmdr ready?"}; +item2[] = {"Init_High_Command",2,250,0.000000,150.000000,100.000000,200.000000,0.000000,"Init" \n "High Command" \n "Module"}; +item3[] = {"not_server_",4,218,125.000000,0.000000,225.000000,50.000000,2.000000,"not server?"}; +item4[] = {"Exit",1,250,250.000000,0.000000,350.000000,50.000000,0.000000,"Exit"}; +item5[] = {"_",8,218,0.000000,375.000000,100.000000,425.000000,0.000000,""}; +item6[] = {"Wait_for_Command",2,250,0.000000,450.000000,100.000000,500.000000,0.000000,"Wait for" \n "Commander"}; +item7[] = {"Commander_available",4,218,0.000000,525.000000,100.000000,575.000000,0.000000,"Commander" \n "available?"}; +item8[] = {"Synchronize_Commander",2,250,0.000000,600.000000,100.000000,650.000000,0.000000,"Synchronize" \n "Commander to" \n "module"}; +item9[] = {"_",8,218,0.000000,675.000000,100.000000,725.000000,0.000000,""}; +item10[] = {"Start_High_Command",2,250,0.000000,750.000000,100.000000,800.000000,0.000000,"Start" \n "High Command" \n "sync"}; +item11[] = {"_",8,218,0.000000,825.000000,100.000000,875.000000,0.000000,""}; +item12[] = {"Remove_empty_gro",2,250,0.000000,900.000000,100.000000,950.000000,0.000000,"Remove empty" \n "groups"}; +item13[] = {"_",8,218,0.000000,975.000000,100.000000,1025.000000,0.000000,""}; +item14[] = {"Add_new_groups",2,250,0.000000,1050.000000,100.000000,1100.000000,0.000000,"Add new groups"}; +item15[] = {"_",8,218,125.000000,750.000000,225.000000,800.000000,0.000000,""}; +item16[] = {"",7,210,171.000000,1071.000000,179.000000,1079.000000,0.000000,""}; +item17[] = {"Commander_died_",4,218,-125.000000,450.000000,-25.000000,500.000000,1.000000,"Commander" \n "died?"}; +item18[] = {"",7,210,-79.000008,1071.000000,-70.999992,1079.000000,0.000000,""}; +item19[] = {"",7,210,-79.000000,921.000000,-71.000000,929.000000,0.000000,""}; +item20[] = {"",7,210,-79.000008,771.000000,-70.999992,779.000000,0.000000,""}; +item21[] = {"",7,210,-79.000000,621.000000,-71.000000,629.000000,0.000000,""}; +item22[] = {"campaign_finished",4,218,250.000000,450.000000,350.000000,500.000000,1.000000,"campaign" \n "finished?"}; +item23[] = {"Exit_1",1,250,375.000000,450.000000,475.000000,500.000000,0.000000,"Exit"}; +item24[] = {"",7,210,296.000000,1071.000000,304.000000,1079.000000,0.000000,""}; +item25[] = {"MARTA_created_",4,218,0.000000,225.000000,100.000000,275.000000,0.000000,"MARTA" \n "created?"}; +item26[] = {"Init_MARTA",2,250,0.000000,300.000000,100.000000,350.000000,0.000000,"Init MARTA"}; +link0[] = {0,1}; +link1[] = {0,3}; +link2[] = {1,2}; +link3[] = {2,25}; +link4[] = {3,4}; +link5[] = {5,6}; +link6[] = {6,7}; +link7[] = {6,22}; +link8[] = {7,8}; +link9[] = {8,9}; +link10[] = {8,21}; +link11[] = {9,10}; +link12[] = {10,11}; +link13[] = {10,20}; +link14[] = {11,12}; +link15[] = {12,13}; +link16[] = {12,19}; +link17[] = {13,14}; +link18[] = {14,16}; +link19[] = {14,18}; +link20[] = {15,10}; +link21[] = {16,15}; +link22[] = {16,24}; +link23[] = {17,6}; +link24[] = {18,19}; +link25[] = {19,20}; +link26[] = {20,21}; +link27[] = {21,17}; +link28[] = {22,23}; +link29[] = {24,22}; +link30[] = {25,26}; +link31[] = {26,5}; +globals[] = {0.000000,0,0,0,0,640,480,1,51,6316128,1,-591.886047,787.545105,1145.687378,155.900024,1232,884,1}; +window[] = {2,-1,-1,-1,-1,889,130,1570,130,3,1250}; +*//*%FSM*/ +class FSM +{ + fsmName = "KPLIB High Command"; + class States + { + /*%FSM*/ + class Author__KPLIB_Dev + { + name = "Author__KPLIB_Dev"; + itemno = 0; + init = /*%FSM*/"// This FSM is part of KP Liberation" \n + "// https://github.com/KillahPotatoes/KP-Liberation" \n + "// MIT License - http://www.opensource.org/licenses/MIT" \n + "" \n + "// Local variables" \n + "private _grp = createGroup sideLogic;" \n + "private _cmdr = objNull;" \n + "private _hcGrps = [];" \n + "private _newGrps = [];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class not_server_ + { + itemno = 3; + priority = 2.000000; + to="Exit"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isServer"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class save_and_cmdr_ready + { + itemno = 1; + priority = 0.000000; + to="Init_High_Command"; + precondition = /*%FSM*/"_cmdr = [] call KPLIB_fnc_getCommander;"/*%FSM*/; + condition=/*%FSM*/"!isNil ""save_is_loaded""" \n + "&& {save_is_loaded}" \n + "&& {time > 5}" \n + "&& {alive _cmdr}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init_High_Command + { + name = "Init_High_Command"; + itemno = 2; + init = /*%FSM*/"[""High Command started"", ""HIGHCOMMAND""] call KPLIB_fnc_log;" \n + "" \n + "// Spawn module" \n + "private _module = _grp createUnit [""HighCommand"", [0, 0, 0], [], 0, ""NONE""];" \n + "publicVariable ""BIS_HC_mainscope"";" \n + "_module synchronizeObjectsAdd [_cmdr];" \n + "" \n + "// Logging function for the FSM" \n + "private _logging = {" \n + " if (KP_liberation_highcommand_debug > 0) then {" \n + " [format _this, ""HIGHCOMMAND""] call KPLIB_fnc_log;" \n + " };" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class MARTA_created_ + { + itemno = 25; + priority = 0.000000; + to="Init_MARTA"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""BIS_marta_mainscope"""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit + { + name = "Exit"; + itemno = 4; + init = /*%FSM*/"[" \n + " format [""High Command was started on %1"", debug_source]," \n + " ""FSM ABORT""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Wait_for_Command + { + name = "Wait_for_Command"; + itemno = 6; + init = /*%FSM*/"[""Waiting for Commander""] call _logging;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class campaign_finished + { + itemno = 22; + priority = 1.000000; + to="Exit_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Commander_available + { + itemno = 7; + priority = 0.000000; + to="Synchronize_Commander"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"alive ([] call KPLIB_fnc_getCommander)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Synchronize_Commander + { + name = "Synchronize_Commander"; + itemno = 8; + init = /*%FSM*/"[""Commander alive and gets synchronized""] call _logging;" \n + "" \n + "if !(([] call KPLIB_fnc_getCommander) in (synchronizedObjects _module)) then {" \n + " {" \n + " _cmdr hcRemoveGroup _x;" \n + " } forEach (hcAllGroups _cmdr);" \n + " _module synchronizeObjectsRemove [_cmdr];" \n + "" \n + " _cmdr = [] call KPLIB_fnc_getCommander;" \n + " _module synchronizeObjectsAdd [_cmdr];" \n + " _cmdr hcSetGroup [group _cmdr];" \n + "};" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Commander_died_ + { + itemno = 17; + priority = 1.000000; + to="Wait_for_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!alive _cmdr"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 9; + priority = 0.000000; + to="Start_High_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Start_High_Command + { + name = "Start_High_Command"; + itemno = 10; + init = /*%FSM*/"// Get all groups which are currently added to high command" \n + "_hcGrps = hcAllGroups _cmdr;" \n + "" \n + "// Get all groups with at least one member alive" \n + "// and not already added to high command" \n + "_newGrps = allGroups select {" \n + " (side _x) isEqualTo GRLIB_side_friendly" \n + " && {!(_x in _hcGrps)}" \n + " && {!(((units _x) select {alive _x}) isEqualTo [])}" \n + " && {!(_cmdr in (units _x))}" \n + " && {(((units _x) apply {str _x}) findIf {_x find ""BIS_SUPP_HQ_"" != -1}) isEqualTo -1}" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Commander_died_ + { + itemno = 17; + priority = 1.000000; + to="Wait_for_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!alive _cmdr"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 11; + priority = 0.000000; + to="Remove_empty_gro"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Remove_empty_gro + { + name = "Remove_empty_gro"; + itemno = 12; + init = /*%FSM*/"{" \n + " _cmdr hcRemoveGroup _x;" \n + "} forEach (_hcGrps select {" \n + " ((units _x) findIf {alive _x}) == -1" \n + " || {_cmdr in (units _x)}" \n + " || {(((units _x) apply {str _x}) findIf {_x find ""BIS_SUPP_HQ_"" != -1}) != -1}" \n + "});"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Commander_died_ + { + itemno = 17; + priority = 1.000000; + to="Wait_for_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!alive _cmdr"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 13; + priority = 0.000000; + to="Add_new_groups"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Add_new_groups + { + name = "Add_new_groups"; + itemno = 14; + init = /*%FSM*/"{" \n + " _cmdr hcSetGroup [_x];" \n + "} forEach _newGrps;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Commander_died_ + { + itemno = 17; + priority = 1.000000; + to="Wait_for_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!alive _cmdr"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class campaign_finished + { + itemno = 22; + priority = 1.000000; + to="Exit_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 15; + priority = 0.000000; + to="Start_High_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit_1 + { + name = "Exit_1"; + itemno = 23; + init = /*%FSM*/"[""High Command exited due to finished campaign""] call _logging;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init_MARTA + { + name = "Init_MARTA"; + itemno = 26; + init = /*%FSM*/"// Set MARTA rules again, otherwise all groups are cyan on dedicated" \n + "// This is caused by the fact that BIS_fnc_sidecolor returns always" \n + "// [0,1,1,0.8] on dedicated server." \n + "// e.g. [west] call BIS_fnc_sidecolor returns [0,1,1,0.8]" \n + "// As this is used in modules_f\marta\data\scripts\main.sqf it causes" \n + "// the issue on dedicated servers, if using that module." \n + "BIS_marta_mainscope setvariable [""rules""," \n + "[" \n + " [""o_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (GRLIB_side_enemy isEqualTo west)]," \n + " [""b_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (GRLIB_side_friendly isEqualTo west)]," \n + " [""n_"", [0, 0.5, 0, 1]]," \n + " [""n_"", [0.4, 0, 0.5, 1]]" \n + "], true];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 5; + priority = 0.000000; + to="Wait_for_Command"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + }; + initState="Author__KPLIB_Dev"; + finalStates[] = + { + "Exit", + "Exit_1", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/init_server.sqf b/kp_liberation.brf_sumava/scripts/server/init_server.sqf new file mode 100644 index 0000000..dcecb72 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/init_server.sqf @@ -0,0 +1,128 @@ +// AI +add_civ_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; +add_defense_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; +battlegroup_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; +building_defence_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; +patrol_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; +prisonner_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; +troup_transport = compileFinal preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; + +// Battlegroup +spawn_air = compileFinal preprocessFileLineNumbers "scripts\server\battlegroup\spawn_air.sqf"; +spawn_battlegroup = compileFinal preprocessFileLineNumbers "scripts\server\battlegroup\spawn_battlegroup.sqf"; + +// Game +check_victory_conditions = compileFinal preprocessFileLineNumbers "scripts\server\game\check_victory_conditions.sqf"; + +// Patrol +manage_one_civilian_patrol = compileFinal preprocessFileLineNumbers "scripts\server\patrols\manage_one_civilian_patrol.sqf"; +manage_one_patrol = compileFinal preprocessFileLineNumbers "scripts\server\patrols\manage_one_patrol.sqf"; +reinforcements_manager = compileFinal preprocessFileLineNumbers "scripts\server\patrols\reinforcements_manager.sqf"; +send_paratroopers = compileFinal preprocessFileLineNumbers "scripts\server\patrols\send_paratroopers.sqf"; + +// Secondary objectives +fob_hunting = compileFinal preprocessFileLineNumbers "scripts\server\secondary\fob_hunting.sqf"; +convoy_hijack = compileFinal preprocessFileLineNumbers "scripts\server\secondary\convoy_hijack.sqf"; +search_and_rescue = compileFinal preprocessFileLineNumbers "scripts\server\secondary\search_and_rescue.sqf"; + +// Sector +attack_in_progress_fob = compileFinal preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_fob.sqf"; +attack_in_progress_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_sector.sqf"; +ied_manager = compileFinal preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; +manage_one_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; +wait_to_spawn_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; + +// Globals +active_sectors = []; publicVariable "active_sectors"; + +execVM "scripts\server\base\startgame.sqf"; +execVM "scripts\server\base\huron_manager.sqf"; +execVM "scripts\server\base\startvehicle_spawn.sqf"; +[] call KPLIB_fnc_createSuppModules; +execVM "scripts\server\battlegroup\counter_battlegroup.sqf"; +execVM "scripts\server\battlegroup\random_battlegroups.sqf"; +execVM "scripts\server\battlegroup\readiness_increase.sqf"; +execVM "scripts\server\game\apply_default_permissions.sqf"; +execVM "scripts\server\game\cleanup_vehicles.sqf"; +if (!KP_liberation_fog_param) then {execVM "scripts\server\game\fucking_set_fog.sqf";}; +execVM "scripts\server\game\manage_time.sqf"; +execVM "scripts\server\game\manage_weather.sqf"; +execVM "scripts\server\game\playtime.sqf"; +execVM "scripts\server\game\save_manager.sqf"; +execVM "scripts\server\game\spawn_radio_towers.sqf"; +execVM "scripts\server\game\synchronise_vars.sqf"; +execVM "scripts\server\game\synchronise_eco.sqf"; +execVM "scripts\server\game\zeus_synchro.sqf"; +execVM "scripts\server\offloading\show_fps.sqf"; +execVM "scripts\server\patrols\civilian_patrols.sqf"; +execVM "scripts\server\patrols\manage_patrols.sqf"; +execVM "scripts\server\patrols\reinforcements_resetter.sqf"; +if (KP_liberation_ailogistics) then {execVM "scripts\server\resources\manage_logistics.sqf";}; +execVM "scripts\server\resources\manage_resources.sqf"; +execVM "scripts\server\resources\recalculate_resources.sqf"; +execVM "scripts\server\resources\recalculate_timer.sqf"; +execVM "scripts\server\resources\recalculate_timer_sector.sqf"; +execVM "scripts\server\resources\unit_cap.sqf"; +execVM "scripts\server\sector\lose_sectors.sqf"; + +KPLIB_fsm_sectorMonitor = [] call KPLIB_fnc_sectorMonitor; +if (KP_liberation_high_command) then {KPLIB_fsm_highcommand = [] call KPLIB_fnc_highcommand;}; + +// Select FOB templates +switch (KP_liberation_preset_opfor) do { + case 1: { + KPLIB_fob_templates = [ + "scripts\fob_templates\apex\template1.sqf", + "scripts\fob_templates\apex\template2.sqf", + "scripts\fob_templates\apex\template3.sqf", + "scripts\fob_templates\apex\template4.sqf", + "scripts\fob_templates\apex\template5.sqf" + ]; + }; + case 12: { + KPLIB_fob_templates = [ + "scripts\fob_templates\unsung\template1.sqf", + "scripts\fob_templates\unsung\template2.sqf", + "scripts\fob_templates\unsung\template3.sqf", + "scripts\fob_templates\unsung\template4.sqf", + "scripts\fob_templates\unsung\template5.sqf" + ]; + }; + default { + KPLIB_fob_templates = [ + "scripts\fob_templates\default\template1.sqf", + "scripts\fob_templates\default\template2.sqf", + "scripts\fob_templates\default\template3.sqf", + "scripts\fob_templates\default\template4.sqf", + "scripts\fob_templates\default\template5.sqf", + "scripts\fob_templates\default\template6.sqf", + "scripts\fob_templates\default\template7.sqf", + "scripts\fob_templates\default\template8.sqf", + "scripts\fob_templates\default\template9.sqf", + "scripts\fob_templates\default\template10.sqf" + ]; + }; +}; + +// Civil Reputation +execVM "scripts\server\civrep\init_module.sqf"; + +// Civil Informant +execVM "scripts\server\civinformant\init_module.sqf"; + +// Asymmetric Threats +execVM "scripts\server\asymmetric\init_module.sqf"; + +// Groupcheck for deletion when empty +execVM "scripts\server\offloading\group_diag.sqf"; + +{ + if ((_x != player) && (_x distance (markerPos GRLIB_respawn_marker) < 200 )) then { + deleteVehicle _x; + }; +} forEach allUnits; + +// Server Restart Script from K4s0 +if (KP_liberation_restart > 0) then { + execVM "scripts\server\game\server_restart.sqf"; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/offloading/group_diag.sqf b/kp_liberation.brf_sumava/scripts/server/offloading/group_diag.sqf new file mode 100644 index 0000000..5985fa4 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/offloading/group_diag.sqf @@ -0,0 +1,25 @@ +waitUntil {sleep 1; !isNil "active_sectors"}; + +while {true} do { + uiSleep 600; + private _markedgroups = 0; + { + private _groupOwner = groupOwner _x; + private _owner = "Server"; + + if (_groupOwner != 2) then { + _owner = name ((allPlayers select {_groupOwner == (owner _x)}) select 0); + }; + + if !(isNil "_owner") then { + if !(isGroupDeletedWhenEmpty _x) then { + if (local _x) then { + _x deleteGroupWhenEmpty true; + } else { + [_x, true] remoteExec ["deleteGroupWhenEmpty", groupOwner _x]; + }; + _markedgroups = _markedgroups + 1; + }; + }; + } forEach allGroups; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/offloading/hc_manager.sqf b/kp_liberation.brf_sumava/scripts/server/offloading/hc_manager.sqf new file mode 100644 index 0000000..cba1d4f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/offloading/hc_manager.sqf @@ -0,0 +1,19 @@ +add_civ_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; +add_defense_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; +battlegroup_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; +building_defence_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; +patrol_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; +prisonner_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; +troup_transport = compileFinal preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; + +ied_manager = compileFinal preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; +manage_one_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; +wait_to_spawn_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; +manage_asymIED = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; +sector_guerilla = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; +asym_sector_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; +civinfo_task = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; + +execVM "scripts\client\misc\synchronise_vars.sqf"; +execVM "scripts\client\misc\synchronise_eco.sqf"; +execVM "scripts\server\offloading\show_fps.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/server/offloading/show_fps.sqf b/kp_liberation.brf_sumava/scripts/server/offloading/show_fps.sqf new file mode 100644 index 0000000..e91466f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/offloading/show_fps.sqf @@ -0,0 +1,51 @@ +private _sourcestr = "Server"; +private _position = 0; + +if (!isServer) then { + if (!isNil "HC1") then { + if (!isNull HC1) then { + if (local HC1) then { + _sourcestr = "HC1"; + _position = 1; + }; + }; + }; + + if (!isNil "HC2") then { + if (!isNull HC2) then { + if (local HC2) then { + _sourcestr = "HC2"; + _position = 2; + }; + }; + }; + + if (!isNil "HC3") then { + if (!isNull HC3) then { + if (local HC3) then { + _sourcestr = "HC3"; + _position = 3; + }; + }; + }; +}; + +private _myfpsmarker = createMarker [format ["fpsmarker%1", _sourcestr], [0, -500 - (500 * _position)]]; +_myfpsmarker setMarkerType "mil_start"; +_myfpsmarker setMarkerSize [0.7, 0.7]; + +while {true} do { + + private _myfps = diag_fps; + private _localgroups = {local _x} count allGroups; + private _localunits = {local _x} count allUnits; + + _myfpsmarker setMarkerColor "ColorGREEN"; + if (_myfps < 30) then {_myfpsmarker setMarkerColor "ColorYELLOW";}; + if (_myfps < 20) then {_myfpsmarker setMarkerColor "ColorORANGE";}; + if (_myfps < 10) then {_myfpsmarker setMarkerColor GRLIB_color_enemy_bright;}; + + _myfpsmarker setMarkerText format ["%1: %2 fps, %3 local groups, %4 local units", _sourcestr, (round (_myfps * 100.0)) / 100.0, _localgroups, _localunits]; + + sleep 15; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/civilian_patrols.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/civilian_patrols.sqf new file mode 100644 index 0000000..a64c4c9 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/civilian_patrols.sqf @@ -0,0 +1,3 @@ +if ( GRLIB_civilian_activity > 0 ) then { + for [ {_i=0}, {_i < GRLIB_civilians_amount}, {_i=_i+1} ] do { [] spawn manage_one_civilian_patrol }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_civilian_patrol.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_civilian_patrol.sqf new file mode 100644 index 0000000..12d4381 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_civilian_patrol.sqf @@ -0,0 +1,120 @@ +private [ "_spawnsector", "_grp", "_usable_sectors", "_spawntype", "_civnumber", "_vehdriver", "_spawnpos", "_civveh", "_sectors_patrol", + "_patrol_startpos", "_waypoint", "_grpspeed", "_sectors_patrol_random", "_sectorcount", "_nextsector", "_nearestroad" ]; + +_civveh = objNull; + +sleep (150 + (random 150)); +_spawnsector = ""; + +if ( isNil "active_sectors" ) then { active_sectors = [] }; + +while { GRLIB_endgame == 0 } do { + + _spawnsector = ""; + _usable_sectors = []; + { + if ((([markerPos _x, 1000, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) == 0) && (count ([markerPos _x, 3500] call KPLIB_fnc_getNearbyPlayers) > 0)) then { + _usable_sectors pushback _x; + } + + } foreach ((sectors_bigtown + sectors_capture + sectors_factory) - (active_sectors)); + + if ( count _usable_sectors > 0 ) then { + _spawnsector = selectRandom _usable_sectors; + + _grp = createGroup [GRLIB_side_civilian, true]; + if ( random 100 < 33) then { + _civnumber = 1 + (floor (random 2)); + while { count units _grp < _civnumber } do { + [selectRandom civilians, markerPos _spawnsector, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + }; + _grpspeed = "LIMITED"; + } else { + + _nearestroad = objNull; + while { isNull _nearestroad } do { + _nearestroad = [(markerPos (_spawnsector)) getPos [random (100), random (360)], 200, []] call BIS_fnc_nearestRoad; + sleep 1; + }; + + _spawnpos = getpos _nearestroad; + + [selectRandom civilians, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + _civveh = (selectRandom civilian_vehicles) createVehicle _spawnpos; + _civveh setpos _spawnpos; + _civveh addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; + _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != GRLIB_side_friendly ) && ( side (_this select 3) != GRLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; + ((units _grp) select 0) moveInDriver _civveh; + ((units _grp) select 0) disableAI "FSM"; + ((units _grp) select 0) disableAI "AUTOCOMBAT"; + _grpspeed = "LIMITED"; + + }; + + { _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != GRLIB_side_friendly ) && ( side (_this select 3) != GRLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; } foreach units _grp; + + _sectors_patrol = []; + _patrol_startpos = getpos (leader _grp); + { + if ((_patrol_startpos distance (markerpos _x) < 5000) && (count ([markerPos _x, 4000] call KPLIB_fnc_getNearbyPlayers) > 0)) then { + _sectors_patrol pushback _x; + }; + } foreach (sectors_bigtown + sectors_capture + sectors_factory); + + _sectors_patrol_random = []; + _sectorcount = count _sectors_patrol; + while { count _sectors_patrol_random < _sectorcount } do { + _nextsector = selectRandom _sectors_patrol; + _sectors_patrol_random pushback _nextsector; + _sectors_patrol = _sectors_patrol - [_nextsector]; + + }; + + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow leader _grp} foreach units _grp; + + { + _nearestroad = [(markerPos _x) getPos [random(100), random(360)], 200, []] call BIS_fnc_nearestRoad; + if ( isNull _nearestroad ) then { + _waypoint = _grp addWaypoint [ markerpos _x, 100 ]; + } else { + _waypoint = _grp addWaypoint [ getpos _nearestroad, 0 ]; + }; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed _grpspeed; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCombatMode "BLUE"; + _waypoint setWaypointCompletionRadius 100; + } foreach _sectors_patrol_random; + + _waypoint = _grp addWaypoint [_patrol_startpos , 100]; + _waypoint setWaypointType "CYCLE"; + + if ( local _grp ) then { + _headless_client = [] call KPLIB_fnc_getLessLoadedHC; + if ( !isNull _headless_client ) then { + _grp setGroupOwner ( owner _headless_client ); + }; + }; + + waitUntil { + sleep (30 + (random 30)); + ((({alive _x} count (units _grp)) == 0) || (count ([getpos leader _grp, 4000] call KPLIB_fnc_getNearbyPlayers) == 0)) + }; + + if ( count (units _grp) > 0 ) then { + if (count ([getpos leader _grp, 4000] call KPLIB_fnc_getNearbyPlayers) == 0) then { + + if ( !(isNull _civveh) ) then { + if ( { ( alive _x ) && (side group _x == GRLIB_side_friendly ) } count (crew _civveh) == 0 ) then { + deleteVehicle _civveh + }; + }; + + { deletevehicle _x } foreach units _grp; + }; + }; + }; + + sleep 150 + (random (150)); +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_patrol.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_patrol.sqf new file mode 100644 index 0000000..62c7f72 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/manage_one_patrol.sqf @@ -0,0 +1,83 @@ +params [ "_minimum_readiness", "_is_infantry" ]; +private [ "_headless_client" ]; + +waitUntil { !isNil "blufor_sectors" }; +waitUntil { !isNil "combat_readiness" }; + +while { GRLIB_endgame == 0 } do { + waitUntil { sleep 0.3; count blufor_sectors >= 3; }; + waitUntil { sleep 0.3; combat_readiness >= (_minimum_readiness / GRLIB_difficulty_modifier); }; + + sleep (random 30); + + while { [] call KPLIB_fnc_getOpforCap > GRLIB_patrol_cap } do { + sleep (random 30); + }; + + _grp = grpNull; + + _spawn_marker = ""; + while { _spawn_marker == "" } do { + _spawn_marker = [2000,5000,true] call KPLIB_fnc_getOpforSpawnPoint; + if ( _spawn_marker == "" ) then { + sleep (150 + (random 150)); + }; + }; + + _sector_spawn_pos = [(((markerpos _spawn_marker) select 0) - 500) + (random 1000),(((markerpos _spawn_marker) select 1) - 500) + (random 1000),0]; + + if (_is_infantry) then { + _grp = createGroup [GRLIB_side_enemy, true]; + _squad = [] call KPLIB_fnc_getSquadComp; + { + [_x, _sector_spawn_pos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + } foreach _squad; + } else { + + private [ "_vehicle_object" ]; + if ((combat_readiness > 75) && ((random 100) > 85) && !(opfor_choppers isEqualTo [])) then { + _vehicle_object = [_sector_spawn_pos, selectRandom opfor_choppers] call KPLIB_fnc_spawnVehicle; + } else { + _vehicle_object = [_sector_spawn_pos, [] call KPLIB_fnc_getAdaptiveVehicle] call KPLIB_fnc_spawnVehicle; + }; + + sleep 0.5; + _grp = group ((crew _vehicle_object) select 0); + }; + + [_grp] spawn patrol_ai; + + _started_time = time; + _patrol_continue = true; + + if ( local _grp ) then { + _headless_client = [] call KPLIB_fnc_getLessLoadedHC; + if ( !isNull _headless_client ) then { + _grp setGroupOwner ( owner _headless_client ); + }; + }; + + while { _patrol_continue } do { + sleep 60; + if ( count (units _grp) == 0 ) then { + _patrol_continue = false; + } else { + if ( time - _started_time > 900 ) then { + if ( [ getpos (leader _grp) , 4000 , GRLIB_side_friendly ] call KPLIB_fnc_getUnitsCount == 0 ) then { + _patrol_continue = false; + { + if ( vehicle _x != _x ) then { + [(vehicle _x)] call KPLIB_fnc_cleanOpforVehicle; + }; + deleteVehicle _x; + } foreach (units _grp); + }; + }; + }; + }; + + if ( !([] call KPLIB_fnc_isBigtownActive) ) then { + sleep (600.0 / GRLIB_difficulty_modifier); + }; + +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/manage_patrols.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/manage_patrols.sqf new file mode 100644 index 0000000..4ebadec --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/manage_patrols.sqf @@ -0,0 +1,24 @@ +_combat_triggers = [20,40,50,65,80,95]; +if ( GRLIB_unitcap < 0.9 ) then { _combat_triggers = [20,45,90]; }; +if ( GRLIB_unitcap > 1.3 ) then { _combat_triggers = [15,25,40,65,75,85,95]; }; + +_combat_triggers_infantry = [15,35,45,60,70,85]; +if ( GRLIB_unitcap < 0.9 ) then { _combat_triggers_infantry = [15,40,80]; }; +if ( GRLIB_unitcap > 1.3 ) then { _combat_triggers_infantry = [10,20,35,55,70,80,90]; }; + +sleep 5; + +waitUntil { sleep 0.3; !isNil "blufor_sectors" }; +waitUntil { sleep 0.3; count blufor_sectors > 3 }; + +if (worldName != "song_bin_tanh") then { + { + [_x, false] spawn manage_one_patrol; + sleep 1; + } foreach _combat_triggers; +}; + +{ + [_x, true] spawn manage_one_patrol; + sleep 1; +} foreach _combat_triggers_infantry; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_manager.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_manager.sqf new file mode 100644 index 0000000..df0c2f3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_manager.sqf @@ -0,0 +1,39 @@ +params ["_targetsector"]; + +if (combat_readiness > 15) then { + + private _init_units_count = (([markerPos _targetsector, GRLIB_capture_size, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount)); + + if !(_targetsector in sectors_bigtown) then { + while {(_init_units_count * 0.75) <= ([markerPos _targetsector, GRLIB_capture_size, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount)} do { + sleep 5; + }; + }; + + if (_targetsector in active_sectors) then { + + private _nearestower = [markerpos _targetsector, GRLIB_side_enemy, GRLIB_radiotower_size * 1.4] call KPLIB_fnc_getNearestTower; + + if !(isNil "_nearestower") then { + private _reinforcements_time = (((((markerpos _nearestower) distance (markerpos _targetsector)) / 1000) ^ 1.66 ) * 120) / (GRLIB_difficulty_modifier * GRLIB_csat_aggressivity); + if (_targetsector in sectors_bigtown) then { + _reinforcements_time = _reinforcements_time * 0.35; + }; + private _current_timer = time; + + waitUntil {sleep 1; (_current_timer + _reinforcements_time < time) || (_targetsector in blufor_sectors) || (_nearestower in blufor_sectors)}; + + sleep 15; + + if ((_targetsector in active_sectors) && !(_targetsector in blufor_sectors) && !(_nearestower in blufor_sectors) && (!([] call KPLIB_fnc_isBigtownActive) || _targetsector in sectors_bigtown)) then { + reinforcements_sector_under_attack = _targetsector; + reinforcements_set = true; + ["lib_reinforcements",[markertext _targetsector]] remoteExec ["bis_fnc_shownotification"]; + if ((random combat_readiness) > (20 + (30 / GRLIB_csat_aggressivity))) then { + [_targetsector] spawn send_paratroopers; + }; + stats_reinforcements_called = stats_reinforcements_called + 1; + }; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_resetter.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_resetter.sqf new file mode 100644 index 0000000..6335443 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/reinforcements_resetter.sqf @@ -0,0 +1,16 @@ +_reset_time = 1800; + +reinforcements_set = false; + +while { true } do { + + waitUntil { sleep 0.3; reinforcements_set }; + reinforcements_set = false; + + _localtime = time; + + waitUntil { sleep 0.3; ( time > ( _localtime + _reset_time ) ) || reinforcements_set }; + + if ( !reinforcements_set && !([] call KPLIB_fnc_isBigtownActive) ) then { reinforcements_sector_under_attack = ""; } + +}; diff --git a/kp_liberation.brf_sumava/scripts/server/patrols/send_paratroopers.sqf b/kp_liberation.brf_sumava/scripts/server/patrols/send_paratroopers.sqf new file mode 100644 index 0000000..4adf338 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/patrols/send_paratroopers.sqf @@ -0,0 +1,140 @@ +params [ + ["_targetsector", "", ["",[]]], + ["_chopper_type", objNull, [objNull]] +]; + +if (_targetsector isEqualTo "" || opfor_choppers isEqualTo []) exitWith {false}; + +private _targetpos = _targetsector; +if (_targetpos isEqualType "") then { + _targetpos = markerPos _targetsector; +}; +private _spawnsector = ([sectors_airspawn, [_targetpos], {(markerpos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; +private _newvehicle = objNull; +private _pilot_group = grpNull; +if (isNull _chopper_type) then { + _chopper_type = selectRandom opfor_choppers; + + while {!(_chopper_type in opfor_troup_transports)} do { + _chopper_type = selectRandom opfor_choppers; + }; + + _newvehicle = createVehicle [_chopper_type, markerpos _spawnsector, [], 0, "FLY"]; + createVehicleCrew _newvehicle; + sleep 0.1; + + _pilot_group = createGroup [GRLIB_side_enemy, true]; + (crew _newvehicle) joinSilent _pilot_group; + + _newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _newvehicle); +} else { + _newvehicle = _chopper_type; + _pilot_group = group _newvehicle; +}; + +private _para_group = createGroup [GRLIB_side_enemy, true]; + +while {(count (units _para_group)) < 8} do { + [opfor_paratrooper, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit; +}; + +{removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group); + +while {(count (waypoints _pilot_group)) != 0} do {deleteWaypoint ((waypoints _pilot_group) select 0);}; +while {(count (waypoints _para_group)) != 0} do {deleteWaypoint ((waypoints _para_group) select 0);}; +sleep 0.2; +{_x doFollow leader _pilot_group} forEach units _pilot_group; +{_x doFollow leader _para_group} forEach units _para_group; +sleep 0.2; + +_newvehicle flyInHeight 100; + +_waypoint = _pilot_group addWaypoint [_targetpos, 25]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "CARELESS"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 100; +_waypoint = _pilot_group addWaypoint [_targetpos, 25]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "FULL"; +_waypoint setWaypointBehaviour "CARELESS"; +_waypoint setWaypointCombatMode "BLUE"; +_waypoint setWaypointCompletionRadius 100; +_waypoint = _pilot_group addWaypoint [_targetpos, 700]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 100; +_waypoint = _pilot_group addWaypoint [_targetpos, 700]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 100; +_waypoint = _pilot_group addWaypoint [_targetpos, 700]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 100; +_pilot_group setCurrentWaypoint [_pilot_group, 1]; + +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointBehaviour "COMBAT"; +_waypoint setWaypointCombatMode "YELLOW"; +_waypoint setWaypointCompletionRadius 50; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 50; +_pilot_group setCurrentWaypoint [_para_group, 1]; + +_newvehicle flyInHeight 100; + +waitUntil {sleep 1; + !(alive _newvehicle) || (damage _newvehicle > 0.2 ) || (_newvehicle distance _targetpos < 400) +}; + +_newvehicle flyInHeight 100; + +{ + unassignVehicle _x; + moveout _x; + sleep 0.5; +} forEach (units _para_group); + +_newvehicle flyInHeight 100; + +sleep 0.2; +while {(count (waypoints _pilot_group)) != 0} do {deleteWaypoint ((waypoints _pilot_group) select 0);}; +while {(count (waypoints _para_group)) != 0} do {deleteWaypoint ((waypoints _para_group) select 0);}; +sleep 0.2; +{_x doFollow leader _pilot_group} foreach units _pilot_group; +{_x doFollow leader _para_group} foreach units _para_group; +sleep 0.2; + +_newvehicle flyInHeight 100; + +_waypoint = _pilot_group addWaypoint [_targetpos, 200]; +_waypoint setWaypointBehaviour "COMBAT"; +_waypoint setWaypointCombatMode "RED"; +_waypoint setWaypointType "SAD"; +_waypoint = _pilot_group addWaypoint [_targetpos, 200]; +_waypoint setWaypointBehaviour "COMBAT"; +_waypoint setWaypointCombatMode "RED"; +_waypoint setWaypointType "SAD"; +_waypoint = _pilot_group addWaypoint [_targetpos, 200]; +_waypoint setWaypointBehaviour "COMBAT"; +_waypoint setWaypointCombatMode "RED"; +_waypoint setWaypointType "SAD"; +_waypoint = _pilot_group addWaypoint [_targetpos, 200]; +_waypoint setWaypointType "SAD"; +_waypoint = _pilot_group addWaypoint [_targetpos, 200]; +_waypoint setWaypointType "SAD"; +_pilot_group setCurrentWaypoint [_pilot_group, 1]; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _para_group addWaypoint [_targetpos, 100]; +_waypoint setWaypointType "SAD"; +_pilot_group setCurrentWaypoint [_para_group, 1]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/abort_logi_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/abort_logi_remote_call.sqf new file mode 100644 index 0000000..2039cc7 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/abort_logi_remote_call.sqf @@ -0,0 +1,40 @@ +if (!isServer) exitWith {}; + +params ["_index", "_clientID"]; + +private ["_time","_nextState"]; + +logiError = 0; + +if ((((KP_liberation_logistics select _index) select 7) == 0) || (((KP_liberation_logistics select _index) select 7) == 5) || (((KP_liberation_logistics select _index) select 7) == 6)) exitWith {logiError = 1;(localize "STR_LOGISTIC_STANDBY_ERROR") remoteExec ["hint",_clientID]; _clientID publicVariableClient "logiError";}; + +switch ((KP_liberation_logistics select _index) select 7) do { + case 1; + case 3: { + _time = ceil (((ceil ((((KP_liberation_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 2) / 100))) / 3); + _time = _time + 1; + }; + case 2; + case 4: { + _time = ceil ((((KP_liberation_logistics select _index) select 2) distance2D ((KP_liberation_logistics select _index) select 3)) / 400); + _time = _time - ((KP_liberation_logistics select _index) select 8); + + _time = _time + (ceil (((ceil ((((KP_liberation_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 2) / 100))) / 3)); + _time = _time + 1; + }; +}; + +_nextState = switch ((KP_liberation_logistics select _index) select 7) do {case 1; case 2: {5}; case 3; case 4: {6};}; + +KP_liberation_logistics set [_index,[ + (KP_liberation_logistics select _index) select 0, + (KP_liberation_logistics select _index) select 1, + (KP_liberation_logistics select _index) select 2, + (KP_liberation_logistics select _index) select 3, + (KP_liberation_logistics select _index) select 4, + (KP_liberation_logistics select _index) select 5, + (KP_liberation_logistics select _index) select 6, + _nextState, + _time, + 0 +]]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiGroup_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiGroup_remote_call.sqf new file mode 100644 index 0000000..0473447 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiGroup_remote_call.sqf @@ -0,0 +1,16 @@ +if (!isServer) exitWith {}; + +private _newID = [count KP_liberation_logistics] call KPLIB_fnc_getMilitaryId; + +KP_liberation_logistics append [[ + _newID, // ID + 0, // Truck Count + [0,0,0], // Position Point A + [0,0,0], // Position Point B + [0,0,0], // Ressource transport count A -> B [S,A,F] + [0,0,0], // Ressource transport count B -> A [S,A,F] + [0,0,0], // Currently loaded [S,A,F] + 0, // Status (0 standby, 1 at A, 2 to B, 3 at B, 4 to A, 5 aborting to A, 6 aborting to B) + -1, // Time left in current status + 0 // Special Flag (0 unload, 1 load, 2 no storage, 3 no ressources) +]]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiTruck_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiTruck_remote_call.sqf new file mode 100644 index 0000000..ba21664 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/add_logiTruck_remote_call.sqf @@ -0,0 +1,88 @@ +if (!isServer) exitWith {}; + +params ["_index", "_nearfob", "_clientID", "_supplies", "_ammo", "_fuel"]; + +logiError = 0; + +private _storage_areas = (_nearfob nearobjects GRLIB_fob_range) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + +if ((count _storage_areas) == 0) exitWith {(localize "STR_LOGISTIC_CANTAFFORD") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; + +private _price_s = 100; +private _price_a = 0; +private _price_f = 100; + +if ((_price_s > _supplies) || (_price_a > _ammo) || (_price_f > _fuel)) exitWith {(localize "STR_LOGISTIC_CANTAFFORD") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; + +{ + + + private _storage_positions = []; + private _storedCrates = (attachedObjects _x); + reverse _storedCrates; + + { + private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: { + if (_price_s > 0) then { + if (_crateValue > _price_s) then { + _crateValue = _crateValue - _price_s; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_s = 0; + } else { + detach _x; + deleteVehicle _x; + _price_s = _price_s - _crateValue; + }; + }; + }; + case KP_liberation_ammo_crate: { + if (_price_a > 0) then { + if (_crateValue > _price_a) then { + _crateValue = _crateValue - _price_a; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_a = 0; + } else { + detach _x; + deleteVehicle _x; + _price_a = _price_a - _crateValue; + }; + }; + }; + case KP_liberation_fuel_crate: { + if (_price_f > 0) then { + if (_crateValue > _price_f) then { + _crateValue = _crateValue - _price_f; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_f = 0; + } else { + detach _x; + deleteVehicle _x; + _price_f = _price_f - _crateValue; + }; + }; + }; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach _storedCrates; + + ([_x] call KPLIB_fnc_getStoragePositions) params ["_storage_positions"]; + + private _area = _x; + _i = 0; + { + _height = [typeOf _x] call KPLIB_fnc_getCrateHeight; + detach _x; + _x attachTo [_area, [(_storage_positions select _i) select 0, (_storage_positions select _i) select 1, _height]]; + _i = _i + 1; + } forEach attachedObjects (_x); + + if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {}; + +} forEach _storage_areas; + +please_recalculate = true; + +(KP_liberation_logistics select _index) set [1, ((KP_liberation_logistics select _index) select 1) + 1]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/build_fac_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/build_fac_remote_call.sqf new file mode 100644 index 0000000..feb4ea2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/build_fac_remote_call.sqf @@ -0,0 +1,101 @@ +if (!isServer) exitWith {}; + +params ["_sector", "_fac","_clientID"]; + +private _tempProduction = +KP_liberation_production; +private _checkFor = 0; +private _price_s = 100; +private _price_a = 100; +private _price_f = 100; +private _success = false; + +switch (_fac) do { + case "supply": {_checkFor = 4;_price_s = 50}; + case "ammo": {_checkFor = 5;_price_a = 50;}; + case "fuel": {_checkFor = 6;_price_f = 50;}; +}; + +{ + if ((_x select 1) == (_sector select 1)) exitWith { + if (((_x select 9) >= _price_s) && ((_x select 10) >= _price_a) && ((_x select 11) >= _price_f)) then { + stats_supplies_spent = stats_supplies_spent + _price_s; + stats_ammo_spent = stats_ammo_spent + _price_a; + stats_fuel_spent = stats_fuel_spent + _price_f; + + private _storage = nearestObjects [(markerPos (_x select 1)), [KP_liberation_small_storage_building], 100]; + _storage = _storage select {(_x getVariable ["KP_liberation_storage_type",-1]) == 1}; + if ((count _storage) == 0) exitWith {}; + _storage = (_storage select 0); + private _storedCrates = (attachedObjects _storage); + reverse _storedCrates; + + { + private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: { + if (_price_s > 0) then { + if (_crateValue > _price_s) then { + _crateValue = _crateValue - _price_s; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_s = 0; + } else { + detach _x; + deleteVehicle _x; + _price_s = _price_s - _crateValue; + }; + }; + }; + case KP_liberation_ammo_crate: { + if (_price_a > 0) then { + if (_crateValue > _price_a) then { + _crateValue = _crateValue - _price_a; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_a = 0; + } else { + detach _x; + deleteVehicle _x; + _price_a = _price_a - _crateValue; + }; + }; + }; + case KP_liberation_fuel_crate: { + if (_price_f > 0) then { + if (_crateValue > _price_f) then { + _crateValue = _crateValue - _price_f; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_f = 0; + } else { + detach _x; + deleteVehicle _x; + _price_f = _price_f - _crateValue; + }; + }; + }; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach _storedCrates; + + private _i = 0; + { + private _height = [typeOf _x] call KPLIB_fnc_getCrateHeight; + detach _x; + _x attachTo [_storage, [(KP_liberation_small_storage_positions select _i) select 0, (KP_liberation_small_storage_positions select _i) select 1, _height]]; + _i = _i + 1; + } forEach (attachedObjects _storage); + + _x set [_checkFor, true]; + private _hint = format [localize "STR_PRODUCTION_FACBUILD_SUCCESS"]; + _hint remoteExec ["hint",_clientID]; + _success = true; + } else { + private _hint = format [localize "STR_PRODUCTION_FACBUILD_ERROR",_price_s,_price_a,_price_f]; + _hint remoteExec ["hint",_clientID]; + }; + }; +} forEach _tempProduction; + +if (_success) then { + KP_liberation_production = +_tempProduction; + recalculate_sectors = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/build_fob_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/build_fob_remote_call.sqf new file mode 100644 index 0000000..babc25b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/build_fob_remote_call.sqf @@ -0,0 +1,27 @@ +if (!isServer) exitWith {}; + +params [ "_new_fob", "_create_fob_building" ]; +private [ "_fob_building", "_fob_pos" ]; + +GRLIB_all_fobs pushback _new_fob; +publicVariable "GRLIB_all_fobs"; + +if ( _create_fob_building ) then { + _fob_pos = [ (_new_fob select 0) + 15, (_new_fob select 1) + 2, 0 ]; + [_fob_pos, 20, true] call KPLIB_fnc_createClearance; + _fob_building = FOB_typename createVehicle _fob_pos; + _fob_building setpos _fob_pos; + _fob_building setVectorUp [0,0,1]; + [_fob_building] call KPLIB_fnc_addObjectInit; + sleep 1; +}; + +[] spawn KPLIB_fnc_doSave; + +sleep 3; +[_new_fob, 0] remoteExec ["remote_call_fob"]; + +stats_fobs_built = stats_fobs_built + 1; + +FOB_build_in_progress = false; +publicVariable "FOB_build_in_progress"; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/build_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/build_remote_call.sqf new file mode 100644 index 0000000..51b6551 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/build_remote_call.sqf @@ -0,0 +1,91 @@ +if (!isServer) exitWith {}; + +params ["_price_s", "_price_a", "_price_f", "_typename", "_localtype", "_storage_areas"]; + +if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { + + stats_supplies_spent = stats_supplies_spent + _price_s; + stats_ammo_spent = stats_ammo_spent + _price_a; + stats_fuel_spent = stats_fuel_spent + _price_f; + + { + private _storage_positions = []; + private _storedCrates = (attachedObjects _x); + reverse _storedCrates; + + { + _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: { + if (_price_s > 0) then { + if (_crateValue > _price_s) then { + _crateValue = _crateValue - _price_s; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_s = 0; + } else { + detach _x; + deleteVehicle _x; + _price_s = _price_s - _crateValue; + }; + }; + }; + case KP_liberation_ammo_crate: { + if (_price_a > 0) then { + if (_crateValue > _price_a) then { + _crateValue = _crateValue - _price_a; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_a = 0; + } else { + detach _x; + deleteVehicle _x; + _price_a = _price_a - _crateValue; + }; + }; + }; + case KP_liberation_fuel_crate: { + if (_price_f > 0) then { + if (_crateValue > _price_f) then { + _crateValue = _crateValue - _price_f; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _price_f = 0; + } else { + detach _x; + deleteVehicle _x; + _price_f = _price_f - _crateValue; + }; + }; + }; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach _storedCrates; + + ([_x] call KPLIB_fnc_getStoragePositions) params ["_storage_positions"]; + + private _area = _x; + _i = 0; + { + _height = [typeOf _x] call KPLIB_fnc_getCrateHeight; + detach _x; + _x attachTo [_area, [(_storage_positions select _i) select 0, (_storage_positions select _i) select 1, _height]]; + _i = _i + 1; + } forEach attachedObjects (_x); + + if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {}; + + } forEach _storage_areas; + + if ( _localtype == 8 ) then { + stats_blufor_soldiers_recruited = stats_blufor_soldiers_recruited + 10; + } else { + if ( _typename isKindOf "Man" ) then { + stats_blufor_soldiers_recruited = stats_blufor_soldiers_recruited + 1; + } else { + if ( ! ( _typename isKindOf "Building" ) ) then { + stats_blufor_vehicles_built = stats_blufor_vehicles_built + 1; + }; + }; + }; + + please_recalculate = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/cancel_build_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/cancel_build_remote_call.sqf new file mode 100644 index 0000000..b99527a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/cancel_build_remote_call.sqf @@ -0,0 +1,49 @@ +if (!isServer) exitWith {}; + +params ["_price_s", "_price_a", "_price_f", "_storage_areas"]; + +if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { + { + private _space = 0; + if (typeOf _x == KP_liberation_large_storage_building) then { + _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + + while {(_space > 0) && (_price_s > 0)} do { + private _amount = 100; + if ((_price_s / 100) < 1) then { + _amount = _price_s; + }; + _price_s = _price_s - _amount; + private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_a > 0)} do { + private _amount = 100; + if ((_price_a / 100) < 1) then { + _amount = _price_a; + }; + _price_a = _price_a - _amount; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_f > 0)} do { + private _amount = 100; + if ((_price_f / 100) < 1) then { + _amount = _price_f; + }; + _price_f = _price_f - _amount; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {}; + } forEach _storage_areas; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/change_prod_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/change_prod_remote_call.sqf new file mode 100644 index 0000000..ec05506 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/change_prod_remote_call.sqf @@ -0,0 +1,42 @@ +if (!isServer) exitWith {}; + +params ["_sector", "_new_production"]; + +private ["_tempProduction","_checkFor"]; + +_tempProduction = []; + +{ + if ((_x select 1) == _sector) then { + + switch (_new_production) do { + case 1: {_checkFor = 5;}; + case 2: {_checkFor = 6;}; + default {_checkFor = 4;}; + }; + + if (_x select _checkFor) then { + _tempProduction pushBack [ + (_x select 0), + (_x select 1), + (_x select 2), + (_x select 3), + (_x select 4), + (_x select 5), + (_x select 6), + _new_production, + KP_liberation_production_interval, + (_x select 9), + (_x select 10), + (_x select 11) + ]; + } else { + hint localize "STR_PRODUCTION_FACFALSE"; + _tempProduction pushBack _x; + }; + } else { + _tempProduction pushBack _x; + }; +} forEach KP_liberation_production; + +KP_liberation_production = _tempProduction; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiGroup_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiGroup_remote_call.sqf new file mode 100644 index 0000000..8c41115 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiGroup_remote_call.sqf @@ -0,0 +1,13 @@ +if (!isServer) exitWith {}; + +params ["_groupToDelete"]; + +private _temp = +KP_liberation_logistics; + +_temp = _temp - [_groupToDelete]; + +{ + _x set [0, [_forEachIndex] call KPLIB_fnc_getMilitaryId]; +} forEach _temp; + +KP_liberation_logistics = +_temp; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiTruck_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiTruck_remote_call.sqf new file mode 100644 index 0000000..8a54e58 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/del_logiTruck_remote_call.sqf @@ -0,0 +1,79 @@ +if (!isServer) exitWith {}; + +params ["_index", "_nearfob", "_clientID"]; + +logiError = 0; + +if (((KP_liberation_logistics select _index) select 1) <= 0) exitWith {logiError = 1; _clientID publicVariableClient "logiError";}; + +private _storage_areas = (_nearfob nearobjects GRLIB_fob_range) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + +if ((count _storage_areas) == 0) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; + +private _price_s = 50; +private _price_a = 0; +private _price_f = 50; + +private _crateSum = (ceil(_price_s / 100)) + (ceil(_price_a / 100)) + (ceil(_price_f / 100)); + +private _spaceSum = 0; + +{ + if (typeOf _x == KP_liberation_large_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; +} forEach _storage_areas; + +if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; + +{ + private _space = 0; + if (typeOf _x == KP_liberation_large_storage_building) then { + _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + + while {(_space > 0) && (_price_s > 0)} do { + private _amount = 100; + if ((_price_s / 100) < 1) then { + _amount = _price_s; + }; + _price_s = _price_s - _amount; + private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_a > 0)} do { + private _amount = 100; + if ((_price_a / 100) < 1) then { + _amount = _price_a; + }; + _price_a = _price_a - _amount; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_f > 0)} do { + private _amount = 100; + if ((_price_f / 100) < 1) then { + _amount = _price_f; + }; + _price_f = _price_f - _amount; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {}; +} forEach _storage_areas; + +please_recalculate = true; + +(KP_liberation_logistics select _index) set [1, ((KP_liberation_logistics select _index) select 1) - 1]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/intel_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/intel_remote_call.sqf new file mode 100644 index 0000000..c61713f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/intel_remote_call.sqf @@ -0,0 +1,11 @@ +if ( !isServer ) exitWith {}; + +params [ "_intel_object" ]; + +if ( isNull _intel_object ) exitWith {}; + +_intel_yield = 8; +deleteVehicle _intel_object; +resources_intel = resources_intel + (floor (_intel_yield + (random _intel_yield))); + +[1] remoteExec ["remote_call_intel"]; \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/prisonner_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/prisonner_remote_call.sqf new file mode 100644 index 0000000..55996f3 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/prisonner_remote_call.sqf @@ -0,0 +1,15 @@ +params ["_unit"]; + +private _milita_prisonner_intel_yield = 3; +private _csat_prisonner_intel_yield = 6; + +if (isServer) then { + private _yield = _csat_prisonner_intel_yield; + if ((typeof _unit) in militia_squad) then { + _yield = _milita_prisonner_intel_yield; + }; + resources_intel = resources_intel + ( _yield + (round (random _yield))); + stats_prisoners_captured = stats_prisoners_captured + 1; + + [0] remoteExec ["remote_call_intel"]; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/recycle_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/recycle_remote_call.sqf new file mode 100644 index 0000000..c30d317 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/recycle_remote_call.sqf @@ -0,0 +1,56 @@ +if (!isServer) exitWith {}; + +params ["_object_recycled", "_price_s", "_price_a", "_price_f", "_storage_areas"]; + +if (isNull _object_recycled) exitWith {}; +if (!(alive _object_recycled)) exitWith {}; + +deleteVehicle _object_recycled; +if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { + { + private _space = 0; + if (typeOf _x == KP_liberation_large_storage_building) then { + _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + + while {(_space > 0) && (_price_s > 0)} do { + private _amount = 100; + if ((_price_s / 100) < 1) then { + _amount = _price_s; + }; + _price_s = _price_s - _amount; + private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_a > 0)} do { + private _amount = 100; + if ((_price_a / 100) < 1) then { + _amount = _price_a; + }; + _price_a = _price_a - _amount; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + while {(_space > 0) && (_price_f > 0)} do { + private _amount = 100; + if ((_price_f / 100) < 1) then { + _amount = _price_f; + }; + _price_f = _price_f - _amount; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _space = _space - 1; + }; + + if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {}; + } forEach _storage_areas; +}; +please_recalculate = true; +stats_vehicles_recycled = stats_vehicles_recycled + 1; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/reinforcements_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/reinforcements_remote_call.sqf new file mode 100644 index 0000000..1006bdd --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/reinforcements_remote_call.sqf @@ -0,0 +1,2 @@ +params ["_targetsector"]; +[_targetsector] spawn reinforcements_manager; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/save_logi_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/save_logi_remote_call.sqf new file mode 100644 index 0000000..9fd62fe --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/save_logi_remote_call.sqf @@ -0,0 +1,51 @@ +if (!isServer) exitWith {}; + +params ["_index", "_dest_a", "_ress_a", "_dest_b", "_ress_b", "_clientID"]; + +logiError = 0; + +if ((_ress_a isEqualTo [0,0,0]) && (_ress_b isEqualTo [0,0,0])) then { + logiError = 1; +}; + +if ( + (((_ress_a select 0) != 0) && ((_ress_b select 0) != 0)) + || (((_ress_a select 1) != 0) && ((_ress_b select 1) != 0)) + || (((_ress_a select 2) != 0) && ((_ress_b select 2) != 0)) +) then { + logiError = 1; +}; + +if (_dest_a isEqualTo _dest_b) then { + logiError = 1; +}; + +{ + if ( + ((((_x select 2) isEqualTo _dest_a)) || (((_x select 2) isEqualTo _dest_b))) + && ((((_x select 3) isEqualTo _dest_a)) || (((_x select 3) isEqualTo _dest_b))) + ) exitWith {logiError = 1;} +} forEach KP_liberation_logistics; + +if (logiError == 1) exitWith {(localize "STR_LOGISTIC_SAVE_ERROR") remoteExec ["hint",_clientID]; _clientID publicVariableClient "logiError";}; + +private _time = ceil (((ceil ((_ress_a select 0) / 100)) + (ceil ((_ress_a select 1) / 100)) + (ceil ((_ress_a select 2) / 100))) / 3); + +if (_time > ((KP_liberation_logistics select _index) select 1)) then { + _time = ((KP_liberation_logistics select _index) select 1); +}; + +_time = _time + 1; + +KP_liberation_logistics set [_index,[ + (KP_liberation_logistics select _index) select 0, + (KP_liberation_logistics select _index) select 1, + _dest_a, + _dest_b, + _ress_a, + _ress_b, + (KP_liberation_logistics select _index) select 6, + 1, + _time, + 0 +]]; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/sector_liberated_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/sector_liberated_remote_call.sqf new file mode 100644 index 0000000..525dd4e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/sector_liberated_remote_call.sqf @@ -0,0 +1,72 @@ +params ["_liberated_sector"]; + +private _combat_readiness_increase = 0; +switch (true) do { + case (_liberated_sector in sectors_bigtown): {_combat_readiness_increase = floor (random 10) * GRLIB_difficulty_modifier;}; + case (_liberated_sector in sectors_capture): {_combat_readiness_increase = floor (random 6) * GRLIB_difficulty_modifier;}; + case (_liberated_sector in sectors_military): {_combat_readiness_increase = 5 + (floor (random 11)) * GRLIB_difficulty_modifier;}; + case (_liberated_sector in sectors_factory): {_combat_readiness_increase = 3 + (floor (random 7)) * GRLIB_difficulty_modifier;}; + case (_liberated_sector in sectors_tower): {_combat_readiness_increase = floor (random 4);}; +}; + +combat_readiness = combat_readiness + _combat_readiness_increase; +if (combat_readiness > 100.0 && GRLIB_difficulty_modifier <= 2.0) then {combat_readiness = 100.0}; +stats_readiness_earned = stats_readiness_earned + _combat_readiness_increase; + +[_liberated_sector, 0] remoteExecCall ["remote_call_sector"]; +blufor_sectors pushback _liberated_sector; publicVariable "blufor_sectors"; +stats_sectors_liberated = stats_sectors_liberated + 1; + +reset_battlegroups_ai = true; publicVariable "reset_battlegroups_ai"; + +if (_liberated_sector in sectors_factory) then { + { + if (_liberated_sector in _x) exitWith {KP_liberation_production = KP_liberation_production - [_x];}; + } forEach KP_liberation_production; + + private _sectorFacilities = (KP_liberation_production_markers select {_liberated_sector == (_x select 0)}) select 0; + KP_liberation_production pushBack [ + markerText _liberated_sector, + _liberated_sector, + 1, + [], + _sectorFacilities select 1, + _sectorFacilities select 2, + _sectorFacilities select 3, + 3, + KP_liberation_production_interval, + 0, + 0, + 0 + ]; +}; + +[_liberated_sector] spawn F_cr_liberatedSector; + +if ((random 100) <= KP_liberation_cr_wounded_chance || (count blufor_sectors) == 1) then { + [_liberated_sector] spawn civrep_wounded_civs; +}; + +asymm_blocked_sectors pushBack [_liberated_sector, time]; +publicVariable "asymm_blocked_sectors"; + +[] spawn check_victory_conditions; + +sleep 1; + +[] spawn KPLIB_fnc_doSave; + +sleep 45; + +if (GRLIB_endgame == 0) then { + if ( + !(_liberated_sector in sectors_tower) + && { + (random (150 / (GRLIB_difficulty_modifier * GRLIB_csat_aggressivity))) < (combat_readiness - 15) + || _liberated_sector in sectors_bigtown + } + && {[] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap} + ) then { + [_liberated_sector, (random 100) < 45] spawn spawn_battlegroup; + }; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/remotecall/start_secondary_remote_call.sqf b/kp_liberation.brf_sumava/scripts/server/remotecall/start_secondary_remote_call.sqf new file mode 100644 index 0000000..7d88748 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/remotecall/start_secondary_remote_call.sqf @@ -0,0 +1,23 @@ +if (!isServer) exitWith {false}; + +params [ + ["_mission_index", -1, [0]] +]; + +if (_mission_index < 0) exitWith {false}; + +if (isNil "GRLIB_secondary_starting") then { GRLIB_secondary_starting = false;}; +if (GRLIB_secondary_starting) exitWith {["Multiple calls to start secondary mission : shouldn't be possible, isn't allowed", "ERROR"] call KPLIB_fnc_log;}; +if (isNil "used_positions") then {used_positions = [];}; + +GRLIB_secondary_starting = true; publicVariable "GRLIB_secondary_starting"; + +resources_intel = resources_intel - ( GRLIB_secondary_missions_costs select _mission_index ); + +if (_mission_index == 0) then {[] spawn fob_hunting;}; +if (_mission_index == 1) then {[] spawn convoy_hijack;}; +if (_mission_index == 2) then {[] spawn search_and_rescue;}; + +GRLIB_secondary_starting = false; publicVariable "GRLIB_secondary_starting"; + +true diff --git a/kp_liberation.brf_sumava/scripts/server/resources/manage_logistics.sqf b/kp_liberation.brf_sumava/scripts/server/resources/manage_logistics.sqf new file mode 100644 index 0000000..c4f1465 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/manage_logistics.sqf @@ -0,0 +1,464 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "KP_liberation_logistics"}; +waitUntil {save_is_loaded}; + +["Logistic management started", "LOGISTIC"] call KPLIB_fnc_log; + +KP_liberation_convoy_ambush_inProgress = false; +KP_liberation_convoy_ambush_check = 0; +private _start = 0; +while {GRLIB_endgame == 0} do { + + if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KP_liberation_logistics) > 0)) then { + _start = diag_tickTime; + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic interval started: %1", diag_tickTime], "LOGISTIC"] call KPLIB_fnc_log;}; + + private _tempLogistics = +KP_liberation_logistics; + + { + private _locPos = -1; + private _locRes = -1; + switch (_x select 7) do { + case 0: {}; + case 1; + case 3: { + if ((_x select 8) > 1) then { + switch (_x select 7) do {case 1: {_locPos = 2; _locRes = 4;}; case 3: {_locPos = 3; _locRes = 5;};}; + switch (_x select 9) do {case 2: {_x set [9,0];}; case 3: {_x set [9,1];};}; + private _storage_areas = nearestObjects [(_x select _locPos), [KP_liberation_small_storage_building, KP_liberation_large_storage_building], 150]; + + if (((_x select 9) == 0) && !((_x select 6) isEqualTo [0,0,0])) then { + + if ((count (_storage_areas)) == 0) exitWith {_x set [9,2];}; + + private _toProcess = ceil ((ceil (((_x select 6) select 0) / 100)) + (ceil (((_x select 6) select 1) / 100)) + (ceil (((_x select 6) select 2) / 100))); + if (_toProcess > 3) then {_toProcess = 3;}; + private _spaceSum = 0; + { + if (typeOf _x == KP_liberation_large_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + } forEach _storage_areas; + + if (_spaceSum < _toProcess) exitWith {_x set [9,2];}; + + _x set [8,((_x select 8) - 1)]; + private _currentIndex = _forEachIndex; + private _processed = 0; + while {_processed < _toProcess} do { + { + private _space = 0; + if (typeOf _x == KP_liberation_large_storage_building) then { + _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 0) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 0) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 0; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0) - _amount, + (((_tempLogistics select _currentIndex) select 6) select 1), + (((_tempLogistics select _currentIndex) select 6) select 2)] + ]; + private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 1) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 1) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 1; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0), + (((_tempLogistics select _currentIndex) select 6) select 1) - _amount, + (((_tempLogistics select _currentIndex) select 6) select 2)] + ]; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 2) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 2) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 2; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0), + (((_tempLogistics select _currentIndex) select 6) select 1), + (((_tempLogistics select _currentIndex) select 6) select 2) - _amount] + ]; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + } forEach _storage_areas; + }; + please_recalculate = true; + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + } else { + _x set [9,1]; + }; + + if (((_x select 9) == 1) && !((_x select _locRes) isEqualTo [0,0,0])) then { + + if ((count (_storage_areas)) == 0) exitWith {_x set [9,3];}; + + private _supplyValue = 0; + private _ammoValue = 0; + private _fuelValue = 0; + + { + { + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach (attachedObjects _x); + } forEach _storage_areas; + + private _toProcess = ceil ((ceil (((_x select _locRes) select 0) / 100)) + (ceil (((_x select _locRes) select 1) / 100)) + (ceil (((_x select _locRes) select 2) / 100))); + if (_toProcess > 3) then {_toProcess = 3;}; + + private _maxGetSupply = ((_x select _locRes) select 0); + if (_maxGetSupply > 300) then {_maxGetSupply = 300;}; + private _maxGetAmmo = ((_x select _locRes) select 1); + if (_maxGetAmmo > 300) then {_maxGetAmmo = 300;}; + private _maxGetFuel = ((_x select _locRes) select 2); + if (_maxGetFuel > 300) then {_maxGetFuel = 300;}; + + private _getSupply = 0; + private _getAmmo = 0; + private _getFuel = 0; + private _i = 0; + private _j = 0; + + while {(_i < _toProcess) && (_j < _toProcess)} do { + if ((_maxGetSupply - _getSupply) > 0) then { + if ((floor ((_maxGetSupply - _getSupply) / 100)) > 0) then { + if ((_supplyValue - _getSupply) >= 100) then { + _getSupply = _getSupply + 100; + _i = _i + 1; + }; + } else { + if ((_maxGetSupply - _getSupply) <= (_supplyValue - _getSupply)) then { + _getSupply = _maxGetSupply; + _i = _i + 1; + }; + }; + }; + if (((_maxGetAmmo - _getAmmo) > 0) && (_i < _toProcess)) then { + if ((floor ((_maxGetAmmo - _getAmmo) / 100)) > 0) then { + if ((_ammoValue - _getAmmo) >= 100) then { + _getAmmo = _getAmmo + 100; + _i = _i + 1; + }; + } else { + if ((_maxGetAmmo - _getAmmo) <= (_ammoValue - _getAmmo)) then { + _getAmmo = _maxGetAmmo; + _i = _i + 1; + }; + }; + }; + if (((_maxGetFuel - _getFuel) > 0) && (_i < _toProcess)) then { + if ((floor ((_maxGetFuel - _getFuel) / 100)) > 0) then { + if ((_fuelValue - _getFuel) >= 100) then { + _getFuel = _getFuel + 100; + _i = _i + 1; + }; + } else { + if ((_maxGetFuel - _getFuel) <= (_fuelValue - _getFuel)) then { + _getFuel = _maxGetFuel; + _i = _i + 1; + }; + }; + }; + _j = _j + 1; + }; + + if ((_j == _toProcess) && (_i != _toProcess)) exitWith {_x set [9,3];}; + + _x set [_locRes,[((_x select _locRes) select 0) - _getSupply,((_x select _locRes) select 1) - _getAmmo,((_x select _locRes) select 2) - _getFuel]]; + _x set [6,[((_x select 6) select 0) + _getSupply,((_x select 6) select 1) + _getAmmo,((_x select 6) select 2) + _getFuel]]; + _x set [8,((_x select 8) - 1)]; + + { + private _storage_positions = []; + private _storedCrates = (attachedObjects _x); + reverse _storedCrates; + + { + private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: { + if (_getSupply > 0) then { + if (_crateValue > _getSupply) then { + _crateValue = _crateValue - _getSupply; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _getSupply = 0; + } else { + detach _x; + deleteVehicle _x; + _getSupply = _getSupply - _crateValue; + }; + }; + }; + case KP_liberation_ammo_crate: { + if (_getAmmo > 0) then { + if (_crateValue > _getAmmo) then { + _crateValue = _crateValue - _getAmmo; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _getAmmo = 0; + } else { + detach _x; + deleteVehicle _x; + _getAmmo = _getAmmo - _crateValue; + }; + }; + }; + case KP_liberation_fuel_crate: { + if (_getFuel > 0) then { + if (_crateValue > _getFuel) then { + _crateValue = _crateValue - _getFuel; + _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _getFuel = 0; + } else { + detach _x; + deleteVehicle _x; + _getFuel = _getFuel - _crateValue; + }; + }; + }; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach _storedCrates; + + ([_x] call KPLIB_fnc_getStoragePositions) params ["_storage_positions"]; + + private _area = _x; + _i = 0; + { + _height = [typeOf _x] call KPLIB_fnc_getCrateHeight; + detach _x; + _x attachTo [_area, [(_storage_positions select _i) select 0, (_storage_positions select _i) select 1, _height]]; + _i = _i + 1; + } forEach attachedObjects (_x); + + if ((_getSupply == 0) && (_getAmmo == 0) && (_getFuel == 0)) exitWith {}; + + } forEach _storage_areas; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + }; + } else { + private _nextState = 0; + private _time = -1; + if (((_x select 4) isEqualTo [0,0,0]) && ((_x select 5) isEqualTo [0,0,0]) && ((_x select 6) isEqualTo [0,0,0])) then { + _x set [2, [0,0,0]]; + _x set [3, [0,0,0]]; + } else { + _nextState = switch (_x select 7) do {case 1: {2}; case 3: {4};}; + _time = ceil (((_x select 2) distance2D (_x select 3)) / 400); + }; + + _x set [7,_nextState]; + _x set [8,_time]; + _x set [9,0]; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + }; + }; + case 2; + case 4: { + if ((_x select 8) > 1) then { + + if (((_x select 8) <= ((ceil (((_x select 2) distance2D (_x select 3)) / 400)) - 3)) && ((_x select 8) >= 3) && !((_x select 6) isEqualTo [0,0,0]) && !KP_liberation_convoy_ambush_inProgress && (KP_liberation_civ_rep <= -25) && (((_x select 8) % 2) == 0)) then { + private _dice = round (random 100); + private _chance = KP_liberation_convoy_ambush_chance; + if (chance > 0) then { + _chance = _chance + ([] call KPLIB_fnc_crGetMulti); + }; + if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1: ambush possible - current ETA: %2 - Dice: %3 - Chance: %4", (_x select 0), (_x select 8), _dice, _chance], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (_dice <= _chance) then { + private _convoy = +_x; + sleep 0.1; + [_convoy] spawn logistic_convoy_ambush; + waitUntil {sleep 0.1; KP_liberation_convoy_ambush_check != 0}; + if (KP_liberation_convoy_ambush_check == 2) then { + _x set [1,0]; + _x set [2,[0,0,0]]; + _x set [3,[0,0,0]]; + _x set [4,[0,0,0]]; + _x set [5,[0,0,0]]; + _x set [6,[0,0,0]]; + _x set [7,0]; + _x set [8,-1]; + } else { + _x set [8,((_x select 8) - 1)]; + KP_liberation_convoy_ambush_check = 0; + }; + } else { + _x set [8,((_x select 8) - 1)]; + }; + } else { + _x set [8,((_x select 8) - 1)]; + }; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + + } else { + private _nextState = -1; + private _time = 0; + switch (_x select 7) do { + case 2: { + _nextState = 3; + _time = ceil (((ceil (((_x select 5) select 0) / 100)) + (ceil (((_x select 5) select 1) / 100)) + (ceil (((_x select 5) select 2) / 100))) / 3); + }; + case 4: { + _nextState = 1; + _time = ceil (((ceil (((_x select 4) select 0) / 100)) + (ceil (((_x select 4) select 1) / 100)) + (ceil (((_x select 4) select 2) / 100))) / 3); + }; + }; + if (_time > (_x select 1)) then {_time = (_x select 1);}; + + _time = _time + (ceil (((ceil (((_x select 6) select 0) / 100)) + (ceil (((_x select 6) select 1) / 100)) + (ceil (((_x select 6) select 2) / 100))) / 3)); + _time = _time + 1; + + _x set [7,_nextState]; + _x set [8,_time]; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + }; + }; + case 5; + case 6: { + if ((_x select 8) > 1) then { + _locPos = switch (_x select 7) do {case 5: {2}; case 6: {3};}; + _x set [9,0]; + private _storage_areas = nearestObjects [(_x select _locPos), [KP_liberation_small_storage_building, KP_liberation_large_storage_building], 150]; + + if ((count (_storage_areas)) == 0) exitWith {_x set [9,2];}; + + private _toProcess = ceil ((ceil (((_x select 6) select 0) / 100)) + (ceil (((_x select 6) select 1) / 100)) + (ceil (((_x select 6) select 2) / 100))); + if (_toProcess > 3) then {_toProcess = 3;}; + private _spaceSum = 0; + { + if (typeOf _x == KP_liberation_large_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + } forEach _storage_areas; + + if (_spaceSum < _toProcess) exitWith {_x set [9,2];}; + + _x set [8,((_x select 8) - 1)]; + private _currentIndex = _forEachIndex; + private _processed = 0; + while {_processed < _toProcess} do { + { + private _space = 0; + if (typeOf _x == KP_liberation_large_storage_building) then { + _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + }; + if (typeOf _x == KP_liberation_small_storage_building) then { + _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + }; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 0) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 0) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 0; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0) - _amount, + (((_tempLogistics select _currentIndex) select 6) select 1), + (((_tempLogistics select _currentIndex) select 6) select 2)] + ]; + private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 1) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 1) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 1; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0), + (((_tempLogistics select _currentIndex) select 6) select 1) - _amount, + (((_tempLogistics select _currentIndex) select 6) select 2)] + ]; + private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + + if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 2) > 0)) then { + private _amount = 100; + if (((((_tempLogistics select _currentIndex) select 6) select 2) / 100) < 1) then { + _amount = ((_tempLogistics select _currentIndex) select 6) select 2; + }; + (_tempLogistics select _currentIndex) set [6, + [(((_tempLogistics select _currentIndex) select 6) select 0), + (((_tempLogistics select _currentIndex) select 6) select 1), + (((_tempLogistics select _currentIndex) select 6) select 2) - _amount] + ]; + private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + [_crate, _x] call KPLIB_fnc_crateToStorage; + _processed = _processed + 1; + _space = _space - 1; + }; + if (_processed >= _toProcess) exitWith {}; + } forEach _storage_areas; + }; + please_recalculate = true; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + } else { + _x set [2,[0,0,0]]; + _x set [3,[0,0,0]]; + _x set [4,[0,0,0]]; + _x set [5,[0,0,0]]; + _x set [6,[0,0,0]]; + _x set [7,0]; + _x set [8,-1]; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + }; + }; + default {}; + }; + } forEach _tempLogistics; + + KP_liberation_logistics = +_tempLogistics; + + if (KP_liberation_logistic_debug > 0) then {[format ["Logistic interval finished - Time needed: %1 seconds", diag_tickTime - _start], "LOGISTIC"] call KPLIB_fnc_log;}; + }; + uiSleep 60; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/resources/manage_resources.sqf b/kp_liberation.brf_sumava/scripts/server/resources/manage_resources.sqf new file mode 100644 index 0000000..b4a83c6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/manage_resources.sqf @@ -0,0 +1,93 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {!isNil "KP_liberation_production"}; +waitUntil {save_is_loaded}; + +sectors_recalculating = false; +sectors_timer = false; + +["Production management started", "PRODUCTION"] call KPLIB_fnc_log; +private _start = 0; +while {GRLIB_endgame == 0} do { + + recalculate_sectors = false; + + if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KP_liberation_production) > 0)) then { + waitUntil {sleep 0.5; !sectors_recalculating}; + sectors_recalculating = true; + + private _time_update = false; + if (sectors_timer) then {_time_update = true; sectors_timer = false;}; + + _start = diag_tickTime; + if (KP_liberation_production_debug > 0) then {[format ["Production interval started: %1 - _time_update: %2", diag_tickTime, _time_update], "PRODUCTION"] call KPLIB_fnc_log;}; + + private _tempProduction = []; + { + private _storageArray = []; + private _supplyValue = 0; + private _ammoValue = 0; + private _fuelValue = 0; + private _time = _x select 8; + + private _storage = nearestObjects [(markerPos (_x select 1)), [KP_liberation_small_storage_building], 100]; + _storage = _storage select {(_x getVariable ["KP_liberation_storage_type",-1]) == 1}; + if ((count _storage) > 0) then { + _storage = (_storage select 0); + _storageArray = [(getPosATL _storage),(getDir _storage),(vectorUpVisual _storage)]; + + if (_time_update) then { + + if ((_time - 1) < 1) then { + _time = KP_liberation_production_interval; + + if (((count (attachedObjects _storage)) < 12) && !((_x select 7) == 3)) then { + private _crateType = KP_liberation_supply_crate; + switch (_x select 7) do { + case 1: {_crateType = KP_liberation_ammo_crate; stats_ammo_produced = stats_ammo_produced + 100;}; + case 2: {_crateType = KP_liberation_fuel_crate; stats_fuel_produced = stats_fuel_produced + 100;}; + default {_crateType = KP_liberation_supply_crate; stats_supplies_produced = stats_supplies_produced + 100;}; + }; + + private _crate = [_crateType, 100, getPosATL _storage] call KPLIB_fnc_createCrate; + [_crate, _storage] call KPLIB_fnc_crateToStorage; + }; + } else { + _time = _time - 1; + }; + }; + + { + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach (attachedObjects _storage); + }; + + _tempProduction pushBack [ + (markerText (_x select 1)), + (_x select 1), + (_x select 2), + _storageArray, + (_x select 4), + (_x select 5), + (_x select 6), + (_x select 7), + _time, + _supplyValue, + _ammoValue, + _fuelValue + ]; + if (KP_liberation_production_debug > 0) then {[format ["Production Update: %1", _tempProduction select _forEachIndex], "PRODUCTION"] call KPLIB_fnc_log;}; + } forEach KP_liberation_production; + + _tempProduction sort true; + + KP_liberation_production = +_tempProduction; + sectors_recalculating = false; + }; + if (KP_liberation_production_debug > 0) then {[format ["Production interval finished - Time needed: %1 seconds", diag_tickTime - _start], "PRODUCTION"] call KPLIB_fnc_log;}; + waitUntil {sleep 1; recalculate_sectors}; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/resources/recalculate_resources.sqf b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_resources.sqf new file mode 100644 index 0000000..c7c2125 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_resources.sqf @@ -0,0 +1,75 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +KP_liberation_fob_resources = []; +KP_liberation_supplies_global = 0; +KP_liberation_ammo_global = 0; +KP_liberation_fuel_global = 0; +KP_liberation_heli_slots = 0; +KP_liberation_plane_slots = 0; +infantry_cap = 50 * GRLIB_resources_multiplier; + +please_recalculate = true; + +waitUntil {time > 1}; + +while {true} do { + waitUntil {sleep 0.5; please_recalculate}; + please_recalculate = false; + + private _local_fob_resources = []; + private _local_supplies_global = 0; + private _local_ammo_global = 0; + private _local_fuel_global = 0; + private _local_heli_slots = 0; + private _local_plane_slots = 0; + private _local_infantry_cap = 50 * GRLIB_resources_multiplier; + + { + private _fob_buildings = _x nearobjects GRLIB_fob_range; + private _storage_areas = _fob_buildings select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + private _heliSlots = {(typeOf _x) == KP_liberation_heli_slot_building;} count _fob_buildings; + private _planeSlots = {(typeOf _x) == KP_liberation_plane_slot_building;} count _fob_buildings; + private _hasAirBuilding = {(typeOf _x) == KP_liberation_air_vehicle_building;} count _fob_buildings; + if (_hasAirBuilding > 0) then {_hasAirBuilding = true;} else {_hasAirBuilding = false;}; + private _hasRecBuilding = {(typeOf _x) == KP_liberation_recycle_building;} count _fob_buildings; + if (_hasRecBuilding > 0) then {_hasRecBuilding = true;} else {_hasRecBuilding = false;}; + + private _supplyValue = 0; + private _ammoValue = 0; + private _fuelValue = 0; + + { + { + switch ((typeOf _x)) do { + case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; + }; + } forEach (attachedObjects _x); + } forEach _storage_areas; + + _local_fob_resources pushBack [_x, _supplyValue, _ammoValue, _fuelValue, _hasAirBuilding, _hasRecBuilding]; + _local_supplies_global = _local_supplies_global + _supplyValue; + _local_ammo_global = _local_ammo_global + _ammoValue; + _local_fuel_global = _local_fuel_global + _fuelValue; + _local_heli_slots = _local_heli_slots + _heliSlots; + _local_plane_slots = _local_plane_slots + _planeSlots; + } forEach GRLIB_all_fobs; + + { + if ( _x in sectors_capture ) then { + _local_infantry_cap = _local_infantry_cap + (10 * GRLIB_resources_multiplier); + }; + } foreach blufor_sectors; + + KP_liberation_fob_resources = _local_fob_resources; + KP_liberation_supplies_global = _local_supplies_global; + KP_liberation_ammo_global = _local_ammo_global; + KP_liberation_fuel_global = _local_fuel_global; + KP_liberation_heli_slots = _local_heli_slots; + KP_liberation_plane_slots = _local_plane_slots; + infantry_cap = _local_infantry_cap; + +}; diff --git a/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer.sqf b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer.sqf new file mode 100644 index 0000000..05d4984 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer.sqf @@ -0,0 +1,7 @@ +waitUntil { !isNil "save_is_loaded" }; +waitUntil {save_is_loaded}; + +while {true} do { + sleep 3; + please_recalculate = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer_sector.sqf b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer_sector.sqf new file mode 100644 index 0000000..9c56bd6 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/recalculate_timer_sector.sqf @@ -0,0 +1,8 @@ +waitUntil {!isNil "save_is_loaded"}; +waitUntil {save_is_loaded}; + +while {true} do { + uiSleep 60; + recalculate_sectors = true; + sectors_timer = true; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/resources/unit_cap.sqf b/kp_liberation.brf_sumava/scripts/server/resources/unit_cap.sqf new file mode 100644 index 0000000..e0b6494 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/resources/unit_cap.sqf @@ -0,0 +1,28 @@ +unitcap = 0; +KP_liberation_heli_count = 0; +KP_liberation_plane_count = 0; + +while {true} do { + private _local_unitcap = 0; + private _local_heli_count = 0; + private _local_plane_count = 0; + { + if ((side group _x == GRLIB_side_friendly) && (alive _x) && ((_x distance startbase) > 250 || (isPlayer _x))) then { + _local_unitcap = _local_unitcap + 1; + }; + } forEach allUnits; + { + if ((toLower (typeOf _x)) in KPLIB_b_air_classes && !([typeOf _x] call KPLIB_fnc_isClassUAV) && alive _x && !(_x getVariable ["KP_liberation_preplaced", false])) then { + if (_x isKindOf "Helicopter") then { + _local_heli_count = _local_heli_count + 1; + }; + if (_x isKindOf "Plane") then { + _local_plane_count = _local_plane_count + 1; + }; + }; + } forEach vehicles; + unitcap = _local_unitcap; + KP_liberation_heli_count = _local_heli_count; + KP_liberation_plane_count = _local_plane_count; + sleep 1; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/secondary/convoy_hijack.sqf b/kp_liberation.brf_sumava/scripts/server/secondary/convoy_hijack.sqf new file mode 100644 index 0000000..43d5572 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/secondary/convoy_hijack.sqf @@ -0,0 +1,164 @@ +private _convoy_destinations_markers = []; +private _load_box_fnc = compileFinal preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; + +while { count _convoy_destinations_markers < 3 } do { _convoy_destinations_markers pushback ([2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint); }; + +private _couldnt_spawn = false; +{ if ( _x == "" ) exitWith { _couldnt_spawn = true; }; } foreach _convoy_destinations_markers; +if ( _couldnt_spawn ) exitWith {["Could not find enough map positions for convoy hijack mission", "ERROR"] call KPLIB_fnc_log;}; + +private _convoy_destinations = []; +{ _convoy_destinations pushback (markerPos _x); } foreach _convoy_destinations_markers; + +private _spawnpos = _convoy_destinations select 0; +[4, _spawnpos] remoteExec ["remote_call_intel"]; + +private _scout_vehicle = [_spawnpos getPos [30, 0], opfor_mrap, true, false] call KPLIB_fnc_spawnVehicle; +private _escort_vehicle = [_spawnpos getPos [10, 0], selectRandom opfor_vehicles_low_intensity, true, false] call KPLIB_fnc_spawnVehicle; +private _transport_vehicle = [_spawnpos getPos [10, 180], opfor_ammobox_transport, true, false] call KPLIB_fnc_spawnVehicle; + +private _boxes_amount = 0; +{ + if ( _x select 0 == opfor_ammobox_transport ) exitWith { _boxes_amount = (count _x) - 2 }; +} foreach KPLIB_transportConfigs; + +if ( _boxes_amount == 0 ) exitWith {["Opfor ammobox truck classname doesn't allow for ammobox transport, correct your preset and/or transport config", "ERROR"] call KPLIB_fnc_log;}; + +GRLIB_secondary_in_progress = 1; publicVariable "GRLIB_secondary_in_progress"; + +private _boxes_loaded = 0; + +while { _boxes_loaded < _boxes_amount } do { + _boxes_loaded = _boxes_loaded + 1; + sleep 0.5; + private _next_box = [KP_liberation_ammo_crate, 100, _spawnpos getPos [15, 135]] call KPLIB_fnc_createCrate; + sleep 0.5; + [_next_box, 50] call _load_box_fnc; +}; + +sleep 0.5; + +private _troop_vehicle = [_spawnpos getPos [30, 180], opfor_transport_truck, true, true, false ] call KPLIB_fnc_spawnVehicle; + +sleep 0.5; + +private _convoy_group = group driver _scout_vehicle; +( crew _escort_vehicle + crew _transport_vehicle + crew _troop_vehicle ) joinSilent _convoy_group; + +sleep 0.5; + +{ + _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if ( side (_this select 3) != GRLIB_side_friendly ) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; +} foreach [ _scout_vehicle, _escort_vehicle, _transport_vehicle, _troop_vehicle ]; + +_convoy_group setFormation "FILE"; +_convoy_group setBehaviour "SAFE"; +_convoy_group setCombatMode "GREEN"; +_convoy_group setSpeedMode "LIMITED"; + +while {(count (waypoints _convoy_group)) != 0} do {deleteWaypoint ((waypoints _convoy_group) select 0);}; +{_x doFollow leader _convoy_group} foreach units _convoy_group; + +_waypoint = _convoy_group addWaypoint [_convoy_destinations select 1, 0]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 50; + +_waypoint = _convoy_group addWaypoint [_convoy_destinations select 2, 0]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 50; + +_waypoint = _convoy_group addWaypoint [_convoy_destinations select 0, 0]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointCompletionRadius 50; + +_waypoint = _convoy_group addWaypoint [_convoy_destinations select 0, 0]; +_waypoint setWaypointType "CYCLE"; +_waypoint setWaypointCompletionRadius 50; + +private _troops_group = createGroup [GRLIB_side_enemy, true]; +{ + [_x, _spawnpos, _troops_group, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +} foreach ([] call KPLIB_fnc_getSquadComp); +{_x moveInCargo _troop_vehicle} foreach (units _troops_group); + +private _convoy_marker = createMarkerLocal [ format [ "convoymarker%1", round time], getpos _transport_vehicle ]; +_convoy_marker setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY"); +_convoy_marker setMarkerType "o_armor"; +_convoy_marker setMarkerColor GRLIB_color_enemy_bright; + +private _convoy_marker_wp1 = createMarkerLocal [ format [ "convoymarkerwp1%1", round time], _convoy_destinations select 0]; +private _convoy_marker_wp2 = createMarkerLocal [ format [ "convoymarkerwp2%1", round time], _convoy_destinations select 1]; +private _convoy_marker_wp3 = createMarkerLocal [ format [ "convoymarkerwp3%1", round time], _convoy_destinations select 2]; + +{ + _x setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY_WP"); + _x setMarkerType "o_armor"; + _x setMarkerColor GRLIB_color_enemy_bright; + _x setMarkerSize [0.6, 0.6]; +} foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3]; + +private _mission_in_progress = true; +private _convoy_attacked = false; +private _convoy_flee = false; +private _disembark_troops = false; + +while { _mission_in_progress } do { + + if ( !(alive _transport_vehicle) || !(alive driver _transport_vehicle) ) then { + _mission_in_progress = false; + }; + + _convoy_marker setMarkerPos (getpos _transport_vehicle); + + if ( !_convoy_attacked ) then { + { + if ( !(alive _x) || (damage _x > 0.3) || !(alive driver _x)) exitWith { _convoy_attacked = true; }; + } foreach [_scout_vehicle, _escort_vehicle, _transport_vehicle, _troop_vehicle]; + }; + + if ( _convoy_attacked && !_disembark_troops) then { + + _disembark_troops = true; + + if (alive (driver _troop_vehicle)) then { + private _troop_driver_group = createGroup [GRLIB_side_enemy, true]; + [ driver _troop_vehicle ] joinSilent _troop_driver_group; + sleep 1; + while {(count (waypoints _troop_driver_group)) != 0} do {deleteWaypoint ((waypoints _troop_driver_group) select 0);}; + _waypoint = _troop_driver_group addWaypoint [getpos _troop_vehicle, 0]; + _waypoint setWaypointType "MOVE"; + sleep 3; + }; + + { + unAssignVehicle _x; + _x action ["eject", vehicle _x]; + _x action ["getout", vehicle _x]; + unAssignVehicle _x; + sleep 0.7; + } foreach (units _troops_group); + + _troops_group setBehaviour "COMBAT"; + _troops_group setCombatMode "RED"; + }; + + if ( _convoy_attacked && !_convoy_flee) then { + _convoy_flee = true; + _convoy_group setBehaviour "COMBAT"; + _convoy_group setSpeedMode "FULL"; + }; + + sleep 5; +}; + +sleep 20; + +deleteMarker _convoy_marker; +{ deleteMarker _x } foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3 ]; + +combat_readiness = round (combat_readiness * 0.85); +stats_secondary_objectives = stats_secondary_objectives + 1; +[5] remoteExec ["remote_call_intel"]; +GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; +sleep 1; +[] spawn KPLIB_fnc_doSave; diff --git a/kp_liberation.brf_sumava/scripts/server/secondary/fob_hunting.sqf b/kp_liberation.brf_sumava/scripts/server/secondary/fob_hunting.sqf new file mode 100644 index 0000000..63d1c67 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/secondary/fob_hunting.sqf @@ -0,0 +1,138 @@ + +_defenders_amount = (15 * (sqrt (GRLIB_unitcap))) min 15; + +_spawn_marker = [2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint; +if (_spawn_marker == "") exitWith {["Could not find position for fob hunting mission", "ERROR"] call KPLIB_fnc_log;}; + +used_positions pushBack _spawn_marker; +_base_position = markerpos _spawn_marker; +_base_objects = []; +_base_objectives = []; +_base_defenders = []; + +([] call (compile preprocessFileLineNumbers (selectRandom KPLIB_fob_templates))) params [ + "_objects_to_build", + "_objectives_to_build", + "_defenders_to_build", + "_base_corners" +]; + +[_base_position, 50] call KPLIB_fnc_createClearance; + +private _nextobject = objNull; + +{ + _x params [ + "_nextclass", + "_nextpos", + "_nextdir" + ]; + + _nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), 0]; + + _nextobject = _nextclass createVehicle _nextpos; + _nextobject allowDamage false; + _nextobject setVectorUp [0, 0, 1]; + _nextobject setdir _nextdir; + _nextobject setpos _nextpos; + _nextobject setVectorUp [0, 0, 1]; + _nextobject setdir _nextdir; + _nextobject setpos _nextpos; + + _base_objects pushBack _nextobject; +} forEach _objects_to_build; + +sleep 1; + +{ + _x params [ + "_nextclass", + "_nextpos", + "_nextdir" + ]; + + _nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), 0]; + + _nextobject = _nextclass createVehicle _nextpos; + _nextobject allowDamage false; + _nextobject setVectorUp [0, 0, 1]; + _nextobject setpos _nextpos; + _nextobject setdir _nextdir; + _nextobject setVectorUp [0, 0, 1]; + _nextobject setpos _nextpos; + _nextobject setdir _nextdir; + _nextobject lock 2; + + _base_objectives pushBack _nextobject; +} forEach _objectives_to_build; + +sleep 1; + +{_x setDamage 0; _x allowDamage true;} foreach (_base_objectives + _base_objects); + +_grpdefenders = createGroup [GRLIB_side_enemy, true]; +_idxselected = []; + +while {(count _idxselected) < _defenders_amount && (count _idxselected) < (count _defenders_to_build)} do { + _idxselected pushBackUnique (floor (random (count _defenders_to_build))); +}; + +{ + (_defenders_to_build select _x) params [ + "_nextclass", + "_nextpos", + "_nextdir" + ]; + + _nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), (_nextpos select 2)]; + private _nextDefender = [_nextclass, _nextpos, _grpdefenders, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + _nextDefender setdir _nextdir; + _nextDefender setpos _nextpos; + [_nextDefender] spawn building_defence_ai; +} forEach _idxselected; + +private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (GRLIB_unitcap))); + +_grpsentry = createGroup [GRLIB_side_enemy, true]; +_base_sentry_pos = [(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1), 0]; +for [{_idx=0}, {_idx < _sentryMax}, {_idx=_idx+1}] do { + [opfor_sentry, _base_sentry_pos, _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +}; + +while {(count (waypoints _grpsentry)) != 0} do {deleteWaypoint ((waypoints _grpsentry) select 0);}; +private _waypoint = []; +{ + _waypoint = _grpsentry addWaypoint [[((_base_position select 0) + (_x select 0)), ((_base_position select 1) + (_x select 1)), 0], -1]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCompletionRadius 5; +} forEach _base_corners; + +_waypoint = _grpsentry addWaypoint [[(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1), 0], -1]; +_waypoint setWaypointType "CYCLE"; + +_objectives_alive = true; + +secondary_objective_position = _base_position; +secondary_objective_position_marker = [(((secondary_objective_position select 0) + 800) - random 1600), (((secondary_objective_position select 1) + 800) - random 1600), 0]; +publicVariable "secondary_objective_position_marker"; +sleep 1; + +GRLIB_secondary_in_progress = 0; publicVariable "GRLIB_secondary_in_progress"; +[2] remoteExec ["remote_call_intel"]; + +waitUntil { + sleep 5; + (_base_objectives select {alive _x}) isEqualTo [] +}; + +combat_readiness = round (combat_readiness * GRLIB_secondary_objective_impact); +stats_secondary_objectives = stats_secondary_objectives + 1; +sleep 1; +[] spawn KPLIB_fnc_doSave; +sleep 3; + +[3] remoteExec ["remote_call_intel"]; + +GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; diff --git a/kp_liberation.brf_sumava/scripts/server/secondary/search_and_rescue.sqf b/kp_liberation.brf_sumava/scripts/server/secondary/search_and_rescue.sqf new file mode 100644 index 0000000..3863f30 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/secondary/search_and_rescue.sqf @@ -0,0 +1,112 @@ + +private _spawn_marker = [ 2000, 999999, false ] call KPLIB_fnc_getOpforSpawnPoint; +if ( _spawn_marker == "" ) exitWith {["Could not find position for search and rescue mission", "ERROR"] call KPLIB_fnc_log;}; +used_positions pushbackUnique _spawn_marker; + +private _helopos = (markerPos _spawn_marker) getPos [random 200, random 360]; +private _helowreck = KPLIB_sarWreck createVehicle _helopos; +_helowreck allowDamage false; +_helowreck setPos _helopos; +_helowreck setPos _helopos; +private _helowreckDir = (random 360); +_helowreck setDir _helowreckDir; + +private _helofire = KPLIB_sarFire createVehicle (getpos _helowreck); +_helofire setpos (getpos _helowreck); +_helofire setpos (getpos _helowreck); + +private _pilotsGrp = createGroup [GRLIB_side_enemy, true]; +private _pilotsPos = (getpos _helowreck) getPos [25, random 360]; + +[pilot_classname, _pilotsPos, _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +sleep 0.2; + +[pilot_classname, _pilotsPos getPos [1, random 360], _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +sleep 2; + +private _pilotUnits = units _pilotsGrp; +{ + [ _x, true ] spawn prisonner_ai; + _x setDir (random 360); + sleep 0.5 +} foreach (_pilotUnits); + +private _grppatrol = createGroup [GRLIB_side_enemy, true]; +private _patrolcorners = [ + [ (getpos _helowreck select 0) - 40, (getpos _helowreck select 1) - 40, 0 ], + [ (getpos _helowreck select 0) + 40, (getpos _helowreck select 1) - 40, 0 ], + [ (getpos _helowreck select 0) + 40, (getpos _helowreck select 1) + 40, 0 ], + [ (getpos _helowreck select 0) - 40, (getpos _helowreck select 1) + 40, 0 ] +]; + +{ + [_x, _patrolcorners select 0, _grppatrol, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +} foreach ([] call KPLIB_fnc_getSquadComp); + +while {(count (waypoints _grppatrol)) != 0} do {deleteWaypoint ((waypoints _grppatrol) select 0);}; +{ + private _nextcorner = _x; + _waypoint = _grppatrol addWaypoint [_nextcorner,0]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointSpeed "LIMITED"; + _waypoint setWaypointBehaviour "SAFE"; + _waypoint setWaypointCompletionRadius 5; +} foreach _patrolcorners; + +_waypoint = _grppatrol addWaypoint [(_patrolcorners select 0), 0]; +_waypoint setWaypointType "CYCLE"; +{_x doFollow (leader _grppatrol)} foreach units _grppatrol; + +private _grpsentry = createGroup [GRLIB_side_enemy, true]; +private _nbsentry = 2 + (floor (random 3)); + +for [ {_idx=0},{_idx < _nbsentry},{_idx=_idx+1} ] do { + [opfor_sentry, _pilotsPos getPos [1, random 360], _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +}; + +(leader _grpsentry) setDir (random 360); + +(opfor_transport_truck createVehicle ((getpos _helowreck) getPos [25, random 360])) setDir random 360; + +private _vehicle_pool = opfor_vehicles; +if ( combat_readiness < 50 ) then { + _vehicle_pool = opfor_vehicles_low_intensity; +}; + +private _vehtospawn = []; +private _spawnchances = [75,50,15]; +{if (random 100 < _x) then {_vehtospawn pushBack (selectRandom _vehicle_pool);};} foreach _spawnchances; +{([(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle) addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; } foreach _vehtospawn; + +secondary_objective_position = getpos _helowreck; +secondary_objective_position_marker = secondary_objective_position getPos [800, random 360]; +publicVariable "secondary_objective_position_marker"; +sleep 1; +GRLIB_secondary_in_progress = 2; publicVariable "GRLIB_secondary_in_progress"; +[6] remoteExec ["remote_call_intel"]; + +waitUntil { + sleep 5; + { ( alive _x ) && ( _x distance ( [ getpos _x ] call KPLIB_fnc_getNearestFob ) > 50 ) } count _pilotUnits == 0 +}; + +sleep 5; + +private _alive_crew_count = { alive _x } count _pilotUnits; +if ( _alive_crew_count == 0 ) then { + [7] remoteExec ["remote_call_intel"]; +} else { + [8] remoteExec ["remote_call_intel"]; + private _grp = createGroup [GRLIB_side_friendly, true]; + { [_x ] joinSilent _grp; } foreach _pilotUnits; + while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; + {_x doFollow (leader _grp)} foreach units _grp; + { [ _x ] spawn { sleep 600; deleteVehicle (_this select 0) } } foreach _pilotUnits; +}; + +resources_intel = resources_intel + (10 * _alive_crew_count); +stats_secondary_objectives = stats_secondary_objectives + 1; + +GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; +sleep 1; +doSaveTrigger = true; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_fob.sqf b/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_fob.sqf new file mode 100644 index 0000000..847ae9c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_fob.sqf @@ -0,0 +1,71 @@ +params [ "_thispos" ]; +private [ "_attacktime", "_ownership", "_grp" ]; + +sleep 5; + +_ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; +if ( _ownership != GRLIB_side_enemy ) exitWith {}; + +if ( GRLIB_blufor_defenders ) then { + _grp = creategroup [GRLIB_side_friendly, true]; + { + [_x, _thispos, _grp] call KPLIB_fnc_createManagedUnit; + } foreach blufor_squad_inf; + sleep 3; + _grp setBehaviour "COMBAT"; +}; + +sleep 60; + +KPLIB_sectorsUnderAttack pushBack _thispos; +publicVariable "KPLIB_sectorsUnderAttack"; + +_ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; +if ( _ownership == GRLIB_side_friendly ) exitWith { + if ( GRLIB_blufor_defenders ) then { + { + if ( alive _x ) then { deleteVehicle _x }; + } foreach units _grp; + }; +}; + +[_thispos, 1] remoteExec ["remote_call_fob"]; +_attacktime = GRLIB_vulnerability_timer; + +while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRLIB_side_resistance ) } do { + _ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; + _attacktime = _attacktime - 1; + sleep 1; +}; + +waitUntil { + sleep 1; + [ _thispos ] call KPLIB_fnc_getSectorOwnership != GRLIB_side_resistance; +}; + +if ( GRLIB_endgame == 0 ) then { + if ( _attacktime <= 1 && ( [ _thispos ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) ) then { + [_thispos, 2] remoteExec ["remote_call_fob"]; + sleep 3; + GRLIB_all_fobs = GRLIB_all_fobs - [_thispos]; + publicVariable "GRLIB_all_fobs"; + reset_battlegroups_ai = true; + [_thispos] call KPLIB_fnc_destroyFob; + [] spawn KPLIB_fnc_doSave; + stats_fobs_lost = stats_fobs_lost + 1; + } else { + [_thispos, 3] remoteExec ["remote_call_fob"]; + {[_x] spawn prisonner_ai;} foreach ((_thispos nearEntities ["Man", GRLIB_capture_size * 0.8]) select {side group _x == GRLIB_side_enemy}); + }; +}; + +KPLIB_sectorsUnderAttack = KPLIB_sectorsUnderAttack - [_thispos]; +publicVariable "KPLIB_sectorsUnderAttack"; + +sleep 60; + +if ( GRLIB_blufor_defenders ) then { + { + if ( alive _x ) then { deleteVehicle _x }; + } foreach units _grp; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_sector.sqf b/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_sector.sqf new file mode 100644 index 0000000..4fe522e --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/attack_in_progress_sector.sqf @@ -0,0 +1,81 @@ +params [ "_sector" ]; +private [ "_attacktime", "_ownership", "_grp", "_squad_type" ]; + +sleep 5; + +_ownership = [ markerpos _sector ] call KPLIB_fnc_getSectorOwnership; +if ( _ownership != GRLIB_side_enemy ) exitWith {}; + +_squad_type = blufor_squad_inf_light; +if ( _sector in sectors_military ) then { + _squad_type = blufor_squad_inf; +}; + +if ( GRLIB_blufor_defenders ) then { + _grp = creategroup [GRLIB_side_friendly, true]; + { + [_x, markerPos _sector, _grp] call KPLIB_fnc_createManagedUnit; + } foreach _squad_type; + sleep 3; + _grp setBehaviour "COMBAT"; +}; + +sleep 60; + +_ownership = [ markerpos _sector ] call KPLIB_fnc_getSectorOwnership; +if ( _ownership == GRLIB_side_friendly ) exitWith { + if ( GRLIB_blufor_defenders ) then { + { + if ( alive _x ) then { deleteVehicle _x }; + } foreach units _grp; + }; +}; + +[_sector, 1] remoteExec ["remote_call_sector"]; +_attacktime = GRLIB_vulnerability_timer; + +while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRLIB_side_resistance ) } do { + _ownership = [markerpos _sector] call KPLIB_fnc_getSectorOwnership; + _attacktime = _attacktime - 1; + sleep 1; +}; + +waitUntil { + sleep 1; + [markerpos _sector] call KPLIB_fnc_getSectorOwnership != GRLIB_side_resistance; +}; + +if ( GRLIB_endgame == 0 ) then { + if ( _attacktime <= 1 && ( [markerpos _sector] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) ) then { + blufor_sectors = blufor_sectors - [ _sector ]; + publicVariable "blufor_sectors"; + [_sector, 2] remoteExec ["remote_call_sector"]; + reset_battlegroups_ai = true; + [] spawn KPLIB_fnc_doSave; + stats_sectors_lost = stats_sectors_lost + 1; + { + if (_sector in _x) exitWith { + if ((count (_x select 3)) == 3) then { + { + detach _x; + deleteVehicle _x; + } forEach (attachedObjects ((nearestObjects [((_x select 3) select 0), [KP_liberation_small_storage_building], 10]) select 0)); + + deleteVehicle ((nearestObjects [((_x select 3) select 0), [KP_liberation_small_storage_building], 10]) select 0); + }; + KP_liberation_production = KP_liberation_production - [_x]; + }; + } forEach KP_liberation_production; + } else { + [_sector, 3] remoteExec ["remote_call_sector"]; + {[_x] spawn prisonner_ai;} foreach (((markerpos _sector) nearEntities ["Man", GRLIB_capture_size * 0.8]) select {side group _x == GRLIB_side_enemy}); + }; +}; + +sleep 60; + +if ( GRLIB_blufor_defenders ) then { + { + if ( alive _x ) then { deleteVehicle _x }; + } foreach units _grp; +}; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/fn_destroyFob.sqf b/kp_liberation.brf_sumava/scripts/server/sector/fn_destroyFob.sqf new file mode 100644 index 0000000..4d6d212 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/fn_destroyFob.sqf @@ -0,0 +1,38 @@ +/* + File: fn_destroyFob.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-28 + Last Update: 2020-04-29 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Removes all player built buildings (from build list) inside the FOB radius of given position. + Also removes possible clearances from given position. + + Parameter(s): + _fobPos - Center position [ARRAY, defaults to []] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_fobPos", [], [[]]] +]; + +private _buildings = [toLower FOB_typename]; +_buildings append KPLIB_b_buildings_classes; + +{ + if ((toLower (typeOf _x)) in _buildings) then { + _x spawn { + sleep ((random 4) + (random 4)); + _this setDamage 1; + }; + }; +} forEach ((_fobPos nearObjects (GRLIB_fob_range * 1.2)) select {getObjectType _x >= 8}); + +KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fobPos}); +publicVariable "KP_liberation_clearances"; + +true diff --git a/kp_liberation.brf_sumava/scripts/server/sector/fn_sectorMonitor.fsm b/kp_liberation.brf_sumava/scripts/server/sector/fn_sectorMonitor.fsm new file mode 100644 index 0000000..6c7ab1f --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/fn_sectorMonitor.fsm @@ -0,0 +1,371 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"Author__KPLIB_Dev",0,250,0.000000,0.000000,100.000000,50.000000,0.000000,"Author:" \n "KPLIB Dev Team"}; +item1[] = {"save_loaded_",4,218,0.000000,75.000000,100.000000,125.000000,0.000000,"save loaded?"}; +item2[] = {"Init",2,250,0.000000,150.000000,100.000000,200.000000,0.000000,"Init"}; +item3[] = {"not_server_",4,218,125.000000,0.000000,225.000000,50.000000,1.000000,"not server?"}; +item4[] = {"Exit",1,250,250.000000,0.000000,350.000000,50.000000,0.000000,"Exit"}; +item5[] = {"_",8,218,0.000000,225.000000,100.000000,275.000000,0.000000,""}; +item6[] = {"Start_new_monitoring",2,250,0.000000,300.000000,100.000000,350.000000,0.000000,"Start new" \n "monitoring run"}; +item7[] = {"_",8,218,0.000000,375.000000,100.000000,425.000000,0.000000,""}; +item8[] = {"Get_next_sector",2,250,0.000000,450.000000,100.000000,500.000000,0.000000,"Get next sector" \n "to check"}; +item9[] = {"cap_not_reached",4,218,0.000000,525.000000,100.000000,575.000000,0.000000,"cap not" \n "reached?"}; +item10[] = {"Get_adjusted_sector",2,250,0.000000,600.000000,100.000000,650.000000,0.000000,"Get adjusted" \n "sector range"}; +item11[] = {"blufor_near_",4,218,0.000000,675.000000,100.000000,725.000000,1.000000,"blufor near?"}; +item12[] = {"_",8,218,125.000000,600.000000,225.000000,650.000000,0.000000,""}; +item13[] = {"Sector_checked",2,250,250.000000,450.000000,350.000000,500.000000,0.000000,"Sector" \n "checked"}; +item14[] = {"Activate_sector",2,250,0.000000,750.000000,100.000000,800.000000,0.000000,"Activate sector"}; +item15[] = {"",7,210,296.000000,621.000000,304.000000,629.000000,0.000000,""}; +item16[] = {"_",8,218,125.000000,450.000000,225.000000,500.000000,0.000000,""}; +item17[] = {"run_finished_",4,218,250.000000,375.000000,350.000000,425.000000,1.000000,"run finished?"}; +item18[] = {"Log_overview_of",2,250,250.000000,300.000000,350.000000,350.000000,0.000000,"Log overview" \n "of active" \n "sectors"}; +item19[] = {"_",8,218,125.000000,300.000000,225.000000,350.000000,0.000000,""}; +item20[] = {"_",8,218,125.000000,750.000000,225.000000,800.000000,0.000000,""}; +item21[] = {"",7,210,296.000000,771.000000,304.000000,779.000000,0.000000,""}; +item22[] = {"campaign_finished",4,218,375.000000,450.000000,475.000000,500.000000,2.000000,"campaign" \n "finished?"}; +item23[] = {"Exit_1",1,250,500.000000,450.000000,600.000000,500.000000,0.000000,"Exit"}; +link0[] = {0,1}; +link1[] = {0,3}; +link2[] = {1,2}; +link3[] = {2,5}; +link4[] = {3,4}; +link5[] = {5,6}; +link6[] = {6,7}; +link7[] = {7,8}; +link8[] = {8,9}; +link9[] = {9,10}; +link10[] = {10,11}; +link11[] = {10,12}; +link12[] = {11,14}; +link13[] = {12,15}; +link14[] = {13,16}; +link15[] = {13,17}; +link16[] = {13,22}; +link17[] = {14,20}; +link18[] = {15,13}; +link19[] = {16,8}; +link20[] = {17,18}; +link21[] = {18,19}; +link22[] = {19,6}; +link23[] = {20,21}; +link24[] = {21,15}; +link25[] = {22,23}; +globals[] = {0.000000,0,0,0,0,640,480,1,27,6316128,1,-462.464111,712.458435,919.987671,76.941620,1232,884,1}; +window[] = {2,-1,-1,-1,-1,863,104,1544,104,3,1250}; +*//*%FSM*/ +class FSM +{ + fsmName = "KPLIB Sector Monitor"; + class States + { + /*%FSM*/ + class Author__KPLIB_Dev + { + name = "Author__KPLIB_Dev"; + itemno = 0; + init = /*%FSM*/"// This FSM is part of KP Liberation" \n + "// https://github.com/KillahPotatoes/KP-Liberation" \n + "// MIT License - http://www.opensource.org/licenses/MIT"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class not_server_ + { + itemno = 3; + priority = 1.000000; + to="Exit"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isServer"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class save_loaded_ + { + itemno = 1; + priority = 0.000000; + to="Init"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isNil ""save_is_loaded"" && {save_is_loaded}"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Init + { + name = "Init"; + itemno = 2; + init = /*%FSM*/"[""Sector Monitor started"", ""SECTORMONITOR""] call KPLIB_fnc_log;" \n + "" \n + "private _allSectors = [];" \n + "private _sector = """";" \n + "private _opforCount = 0;" \n + "private _range = 0;" \n + "private _hc = objNull;" \n + "private _logDelay = 300;" \n + "private _logTime = diag_tickTime + _logDelay;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 5; + priority = 0.000000; + to="Start_new_monitoring"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit + { + name = "Exit"; + itemno = 4; + init = /*%FSM*/"[" \n + " format [""Sector Monitor was started on %1"", debug_source]," \n + " ""FSM ABORT""" \n + "] remoteExecCall [""KPLIB_fnc_log"", 2];"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Start_new_monitoring + { + name = "Start_new_monitoring"; + itemno = 6; + init = /*%FSM*/"_allSectors = sectors_allSectors - blufor_sectors;" \n + "_allSectors = _allSectors - active_sectors;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 7; + priority = 0.000000; + to="Get_next_sector"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Get_next_sector + { + name = "Get_next_sector"; + itemno = 8; + init = /*%FSM*/"_sector = _allSectors deleteAt (floor random (count _allSectors));"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class cap_not_reached + { + itemno = 9; + priority = 0.000000; + to="Get_adjusted_sector"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_opforCount = [] call KPLIB_fnc_getOpforCap;" \n + "_opforCount < GRLIB_sector_cap"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Get_adjusted_sector + { + name = "Get_adjusted_sector"; + itemno = 10; + init = /*%FSM*/"_range = [_opforCount] call KPLIB_fnc_getSectorRange;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class blufor_near_ + { + itemno = 11; + priority = 1.000000; + to="Activate_sector"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"([markerPos _sector, _range, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 12; + priority = 0.000000; + to="Sector_checked"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Sector_checked + { + name = "Sector_checked"; + itemno = 13; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class campaign_finished + { + itemno = 22; + priority = 2.000000; + to="Exit_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class run_finished_ + { + itemno = 17; + priority = 1.000000; + to="Log_overview_of"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_allSectors isEqualTo []"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class _ + { + itemno = 16; + priority = 0.000000; + to="Get_next_sector"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Activate_sector + { + name = "Activate_sector"; + itemno = 14; + init = /*%FSM*/"// Get possible HC" \n + "_hc = [] call KPLIB_fnc_getLessLoadedHC;" \n + "" \n + "// Start sector manager on HC or server" \n + "if (isNull _hc) then {" \n + " [_sector] spawn manage_one_sector;" \n + "} else {" \n + " [_sector] remoteExec [""manage_one_sector"", _hc];" \n + "};" \n + "" \n + "// Spawn resource crates" \n + "if (_sector in sectors_factory || _sector in sectors_capture) then {" \n + " [_sector] call KPLIB_fnc_spawnSectorCrates;" \n + "};" \n + "" \n + "// Spawn intel items" \n + "if (_sector in sectors_military) then {" \n + " [_sector] call KPLIB_fnc_spawnSectorIntel;" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 20; + priority = 0.000000; + to="Sector_checked"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Log_overview_of + { + name = "Log_overview_of"; + itemno = 18; + init = /*%FSM*/"if (diag_tickTime > _logTime) then {" \n + " [" \n + " format [" \n + " ""Active sectors: %1""," \n + " if (active_sectors isEqualTo []) then {" \n + " ""None""" \n + " } else {" \n + " active_sectors apply {markerText _x} joinString "", """ \n + " }" \n + " ]," \n + " ""SECTORMONITOR""" \n + " ] call KPLIB_fnc_log;" \n + " _logTime = diag_tickTime + _logDelay;" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class _ + { + itemno = 19; + priority = 0.000000; + to="Start_new_monitoring"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Exit_1 + { + name = "Exit_1"; + itemno = 23; + init = /*%FSM*/"[" \n + " ""Sector Monitor exited due to finished campaign""," \n + " ""SECTORMONITOR""" \n + "] call KPLIB_fnc_log;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + }; + initState="Author__KPLIB_Dev"; + finalStates[] = + { + "Exit", + "Exit_1", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorCrates.sqf b/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorCrates.sqf new file mode 100644 index 0000000..67cb3ae --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorCrates.sqf @@ -0,0 +1,50 @@ +/* + File: fn_spawnSectorCrates.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-28 + Last Update: 2020-05-07 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns random amount of random resource crates at given sector, + if not already given during this session. + Amount of crates is depending on resources multiplier. + + Parameter(s): + _sector - Sector marker string [STRING, defaults to ""] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_sector", "", [""]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; +if (isNil "KPLIB_sectorCratesSpawned") then {KPLIB_sectorCratesSpawned = [];}; + +if !(_sector in KPLIB_sectorCratesSpawned) then { + KPLIB_sectorCratesSpawned pushBack _sector; + + private _amount = (ceil (random 3)) * GRLIB_resources_multiplier; + private _spawnPos = []; + private _j = 0; + + for "_i" from 1 to _amount do { + while {_spawnPos isEqualTo []} do { + _j = _j + 1; + _spawnPos = ((markerPos _sector) getPos [random 50, random 360]) findEmptyPosition [10, 40, KP_liberation_ammo_crate]; + if (_j isEqualTo 10) exitWith {}; + }; + if !(_spawnPos isEqualTo []) then { + [selectRandom KPLIB_crates, 100, _spawnpos] call KPLIB_fnc_createCrate; + _spawnPos = []; + } else { + ["No suitable spawn position found."] call BIS_fnc_error; + [format ["Couldn't find spawn position for resource crate for sector %1", _sector], "WARNING"] call KPLIB_fnc_log; + }; + }; +}; + +true diff --git a/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorIntel.sqf b/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorIntel.sqf new file mode 100644 index 0000000..bf4da7c --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/fn_spawnSectorIntel.sqf @@ -0,0 +1,52 @@ +/* + File: fn_spawnSectorIntel.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-01 + Last Update: 2020-05-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Spawns intel objects in valid buildings at given sector. + + Parameter(s): + _sector - Sector to spawn intel for [STRING, defaults to ""] + _range - Range from the sector center to look for valid buildings [NUMBER, defaults to 150] + _amount - Amount of intel objects to spawn at the sector [NUMBER, defaults to 2 + (floor (random 3))] + + Returns: + Function reached the end [BOOL] +*/ + +params [ + ["_sector", "", [""]], + ["_range", 150, [0]], + ["_amount", 2 + (floor (random 3)), [0]] +]; + +if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false}; +if (isNil "KPLIB_sectorIntelSpawned") then {KPLIB_sectorIntelSpawned = []}; + +if !(_sector in KPLIB_sectorIntelSpawned) then { + KPLIB_sectorIntelSpawned pushBack _sector; + private _buildings = (nearestObjects [markerPos _sector, KPLIB_intelBuildingClasses, _range]) select {alive _x}; + + if !(_buildings isEqualTo []) then { + private _positions = []; + {_positions append _x;} forEach (_buildings apply {[_x] call BIS_fnc_buildingPositions}); + + if ((count _positions) >= (_amount * 4)) then { + private _spawnPos = []; + private _obj = objNull; + + for "_i" from 1 to _amount do { + _spawnPos = _positions deleteAt (floor random (count _positions)); + _obj = (selectRandom KPLIB_intelObjectClasses) createVehicle _spawnPos; + _obj setdir (random 360); + _obj setPosATL _spawnPos; + _obj allowDamage false; + }; + }; + }; +}; + +true diff --git a/kp_liberation.brf_sumava/scripts/server/sector/ied_manager.sqf b/kp_liberation.brf_sumava/scripts/server/sector/ied_manager.sqf new file mode 100644 index 0000000..fdf5e67 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/ied_manager.sqf @@ -0,0 +1,62 @@ +params ["_sector", "_radius", "_number"]; + +if (_number <= 0) exitWith {}; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +_number = round _number; + +private _activation_radius_infantry = 6.66; +private _activation_radius_vehicles = 10; + +private _spread = 7; +private _infantry_trigger = 1 + (ceil (random 2)); +private _ultra_strong = false; +if (random 100 < 12) then { + _ultra_strong = true; +}; +private _vehicle_trigger = 1; +private _ied_type = selectRandom ["IEDLandBig_F","IEDLandSmall_F","IEDUrbanBig_F","IEDUrbanSmall_F"]; +private _ied_obj = objNull; +private _roadobj = [(markerPos _sector) getPos [random _radius, random 360], _radius, []] call BIS_fnc_nearestRoad; +private _goes_boom = false; +private _ied_marker = ""; + +if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> spawning IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +if (_number > 0) then { + [_sector, _radius, _number - 1] spawn ied_manager; +}; + +if (!(isnull _roadobj)) then { + + _roadpos = getpos _roadobj; + _ied_obj = createMine [_ied_type, _roadpos getPos [_spread, random 360], [], 0]; + _ied_obj setdir (random 360); + + if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> IED %1 spawned at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + while {_sector in active_sectors && mineActive _ied_obj && !_goes_boom} do { + _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == GRLIB_side_friendly}; + _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == GRLIB_side_friendly}; + if (count _nearinfantry >= _infantry_trigger || count _nearvehicles >= _vehicle_trigger) then { + if (_ultra_strong) then { + "Bomb_04_F" createVehicle (getpos _ied_obj); + deleteVehicle _ied_obj; + } else { + _ied_obj setDamage 1; + }; + stats_ieds_detonated = stats_ieds_detonated + 1; publicVariable "stats_ieds_detonated"; + _goes_boom = true; + }; + sleep 1; + }; +} else { + if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> _roadobj is Null for IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +}; + +if ((KP_liberation_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["ied_manager.sqf -> exited IED %1 loop at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + +sleep 1800; + +if (!(isNull _ied_obj)) then {deleteVehicle _ied_obj;}; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/lose_sectors.sqf b/kp_liberation.brf_sumava/scripts/server/sector/lose_sectors.sqf new file mode 100644 index 0000000..58af61a --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/lose_sectors.sqf @@ -0,0 +1,28 @@ +waitUntil { !isNil "GRLIB_all_fobs" }; +waitUntil { !isNil "blufor_sectors" }; + +sleep 5; + +attack_in_progress = false; + +while { GRLIB_endgame == 0 } do { + + { + _ownership = [ markerpos _x ] call KPLIB_fnc_getSectorOwnership; + if ( _ownership == GRLIB_side_enemy ) then { + [ _x ] call attack_in_progress_sector; + }; + sleep 0.5; + } foreach blufor_sectors; + + { + _ownership = [ _x ] call KPLIB_fnc_getSectorOwnership; + if ( _ownership == GRLIB_side_enemy ) then { + [ _x ] call attack_in_progress_fob; + }; + sleep 0.5; + } foreach GRLIB_all_fobs; + + sleep 1; + +}; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/manage_one_sector.sqf b/kp_liberation.brf_sumava/scripts/server/sector/manage_one_sector.sqf new file mode 100644 index 0000000..38a8aae --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/manage_one_sector.sqf @@ -0,0 +1,310 @@ +// base amount of sector lifetime tickets +// if there are no enemies one ticket is removed every SECTOR_TICK_TIME seconds +// 12 * 5 = 60s by default +#define BASE_TICKETS 12 +#define SECTOR_TICK_TIME 5 +// delay in minutes from which addional time will be added +#define ADDITIONAL_TICKETS_DELAY 5 + +params ["_sector"]; + +waitUntil {!isNil "combat_readiness"}; + +[format ["Sector %1 (%2) activated - Managed on: %3", (markerText _sector), _sector, debug_source], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; + +private _sectorpos = markerPos _sector; +private _stopit = false; +private _spawncivs = false; +private _building_ai_max = 0; +private _infsquad = "army"; +private _building_range = 50; +private _local_capture_size = GRLIB_capture_size; +private _iedcount = 0; +private _vehtospawn = []; +private _managed_units = []; +private _squad1 = []; +private _squad2 = []; +private _squad3 = []; +private _squad4 = []; +private _minimum_building_positions = 5; +private _sector_despawn_tickets = BASE_TICKETS; +private _maximum_additional_tickets = (KP_liberation_delayDespawnMax * 60 / SECTOR_TICK_TIME); +private _popfactor = 1; +private _guerilla = false; + +if (GRLIB_unitcap < 1) then {_popfactor = GRLIB_unitcap;}; + +if (_sector in active_sectors) exitWith {}; +active_sectors pushback _sector; publicVariable "active_sectors"; + +private _opforcount = [] call KPLIB_fnc_getOpforCap; +[_sector, _opforcount] call wait_to_spawn_sector; + +if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call KPLIB_fnc_getSectorRange, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0)) then { + + if (_sector in sectors_bigtown) then { + if (combat_readiness < 30) then {_infsquad = "militia";}; + + _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); + _squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp); + if (GRLIB_unitcap >= 1) then {_squad3 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + if (GRLIB_unitcap >= 1.5) then {_squad4 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + + _vehtospawn = [(selectRandom militia_vehicles),(selectRandom militia_vehicles)]; + if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if ((random 100) > (50 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if (_infsquad == "army") then { + _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); + _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); + if ((random 100) > (33 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + }; + + _spawncivs = true; + + if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + _guerilla = true; + }; + + _building_ai_max = round (50 * _popfactor); + _building_range = 200; + _local_capture_size = _local_capture_size * 1.4; + + if (KP_liberation_civ_rep < 0) then { + _iedcount = round (2 + (ceil (random 4)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + } else { + _iedcount = 0; + }; + if (_iedcount > 16) then {_iedcount = 16}; + }; + + if (_sector in sectors_capture) then { + if (combat_readiness < 50) then {_infsquad = "militia";}; + + _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); + if (GRLIB_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + + if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if ((random 100) > (33 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if (_infsquad == "army") then { + _vehtospawn pushback (selectRandom militia_vehicles); + if ((random 100) > (33 / GRLIB_difficulty_modifier)) then { + _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); + _squad3 = ([_infsquad] call KPLIB_fnc_getSquadComp); + }; + }; + + _spawncivs = true; + + if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + _guerilla = true; + }; + + _building_ai_max = round ((floor (18 + (round (combat_readiness / 10 )))) * _popfactor); + _building_range = 120; + + if (KP_liberation_civ_rep < 0) then { + _iedcount = round ((ceil (random 4)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + } else { + _iedcount = 0; + }; + if (_iedcount > 12) then {_iedcount = 12}; + }; + + if (_sector in sectors_military) then { + _squad1 = ([] call KPLIB_fnc_getSquadComp); + _squad2 = ([] call KPLIB_fnc_getSquadComp); + if (GRLIB_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; + + _vehtospawn = [([] call KPLIB_fnc_getAdaptiveVehicle),([] call KPLIB_fnc_getAdaptiveVehicle)]; + if ((random 100) > (33 / GRLIB_difficulty_modifier)) then { + _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); + _squad4 = ([] call KPLIB_fnc_getSquadComp); + }; + if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + + _spawncivs = false; + + _building_ai_max = round ((floor (18 + (round (combat_readiness / 4 )))) * _popfactor); + _building_range = 120; + }; + + if (_sector in sectors_factory) then { + if (combat_readiness < 40) then {_infsquad = "militia";}; + + _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); + if (GRLIB_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + + if ((random 100) > 66) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + if ((random 100) > 33) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + + _spawncivs = false; + + if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + _guerilla = true; + }; + + _building_ai_max = round ((floor (18 + (round (combat_readiness / 10 )))) * _popfactor); + _building_range = 120; + + if (KP_liberation_civ_rep < 0) then { + _iedcount = round ((ceil (random 3)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + } else { + _iedcount = 0; + }; + if (_iedcount > 8) then {_iedcount = 8}; + }; + + if (_sector in sectors_tower) then { + _squad1 = ([] call KPLIB_fnc_getSquadComp); + if (combat_readiness > 30) then {_squad2 = ([] call KPLIB_fnc_getSquadComp);}; + if (GRLIB_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; + + if((random 100) > 95) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + + _spawncivs = false; + + _building_ai_max = 0; + }; + + _vehtospawn = _vehtospawn select {!(isNil "_x")}; + + if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector calculated -> _infsquad: %3 - _squad1: %4 - _squad2: %5 - _squad3: %6 - _squad4: %7 - _vehtospawn: %8 - _building_ai_max: %9", (markerText _sector), _sector, _infsquad, (count _squad1), (count _squad2), (count _squad3), (count _squad4), (count _vehtospawn), _building_ai_max], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + if (_building_ai_max > 0 && GRLIB_adaptive_opfor) then { + _building_ai_max = round (_building_ai_max * ([] call KPLIB_fnc_getOpforFactor)); + }; + + { + _vehicle = [_sectorpos, _x] call KPLIB_fnc_spawnVehicle; + [group ((crew _vehicle) select 0),_sectorpos] spawn add_defense_waypoints; + _managed_units pushback _vehicle; + {_managed_units pushback _x;} foreach (crew _vehicle); + sleep 0.25; + } forEach _vehtospawn; + + if (_building_ai_max > 0) then { + _allbuildings = (nearestObjects [_sectorpos, ["House"], _building_range]) select {alive _x}; + _buildingpositions = []; + { + _buildingpositions = _buildingpositions + ([_x] call BIS_fnc_buildingPositions); + } forEach _allbuildings; + if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector found %3 building positions", (markerText _sector), _sector, (count _buildingpositions)], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (count _buildingpositions > _minimum_building_positions) then { + _managed_units = _managed_units + ([_infsquad, _building_ai_max, _buildingpositions, _sector] call KPLIB_fnc_spawnBuildingSquad); + }; + }; + + _managed_units = _managed_units + ([_sectorpos] call KPLIB_fnc_spawnMilitaryPostSquad); + + if (count _squad1 > 0) then { + _grp = [_sector, _squad1] call KPLIB_fnc_spawnRegularSquad; + [_grp, _sectorpos] spawn add_defense_waypoints; + _managed_units = _managed_units + (units _grp); + }; + + if (count _squad2 > 0) then { + _grp = [_sector, _squad2] call KPLIB_fnc_spawnRegularSquad; + [_grp, _sectorpos] spawn add_defense_waypoints; + _managed_units = _managed_units + (units _grp); + }; + + if (count _squad3 > 0) then { + _grp = [_sector, _squad3] call KPLIB_fnc_spawnRegularSquad; + [_grp, _sectorpos] spawn add_defense_waypoints; + _managed_units = _managed_units + (units _grp); + }; + + if (count _squad4 > 0) then { + _grp = [_sector, _squad4] call KPLIB_fnc_spawnRegularSquad; + [_grp, _sectorpos] spawn add_defense_waypoints; + _managed_units = _managed_units + (units _grp); + }; + + if (_spawncivs && GRLIB_civilian_activity > 0) then { + _managed_units = _managed_units + ([_sector] call KPLIB_fnc_spawnCivilians); + }; + + if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - Range: %3 - Count: %4", (markerText _sector), _sector, _building_range, _iedcount], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + [_sector, _building_range, _iedcount] spawn ied_manager; + + if (_guerilla) then { + [_sector] spawn sector_guerilla; + }; + + sleep 10; + + if ((_sector in sectors_factory) || (_sector in sectors_capture) || (_sector in sectors_bigtown) || (_sector in sectors_military)) then { + [_sector] remoteExec ["reinforcements_remote_call",2]; + }; + + if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - populating done", (markerText _sector), _sector], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + + private _activationTime = time; + // sector lifetime loop + while {!_stopit} do { + // sector was captured + if (([_sectorpos, _local_capture_size] call KPLIB_fnc_getSectorOwnership == GRLIB_side_friendly) && (GRLIB_endgame == 0)) then { + if (isServer) then { + [_sector] spawn sector_liberated_remote_call; + } else { + [_sector] remoteExec ["sector_liberated_remote_call",2]; + }; + + _stopit = true; + + {[_x] spawn prisonner_ai;} forEach ((markerPos _sector) nearEntities [["Man"], _local_capture_size * 1.2]); + + sleep 60; + + active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; + + sleep 600; + + { + if (_x isKindOf "Man") then { + if (side group _x != GRLIB_side_friendly) then { + deleteVehicle _x; + }; + } else { + if (!isNull _x) then { + [_x] call KPLIB_fnc_cleanOpforVehicle; + }; + }; + } forEach _managed_units; + } else { + if (([_sectorpos, (([_opforcount] call KPLIB_fnc_getSectorRange) + 300), GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) == 0) then { + _sector_despawn_tickets = _sector_despawn_tickets - 1; + } else { + // start counting running minutes after ADDITIONAL_TICKETS_DELAY + private _runningMinutes = (floor ((time - _activationTime) / 60)) - ADDITIONAL_TICKETS_DELAY; + private _additionalTickets = (_runningMinutes * BASE_TICKETS); + + // clamp from 0 to "_maximum_additional_tickets" + _additionalTickets = (_additionalTickets max 0) min _maximum_additional_tickets; + + _sector_despawn_tickets = BASE_TICKETS + _additionalTickets; + }; + + if (_sector_despawn_tickets <= 0) then { + { + if (_x isKindOf "Man") then { + deleteVehicle _x; + } else { + if (!isNull _x) then { + [_x] call KPLIB_fnc_cleanOpforVehicle; + }; + }; + } forEach _managed_units; + + _stopit = true; + active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; + }; + }; + sleep SECTOR_TICK_TIME; + }; +} else { + sleep 40; + active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; +}; + +[format ["Sector %1 (%2) deactivated - Was managed on: %3", (markerText _sector), _sector, debug_source], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; diff --git a/kp_liberation.brf_sumava/scripts/server/sector/wait_to_spawn_sector.sqf b/kp_liberation.brf_sumava/scripts/server/sector/wait_to_spawn_sector.sqf new file mode 100644 index 0000000..81e17d2 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/sector/wait_to_spawn_sector.sqf @@ -0,0 +1,44 @@ +params ["_sector", "_opforcount"]; + +private _start = diag_tickTime; +[format ["Sector %1 (%2) - Waiting to spawn sector...", (markerText _sector), _sector], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; + +private _corrected_size = [_opforcount] call KPLIB_fnc_getSectorRange; +sleep 0.1; +private _unitscount = [markerPos _sector, _corrected_size , GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + +if (_unitscount > 0 && _unitscount <= 10) then { + sleep 5; +}; +sleep 0.1; + +_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +if (_unitscount > 0 && _unitscount <= 6) then { + sleep 5; +}; +sleep 0.1; + +_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +if (_unitscount > 0 && _unitscount <= 4) then { + sleep 5; +}; +sleep 0.1; + +_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +if (_unitscount > 0 && _unitscount <= 3) then { + sleep 5; +}; +sleep 0.1; + +_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +if (_unitscount > 0 && _unitscount <= 2) then { + sleep 5; +}; +sleep 0.1; + +_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +if (_unitscount == 1) then { + sleep 5; +}; + +[format ["Sector %1 (%2) - Waiting done - Time needed: %3 seconds", (markerText _sector), _sector, diag_tickTime - _start], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; diff --git a/kp_liberation.brf_sumava/scripts/server/support/fn_createSuppModules.sqf b/kp_liberation.brf_sumava/scripts/server/support/fn_createSuppModules.sqf new file mode 100644 index 0000000..24c0566 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/server/support/fn_createSuppModules.sqf @@ -0,0 +1,50 @@ +/* + File: fn_createSuppModules.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-04-21 + Last Update: 2020-04-22 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Creates the A3 support framework modules. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +if (!isServer || KP_liberation_suppMod isEqualTo 0) exitWith {false}; + +["Creating modules", "SUPPORTMODULES"] call KPLIB_fnc_log; + +// Create modules +private _grp = createGroup sideLogic; +KPLIB_suppMod_req = _grp createUnit ["SupportRequester", [0, 0, 0], [], 0, "NONE"]; +KPLIB_suppMod_arty = _grp createUnit ["SupportProvider_Artillery", [0, 0, 0], [], 0, "NONE"]; + +// Set variables which are normally set via eden object attributes +{ + [KPLIB_suppMod_req, _x, -1] call BIS_fnc_limitSupport; +} forEach ["Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport"]; + +// Publish global variables to clients +publicVariable "KPLIB_suppMod_req"; +publicVariable "KPLIB_suppMod_arty"; + +// Delay provider init until save is loaded, to catch synchronized units from loaded save +[] spawn { + waitUntil {!isNil "save_is_loaded" && {save_is_loaded}}; + ["Init provider on server", "SUPPORTMODULES"] call KPLIB_fnc_log; + [KPLIB_suppMod_req] call BIS_fnc_moduleSupportsInitRequester; + [KPLIB_suppMod_arty] call BIS_fnc_moduleSupportsInitProvider; + + // Hide the three HQ entities created at zero pos. BIS scripts only hides them local for the creator + waitUntil {!isNil "BIS_SUPP_HQ_WEST" && !isNil "BIS_SUPP_HQ_EAST" && !isNil "BIS_SUPP_HQ_GUER"}; + { + hideObjectGlobal _x; + } forEach [BIS_SUPP_HQ_WEST, BIS_SUPP_HQ_EAST, BIS_SUPP_HQ_GUER] +}; + +true diff --git a/kp_liberation.brf_sumava/scripts/shared/defines.hpp b/kp_liberation.brf_sumava/scripts/shared/defines.hpp new file mode 100644 index 0000000..5458633 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/shared/defines.hpp @@ -0,0 +1,9 @@ +// Get parameter +#define GET_PARAM(outVar, paramName, paramDefault) outVar = [paramName,paramDefault] call KPLIB_fnc_getSaveableParam;\ + publicVariable #outVar;\ + [format ["%1: %2", paramName, outVar], "PARAM"] call KPLIB_fnc_log + +// Get parameter and convert to bool +#define GET_PARAM_BOOL(outVar, paramName, paramDefault) outVar = ([paramName,paramDefault] call KPLIB_fnc_getSaveableParam) isEqualTo 1;\ + publicVariable #outVar;\ + [format ["%1: %2", paramName, outVar], "PARAM"] call KPLIB_fnc_log diff --git a/kp_liberation.brf_sumava/scripts/shared/diagnostics.sqf b/kp_liberation.brf_sumava/scripts/shared/diagnostics.sqf new file mode 100644 index 0000000..ca58dd1 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/shared/diagnostics.sqf @@ -0,0 +1,63 @@ +private _source = ""; + +["------------------------------------", "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Name: %1", (localize "STR_MISSION_TITLE")], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["World: %1", worldName], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Version: %1", (localize "STR_MISSION_VERSION")], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Author: %1", [missionConfigFile] call BIS_fnc_overviewAuthor], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Blufor: %1", KP_liberation_preset_blufor], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Opfor: %1", KP_liberation_preset_opfor], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Resistance: %1", KP_liberation_preset_resistance], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Civilians: %1", KP_liberation_preset_civilians], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Arsenal: %1", KP_liberation_arsenal], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["CBA: %1", KPPLM_CBA], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["ACE: %1", KP_liberation_ace], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["KP Ranks: %1", KPPLM_KPR], "MISSIONSTART"] call KPLIB_fnc_log; +["------------------------------------", "MISSIONSTART"] call KPLIB_fnc_log; + +waitUntil {sleep 1; !isNil "active_sectors"}; + +private _delay = 120; + +while {true} do { + if (isDedicated) then { + _source = "Server"; + } else { + _source = name player; + _delay = 300; + }; + + if (isServer) then { + [ + format [ + "%1 - FPS: %2 - Local groups: %3 - Local units: %4 - Active Sectors: %5 - Active Scripts: [spawn: %6, execVM: %7, exec: %8, execFSM: %9]", + _source, + ((round (diag_fps * 100.0)) / 100.0), + {local _x} count allGroups, + {local _x} count allUnits, + count active_sectors, + diag_activeScripts select 0, + diag_activeScripts select 1, + diag_activeScripts select 2, + diag_activeScripts select 3 + ], + "STATS" + ] call KPLIB_fnc_log; + } else { + [ + format [ + "%1 - FPS: %2 - Local groups: %3 - Local units: %4 - Active Scripts: [spawn: %5, execVM: %6, exec: %7, execFSM: %8]", + _source, + ((round (diag_fps * 100.0)) / 100.0), + {local _x} count allGroups, + {local _x} count allUnits, + diag_activeScripts select 0, + diag_activeScripts select 1, + diag_activeScripts select 2, + diag_activeScripts select 3 + ], + "STATS" + ] remoteExecCall ["KPLIB_fnc_log", 2]; + }; + sleep _delay; +}; diff --git a/kp_liberation.brf_sumava/scripts/shared/fetch_params.sqf b/kp_liberation.brf_sumava/scripts/shared/fetch_params.sqf new file mode 100644 index 0000000..0219a20 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/shared/fetch_params.sqf @@ -0,0 +1,491 @@ +#include "defines.hpp" + +// Check if ACE is running +if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {KP_liberation_ace = true; ["ACE detected. Deactivating resupply script from Liberation.", "MOD"] call KPLIB_fnc_log;} else {KP_liberation_ace = false}; + +/* Not saveable params */ +GRLIB_param_wipe_savegame_1 = ["WipeSave1", 0] call bis_fnc_getParamValue; +GRLIB_param_wipe_savegame_2 = ["WipeSave2", 0] call bis_fnc_getParamValue; +KP_liberation_civinfo_debug = ["DebugCivInfo", 0] call bis_fnc_getParamValue; +KP_liberation_civrep_debug = ["DebugCivRep", 0] call bis_fnc_getParamValue; +KP_liberation_savegame_debug = ["DebugSave", 0] call bis_fnc_getParamValue; +KP_liberation_asymmetric_debug = ["DebugAsymmetric", 0] call bis_fnc_getParamValue; +KP_liberation_logistic_debug = ["DebugLogistic", 0] call bis_fnc_getParamValue; +KP_liberation_sectorspawn_debug = ["DebugSectorSpawn", 0] call bis_fnc_getParamValue; +KP_liberation_kill_debug = ["DebugKill", 0] call bis_fnc_getParamValue; +KP_liberation_production_debug = ["DebugProduction", 0] call bis_fnc_getParamValue; +KP_liberation_highcommand_debug = ["DebugHighCommand", 0] call bis_fnc_getParamValue; + +KP_load_params = ["LoadSaveParams", 1] call BIS_fnc_getParamValue; + +if(isServer) then { + private _start = diag_tickTime; + /* Saveable params */ + ["----- Server starts parameter initialization", "PARAM"] call KPLIB_fnc_log; + switch (KP_load_params) do { + case 0: { + ["Save/Load is set to SAVE", "PARAM"] call KPLIB_fnc_log; + }; + case 1: { + ["Save/Load is set to LOAD", "PARAM"] call KPLIB_fnc_log; + }; + case 2: { + ["Save/Load is set to USE SELECTED", "PARAM"] call KPLIB_fnc_log; + }; + default { + ["Save/Load has no valid value", "PARAM"] call KPLIB_fnc_log; + }; + }; + + // Mission Options + ["--- Mission Options ---", "PARAM"] call KPLIB_fnc_log; + GET_PARAM(GRLIB_unitcap, "Unitcap", 2); + GET_PARAM(GRLIB_difficulty_modifier, "Difficulty", 2); + GET_PARAM(GRLIB_csat_aggressivity, "Aggressivity", 2); + GET_PARAM_BOOL(GRLIB_adaptive_opfor, "AdaptToPlayercount", 1); + GET_PARAM(GRLIB_civilian_activity, "Civilians", 1); + GET_PARAM_BOOL(GRLIB_build_first_fob, "FirstFob", 0); + GET_PARAM_BOOL(KP_liberation_fob_vehicle, "FirstFobVehicle", 0); + GET_PARAM(GRLIB_maximum_fobs, "MaximumFobs", 26); + GET_PARAM(GRLIB_max_squad_size, "MaxSquadSize", 10); + GET_PARAM_BOOL(GRLIB_blufor_defenders, "BluforDefenders", 1); + GET_PARAM_BOOL(GRLIB_autodanger, "Autodanger", 0); + GET_PARAM(GRLIB_time_factor, "DayDuration", 12); + GET_PARAM_BOOL(GRLIB_shorter_nights, "ShorterNights", 0); + GET_PARAM(GRLIB_weather_param, "Weather", 3); + GET_PARAM_BOOL(KP_liberation_fog_param, "VanillaFog", 1); + GET_PARAM(GRLIB_resources_multiplier, "ResourcesMultiplier", 3); + GET_PARAM_BOOL(KP_liberation_arsenal_type, "ArsenalType", 0); + GET_PARAM_BOOL(KPLIB_directArsenal, "DirectArsenal", 0); + GET_PARAM_BOOL(KP_liberation_playermenu, "PlayerMenu", 1); + GET_PARAM(KP_liberation_victoryCondition, "VictoryCondition", 0); + + // Deactivate BI Revive when ACE Medical is running + if (isClass (configfile >> "CfgPatches" >> "ace_medical")) then { + bis_reviveParam_mode = 0; publicVariable "bis_reviveParam_mode"; + ["ACE Medical detected. Deactivating BI Revive System.", "PARAM"] call KPLIB_fnc_log; + } else { + // Revive Options + ["--- Revive Options ---", "PARAM"] call KPLIB_fnc_log; + GET_PARAM(bis_reviveParam_mode, "ReviveMode", 1); + GET_PARAM(bis_reviveParam_duration, "ReviveDuration", 6); + GET_PARAM(bis_reviveParam_requiredTrait, "ReviveRequiredTrait", 1); + GET_PARAM(bis_reviveParam_medicSpeedMultiplier, "ReviveMedicSpeedMultiplier", 1); + GET_PARAM(bis_reviveParam_requiredItems, "ReviveRequiredItems", 1); + GET_PARAM(bis_reviveParam_unconsciousStateMode, "UnconsciousStateMode", 0); + GET_PARAM(bis_reviveParam_bleedOutDuration, "ReviveBleedOutDuration", 180); + GET_PARAM(bis_reviveParam_forceRespawnDuration, "ReviveForceRespawnDuration", 10); + }; + + // Gameplay Options + ["--- Gameplay Options ---", "PARAM"] call KPLIB_fnc_log; + GET_PARAM_BOOL(GRLIB_fatigue, "Fatigue", 1); + GET_PARAM_BOOL(KPLIB_sway, "WeaponSway", 1); + GET_PARAM_BOOL(KP_liberation_arsenalUsePreset, "ArsenalUsePreset", 1); + GET_PARAM_BOOL(KP_liberation_mapmarkers, "MapMarkers", 1); + GET_PARAM_BOOL(KP_liberation_mobilerespawn, "MobileRespawn", 1); + GET_PARAM(KP_liberation_respawn_cooldown, "RespawnCooldown", 900); + GET_PARAM_BOOL(KP_liberation_mobilearsenal, "MobileArsenal", 1); + GET_PARAM_BOOL(KPLIB_respawnOnAttackedSectors, "AttackedSectorRespawn", 0); + GET_PARAM_BOOL(KP_liberation_ailogistics, "AiLogistics", 1); + GET_PARAM_BOOL(KP_liberation_cr_param_buildings, "CR_Building", 0); + GET_PARAM(GRLIB_halo_param, "HaloJump", 1); + GET_PARAM_BOOL(KP_liberation_clear_cargo, "ClearCargo", 1); + GET_PARAM(KP_liberation_allowEnemiesInImmobile, "AllowEnemiesInImmobile", 50); + GET_PARAM(KP_liberation_delayDespawnMax, "DelayDespawnMax", 5); + GET_PARAM_BOOL(KP_liberation_limited_zeus, "LimitedZeus", 1); + GET_PARAM_BOOL(KP_liberation_commander_zeus, "CommanderZeus", 1); + GET_PARAM_BOOL(KP_liberation_enemies_zeus, "ZeusAddEnemies", 1); + GET_PARAM_BOOL(KP_liberation_high_command, "HighCommand", 1); + GET_PARAM(KP_liberation_suppMod, "SuppMod", 1); + GET_PARAM_BOOL(KP_liberation_tutorial, "Tutorial", 1); + + // Technical Options + ["--- Technical Options ---", "PARAM"] call KPLIB_fnc_log; + GET_PARAM_BOOL(GRLIB_permissions_param, "Permissions", 1); + GET_PARAM(GRLIB_cleanup_vehicles, "CleanupVehicles", 2); + GET_PARAM_BOOL(GRLIB_introduction, "Introduction", 1); + GET_PARAM_BOOL(GRLIB_deployment_cinematic, "DeploymentCinematic", 1); + GET_PARAM_BOOL(GRLIB_use_whitelist, "Whitelist", 0); + GET_PARAM(KP_liberation_restart, "ServerRestart", 0); + + GREUH_allow_mapmarkers = KP_liberation_mapmarkers; publicVariable "GREUH_allow_mapmarkers"; + GREUH_allow_platoonview = KP_liberation_mapmarkers; publicVariable "GREUH_allow_platoonview"; + + KP_serverParamsFetched = true; + publicVariable "KP_serverParamsFetched"; + + [format ["----- Server finished parameter initialization - Time needed: %1 seconds", diag_ticktime - _start], "PARAM"] call KPLIB_fnc_log; +}; + +// Fix for not working float values in mission params +switch (GRLIB_unitcap) do { + case 0: {GRLIB_unitcap = 0.5;}; + case 1: {GRLIB_unitcap = 0.75;}; + case 2: {GRLIB_unitcap = 1;}; + case 3: {GRLIB_unitcap = 1.25;}; + case 4: {GRLIB_unitcap = 1.5;}; + case 5: {GRLIB_unitcap = 2;}; + default {GRLIB_unitcap = 1;}; +}; + +switch (GRLIB_difficulty_modifier) do { + case 0: {GRLIB_difficulty_modifier = 0.5;}; + case 1: {GRLIB_difficulty_modifier = 0.75;}; + case 2: {GRLIB_difficulty_modifier = 1;}; + case 3: {GRLIB_difficulty_modifier = 1.25;}; + case 4: {GRLIB_difficulty_modifier = 1.5;}; + case 5: {GRLIB_difficulty_modifier = 2;}; + case 6: {GRLIB_difficulty_modifier = 4;}; + case 7: {GRLIB_difficulty_modifier = 10;}; + default {GRLIB_difficulty_modifier = 1;}; +}; + +switch (GRLIB_csat_aggressivity) do { + case 0: {GRLIB_csat_aggressivity = 0.25;}; + case 1: {GRLIB_csat_aggressivity = 0.5;}; + case 2: {GRLIB_csat_aggressivity = 1;}; + case 3: {GRLIB_csat_aggressivity = 2;}; + case 4: {GRLIB_csat_aggressivity = 4;}; + default {GRLIB_csat_aggressivity = 1;}; +}; + +switch (GRLIB_civilian_activity) do { + case 0: {GRLIB_civilian_activity = 0;}; + case 1: {GRLIB_civilian_activity = 0.5;}; + case 2: {GRLIB_civilian_activity = 1;}; + case 3: {GRLIB_civilian_activity = 2;}; + default {GRLIB_csat_aggressivity = 1;}; +}; + +switch (GRLIB_resources_multiplier) do { + case 0: {GRLIB_resources_multiplier = 0.25;}; + case 1: {GRLIB_resources_multiplier = 0.5;}; + case 2: {GRLIB_resources_multiplier = 0.75;}; + case 3: {GRLIB_resources_multiplier = 1;}; + case 4: {GRLIB_resources_multiplier = 1.25;}; + case 5: {GRLIB_resources_multiplier = 1.5;}; + case 6: {GRLIB_resources_multiplier = 2;}; + case 7: {GRLIB_resources_multiplier = 3;}; + default {GRLIB_resources_multiplier = 1;}; +}; + +switch (KP_liberation_victoryCondition) do { + case 1: { + KP_liberation_victoryCheck = { + (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + && + { + (count (blufor_sectors select {_x in sectors_military})) == (count sectors_military) + } + }; + }; + case 2: { + KP_liberation_victoryCheck = { + (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + && + { + (count (blufor_sectors select {!(_x in sectors_bigtown)})) >= ((count (sectors_allSectors - sectors_bigtown)) * 0.6) + } + }; + }; + case 3: { + KP_liberation_victoryCheck = { + (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + && + { + (count (blufor_sectors select {!(_x in sectors_bigtown)})) >= ((count (sectors_allSectors - sectors_bigtown)) * 0.8) + } + }; + }; + case 4: { + KP_liberation_victoryCheck = { + (count blufor_sectors) == (count sectors_allSectors) + }; + }; + default { + KP_liberation_victoryCheck = { + (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + }; + }; +}; + +if (!isDedicated && hasInterface) then { + // Create diary section for an overview of actual mission parameters + player createDiarySubject ["parameters", "Mission Parameters"]; + + private _param = localize "STR_PARAMS_UNITCAP"; + private _value = (format ["%1", GRLIB_unitcap * 100]) + "%"; + private _text = format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_DIFFICULTY"; + switch (GRLIB_difficulty_modifier) do { + case 0.75: {_value = localize "STR_PARAMS_DIFFICULTY2";}; + case 1: {_value = localize "STR_PARAMS_DIFFICULTY3";}; + case 1.25: {_value = localize "STR_PARAMS_DIFFICULTY4";}; + case 1.5: {_value = localize "STR_PARAMS_DIFFICULTY5";}; + case 2: {_value = localize "STR_PARAMS_DIFFICULTY6";}; + case 4: {_value = localize "STR_PARAMS_DIFFICULTY7";}; + case 10: {_value = localize "STR_PARAMS_DIFFICULTY8";}; + default {_value = localize "STR_PARAMS_DIFFICULTY1";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_AGGRESSIVITY_PARAM"; + switch (GRLIB_csat_aggressivity) do { + case 0.5: {_value = localize "STR_AGGRESSIVITY_PARAM1";}; + case 1: {_value = localize "STR_AGGRESSIVITY_PARAM2";}; + case 2: {_value = localize "STR_AGGRESSIVITY_PARAM3";}; + case 4: {_value = localize "STR_AGGRESSIVITY_PARAM4";}; + default {_value = localize "STR_AGGRESSIVITY_PARAM0";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_ADAPT_TO_PLAYERCOUNT"; + _value = if (GRLIB_adaptive_opfor) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_CIVILIANS"; + switch (GRLIB_civilian_activity) do { + case 0.5: {_value = localize "STR_PARAMS_CIVILIANS2";}; + case 1: {_value = localize "STR_PARAMS_CIVILIANS3";}; + case 2: {_value = localize "STR_PARAMS_CIVILIANS4";}; + default {_value = localize "STR_PARAMS_CIVILIANS1";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_FIRSTFOB"; + _value = if (GRLIB_build_first_fob) then {localize "STR_YES";} else {localize "STR_NO";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_FIRSTFOBVEHICLE"; + _value = if (KP_liberation_fob_vehicle) then {localize "STR_PARAMS_FIRSTFOBVEHICLE_TRUCK";} else {localize "STR_PARAMS_FIRSTFOBVEHICLE_CONTAINTER";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_FOBS_COUNT"; + _value = str GRLIB_maximum_fobs; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_SQUAD_SIZE"; + _value = str GRLIB_max_squad_size; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_BLUFOR_DEFENDERS"; + _value = if (GRLIB_blufor_defenders) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_AUTODANGER"; + _value = if (GRLIB_autodanger) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_DAYDURATION"; + _value = str (24 / GRLIB_time_factor); + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_SHORTER_NIGHTS_PARAM"; + _value = if (GRLIB_shorter_nights) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_WEATHER_PARAM"; + switch (GRLIB_weather_param) do { + case 2: {_value = localize "STR_WEATHER_PARAM2";}; + case 3: {_value = localize "STR_WEATHER_PARAM3";}; + default {_value = localize "STR_WEATHER_PARAM1";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_FOG_PARAM"; + _value = if (KP_liberation_fog_param) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_RESOURCESMULTIPLIER"; + _value = format ["x%1", GRLIB_resources_multiplier]; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_ARSENAL"; + _value = if (KP_liberation_arsenal_type) then {localize "STR_PARAMS_ARSENAL_ACE";} else {localize "STR_PARAMS_ARSENAL_BI";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_DIRECTARSENAL"; + _value = if (KPLIB_directArsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_PLAYERMENU"; + _value = if (KP_liberation_playermenu) then {localize "STR_PARAMS_PLAYERMENU_KP";} else {localize "STR_PARAMS_PLAYERMENU_GREUH";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_VICTORYCONDITION"; + switch (KP_liberation_victoryCondition) do { + case 1: {_value = localize "STR_PARAMS_VICTORYCONDITION_1";}; + case 2: {_value = localize "STR_PARAMS_VICTORYCONDITION_2";}; + case 3: {_value = localize "STR_PARAMS_VICTORYCONDITION_3";}; + case 4: {_value = localize "STR_PARAMS_VICTORYCONDITION_4";}; + default {_value = localize "STR_PARAMS_VICTORYCONDITION_0";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_ReviveMode"; + _value = if (bis_reviveParam_mode == 1) then {localize "STR_A3_EnabledForAllPlayers";} else {localize "STR_A3_Disabled";}; + _text = _text + format ["%1
%2

", _param, _value]; + + if (bis_reviveParam_mode == 1) then { + _param = localize "STR_A3_ReviveDuration"; + _value = str bis_reviveParam_duration; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_RequiredTrait"; + _value = if (bis_reviveParam_requiredTrait == 1) then {localize "STR_A3_Medic";} else {localize "STR_A3_None";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_RequiredTrait_MedicSpeedMultiplier"; + _value = format ["x%1", bis_reviveParam_medicSpeedMultiplier]; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_RequiredItems"; + switch (bis_reviveParam_requiredItems) do { + case 1: {_value = localize "STR_A3_Medikit";}; + case 2: {_value = localize "STR_A3_FirstAidKitOrMedikit";}; + default {_value = localize "STR_A3_None";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_IncapacitationMode"; + switch (bis_reviveParam_unconsciousStateMode) do { + case 1: {_value = localize "STR_A3_Advanced";}; + case 2: {_value = localize "STR_A3_Realistic";}; + default {_value = localize "STR_A3_Basic";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_BleedOutDuration"; + _value = str bis_reviveParam_bleedOutDuration; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_A3_ForceRespawnDuration"; + _value = str bis_reviveParam_forceRespawnDuration; + _text = _text + format ["%1
%2

", _param, _value]; + }; + + _param = localize "STR_PARAMS_FATIGUE"; + _value = if (GRLIB_fatigue) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_WEAPSWAY"; + _value = if (KPLIB_sway) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_ARSENALUSEPRESET"; + _value = if (KP_liberation_arsenalUsePreset) then {localize "STR_PARAMS_USEPRESET";} else {localize "STR_PARAMS_NORESTRICTIONS";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_MAPMARKERS"; + _value = if (KP_liberation_mapmarkers) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_MOBILERESPAWN"; + _value = if (KP_liberation_mobilerespawn) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_RESPAWN_COOLDOWN"; + _value = if (KP_liberation_respawn_cooldown == 0) then {localize "STR_PARAMS_DISABLED";} else {str (KP_liberation_respawn_cooldown / 60);}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_MOBILEARSENAL"; + _value = if (KP_liberation_mobilearsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_ATTACKEDSECTORRESPAWN"; + _value = if (KPLIB_respawnOnAttackedSectors) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_AILOGISTICS"; + _value = if (KP_liberation_ailogistics) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_CR_BUILDING"; + _value = if (KP_liberation_cr_param_buildings) then {localize "STR_PARAM_CR_DAMAGED";} else {localize "STR_PARAM_CR_DESTROYED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_HALO_PARAM"; + switch (GRLIB_halo_param) do { + case 1: {_value = localize "STR_HALO_PARAM1";}; + case 5: {_value = localize "STR_HALO_PARAM2";}; + case 10: {_value = localize "STR_HALO_PARAM3";}; + case 15: {_value = localize "STR_HALO_PARAM4";}; + case 20: {_value = localize "STR_HALO_PARAM5";}; + case 30: {_value = localize "STR_HALO_PARAM6";}; + default {_value = localize "STR_PARAMS_DISABLED";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_CLEAR_CARGO"; + _value = if (KP_liberation_clear_cargo) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_ALLOW_ENEMIES_IN_IMMOBILE"; + _value = if (KP_liberation_allowEnemiesInImmobile == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_allowEnemiesInImmobile;}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_DELAY_DESPAWN_MAX"; + _value = if (KP_liberation_delayDespawnMax == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_delayDespawnMax;}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_COMMANDERZEUS"; + _value = if (KP_liberation_commander_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_LIMITEDZEUS"; + _value = if (KP_liberation_limited_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_ZEUSADDENEMIES"; + _value = if (KP_liberation_enemies_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_HIGHCOMMAND"; + _value = if (KP_liberation_high_command) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_SUPPMOD"; + switch (KP_liberation_suppMod) do { + case 1: {_value = localize "STR_PARAM_SUPPMOD_CMDRANDWHITELIST";}; + case 2: {_value = localize "STR_PARAM_SUPPMOD_EVERYONE";}; + default {_value = localize "STR_PARAMS_DISABLED";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAM_TUTORIAL"; + _value = if (KP_liberation_tutorial) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PERMISSIONS_PARAM"; + _value = if (GRLIB_permissions_param) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_CLEANUP_PARAM"; + switch (GRLIB_cleanup_vehicles) do { + case 1: {_value = localize "STR_CLEANUP_PARAM1";}; + case 2: {_value = localize "STR_CLEANUP_PARAM2";}; + case 4: {_value = localize "STR_CLEANUP_PARAM3";}; + default {_value = localize "STR_PARAMS_DISABLED";}; + }; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_INTRO"; + _value = if (GRLIB_introduction) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_PARAMS_DEPLOYMENTCAMERA"; + _value = if (GRLIB_deployment_cinematic) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_WHITELIST_PARAM"; + _value = if (GRLIB_use_whitelist) then {localize "STR_WHITELIST_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _text = _text + format ["%1
%2

", _param, _value]; + + _param = localize "STR_RESTART_PARAM"; + _value = if (KP_liberation_restart == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_restart;}; + _text = _text + format ["%1
%2

", _param, _value]; + + player createDiaryRecord ["parameters", ["Active", _text]]; +}; diff --git a/kp_liberation.brf_sumava/scripts/shared/init_shared.sqf b/kp_liberation.brf_sumava/scripts/shared/init_shared.sqf new file mode 100644 index 0000000..4249ce7 --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/shared/init_shared.sqf @@ -0,0 +1,37 @@ +kill_manager = compileFinal preprocessFileLineNumbers "scripts\shared\kill_manager.sqf"; + +build_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_remote_call.sqf"; +build_fob_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_fob_remote_call.sqf"; +cancel_build_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\cancel_build_remote_call.sqf"; +prisonner_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\prisonner_remote_call.sqf"; +recycle_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\recycle_remote_call.sqf"; +reinforcements_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\reinforcements_remote_call.sqf"; +sector_liberated_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\sector_liberated_remote_call.sqf"; +intel_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\intel_remote_call.sqf"; +start_secondary_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\start_secondary_remote_call.sqf"; +change_prod_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\change_prod_remote_call.sqf"; +build_fac_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_fac_remote_call.sqf"; +if (KP_liberation_ailogistics) then { + add_logiGroup_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\add_logiGroup_remote_call.sqf"; + del_logiGroup_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\del_logiGroup_remote_call.sqf"; + add_logiTruck_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\add_logiTruck_remote_call.sqf"; + del_logiTruck_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\del_logiTruck_remote_call.sqf"; + save_logi_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\save_logi_remote_call.sqf"; + abort_logi_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\abort_logi_remote_call.sqf"; +}; + +remote_call_sector = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_sector.sqf"; +remote_call_fob = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_fob.sqf"; +remote_call_battlegroup = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_battlegroup.sqf"; +remote_call_endgame = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_endgame.sqf"; +remote_call_prisonner = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_prisonner.sqf"; +remote_call_intel = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_intel.sqf"; +remote_call_incoming = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_incoming.sqf"; + +civinfo_notifications = compileFinal preprocessFileLineNumbers "scripts\client\civinformant\civinfo_notifications.sqf"; +civinfo_escort = compileFinal preprocessFileLineNumbers "scripts\client\civinformant\civinfo_escort.sqf"; +civinfo_delivered = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\civinfo_delivered.sqf"; + +asymm_notifications = compileFinal preprocessFileLineNumbers "scripts\client\asymmetric\asymm_notifications.sqf"; + +execVM "scripts\shared\diagnostics.sqf"; diff --git a/kp_liberation.brf_sumava/scripts/shared/kill_manager.sqf b/kp_liberation.brf_sumava/scripts/shared/kill_manager.sqf new file mode 100644 index 0000000..7c0176b --- /dev/null +++ b/kp_liberation.brf_sumava/scripts/shared/kill_manager.sqf @@ -0,0 +1,176 @@ +params ["_unit", "_killer"]; + +if (isServer) then { + + if (KP_liberation_kill_debug > 0) then {[format ["Kill Manager executed - _unit: %1 (%2) - _killer: %3 (%4)", typeOf _unit, _unit, typeOf _killer, _killer], "KILL"] call KPLIB_fnc_log;}; + + // Get Killer, when ACE enabled, via lastDamageSource + if (KP_liberation_ace) then { + if (local _unit) then { + _killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; + if (KP_liberation_kill_debug > 0) then {["_unit is local to server", "KILL"] call KPLIB_fnc_log;}; + } else { + if (KP_liberation_kill_debug > 0) then {["_unit is not local to server", "KILL"] call KPLIB_fnc_log;}; + if (isNil "KP_liberation_ace_killer") then {KP_liberation_ace_killer = objNull;}; + waitUntil {sleep 0.5; !(isNull KP_liberation_ace_killer)}; + if (KP_liberation_kill_debug > 0) then {["KP_liberation_ace_killer received on server", "KILL"] call KPLIB_fnc_log;}; + _killer = KP_liberation_ace_killer; + KP_liberation_ace_killer = objNull; + publicVariable "KP_liberation_ace_killer"; + }; + }; + + // Failsafe if something gets killed before the save manager is finished + if (isNil "infantry_weight") then {infantry_weight = 33}; + if (isNil "armor_weight") then {armor_weight = 33}; + if (isNil "air_weight") then {air_weight = 33}; + + // BLUFOR Killer handling + if ((side _killer) == GRLIB_side_friendly) then { + + // Increase combat readiness for kills near a capital. + private _nearby_bigtown = sectors_bigtown select {!(_x in blufor_sectors) && (_unit distance (markerpos _x) < 250)}; + if (count _nearby_bigtown > 0) then { + combat_readiness = combat_readiness + (0.5 * GRLIB_difficulty_modifier); + stats_readiness_earned = stats_readiness_earned + (0.5 * GRLIB_difficulty_modifier); + if (combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2) then {combat_readiness = 100.0}; + }; + + // Weights adjustments depending on what vehicle the BLUFOR killer used + if (_killer isKindOf "Man") then { + infantry_weight = infantry_weight + 1; + armor_weight = armor_weight - 0.66; + air_weight = air_weight - 0.66; + } else { + if ((toLower (typeOf (vehicle _killer))) in KPLIB_allLandVeh_classes) then { + infantry_weight = infantry_weight - 0.66; + armor_weight = armor_weight + 1; + air_weight = air_weight - 0.66; + }; + if ((toLower (typeOf (vehicle _killer))) in KPLIB_allAirVeh_classes) then { + infantry_weight = infantry_weight - 0.66; + armor_weight = armor_weight - 0.66; + air_weight = air_weight + 1; + }; + }; + + // Keep within ranges + infantry_weight = 0 max (infantry_weight min 100); + armor_weight = 0 max (armor_weight min 100); + air_weight = 0 max (air_weight min 100); + }; + + // Player was killed + if (isPlayer _unit) then { + stats_player_deaths = stats_player_deaths + 1; + // Disconnect UAV from player on death + _unit connectTerminalToUAV objNull; + // Eject Player from vehicle + if (vehicle _unit != _unit) then {moveOut _unit;}; + }; + + // Check for Man or Vehicle + if (_unit isKindOf "Man") then { + + // OPFOR casualty + if (side (group _unit) == GRLIB_side_enemy) then { + // Killed by BLUFOR + if (side _killer == GRLIB_side_friendly) then { + stats_opfor_soldiers_killed = stats_opfor_soldiers_killed + 1; + }; + + // Killed by a player + if (isplayer _killer) then { + stats_opfor_killed_by_players = stats_opfor_killed_by_players + 1; + }; + }; + + // BLUFOR casualty + if (side (group _unit) == GRLIB_side_friendly) then { + stats_blufor_soldiers_killed = stats_blufor_soldiers_killed + 1; + + // Killed by BLUFOR + if (side _killer == GRLIB_side_friendly) then { + stats_blufor_teamkills = stats_blufor_teamkills + 1; + }; + }; + + // Resistance casualty + if (side (group _unit) == GRLIB_side_resistance) then { + KP_liberation_guerilla_strength = KP_liberation_guerilla_strength - 1; + stats_resistance_killed = stats_resistance_killed + 1; + + // Resistance is friendly to BLUFOR + if ((GRLIB_side_friendly getFriend GRLIB_side_resistance) >= 0.6) then { + + // Killed by BLUFOR + if (side _killer == GRLIB_side_friendly) then { + if (KP_liberation_asymmetric_debug > 0) then {[format ["Guerilla unit killed by: %1", name _killer], "ASYMMETRIC"] call KPLIB_fnc_log;}; + [3, [(name _unit)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + stats_resistance_teamkills = stats_resistance_teamkills + 1; + [KP_liberation_cr_resistance_penalty, true] spawn F_cr_changeCR; + }; + + // Killed by a player + if (isplayer _killer) then { + stats_resistance_teamkills_by_players = stats_resistance_teamkills_by_players + 1; + }; + }; + }; + + // Civilian casualty + if (side (group _unit) == GRLIB_side_civilian) then { + stats_civilians_killed = stats_civilians_killed + 1; + + // Killed by BLUFOR + if (side _killer == GRLIB_side_friendly) then { + if (KP_liberation_civrep_debug > 0) then {[format ["Civilian killed by: %1", name _killer], "CIVREP"] call KPLIB_fnc_log;}; + [2, [(name _unit)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + [KP_liberation_cr_kill_penalty, true] spawn F_cr_changeCR; + }; + + // Killed by a player + if (isPlayer _killer) then { + stats_civilians_killed_by_players = stats_civilians_killed_by_players + 1; + }; + }; + } else { + // Enemy vehicle casualty + if ((toLower (typeof _unit)) in KPLIB_o_allVeh_classes) then { + stats_opfor_vehicles_killed = stats_opfor_vehicles_killed + 1; + + // Destroyed by player + if (isplayer _killer) then { + stats_opfor_vehicles_killed_by_players = stats_opfor_vehicles_killed_by_players + 1; + }; + } else { + // Civilian vehicle casualty + if (typeOf _unit in civilian_vehicles) then { + stats_civilian_vehicles_killed = stats_civilian_vehicles_killed + 1; + + // Destroyed by player + if (isplayer _killer) then { + stats_civilian_vehicles_killed_by_players = stats_civilian_vehicles_killed_by_players + 1; + }; + } else { + // It has to be a BLUFOR vehicle then + stats_blufor_vehicles_killed = stats_blufor_vehicles_killed + 1; + }; + }; + }; +} else { + // Get Killer and send it to server, when ACE enabled, via lastDamageSource + if (KP_liberation_ace && local _unit) then { + if (KP_liberation_kill_debug > 0) then {[format ["_unit is local to: %1", debug_source], "KILL"] remoteExecCall ["KPLIB_fnc_log", 2];}; + KP_liberation_ace_killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; + publicVariable "KP_liberation_ace_killer"; + }; +}; + +// Body/Wreck deletion after cleanup delay +if (isServer && !isplayer _unit) then { + sleep GRLIB_cleanup_delay; + hidebody _unit; + sleep 10; + deleteVehicle _unit; +}; diff --git a/kp_liberation.brf_sumava/stringtable.xml b/kp_liberation.brf_sumava/stringtable.xml new file mode 100644 index 0000000..6d052ec --- /dev/null +++ b/kp_liberation.brf_sumava/stringtable.xml @@ -0,0 +1,7321 @@ + + + + + + CTI 34 KP Liberation v0.96.7a + + + v0.96.7a + + + Deploy + Déploiement + Bereitstellen + Despliegue + Развёртывание + Schierati + 部署 + 佈署 + Atla + Mobilizar + 배치 + Výsadek + + + Deployment in progress ... + Déploiement en cours ... + Bereitstellung in Arbeit + Despliegue en curso ... + Развёртывание в процессе ... + Schieramento in Corso ... + 正在部署中... + 正在佈署中... + Atlama süreci devam ediyor... + Mobilização em andamento... + 배치중입니다... + Probíhá Výsadek... + + + Close + Fermer + Schliessen + Cerca + Закрыть + Chiudi + 关闭 + 關閉 + Kapat + Fechar + 닫기 + Zavřít + + + YOU ARE WOUNDED + VOUS ETES BLESSE + DU BIST VERWUNDET + ESTAS HERIDO + ВЫ БЕЗ СОЗНАНИЯ + SEI STATO UCCISO + 你受伤了 + 你受傷了 + AĞIR YARALANDIN! + VOCÊ ESTÁ FERIDO! + 부상당했습니다. + JSI V BEZVĚDOMÍ + + + -- BUILD -- + -- CONSTRUIRE -- + -- BAUEN -- + -- CONSTRUIR -- + -- ПОСТРОИТЬ -- + -- COSTRUISCI -- + -- 建造 -- + -- 建造 -- + -- İNŞA ET -- + -- CONSTRUIR -- + -- 건 설 -- + -- STAVĚT -- + + + BUILD MENU + CONSTRUCTION + BAUMENÜ + MENU DE CONSTRUCCIÓN + СТРОИТЕЛЬСТВО + MENU COSTRUZIONI + 建造菜单 + 建造選單 + İNŞAAT MENÜSÜ + MENU DE CONSTRUÇÃO + 건설메뉴 + MENU STAVĚNÍ + + + Build + Construire + Bauen + Construir + Построить + Costruisci + 建造 + 建造 + İnşa Et + Construir + 건설/배치 + Postavit + + + Supplies + Effectifs + Nachschub + Efectivos + Припасы + Personale + 补给 + 補給 + Erzaklar + Suprimentos + 보급품 + Zásoby + + + Ammunition + Munitions + Munition + Munición + Вооружение + Munizioni + 弹药 + 彈藥 + Mühimmat + Munição + 탄약 + Munice + + + Fuel + Carburant + Kraftstoff + Combustible + Топливо + Carburante + 燃料 + 油料 + Yakıt + Combustível + 연료 + Palivo + + + Bleedout in %1 seconds + Mort dans %1 secondes + Ausbluten in %1 Sekunden + Desangrado en %1 segundos + Вы умрёте через %1 секунд + Morte per dissanguamento fra %1 secondi + 将于%1秒后失血阵亡 + 將於 %1 秒後失血致死 + Kanamadan ölmeye %1 saniye + Morte por hemorragia em %1 segundos + %1 초 후 의식을 잃거나 과다출혈로 사망합니다. + Vykrvácíš za %1 vteřin + + + Stabilized + Stabilisé + Stabilisiert + Estabilizado + Стабильно + Stabilizzato + 伤情稳定 + 傷勢穩定 + Stabilize edildi + Hemorragia estancada + 출혈이 멈추어 안정되었습니다. + Stabilizován + + + -- Rotation + -- Rotation + -- Rotieren + -- Rotación + -- Вращать + -- Ruota + -- 旋转 + -- 旋轉 + -- Açı + -- Rotação + -- 회전 + -- Otočit + + + -- Build + -- Construire + -- Bauen + -- Construir + -- Поставить + -- Costruisci + -- 建造 + -- 建造 + -- Kur + -- Construir + -- 건설(설치) + -- Postavit + + + -- Build and Repeat + -- Construire et Répéter + -- Bauen und Wiederholen + -- Construir y repetir + -- Поставить и Повторить + -- Costruisci e Ripeti + -- 建造并重复 + -- 建造並重複 + -- Kur ve tekrarla + -- Construir e repetir + -- 반복 건설(설치) + -- Postavit a Opakovat + + + -- Cancel + -- Annuler + -- Abbrechen + -- Cancelar + -- Отмена + -- Annulla + -- 取消 + -- 取消 + -- İptal + -- Cancelar + -- 취소 + -- Zrušit + + + Building canceled. + Construction annulée. + Bauen abgebrochen. + Construcción cancelada + Постройка отменена. + Costruzione cancellata. + 建造取消。 + 建造取消。 + İnşaat iptal edildi. + Construção cancelada. + 건설(설치) 취소 + Stavění zrušeno + + + Building confirmed. + Construction confirmée. + Bauen bestätigt. + Construcción confirmada. + Постройка подтверждена. + Costruzione confermata. + 建造完成。 + 建造成功。 + İnşaat kuruldu. + Construção confirmada. + 건설(설치) 완료 + Stavění potvrzeno + + + Can't place here: there are %1 object(s) within %2 meters of the object position. + Impossible de placer ici : il y a %1 objet(s) dans les %2 mètres de la position voulue. + Kann hier nicht platziert werden: %1 Objekt(e) innerhalb von %2 Meter der Position + Imposible de colocar aqui: hay 1% objeto(s) a %2 metros de la posición del objeto + Нельзя разместить здесь: в %2 метрах есть 1% объект(а). + impossibile piazzare qui: ci sono %1 oggetti vicini %2 metri dalla posizione dell'oggetto in costruzione + 无法安置在这里:当前位置%2米内有%1个物体阻挡。 + 無法在此建造:目前 %2 公尺內有 %1 個物件存在。 + Buraya koyulamaz: %2 metre içinde %1 obje var. + Impossível inserir aqui: Há %1 objeto(s) dentro de %2 metros da posição deste item. + 건설(설치) 불가 : 설치하고자 하는 위치에 %1 개의 객체가 %2 미터 안에 있습니다. + Nelze stavět, poblíž je %1 objekt(ů) ve vzdálenosti %2 metrů od pozice objektu + + + This position is valid. + Cette position est valide. + Diese Position ist gültig. + Esta posición es válida + Это место подходит. + Questa posizione è valida + 可安置于此处。 + 可在此建造。 + Bu pozisyon uygun. + Esta posição é válida. + 건설(설치) 가능 + Pozice je správná + + + -- ARSENAL -- + -- ARSENAL -- + -- ARSENAL -- + -- ARSENAL -- + -- АРСЕНАЛ -- + -- ARSENALE -- + -- 军火库 -- + -- 軍火庫 -- + -- ARSENAL -- + -- ARSENAL -- + -- 무기고 -- + -- ARZENÁL -- + + + -- LOAD CRATE + -- CHARGER MUNITIONS + -- KISTE AUFLADEN + -- CARGAR CAJA DE MUNICIÓN + -- ЗАГРУЗИТЬ В ТРАНСПОРТ + -- CARICA CASSA + -- 装载货箱 + -- 裝載貨物 + -- SANDIĞI YÜKLE + -- CARREGAR CAIXA NO TRANSPORTE + -- 군수물자 적재 + -- NALOŽIT BEDNU + + + -- UNLOAD CRATES + -- DECHARGER MUNITIONS + -- KISTEN ABLADEN + -- DESCARGAR CAJA DE MUNICIÓN + -- ВЫГРУЗИТЬ ЯЩИКИ + -- SCARICA CASSA + -- 卸载货箱 + -- 卸載貨物 + -- SANDIKLARI İNDİR + -- DESCARREGAR CAIXAS + -- 군수물자 하역 + -- VYLOŽIT BEDNU + + + -- LOAD TO VEHICLE + -- AUF FAHRZEUG LADEN + -- CARGAR AL VEHÍCULO + -- ЗАГРУЗИТЬ В ТРАНСПОРТ + -- 차량에 적재 + -- ARACA YÜKLE + -- NALOŽIT DO VOZIDLA + + + -- UNLOAD FROM VEHICLE + -- VON FAHRZEUG ABLADEN + -- DESCARGAR DEL VEHÍCULO + -- ВЫГРУЗИТЬ ИЗ ТРАНСПОРТА + -- 차량에서 하역 + -- ARAÇTAN İNDİR + -- VYLOŽENÍ Z VOZIDLA + + + -- NO TRANSPORT VEHICLES NEARBY + -- KEIN TRANSPORTFAHRZEUG IN DER NÄHE + -- NO HAY VEHÍCULOS DE TRANSPORTE CERCA + -- НЕТ ТРАНСПОРТА ПОБЛИЗОСТИ + -- 주변에 수송차량이 없습니다. + -- YAKINLARDA NAKLİYE ARACI YOK + -- NELZE NALOŽIT + + + Ammo box successfully loaded on the transport vehicle. + La caisse de munitions a été chargée sur le véhicule de transport. + Munitionskiste erfolgreich auf das Transportfahrzeug geladen. + Caja de munición cargada correctamente en el vehículo de transporte + Ящик с боеприпасами загружен в транспортное средство. + Cassa munizioni correttamente caricata sul camion da trasporto + 货箱已装载到运输载具中。 + 貨物已上至運輸載具中。 + Mühimmat sandığı başarıyla nakliye aracına yüklendi. + Caixa de munição carregada com sucesso no veículo de transporte. + 군수물자를 수송차량에 성공적으로 적재하였습니다. + Bedna úspěšně naložena do vozidla. + + + Ammo box successfully unloaded from the transport vehicle. + La caisse de munitions a été déchargée du véhicule de transport. + Munitionskiste erfolgreich vom Transportfahrzeug abgeladen. + Caja de munición descargada correctamente del vehículo de transporte + Ящик с боеприпасами выгружен из транспортного средства. + Cassa munizioni correttamente scaricata dal camion da trasporto + 货箱已从运输载具中卸载。 + 貨物已從運輸載具中卸下。 + Mühimmat sandığı başarıyla nakliye aracından indirildi. + Caixa de munição descarregada com sucesso do veículo de transporte. + 군수물자를 수송차량에서 성공적으로 하역하였습니다. + Bedna úspěšně vyložena z vozidla + + + There is no nearby vehicle capable of carrying the ammo box. + Aucun véhicule à proximité capable de charger la caisse de munitions. + Kein Fahrzeug in der Nähe, das die Munitionskiste aufnehmen kann. + No hay ningún vehículo cercano capaz de cagar la caja de munición + Рядом нет техники способной перевозить ящики с боеприпасами. + Non ci sono veicoli vicino alla cassa munizioni capaci di caricarla + 附近没有能够装载货箱的载具。 + 附近沒有具備足夠空間裝載貨物的載具。 + Yakınlarda bu sandığı taşıyabilecek araç yok. + Não existe veículo nas proximidades capaz de carregar a caixa de munição. + 주변에 군수물자를 수송할 수 있는 차량이 없습니다. + V blízkosti není vozidlo schopné přepravovat bedny + + + -- DEPLOY FOB -- + -- DEPLOYER FOB -- + -- FOB BEREITSTELLEN -- + -- DESPLEGAR FOB -- + -- РАЗВЕРНУТЬ FOB -- + -- COSTRUISCI FOB -- + -- 部署前哨 -- + -- 佈署前線基地 -- + -- FOB KUR -- + -- INSTALAR FOB -- + -- 전초기지 설치 -- + -- POSTAVIT FOB -- + + + Can't deploy a new FOB here, you must be at least %1 meters away from every other FOB. Nearest FOB is %2 meters away. + Impossible de déployer une nouvelle FOB ici, vous devez être à au moins %1 mètres de toutes les autres FOB. La FOB la plus proche est à %2 mètres d'ici. + Kann hier keine FOB platzieren, du musst min. %1 Meter von der anderen FOB entfernt sein. Die nächste FOB ist %2 Meter entfernt. + Imposible desplegar una nueva FOB aquí, debes estar al menos a 1% metros de cualquier otra FOB. La FOB más cercana está a %2 metros. + Нельзя развернуть FOB здесь, так как вы должны находится в %1 метрах от другой FOB. Ближайшая FOB в %2 метрах. + Impossibile creare la nuova FOB qui, devi essere almeno %1 metri distante dalla FOB più vicina. La FOB più vicina si trova a %2 metri. + 无法在此部署前哨,前哨之间的距离不得低于%1米。最近的前哨在%2米开外。 + 無法在這裡佈署前線基地,前線基地之間的距離不得低於 %1 公尺,最近的前線基地離此 %2 公尺。 + Buraya FOB kurulamaz, diğer FOB'lerden en az %1 metre uzakta olmalısın. Şuan en yakındaki FOB %2 metre uzakta. + Não é possível instalar a FOB aqui, você precisa estar no mínimo a %1 metros de distância de outra FOB. A FOB mais próxima está a %2 metros. + 전초기지를 설치할 수 없습니다. 다른 전초기지로부터 %1 미터 떨어져 있어야 합니다. 현재 가장 가까운 전초기지와 %2 미터 떨어져 있습니다. + Zde Nelze postavit nové FOB, musí být vzdáleno %1 metrů od jakékoliv jiné FOB. Nejbližší FPB je vzdáleno %2 metrů. + + + Can't deploy a new FOB here, you must be at least %1 meters away from every capturable zone. Nearest zone is %2 meters away. + Impossible de déployer une nouvelle FOB ici, vous devez être à au moins %1 mètres de toutes les zones capturables. La zone la plus proche est à %2 mètres d'ici. + Kann hier keine FOB platzieren, du musst min. %1 Meter von allen Sektoren entfernt sein. Der nächste Sektor ist %2 Meter entfernt. + Imposible desplegar una nueva FOB aquí, debes estar al menos a %1 metros de cualquier zona capturable. La zona más cercana está a %2 metros + Нельзя развернуть FOB здесь, так как вы должны находится в %1 метрах от захваченного сектора. Ближайший сектор в %2 метрах. + Impossibile creare la nuova FOB qui, devi essere almeno %1 metri distante dalla Zona catturabile più vicina. La Zona Catturabile più vicina si trova a %2 metri. + 无法在此部署前哨,前哨与战区之间的距离不得低于%1米。最近的战区在%2米开外。 + 無法在此佈署前線基地,前線基地與戰區之間的距離不得低於 %1 公尺,最近的戰區離此 %2 公尺。 + Buraya FOB kurulamaz, düşman bölgelerinden en az %1 metre uzakta olmalısın. Şuan en yakın düşman bölgelesi %2 metre uzakta. + Não é possível instalar a FOB aqui, você precisa estar no mínimo a %1 metros de distância de qualquer setor capturável. O setor mais próima está a %2 metros. + 전초기지를 설치할 수 없습니다. 점령지에서 %1 미터 떨어져 있어야 합니다. 현재 가장 가까운 점령지는 %2 미터 떨어져 있습니다. + Zde Nelze postavit nové FOB, musí být vzdáleno %1 metrů od jakékoliv zabratelné zóny. Nejbližší zóna je vzdálena %2 metrů. + + + Can't build on water. + Impossible de construire sur l'eau. + Kann nicht auf Wasser gebaut werden. + Imposible construir sobre el agua. + Нельзя строить на воде. + Impossibile costruire sull'acqua. + 无法在水面上建造。 + 無法建造在水面上。 + Su üstünde kurulamaz. + Não é possível construir na água. + 물에는 전초기지를 설치 할 수 없습니다. + Nemůžeš stavět na vodě + + + Can't build further than %1 meters away from the FOB. + Impossible de construire à plus de %1 mètres de la FOB. + Kann nicht weiter als %1 Meter von der FOB entfernt sein. + Imposible construir más lejos de %1 metros de la FOB + Нельзя строить дальше чем в %1 метрах от FOB. + Impossibile costruire a più di %1 metri dalla FOB. + 无法在超出前哨%1米外的区域建造。 + 無法在距離前線基地 %1 公尺外的區域建造 + FOB'den %1 metre uzakta inşaat yapılamaz. + Não é possível construir com mais de %1 metros de distância da FOB. + 전초기지에서 %1 미터 이상 떨어지면 건설(설치)할 수 없습니다. + Nemůžeš stavět dál než %1 metrů od FOB. + + + FOB Container + Container FOB + FOB Container + Contenedor de FOB + FOB Контейнер + 前哨部署柜 + 前線基地貨櫃 + FOB Konteynırı + FOB no Contêiner + 전초기지 설치박스 + FOB Kontejner + + + FOB Truck + Camion FOB + FOB Lastwagen + Camión de FOB + FOB Грузовик + Camion FOB + 前哨部署车 + 前線基地車 + FOB Kamyonu + FOB transportável + 전초기지 설치차량 + FOB Náklaďák + + + Mobile respawn + Respawn mobile + Mobiler Respawn + Respawn móvil + Мобильная КШМ + Respawn Mobile + 机动复活载具 + 機動復活載具 + Respawn Aracı + Respawn móvel + 재투입차량 + Mobilní respawn + + + Arsenal box + Caisse à arsenal + Arsenalkiste + Caja de Arsenal + Ящик с арсеналом + Cassa Arsenale + 军火箱 + 軍火箱 + Arsenal Sandığı + Caixa de Arsenal + 무기고 + Bedna se zbrojnicí + + + DEPLOYMENT + DEPLOIEMENT + EINSATZ + DESPLIEGUE + ПЕРЕМЕЩЕНИЕ + SCHIERAMENTO + 部署 + 佈署 + CANLANMA + MOBILIZAÇÃO + 배치될 전초기지 선택 + VÝSADEK + + + Deploy + Déploiment + Einsetzen + Desplegar + Перемещение + Schierati + 部署 + 佈署 + Canlan + Mobilizar + 배치 + Výsadek + + + -- REDEPLOY -- + -- REDEPLOIEMENT -- + -- NEU EINSETZEN -- + -- REDESPLEGAR -- + -- ПЕРЕМЕСТИТЬСЯ -- + -- RISCHIERAMENTO -- + -- 重新部署 -- + -- 重新佈署 -- + -- YENİDEN SEÇ -- + -- REMOBILIZAR -- + -- 재배치 -- + -- ZNOVUNASAZENÍ -- + + + Build (Crew) + Construire (Equipage) + Bauen (Besatzung) + Construir (Equipo) + Создать (Экипаж) + Crea Equipaggio + 建造(含成员) + 建造(包含成員) + Ekip Oluştur + Construir (tripulado) + 배치(승무원포함) + Postavit (Mužstvo) + + + Light Rifle Squad + Escouade Fusiliers Légère + Leichter Waffentrupp + Escuadra de fusileros ligeros + Легкий Стрелковый Отряд + Squadra Fucilieri Leggeri + 轻装步枪班 + 輕裝步槍班 + Hafif Silah Timi + Grupo de Combate de Infantaria Leve + 소총분대 + Lehké útočné družstvo + + + Heavy Rifle Squad + Escouade Fusiliers Lourde + Schwerer Waffentrupp + Escuadra de fusileros pesados + Тяжёлый Стрелковый Отряд + Squadra Fucilieri Pesanti + 重装步枪班 + 重裝步槍班 + Ağır Silah Timi + Grupo de Combate de Infantaria Pesada + 화기분대 + Těžké útočné družstvo + + + AT Squad + Escouade AT + Panzerbekämpfungstrupp + Escuadra Antitanque + Отряд ПТ + Squadra Anticarro + 反坦克班 + 反坦班 + Anti-Tank Timi + Grupo de Combate Anti-Blindagem + 대전차지원팀 + Proti-tankové družstvo + + + AA Squad + Escouade AA + Luftabwehrtrupp + Escuadra Antiaérea + Отряд ПВО + Squadra Antiaerea + 防空班 + 防空班 + Anti-Hava Timi + Grupo de Combate Anti-Aéreo + 방공지원팀 + Proti-letadlové družstvo + + + Recon Squad + Escouade Recon + Aufklärungstrupp + Escuadra de reconocimiento + Отряд Разведчиков + Squadra Ricognitori + 侦察班 + 偵查班 + Keşif Timi + Grupo de Combate de Reconhecimento + 정찰팀 + Průzkumné družstvo + + + Paratroopers Squad + Escouade Parachutistes + Fallschirmjägertrupp + Escuadra de paracaidistas + Отряд Десантников + Squadra Paracadutisti + 空降班 + 傘兵班 + Paraşütçü Timi + Grupo de Combate de Paraquedistas + 공수팀 + Výsadkářské družstvo + + + Unit cap + Limite + Einheitenbegrenzung + Límite de unidades + Мобилизованных + Limite delle Unità + 单位上限 + 單位上限 + Birim Limiti + Limite de unidades + 유닛 제한 + Limit jednotek + + + Wipe Save Data + Effacer la sauvegarde + Spielstand löschen + Borrar partida guardada + Удалить сохранённый прогресс + Elimina Salvataggi + 清空存档 + 刪除存檔 + Kayıtlı oyunu sil + Apagar jogo salvo + 저장된 게임 초기화 + Vymazat uloženou hru + + + Confirm: Wipe Save Data + Confirmer : effacer la sauvegarde + Bestätige: Spielstand löschen + Confirmar : Borrar partida guardada + Подтвердить : Удалить сохранённый прогресс + Confermare : Elimina Salvataggi + 确认 : 清空存档 + 確認:刪除存檔 + Onayla: Kayıtlı oyunu sil + Confirmar: Apagar jogo salvo + 확인 : 저장된 게임 초기화 + Potvrdit: Vymazání uložené hry + + + No + Non + Nein + No + Нет + No + + + Hayır + Não + 아니요 + Ne + + + !! THE SAVEGAME WILL BE WIPED, NO RECOVERY POSSIBLE !! + !! LA SAUVEGARDE SERA EFFACEE SANS RECUPERATION POSSIBLE !! + !! SPIELSTAND WIRD GELÖSCHT, KEIN WIEDERHERSTELLEN MÖGLICH !! + !! LA PARTIDA GUARDADA SERÁ BORRADA, SIN RECUPERACIÓN POSIBLE !! + !! СОХРАНЁННЫЙ ПРОГРЕСС БУДЕТ УДАЛЕН, ВОССТАНОВИТЬ БУДЕТ НЕВОЗМОЖНО !! + !! I SALVATAGGI SARANNO ELIMINATI, SENZA POSSIBILITA' DI RECUPERO !! + !!存档将被移除,且无法恢复!! + !!警告,存檔將被刪除,且無法復原!! + !! KAYITLI OYUN SİLİNECEKTİR, GERİ GETİRELEMEZ !! + !! O JOGO SALVO SERÁ APAGADO, NÃO SERÁ POSSÍVEL RECUPERÁ-LO !! + 주의! 저장된 내용이 복구할 수 없게 삭제됩니다. + !! ULOŽENÁ POZICE BUDE SMAZÁNA BEZ MOŽNOSTI NÁVRATU !! + + + -- UNFLIP + -- UNFLIP + -- UMDREHEN + -- RECOLOCAR VEHÍCULO + -- ПЕРЕВЕРНУТЬ + -- RIADDRIZZA + -- 复位 + -- 翻正 + -- DÖNDÜR + -- DESVIRAR + -- 차량 바로잡기 + -- PŘEVRÁTIT + + + -- Grid mode + -- Mode grille + -- Rastermodus + -- Modo rejilla + -- Режим сетки + -- Modalità Griglia + -- 网格模式 + -- 網格模式 + -- Grid modu + -- Modo "grid" + -- 격자 모드 + -- Režim mřížky + + + -- CAPTURE + -- CAPTURER + -- GEFANGENNEHMEN + -- CAPTURAR + -- ЗАХВАТИТЬ + -- CATTURA + -- 俘虏 + -- 俘虜 + -- ELE GEÇİR + -- CAPTURAR + -- 생포/포획 + -- ZAJMOUT + + + Squad member + Membre d'escouade + Truppenmitglieder + Miembro de escuadra + Член отряда + Membri Squadra + 班组成员 + 班級成員 + Tim üyesi + Membro do Grupo + 분대원 + Člen družstva + + + Near + Près de + Nah + Cerca + Рядом + Vicino + 就近 + 附近 + Yakın + Próximo de + 부근 + Blízko + + + -- RECYCLE + -- RECYCLER + -- WIEDERVERWERTEN + -- RECICLAR + -- УТИЛИЗИРОВАТЬ + -- RICICLA + -- 回收 + -- 回收 + -- GERİ DÖNÜŞTÜR + -- RECICLAR + -- 재활용 + -- RECYKLOVAT + + + Recycling + Recyclage + Wiederverwerten + Reciclando + Утилизация + Riciclando + 正在回收 + 回收中 + Geri Dönüştürme + Reciclando + 분해중 + Recyklování + + + Recycling this %1 will yield: + Le recyclage de %1 rapportera : + Die Wiederverwertung von %1 erbringt: + Reciclando este %1 obtienes: + Утилизируя %1 вы получите: + Riciclando questo %1 otterrai: + 回收%1将会获得: + 回收%1將會獲得: + Bu %1 geri dönüştürülünce bunları verecektir: + Reciclando este %1, irá obter: + 재활용 할 경우 %1 의 보급품이 반환됨 + Zrecyklováním %1 získáte: + + + Recycle + Recycler + Wiederverwerten + Reciclar + Утилизировать + Riciclato + 回收 + 回收 + Geri Dönüştür + Reciclar + 재활용 + Recyklovat + + + Cancel + Annuler + Abbrechen + Cancelar + Отмена + Annulla + 取消 + 取消 + İptal + Cancelar + 취소 + Zrušit + + + SECTOR CAPTURED + SECTEUR CAPTURE + SEKTOR EINGENOMMEN + SECTOR CAPTURADO + СЕКТОР ЗАХВАЧЕН + SETTORE CATTURATO + 战区已占领 + 戰區已占領 + SEKTÖR ELE GEÇİRİLDİ + SETOR CAPTURADO + 거점 점령 + SEKTOR ZABRÁN + + + Our forces have captured %1. + Nos forces ont capturé %1. + Unsere Truppen haben %1 eingenommen. + Nuestras fuerzas han capturado %1 + Наши войска захватили %1. + Le nostre unità hanno catturato %1 + 我军部队已占领%1。 + 我軍已佔領 %1。 + Birliklerimiz %1 sektörünü ele geçirdi + Nossas forças capturaram %1. + 아군이 거점 %1 을 점령중입니다. + Naše jednotky zabraly %1. + + + SECTOR ATTACKED + SECTEUR ATTAQUE + SEKTOR ANGEGRIFFEN + SECTOR ATACADO + СЕКТОР АТАКОВАН + SETTORE SOTTO ATTACCO + 战区遭到攻击 + 戰區遭到襲擊 + SEKTÖR SALDIRI ALTINDA + SETOR ATACADO + 거점 공격 + SEKTOR POD ÚTOKEM + + + Hostiles forces are attacking %1! + Des forces hostiles attaquent %1! + Gegnerische Truppen greifen %1 an! + Fuerzas hostiles están atacando %1 + Вражеские силы атакуют %1! + Forze ostili attaccano %1! + 敌军部队正在进攻%1! + 敵軍正在進攻 %1! + Düşman birlikleri %1 sektörüne saldırıyor! + Forças hostis estão atacando %1! + 적군이 거점 %1 을 공격합니다! + Nepřátelské jednotky útočí na %1! + + + SECTOR LOST + SECTEUR LOST + SEKTOR VERLOREN + SECTOR PERDIDO + СЕКТОР ПОТЕРЯН + SETTORE PERSO + 战区已丢失 + 已失去戰區 + SEKTÖR KAYBEDİLDİ + SETOR PERDIDO + 거점 상실 + SEKTOR ZTRACEN + + + We have lost control over %1! + Nous avons perdu le contrôle de %1! + Wir haben die Kontrolle über %1 verloren! + Hemos perdido el control sobre %1! + Мы потеряли контроль над %1! + Abbiamo perso il controllo di %1! + 我们失去了%1的控制权! + 我們失去了 %1 ! + %1 sektöründeki hakimiyetimizi kaybettik! + Perdemos controle de %1! + 아군이 거점 %1 을 상실하였습니다! + Ztratil jsi kontrolu nad %1! + + + SECTOR SAFE + SECTEUR SECURISE + SEKTOR SICHER + SECTOR SEGURO + СЕКТОР В БЕЗОПАСНОСТИ + SETTORE AL SICURO + 战区已安全 + 戰區已安全 + SEKTÖR GÜVENDE + SETOR SEGURO + 거점 방어 성공 + SEKTOR ZABEZPEČEN + + + %1 is no longer under threat. + %1 n'est plus menacé(e). + %1 ist außer Gefahr. + %1 ya no está bajo amenaza. + %1 больше не под угрозой. + %1 non è più sotto attacco. + %1脱离了危险。 + %1 脫離了危險。 + %1 artık tehdit altında değil. + %1 não está mais sob ameaça. + 거점 %1 이 안정화 되었습니다. + %1 už není v nebezpečí. + + + NEW FOB BUILT + NOUVELLE FOB + NEUE FOB GEBAUT + NUEVA FOB CONSTRUIDA + НОВАЯ FOB ПОСТРОЕНА + NUOVA FOB COSTRUITA + 新的前哨部署完成 + 新的前線基地佈署完畢 + YENİ FOB KURULDU + NOVA FOB CONSTRUÍDA + 신규 전초기지 설치 + POSTAVENO NOVÉ FOB + + + FOB %1 is now operational. + La FOB %1 est opérationnelle. + FOB %1 nun funktionsfähig. + La FOB %1 es operacional + FOB %1 теперь действует. + La FOB %1 è operativa. + %1前哨现已入役。 + 前線基地 %1 已啟用。 + FOB %1 artık hazır. + FOB %1 está operacional. + 전초기지 %1 를 설치 할 수 있습니다. + FOB %1 je nyní dostupné + + + FOB SAFE + FOB SECURISEE + FOB SICHER + FOB SEGURA + FOB В БЕЗОПАСНОСТИ + FOB AL SICURO + 前哨已安全 + 前線基地已安全 + FOB GÜVENDE + FOB SEGURA + 전초기지 안전 + FOB ZABEZPEČENO + + + FOB %1 is no longer under threat. + La FOB %1 n'est plus menacée. + FOB %1 ist außer Gefahr. + FOB %1 ya no está bajo amenaza + FOB %1 больше не находится под угрозой. + La FOB %1 non è più in pericolo. + %1前哨脱离了危险。 + 前線基地 %1 已脫離危險。 + FOB %1 artık tehdit altında değil. + FOB %1 não está mais sob ameaça. + 전초기지 %1 이 안정화 되었습니다. + FOB %1 už není v nebezpečí + + + FOB ATTACKED + FOB ATTAQUEE + FOB ANGEGRIFFEN + FOB ATACADA + FOB АТАКОВАНА + FOB SOTTO ATTACCO + 前哨遭到攻击 + FOB SALDIRI ALTINDA + FOB ATACADA + 전초기지 방어중 + FOB POD ÚTOKEM + + + FOB %1 is under attack! + La FOB %1 est attaquée ! + FOB %1 wird angegriffen ! + FOB %1 está bajo ataque! + FOB %1 атакована! + la FOB %1 è sotto attacco! + %1前哨受到了攻击! + 前線基地 %1 受到攻擊! + FOB %1 Saldırı altında + FOB %1 está sob ataque! + 전초기지 %1 이 공격받고 있습니다. + FOB %1 pod útokem! + + + FOB DESTROYED + FOB DETRUITE + FOB ZERSTÖRT + FOB DESTRUIDA + FOB УНИЧТОЖЕНА + FOB DISTRUTTA + 前哨被摧毁 + 前線基地被摧毀 + FOB YOK EDİLDİ + FOB DESTRUÍDA + 전초기지 파괴 + FOB ZNIČENO + + + FOB %1 has been destroyed! + La FOB %1 a été détruite ! + FOB %1 wurde zerstört! + La FOB %1 ha sido destruida! + FOB %1 была уничтожена! + La FOB %1 è stata distrutta! + %1前哨被摧毁了! + FOB %1 yok edildi! + FOB %1 foi destruída! + 전초기지 %1 이 파괴되었습니다! + FOB %1 bylo zničeno + + + HOSTILE FORCES INCOMING + FORCES HOSTILES EN APPROCHE + GEGNERISCHE TRUPPEN TREFFEN EIN + FUERZAS HOSTILES ACERCÁNDOSE + ПОДХОДЯТ ВРАЖЕСКИЕ СИЛЫ + FORZE OSTILI IN ARRIVO + 敌军部队接近中 + 敵軍靠近中 + DÜŞMAN BİRLİKLERİ YOLDA + FORÇAS HOSTIS A CAMINHO + 적군 접근중 + NEPŘÁTELSKÉ JEDNOTKY PŘICHÁZEJÍ + + + Hostile forces spotted near %1. + Forces hostiles repérées près de %1. + Gegnerische Truppen nahe %1 gesichtet. + Fuerzas hosstiles avistadas cerca de %1 + Вражеские силы замечены около %1. + Forze ostili avvistate vicino %1 + %1附近发现了敌军部队。 + %1 附近發現了敵方的部隊 + Düşman birlikleri %1 yakınlarında göründü. + Forças hostis identificadas nas proximidades de %1. + %1 근처에 적군이 발견되었습니다! + Nepřátelské jednotky spatřeny poblíž %1 + + + NEW INTELLIGENCE + NOUVEAUX RENSEIGNEMENTS + NEUE INFORMATIONEN + NUEVA INTELIGENCIA + НОВЫЕ РАЗВЕДДАННЫЕ + NUOVO INTEL + 新情报 + 新情報 + YENİ İSTİHBAHRAT + NOVA INTELIGÊNCIA + 적군에 대한 새로운 정보 + NOVÉ INFORMACE + + + Hostile FOB near %1. + FOB hostile près de %1. + Gegnerische FOB nahe %1. + FOB hostil cerca de %1 + Вражеская FOB около %1. + FOB ostile vicino %1. + %1附近发现了敌军前哨。 + %1 附近發現了敵方的前線基地。 + Düşman FOB'si %1 yakınlarında. + FOB hostil nas proximidades de %1. + 적군 전초기지 %1 가 근처에 있습니다! + Nepřátelské FOB poblíž %1. + + + We have interrogated a prisoner. + Nous avons interroger un prisonnier. + Wir haben einen Gefangenen verhört. + Hemos interrogado a un prisionero. + Мы допросили пленного. + Abbiamo interrogato il prigioniero. + 我们审讯了一名战犯。 + 我們審問了一名俘虜。 + Bir tutsağı başarıyla sorguladık. + Interrogamos um prisioneiro. + 포로를 심문하여 정보를 획득하였습니다. + Vyslechl jsi zajatce + + + We have found secret documents. + Nous avons trouvé des documents secrets + Wir haben geheime Dokumente gefunden. + Hemos encontrado documentos secretos + Мы нашли секретные документы. + Abbiamo trovato dei documenti segreti. + 我们找到了机密文件。 + 我們找到了機密文件。 + Gizli dosyalar bulduk. + Localizamos documentos secretos. + 적군 비밀문서를 획득하였습니다. + Našel jsi tajné dokumenty. + + + SECONDARY OBJECTIVE + OBJECTIF SECONDAIRE + SEKUNDÄRZIEL + OBJETIVO SECUNDARIO + ДОПОЛНИТЕЛЬНАЯ ЗАДАЧА + OBIETTIVI SECONDARI + 次要目标 + 次要任務 + İKİNCİL GÖREV + OBJETIVO SECUNDÁRIO + 부차적인 임무 + VEDLEJŠÍ ÚKOL + + + Hostile FOB destroyed + FOB hostile détruite. + Gegnerische FOB zerstört. + FOB hostil destruída + Вражеская FOB уничтожена + FOB ostile distrutta. + 敌军前哨已摧毁 + 敵方前線基地已遭摧毀 + Düşman FOB'si yok edildi. + FOB hostil destruída + 적군 전초기지가 파괴됨 + Nepřátelské FOB zničeno. + + + HOSTILE REINFORCEMENTS + RENFORTS HOSTILES + GEGNERISCHER NACHSCHUB + REFUERZOS HOSTILES + ВРАЖЕСКОЕ ПОДКРЕПЛЕНИЕ + RINFORZI OSTILI + 敌军增援 + 敵方增援 + DÜŞMAN TAKVİYE KUVVETLERİ + REFORÇOS HOSTIS + 적의 지원병력 + NEPŘÁTELSKÉ POSILY + + + Hostile forces reinforcing %1. + Forces hostiles en renfort à %1. + Gegnerische Truppen verstärken %1. + Fuerzas hostiles reforzando %1 + Вражеские подкрепления подходят к %1. + Forze ostili rinforzano le truppe su %1 + 敌军部队正在向%1增援。 + 敵軍正在向 %1 增援。 + Düşmanlar %1 tarafına takviye kuvvet yolladılar. + Forças hostis reforçando %1. + %1 로 적군의 지원병력이 이동중입니다! + Nepřátelsky posily v %1. + + + == MISSION OPTIONS == + == OPTIONS DE MISSION == + == MISSIONSEINSTELLUNGEN == + == OPCIONES DE MISIÓN == + == ОПЦИИ МИССИИ == + == OPZIONI MISSIONE == + == 任务选项 == + == 任務選項 == + == GÖREV AYARLARI == + == OPÇÕES DA MISSÃO == + == 미션 옵션 == + == MOŽNOSTI MISE == + + + == GAMEPLAY OPTIONS == + == SPIELEINSTELLUNGEN == + == OPCIONES DE JUEGO + == ИГРОВЫЕ ОПЦИИ == + ==OPZIONI DI GIOCO == + == 游戏选项 == + == 遊戲選項 == + == OYNANIŞ AYARLARI == + == OPÇÕES DE JOGO == + == 게임플레이 옵션 == + == HERNÍ MOŽNOSTI == + + + == TECHNICAL OPTIONS == + == OPTIONS TECHNIQUES == + == TECHNISCHE EINSTELLUNGEN == + == OPCIONES TÉCNICAS == + == ТЕХНИЧЕСКИЕ ОПЦИИ == + ==OPZIONI TECNICHE == + == 技术选项 == + == 技術選項 == + == TEKNİK AYARLAR == + == OPÇÕES TÉCNICAS == + == 기술 옵션 == + == TECHNICKÉ MOŽNOSTI == + + + Day duration (hours) + Durée du jour (heures) + Länge eines Tages (Stunden) + Duración del día (horas) + Продолжительность дня (часов) + Durata del giorno (In ore) + 每日时长(小时) + 美日時長(單位:小時) + Gün uzunluğu (saat) + Duração do dia (horas) + 1일기간설정(시간) + Délka dne (hodiny) + + + Difficulty + Difficulté + Schwierigkeit + Dificultad + Сложность + Difficoltà: + 难度 + 困難度 + Zorluk + Dificuldade: + 난이도 + Obtížnost + + + Tourist + Touriste + Tourist + Turista + Турист + Turista + 观光 + 觀光客 + Turist + Turista + 연습 + Procházka + + + Easy + Facile + Einfach + Fácil + Легко + Facile + 简单 + 簡單 + Kolay + Fácil + 쉬움 + Jednoduchá + + + Normal + Normal + Normal + Normal + Нормально + Normale + 正常 + 正常 + Normal + Normal + 보통 + Normální + + + Moderate + Modérée + Moderat + Moderado + Посложнее + Moderato + 适中 + 適中 + Orta + Moderada + 어려움 + Obtížný + + + Hard + Difficile + Schwer + Difícil + Сложно + Difficile + 困难 + 困難 + Zor + Difícil + 조금 어려움 + Těžký + + + Extreme + Extrême + Extrem + Extremo + Экстремально + Estremo + 极难 + 極難 + Uçta + Extrema + 매우 우려움 + Extrémní + + + Ludicrous + Affolante + Wahnsinnig + Ridículo + Абсурдный + Ridicolo + 荒谬 + 荒謬 + Saçmalık + Absurda + 터무니없이어려움 + Nemožný + + + Oh god oh god we're all gonna die + Oh mon dieu on va tous mourir + Oh mein Gott, wir werden alle sterben! + Oh dios mío, vamos a morir! + Боже мой, мы все умрём! + Oh dio, stiamo per morire! + 天啦噜作死啦 + 菩薩救救我! + Hepimiz ölücez! + Ah meu Deus, vamos morrer! + 우리 모두가 죽게 될 운명 + Ó můj bože, všichni umřeme + + + Manage AI Skill + Administrar dificultad de IA + Управлять сложностью ботов + 管理AI能力 + 管理 AI 能力 + Livello Difficoltà AI + AI Yeteneklerini düzenle + Gerir nível de habilidade da IA + AI 능력치 + Nastavení obtížnosti AI + + + Resources multiplier + Multiplicateur de resources + Ressourcenmultiplikator + Multiplicador de recursos + Множитель ресурсов + Moltiplicatore di risorse + 资源乘数 + 資源乘數 + Kaynak arttırıcı çarpan + Multiplicador de recursos + 군수물자 생산 비율 + Násobitel zdrojů + + + Stamina + Stamina + Ausdauer + Estamina + Усталость + Stamina + 体力 + 體力 + Stamina + Vigor (stamina) + 체력 + Výdrž + + + Introduction + Introduction + Einführung + Introducción + Введение + Introduzione + 开场动画 + 開場動畫 + Tanıtım + Introdução + 소개 영상 + Úvod + + + Deployment cinematic + Cinématique de déploiement + Zwischensequenz bei Einsatz + Cinemática de comienzo + Кино во время размещения + Filmato di Schieramento + 部署动画 + 佈署動畫 + Başlangıç sinematiği + Introdução cinemática de mobilização + 배포 영상 + Filmové scéna + + + Enabled + Activé + Aktiviert + Activado + Вкл + Attivo + 开启 + 開啟 + Açık + Ativado + 활성화 + Zapnuto + + + Disabled + Désactivé + Deaktiviert + Desactivado + Выкл + Disattivato + 关闭 + 關閉 + Kapalı + Desativado + 비활성화 + Vypnuto + + + Start the campaign with the first FOB already built + Commencer la campagne avec une première FOB déjà construite + Starte die Kampagne mit einer bereits gebauten FOB + Comenzar la campaña con la primera FOB ya construída + Начать кампанию, когда первая FOB размещена + Comincia la campagna costruendo la prima FOB + 部署起始前哨 + 佈署起始前線基地 + Oyunu ilk FOB kurulu olarak başlatır + Iniciar a campanha com a primeira FOB já construída + 이미 설치된 전초기지에서 시작하기 + Spustit kampaň s postaveným prvním FOB + + + Yes + Oui + Ja + Si + Да + Si + + + Evet + Sim + + Ano + + + No + Non + Nein + No + Нет + NO + + + Hayır + Não + 아니요 + Ne + + + Maximum amount of AI units + Quantité maximum d'unités IA + Maximale Anzahl KI-Einheiten + Cantidad máxima de unidades de IA + Максимальное количество единиц AI + Numero massimo di unità AI + AI单位最大数量 + AI 單位最大數量 + AI birlik sınırı + Quantidade máxima de unidades IA + AI개체 최대값 + Maximální počet AI jednotek + + + 50% - Recommended for local hosting + 50% - Recommandé pour un hébergement local + 50 % - Empfohlen für lokal gehostete Spiele + 50% - Recomendado para host local + 50% - Рекомендуется для локального хостинга + 50% - Raccomandato per host locali + 50% - 适用于本地主机 + 50% - 適合本地 HOST 遊戲使用 + 50% - Yerel sunucu için uygun + 50% - Recomendado para hospedagem local + 50% - 서버 실행 및 게임을 1대에서 실행할때 권장 + 50% - Doporučeno pro lokální hraní + + + 75% - Dedicated server recommended + 75% - Serveur dédié recommandé + 75 % - Dezidierter Server empfohlen + 75% - Recomendado para servidor dedicado + 75% - Выделенный сервер рекомендуется + 75% - Raccomandato per server dedicati + 75% - 适用于服务器 + 75% - 適合伺服器使用 + 75% - Dedicated sunucu için önerilen + 75% - Recomendado para servidor dedicado + 75% - 전용서버에서 실행할때 권장 + 75% - Doporučeno pro dedikované servery + + + 100% - Dedicated server recommended + 100% - Serveur dédié recommandé + 100 % - Dezidierter Server empfohlen + 100% - Recomendado para servidor dedicado + 100% - Выделенный сервер рекомендуется + 100% - Raccomandato per server dedicati + 100% - 适用于服务器 + 100% - 適合伺服器使用 + 100% - Dedicated sunucu için önerilen + 100% - Recomendado para servidor dedicado + 100% - 전용서버에서 실행할때 권장 + 100% - Doporučeno pro dedikované servery + + + 125% - Dedicated server with headless client recommended + 125% - Serveur dédié avec headless client recommandé + 125 % - Dezidierter Server mit Headless Client empfohlen + 125% - Recomendado para servidor dedicado con cliente descabezado + 125% - Выделенный сервер вместе с headless client рекомендуется + 125% - Raccomandato per server dedicati con headless client + 125% - 适用于有Headless Client辅助的服务器 + 125% - 適合有無頭客戶端的伺服器使用 + 125% - Headless client'e sahip dedicated sunucu için önerilen + 125% - Recomendado para servidor com headless client + 125% - 단일 CPU의 헤드리스서버(다른PC와 사용자에게 서비스를 제공하는 서버종류)에서 실행할때 권장 + 125% - Doporučeno pro dedikované servery s Headless klienty + + + 150% - Dedicated server with headless client recommended + 150% - Serveur dédié avec clients headless multiples recommandé + 150 % - Dezidierter Server mit Headless Client empfohlen + 150% - Recomendado para servidor dedicado con múltiples clientes descabezados + 150% - Выделенный сервер вместе с несколькими headless client рекомендуется + 150% - Raccomandato per server dedicati con molti headless client + 150% - 适用于有多个Headless Client辅助的服务器 + 150% - 適合有多個無頭客戶端的伺服器使用 + 150% - Birkaç headless client'e sahip dedicated sunucu için önerilen + 150% - Recomendado para servidor com mútiplos headless clients + 150% - CPU 2개 이상, 또는 다중 헤드리스서버에서 실행할때 권장 + 150% - Doporučeno pro dedikované servery s vícero Headless klienty + + + 200% - Dedicated server with multiple headless clients recommended + 200% - Serveur dédié avec clients headless multiples recommandés + 200 % - Dezidierter Server mit mehreren Headless Clients empfohlen + 200% - Recomendado para servidor dedicado con múltiples clientes descabezados + 200% - Выделенный сервер вместе с несколькими headless client рекомендуется + 200% - Raccomandato per server dedicati con tanti headless client + 200% - 适用于有多个Headless Client辅助的服务器 + 200% - 適合有多個無頭客戶端的伺服器使用 + 200% - Birkaç headless client'e sahip dedicated sunucu için önerilen + 200% - Recomendado para servidor com mútiplos headless clients + 200% - CPU 2개 이상, 또는 다중 헤드리스서버에서 실행할때 권장 + 200% - Doporučeno pro dedikované servery s vícero Headless klienty + + + Civilian activity + Activité civile + Zivile Aktivität + Actividad civil + Гражданская активность + Attività dei civili + 平民存在感 + 平民活動程度 + Sivil aktivitesi + Atividade Civil + 민간인 활동 정도 + Aktivita civilistů + + + None + Aucune + Keine + Ninguna + Нету + Nessuna + + 無(關閉平民活動) + Hiç + Nenhuma + 없음 + Žádná + + + Reduced + Réduite + Reduziert + Reducida + Снижена + Ridotta + 较少 + 較少 + Düşük + Reduzida + 작음 + Snížená + + + Normal + Normale + Normal + Normal + Нормальная + Normale + 正常 + 正常 + Normal + Normal + 보통 + Normální + + + Increased + Augmentée + Erhöht + Aumentada + Увеличенная + Aumentata + 较多 + 較多 + Arttırılmış + Aumentada + 많음 + Zvýšená + + + Warning: friendly fire + Attention: tirs alliés + Achtung: Eigenbeschuss + Atención: fuego amigo + Предупреждение: дружественный огонь + Attenzione: fuoco amico + 警告:误击友军 + 警告:誤擊友軍 + Dikkat: dost ateşi + Atenção: Fogo amigo + 경고: 아군 공격 + Varování: Střelba do vlastních řad + + + Hostile presence adapts to player count + La présence hostile s'adapte au nombre de joueurs + Feindpräsenz passt sich der Spielerzahl an + Adaptar presencia hostil según la cantidad de jugadores + Вражеские силы адаптируются к количеству игроков + presenza ostile adattata al numero dei giocatori + 随玩家数量调整敌军活动 + 隨玩家數量調整敵人活動程度 + Düşman birlikleri oyuncu sayısına göre adapte olur + Adaptar presença hostil de acordo com a quantidade de jogadores + 플레이어수에 따른 적군 활동 조절 + Počet nepřátel se adaptuje na počet hráčů + + + Infantry units + Unités d'infanterie + Infanterie + Unidades de infantería + Пехота + Unità di fanteria + 步兵单位 + 步兵單位 + Yaya birimler + Unidades de infantaria + 보병 부대 + Pěchota + + + Light vehicles + Véhicules légers + Leichte Fahrzeuge + Vehículos ligeros + Легкая техника + Veicoli Leggeri + 轻型载具 + 輕型載具 + Hafif araçlar + Veículos leves + 전투 차량 + Lehká vozidla + + + Armored vehicles + Vehicules blindés + Gepanzerte Fahrzeuge + Vehículos blindados + Бронированная техника + Veicoli Blindati + 装甲载具 + 裝甲載具 + Zırhlı araçlar + Veículos blindados + 장갑 차량 + Obrněná vozidla + + + Air vehicles + Véhicules aériens + Luftfahrzeuge + Vehículos aéreos + Авиационная техника + Veicoli Aerei + 空中载具 + 空中載具 + Hava araçları + Veículos aéreos + 항공기 + Letectvo + + + Static defenses + Defenses statiques + Statische Verteidigung + Defensas estáticas + Стационары + Difese statiche + 固定防御 + 固定式防禦 + Statik savunmalar + Defesas estáticas + 방어 무기 + Statické zbraně + + + Buildings + Batiments + Gebäude + Edificios + Постройки + Edifici + 建筑工事 + 建築工事 + Yapılar + Construções + 건설 물품 + Budovy + + + Logistics + Logistique + Logistik + Logística + Логистика + Logistica + 后勤 + 後勤 + Lojistik + Logística + 후방보급부대 + Logistika + + + Infantry squads + Escouades d'infanterie + Infanteriegruppen + Escuadras de infantería + Пехотные отделения + Squadra Fanteria + 步兵班 + 步兵班 + Piyade timleri + Grupos de combate de infantaria + 보병 분대 + Pěchotní Družstva + + + Active Sectors: + Secteurs Actifs : + Aktive Sektoren: + Sectores activos: + Активные Секторы: + Settori Attivi: + 活动中的战区: + 觸發中的戰區: + Aktif Sektörler: + Setores ativos: + 활성화된 거점 : + Aktivní sektory: + + + The unitcap setting has been exceeded and further sector activation is temporarily halted. You can now see the list of currently active sectors where you shall concentrate your efforts. + La limite d'unités actives a été dépassée et l'activation de nouveaux secteurs est temporairement stoppée. Vous pouvez maintenant voir la liste des sectors déjà actifs sur lesquels vous pouvez concentrer vos efforts. + Maximale Anzahl KI-Einheiten erreicht. Es können keine weitere Zonen aktiviert werden. Du kannst nun die Liste der aktiven Gebiete sehen, auf die du deine Kraft fokussieren solltest. + El límite de unidades activas se ha excedido, por lo que la activación de sectores queda temporalmente paralizada. Ahora puedes ver la lista de sectores activos donde concentrar tus esfuerzos + Превышено ограничение по количеству ботов в настройках миссии и активация секторов временно приостановлена. Теперь вы можете увидеть список активных в данный момент секторов, где вы должны сконцентрировать свои усилия. + L'impostazione unitcap è stata superata e l'attivazione di ulteriori settori è interrotta temporaneamente. Ora è possibile visualizzare l'elenco dei settori attualmente attivi in ​​cui si devono concentrare i vostri sforzi. + 已达到单位上限,暂停其他战区的激活。你可以通过活动中的战区列表查看并确立主攻地区。 + 敵人生成數量已達單位上限,系統將暫時停止其他戰區的敵軍觸發功能;你可以通過觸發中的戰區來查看並確定想主要進攻的戰區。 + Birim sınırı aşıldığı için sektör aktivasyonu geçici olarak durduruldu. Şuan, ilgilenmeniz gereken aktif sektörler listesini görebilirsiniz. + O limite de unidades foi excedido e a ativação de outros setores foi temporariamente pausada. Você pode ver a lista de setores ativos onde deverá concentrar seus esforços. + 아군 또는 적 유닛의 총량이 한계치에 도달했습니다. 이 제한이 풀릴 때까지 더 이상 거점 활성화는 중단됩니다. 플레이어들은 현재 활성화된 거점만 점령할 수 있고, 그 거점들에 집중해야 합니다 + Překročen limit jednotek a bylo dočasně pozastaveno aktivování dalších sektorů. Nyní můžete vidět seznam aktivních sektorů na které by jste se měly soustředit. + + + LOCKED BY + VEROUILLE PAR + VERSCHLOSSEN VON + BLOQUEADO POR + ЗАБЛОКИРОВАНО + BLOCCATO DA + 锁定于 + 鎖定於 + TARAFINDAN KİLİTLİ + BLOQUEADO POR + 차량 잠금 + ZAMČENO OD + + + UNLOCKED BY + DEVEROUILLE PAR + GEÖFFNET VON + DESBLOQUEADO POR + РАЗБЛОКИРОВАНО + SBLOCCATO DA + 解锁于 + 解鎖於 + TARAFINDAN KİLİDİ AÇILDI + DESBLOQUEADO POR + 차량잠금해제 + ODEMKNUTO OD + + + SQUAD MANAGEMENT + GESTION D'ESCOUADE + GRUPPENVERWALTUNG + GESTIÓN DE ESCUADRA + УПРАВЛЕНИЕ ОТРЯДОМ + GESTIONE SQUADRA + 班组管理 + 班級管理 + TİM YÖNETİMİ + GESTÃO DO GRUPO DE COMBATE + 분대관리(AI) + SPRÁVA DRUŽSTVA + + + -- SQUAD MANAGEMENT + -- GESTION D'ESCOUADE + -- GRUPPENVERWALTUNG + -- GESTIÓN DE ESCUADRA + -- УПРАВЛЕНИЕ ОТРЯДОМ + -- GESTIONE SQUADRA + -- 班组管理 + -- 班級管理 + -- TİM YÖNETİMİ + -- GESTÃO DO GRUPO DE COMBATE + -- 분대원관리(AI) + -- SPRÁVA DRUŽSTVA + + + Replace + Remplacer + Ersetzen + Reemplazar + Заменить + Sostituisci + 附身 + 取代 + Değiştir + Substituir. + 분대원 교체 + Nahradit + + + You will deploy on the selected squad member and replace them while keeping your current loadout. + Vous allez vous déployer à la place du member d'escouade selectionné tout en conservant votre équipement actuel. + Du wirst das ausgewählte Gruppenmitglied ersetzen, während du deine Ausrüstung behältst. + Reaparecerás en el miembro de la escuadra seleccionado, manteniendo tu equipación actual + Вы будете развернуты на выбранном члене группы, и замените его, сохранив вашу экипировку. + Verrai schierato sul membro della squadra selezionata e lo rimpiazzerai mantenendo il loadout corrente. + 你将附身到所选班组成员身上并保留你当前的装备 + 你將使用你目前的身上裝備並取代選定的班級成員。 + Şuanki ekipmanınız ile seçilen kişinin yerinde doğacaksınız. + Você irá reaparecer no membro selecionado e o substituir enquanto mantém seu equipamento atual. + Budeš nasazen na místo člena družstva a nahradíš ho se svým aktuálním vybavením. + + + Remove + Supprimer + Entfernen + Suprimir + Удалить + Rimuovi + 移除 + 移除 + Kaldır + Remover + Odstranit + + + The selected squad member will be deleted. + Le membre d'escouade sélectionné sera supprimé. + Das ausgewählte Gruppenmitglied löschen. + El miembro de la escuadra seleccionado será eliminado + Выбранный член группы будет удалён. + Il soldato attualmente selezionato è stato rimosso + 所选班组成员将会被移除。 + 所選的班級成員將被移除 + Seçilen tim üyesi silinecektir. + O membro selecionado será deletado + Vybraný člen družstva bude odstraněn + + + Resupply + Réapprovisionner + Versorgen + Reabastecer + Переснарядить + Riapprovvigionamento + 补给 + 補給 + Erzak Yenile + Reabastecer + Přezbrojit + + + If the selected squad member is close enough from a resupply point (mobile spawn or FOB) they will get a brand new, full loadout. + Si le membre d'escouade sélectionné est assez près d'un point d'approvisionnement (spawn mobile ou FOB) il recevra un nouvel équipement complet. + Wenn das gewählte Gruppenmitglied nahe genug bei einem Versorgungspunkt (mobiler Spawn oder FOB) ist, erhält es eine brandneue, vollständige Ausrüstung + Si el miembro de la escuadra se encuentra cerca de un punto de abastecimiento (spawn móvil o FOB) obtendrá el equipamiento completo nuevo + Если выбранный член группы будет около FOB или КШМ, он получит новую и полную экипировку. + Se il membro di una squadra è nei pressi di una FOB o Respwan Mobile potrà ricaricare il suo loadout. + 如果选择的班组成员距离补给点(机动复活点或前哨)够近时,他们将获得一套全新完整的装备。 + 如果選定的班級乘員距離補給點(機動重生點或前線基地)夠近時,他們將獲得一套全新的完整裝備。 + Seçilen tim üyesi herhangi bir mühimmat tazeleme noktasına yakın ise (mobil respawn veya FOB) üstündeki herşey yenileyecektir. + Se o membro selecionado estiver próximo o suficiente de um ponto de reabastecimento (respawn móvel ou FOB), irá adquirir um novo loadout. + 선택한 분대원을 배치하고, 현재 분대를 유지하면서 교체할 수 있습니다. + Pokud je jednotka dostatečně blízko zásobovacímu bodu (mobilní spawn nebo FOB) pak dostane novou celou výzbroj. + + + Confirm + Confirmer + Bestätigen + Confirmar + Подтвердить + Conferma + 确认 + 確認 + Onayla + Confirmar + 확인 + Potvrdit + + + Health: + Santé : + Leben: + Salud: + Здоровье: + Salute: + 血量: + 血量: + Sağlık: + Saúde: + 건강: + Životy: + + + Distance: + Distance : + Distanz: + Distancia: + Дистанция: + Distanza: + 距离: + 距離: + Uzaklık: + Distância: + 거리: + Vzdálenost: + + + Primary + Principale + Primär + Principal + Основное + Primaria + 主要 + 主要 + Birincil + Primária + 주무기 + Primární + + + Secondary + Secondaire + Sekundär + Secundaria + Дополнительное + Secondaria + 次要 + 次要 + İkincil + Secundária + 보조무기 + Sekundární + + + None + Aucune + Keine + Ninguno + Нет + Nessuno + + + Hiçbiri + Nenhum + 없음 + Žádný + + + Driver + Conducteur + Fahrer + Conductor + Водитель + Guidatore + 驾驶员 + 駕駛 + Sürücü + Motorista + 운전수 + Řidič + + + Gunner + Tireur + Schütze + Artillero + Стрелок + Artigliere + 炮手 + 砲手 + Taretçi + Atirador + 포수 + Střelec + + + Commander + Commandant + Kommandant + Comandante + Командир + Comandante + 车长 + 車長 + Kumandan + Comandante + 지휘관 + Velitel + + + Passenger + Passager + Passagier + Pasajero + Пассажир + Passeggero + 乘客 + 乘客 + Yolcu + Passageiro + 승객 + Pasažér + + + Squad deploy + Déploiement d'escouade + Gruppeneinsatz + Despliegue de escuadra + Мобилизовать отряд + Schieramento Squadra + 班组部署 + 班級佈署 + Tim çıkar + Mobilizar Grupo de Combate + 분대 배치 + Výsadek družstva + + + You have deleted the selected squad member. + Vous avez supprimé le membre de l'escouade sélectionné. + Du hast das ausgewählte Gruppenmitglied gelöscht. + Has eliminado al miebro de la escuadra. + Вы удалили выбранного члена группы. + Hai eliminato il membro della squadra selezionato. + 所选班组成员已移除。 + 所選的班級乘員已移除。 + Seçilen tim üyesini sildiniz. + Você deletou o membro selecionado. + 선택된 분대원을 해산시킵니다. + Odstranili jste vybraného člena družstva. + + + The selected squad member has been resupplied. + Le membre de l'escouade sélectionné a été réapprovisionné. + Das ausgewählte Gruppenmitglied wurde versorgt. + El miembro seleccionado de la escuadra ha sido reamunicionado + Выбранный член группы был переснаряжён. + Il membro della squadra selezionato è stato rifornito + 所选班组成员已补给。 + 所選的班級成員以補給。 + Seçilen tim üyesinin mühimmatı yenilendi. + O membro selecionado do grupo se remuniciou. + 선택된 분대원이 재정비 하었습니다. + Přezbrojily jste vybraného člena družstva. + + + The selected squad member isn't close enough from a FOB or mobile spawn. + Le membre de l'escouade sélectionné n'est pas assez proche d'une FOB ou d'un spawn mobile. + Das ausgewählte Gruppenmitglied ist nicht nahe genug an einer FOB oder an einem mobilen Spawn. + El miembro seleccionado de la escuadra no está suficientemente cerca de una FOB o spawn móvil. + Выбранный член группы находится далеко от КШМ или FOB + Il membro della squadra non è sufficentemente vicino alla FOB o Respawn Mobile. + 所选班组成员距离前哨或机动复活点太远。 + 所選的班級成員距離前線基地或機動重生點太遠。 + Seçilen tim üyesi bir FOB veya mobil spawn noktasına yakın değil. + O membro selecionado do grupo não está próximo o suficiente de uma FOB ou respawn móvel. + 선택된 분대원이 전초기지 또는 재투입차량에 가까이 있지 않습니다. + Vybraný člen družstva není dostatečně blízko k FOB nebo mobilnímu spawnu. + + + PERMISSIONS MANAGEMENT + GESTION DES PERMISSIONS + Rechteverwaltung + GESTIÓN DE PERMISOS + УПРАВЛЕНИЕ РАЗРЕШЕНИЯМИ + GESTIONE PERMESSI + 权限管理 + 權限管理 + YETKİ YÖNETİMİ + GESTÃO DE PERMISSÕES + 사용 권한 설정 + MANAŽER PRAVOMOCÍ + + + Light vehicles + Véhicules légers + Leichte Fahrzeuge + Vehículos ligeros + Лёгкая техника + Veicoli Leggeri + 轻型载具 + 輕型載具 + Hafif araçlar + Veículos leves + 전투 차량 + Lehká vozidla + + + Armored vehicles + Véhicules blindés + Gepanzerte Fahrzeuge + Vehículos blindados + Бронированная техника + veicoli Blindati + 装甲载具 + 裝甲載具 + Zırhlı araçlar + Veículos blindados + 장갑 차량 + Obrněná vozidla + + + Air vehicles + Véhicules aériens + Luftfahrzeuge + Vehículos aéreos + Авиация + Aerei + 空中载具 + 空中載具 + Hava araçları + Veículos aéreos + 항공기 + Letectvo + + + Construction + Construction + Konstruktionen + Construcción + Постройка + Costruzione + 建造 + 建造 + İnşaat + Construção + 건설 + Stavění + + + Recycling + Recyclage + Wiederverwerten + Reciclar + Утилизация + Riciclaggio + 回收 + 回收 + Geri dönüşüm + Reciclando + 재활용 + Recyklování + + + Others + Autres + Andere + Otros + Остальное + Altro + 其它 + 其他 + Diğer + Outros + 기타 + Ostatní + + + All + Toutes + Alle + Todos + Все + Tutto + 全部 + 全部 + Hepsi + Todos + 전체 + Vše + + + None + Aucune + Keine + Ninguno + Сбросить + Nessuno + + + Hiçbiri + Nenhum + 없음 + Nic + + + Allows the player to operate light vehicles as driver and gunner. + Autorise le joueur à utiliser les véhicules légers en tant que conducteur ou tireur. + Erlaubt es dem Spieler, leichte Fahrzeuge als Fahrer und Schütze zu bedienen. + Permite al jugador utilizar vehículos ligeros como conductor y artillero + Позволяет игроку использовать легкую технику в качестве водителя или стрелка. + Permetti al giocatore di entrare nei veicoli leggeri come guidatore e artigliere + 允许玩家进入轻型载具的驾驶和炮手位。 + 允許玩家進入輕型載具的駕駛與砲手位置。 + Oyuncunun hafif araçları sürücü veya taretçi olarak kullanmasına olanak verir. + Permite ao jogador operar veículos leves como condutor e atirador. + 플레이어가 전투 차량을 사용할 수 있는 권한를 허가 합니다. + Povolí hráči operovat s lehkými vozidly jako řidič nebo střelec. + + + Allows the player to operate armored vehicles as driver, gunner and commander. + Autorise le joueur à utiliser les véhicules blindés en tant que conducteur, tireur ou commandant. + Erlaubt es dem Spieler, gepanzerte Fahrzeuge als Fahrer, Schütze und Kommandant zu bedienen. + Permite al jugador utilizar vehículos blindados como conductor, artillero y comandante + Позволяет игроку использовать бронированную технику в качестве водителя, стрелка или командира. + Permetti al giocatore di entrare nei veicoli blindati come guidatore e artigliere e comandante + 允许玩家进入装甲载具的驾驶、炮手和车长位。 + 允許玩家進入裝甲載具的駕駛、砲手、車長位置。 + Oyuncunun zırhlı araçları sürücü, komutan veya taretçi olarak kullanmasına olanak verir. + Permite ao jogador operar veículos blindados como condutor, atirador e comandante. + 플레이어가 장갑 차량을 사용할 수 있는 권한를 허가 합니다. + Povolí hráči operovat s obrněnými vozidly jako řidič, střelec a velitel. + + + Allows the player to operate air vehicles as driver and gunner. + Autorise le joueur à utiliser les véhicules aériens en tant que conducteur ou tireur. + Erlaubt es dem Spieler, Luftfahrzeuge als Pilot und Schütze zu bedienen. + Permite al jugador utilizar vehículos aéreos como conductor y artillero + Позволяет игроку использовать авиацию в качестве пилота или стрелка. + Permetti al giocatore di entrare negli aerei come guidatore e artigliere + 允许玩家进入空中载具的驾驶和炮手位。 + 允許玩家進入空中載具的駕駛和砲手位置。 + Oyuncunun bütün hava araçlarını pilot veya taretçi olarak kullanmasına olanak verir. + Permite ao jogador operar veículos aéreos como piloto e atirador. + 플레이어가 항공기를 사용할 수 있는 권한를 허가 합니다. + Povolí hráči operovat s letadly jako řidič a střelec. + + + Allows the player to use the BUILD menu. + Autorise le joueur à utiliser le menu CONSTRUCTION. + Erlaubt es dem Spieler, das Baumenü zu benutzen. + Permite al jugador utilizar el menú de CONSTRUCCIÓN + Позволяет игроку использовать меню постройки. + Permetti al giocatore di Costruire + 允许玩家使用建造菜单 + 允許玩家使用建造選單。 + Oyuncunun İNŞAAT menüsünü kullanmasını sağlar + Permite ao jogador utilizar o menu de CONTRUÇÃO. + 플레이어가 전초기지에서 건설메뉴를 사용할 수 있는 권한를 허가 합니다. + Povolí hráči používat menu STAVĚNÍ. + + + Allows the player to use the RECYCLE action. + Autorise le joueur à utiliser l'action RECYCLER. + Erlaubt es dem Spieler, die "WIEDERVERWERTEN"-Aktion zu benutzen. + Permite al jugador utilizar la acción de RECICLAR + Позволяет игроку утилизировать. + Permetti al giocatore di Riciclare + 允许玩家使用回收功能。 + 允許玩家使用回收功能。 + Oyuncunun geri dönüşüm yapabilmesini sağlar + Permite ao jogador utilizar a ação "RECICLAR". + 플레이어가 필요없는 장비를 재활용할 수 있는 권한를 허가 합니다. + Povolí hráči RECYKLOVAT. + + + Allows the player to use other actions: unflip, resource box manipulation, prisoner capture, etc. + Autorise le joueur à utiliser les autres actions : retournement de véhicule, manipulation des boites de munition, capture de prisoniers, etc. + Erlaubt es dem Spieler, andere Aktionen durchzuführen: Umdrehen, Interaktion mit Munitionskisten, Gefangennahme, usw. + Permite al jugador usar otras acciones: Recolocar vehículo, manipulación de cajas de munición, captura de prisioneros, etc. + Позволяет игроку другие действия: перевернуть, взаимодействие с ящиками, захват заключенных и т.д. + Permetti al giocatore di usare le altre funzioni come , catturare prigionieri,raddrizzare veicoli ecc. + 允许玩家使用其他功能:翻正、货箱控制、俘虏战俘,等等。 + 允許玩家使用其他功能,如:翻正、貨物控制(裝載、卸載、倉儲等)、俘虜戰俘,等等。 + Oyuncunun araçları ters döndürme, sandıkları yönetme, esir yakalama, vb. hareketleri yapabilmesini sağlar. + Permite ao jogador executar outras ações: Desvirar veículo, manipular caixas de recursos, captura de prisioneiros, etc. + 플레이어가 차량을 바로잡거나, 군수물자를 조작하거나 포로를 생포하거나 문서를 획득할 수 있는 권한를 허가 합니다. + Povolí hráči používat funkce jako: převrátit, manipulace s bednami, zajmutí zajatce, atd. + + + Gives all permissions to the player. + Donne toutes les permissions au joueur. + Gibt dem Spieler alle Rechte + Darle todos los permisos al jugador + Выдать все разрешения игроку. + Permetti tutto al giocatore. + 给予玩家所有权限。 + 給予玩家所有權限。 + Oyuncuya bütün yetkileri verir. + Libera todas as permissões para o jogador. + 플레이어에게 모든 권한을 허가 합니다. + Povolí hráči VŠE. + + + Removes all permissions from the player. + Supprime toutes les permissions du joueur. + Nimmt dem Spieler alle Rechte weg. + Quitar todos los permisos al jugador + Убрать все разрешения у игрока. + Rimuovi tutti i permessi al giocatore. + 移除玩家所有权限。 + 移除玩家所有權限。 + Oyuncudan bütün yetkileri alır. + Remove todas as permissões do jogador. + 플레이어의 허가된 권한 사항을 모두 제거합니다. + Zakáže hráči VŠE. + + + -- PERMISSIONS + -- PERMISSIONS + -- RECHTE + -- PERMISOS + -- РАЗРЕШЕНИЯ + -- PERMESSI + -- 权限 + -- 權限 + -- YETKİLER + -- PERMISSÕES + -- 사용 권한 + -- PRAVOMOCE + + + Save Changes + Sauvegarder + Änderungen speichern + Guardar cambios + Сохранить + Salva Modifiche + 保存更改 + 儲存變更 + Değişiklikleri Kaydet + Salvar alterações + 변경사항저장 + Uložit změny + + + Permissions Management + Gestion des Permissions + Rechteverwaltung + Gestión de permisos + Управление Разрешениями + Permessi Gestione + 权限管理 + 權限管理 + Yetkileri Yönet + Gestão de Permissões + 사용 권한 설정 + Manažer pravomocí + + + You don't have permission from the commander to use light vehicles. + Vous n'avez pas la permission du commandant pour utiliser les véhicules légers. + Du hast keine Rechte zur Nutzung leichter Fahrzeuge. + No tienes permiso del comandante para usar vehículos ligeros + У вас нет разрешения от командира использовать легкую технику. + Non hai il permesso di usare veicoli leggeri + 指挥官没有给你使用轻型载具的权限。 + 指揮官並沒有提供你輕型載具機組員權限。 + Hafif araçları kullanmak için komutadan yetkiniz eksik. + Você não tem permissão do comandante para utilizar veículos leves. + 당신은 전투 차량을 사용할 수 있는 권한를 받지 못하였습니다. + Nemáš pravomoc od Komandéra používat lehká vozidla. + + + You don't have permission from the commander to use armored vehicles. + Vous n'avez pas la permission du commandant pour utiliser les véhicules blindés. + Du hast keine Rechte zur Nutzung gepanzerter Fahrzeuge + No tienes permiso del comandante para usar vehículos blindados + У вас нет разрешения от командира использовать бронированную технику. + Non hai il permesso di usare veicoli pesanti + 指挥官没有给你使用装甲载具的权限。 + 指揮官並沒有提供你裝甲載具機組員權限。 + Zırhlı araçları kullanmak için komutadan yetkiniz eksik. + Você não tem permissão do comandante para utilizar veículos blindados. + 당신은 장갑 차량을 사용할 수 있는 권한를 받지 못하였습니다. + Nemáš pravomoc od Komandéra používat obrněná vozidla. + + + You don't have permission from the commander to use air vehicles. + Vous n'avez pas la permission du commandant pour utiliser les véhicules aériens. + Du hast keine Rechte zur Nutzung von Luftfahrzeugen + No tienes permiso del comandante para usar vehículos aéreos + У вас нет разрешения от командира использовать авиацию. + Non hai il permesso di usare veivoli + 指挥官没有给你使用空中载具的权限。 + 指揮官並沒有提供你空中載具機組員權限。 + Hava araçlarını kullanmak için komutadan yetkiniz eksik. + Você não tem permissão do comandante para utilizar veículos aéreos. + 당신은 항공기를 사용할 수 있는 권한를 받지 못하였습니다. + Nemáš pravomoc od Komandéra používat letectvo. + + + No permissions have been set. The commander must setup the permissions to allow player actions and vehicle usage. Alternatively, the permission system can be disabled from the mission options. + Aucune permission n'a été définie. Le commandant doit configurer les permissions pour permettre aux joueurs d'effectuer des actions et d'utiliser les véhicules. Sinon, le système de permissions peut être désactivé dans les options de mission. + Keine Rechte wurden vergeben. Der Kommandant muss die Rechte verwalten, um Spielern Aktionen und die Nutzung von Fahrzeugen zu erlaubne. Alternativ kann das Rechtesystem in den Missionsoptionen deaktiviert werden. + No hay permisos definidos. El comandante debe asignar los permisos para permitir a los jugadores el uso de los vehículos y acciones. Alternativamente, puede desactivarse el sistema de permisos desde las opciones de misión + Разрешения не были выданы. Командир должен настроить разрешения, чтобы позволить игрокам выполнять действия и использовать транспорт. Вы можете выключить эти разрешения в настройках миссии. + I permessi non sono settati.Il comandante deve entrare nel menu e attribuire i permessi ai giocatori. + 没有设定任何权限。指挥官必须为玩家设定可用功能和载具。另外,权限系统可以在任务选项中关闭。 + 沒有設定任何權限。指揮官必須為玩家指定可使用的功能與載具類型。另外,權限系統可以在任務選項中關閉。 + Yetkiler ayarlanmadı. Koumandan oyuncuların kullanabilicekleri araçlar için yetkileri ayarlamalı. Bunun yerine, bütün yetki sistemi de görev ayarlarından kapatılabilir. + Nenhuma permissão foi liberada. O comandante precisa alterar as permissões para permitir que o jogador execute ações e utiliza veículos. Alternativamente, o sistema de permissão pode ser desabilitado no menu de opções da missão. + 사용 권한를 허가 받지 못하였습니다. 관리자는 플레이어들이 장비를 사용할 수 있는 권한을 설정해야 합니다. 사용 권한 설정 메뉴에서 권한을 허가 하거나 제거할 수 있습니다. + Nejsou nastaveny pravomoce. Komandér musí nastavit pravomoce na používání funkcí a vozidel. Alternativně lze pravomoce úplně vypnou v nastaveni mise. + + + ARSENAL + ARSENAL + ARSENAL + ARSENAL + АРСЕНАЛ + ARSENALE + 军火库 + 軍火庫 + ARSENAL + ARSENAL + 무기고 + ARZENÁL + + + Edit loadout + Modifier équipement + Ausrüstung bearbeiten + Modificar equipamiento + Редактировать + Modifica Equipaggiamneto + 编辑装备 + 編輯裝備 + Loadout'u düzenle + Modificar equipamento + 장비 편집 + Upravit výzbroj + + + Take loadout + Charger l'équipement + Ausrüstung laden + Coger equipamiento + Загрузить + Prendi Equipaggiamento + 拿取装备 + 領取裝備 + Loadout'u al + Aceitar equipamento + 장비 착용 + Vzít výzbroj + + + Default + Par défaut + Standard + Por defecto + По умолчанию + Default + 默认 + 預設 + Varsayılan + Padrão + 기본장비 + Výchozí + + + -- REPACKAGE FOB -- + -- REPLIER FOB -- + -- FOB EINPACKEN -- + -- EMPAQUETAR FOB -- + -- СВЕРНУТЬ FOB -- + -- SMONTA FOB -- + -- 收起前哨 -- + -- 收起前線基地 -- + -- FOB'Yİ TOPLA -- + -- MOBILIZAR FOB -- + -- 전초기지 재배치 -- + -- ZABALIT FOB -- + + + REPACKAGE FOB + REPLIER FOB + FOB EINPACKEN + EMPAQUETAR FOB + СВЕРНУТЬ FOB + SMONTA FOB + 收起前哨 + 收起前線基地 + FOB'Yİ TOPLA + MOBILIZAR FOB + 전초기지 재배치 + ZABALIT FOB + + + Are you sure you want to repackage this FOB? + Etes-vous sur de vouloir replier cette fob? + Bist du dir sicher, dass du deine FOB einpacken willst? + ¿Estas seguro de querer reempaquetar esta FOB? + Вы уверены что вы хотите свернуть эту FOB? + Sei sicuro di voler smontare la FOB? + 你确定要收起这个前哨? + 你確定要收起這個前線基地? + Bu FOB'yi toplamak istediğinizden emin misiniz? + Você tem certeza que quer mobilizar esta FOB? + 이 전초기지를 재배치하시겠습니까? + Jste si jistý že chcete zabalit FOB? + + + HALO Jump + Saut HALO + HALO-Sprung + Salto HALO + HALO прыжок + PARACADUTARSI + 伞降 + 跳傘 + HALO atlayışı + Salto em queda livre + 공수 낙하 + HALO Skok + + + Enabled - No cooldown + Activé - Pas de cooldown + Aktiviert - Keine Abklingzeit + Activado - Sin tiempo de espera + Вкл - без перерыва + Attivato - Senza attesa + 开启 - 无冷却 + 開啟 - 無冷卻 + Açık - Süre yok + Ativado - Sem tempo de espera + 활성화 - 대기시간 없음 + Zapnuto - Bez čekání + + + Enabled - 5 minutes cooldown + Activé - Cooldown de 5 minutes + Aktiviert - 5 Minuten Abklingzeit + Activado - 5 minutos de espera + Вкл - 5 минут перерыв + Attivato - 5 minuti di attesa + 开启 - 5分钟冷却 + 開啟 - 5 分鐘冷卻 + Açık - 5 dakika bekleme süresi + Ativado - Espera de 5 minutos + 활성화 - 대기시간 5분 + Zapnuto - 5 minut cooldown + + + Enabled - 10 minutes cooldown + Activé - Cooldown de 10 minutes + Aktiviert - 10 Minuten Abklingzeit + Activado - 10 minutos de espera + Вкл - 10 минут перерыв + Attivato - 10 minuti di attesa + 开启 - 10分钟冷却 + 開啟 - 10 分鐘冷卻 + Açık - 10 dakika bekleme süresi + Ativado - Espera de 10 minutos + 활성화 - 대기시간 10분 + Zapnuto - 10 minut cooldown + + + Enabled - 15 minutes cooldown + Activé - Cooldown de 15 minutes + Aktiviert - 15 Minuten Abklingzeit + Activado - 15 minutos de espera + Вкл - 15 минут перерыв + Attivato - 15 minuti di attesa + 开启 - 15分钟冷却 + 開啟 - 15 分鐘冷卻 + Açık - 15 dakika bekleme süresi + Ativado - Espera de 15 minutos + 활성화 - 대기시간 15분 + Zapnuto - 15 minut cooldown + + + Enabled - 20 minutes cooldown + Activé - Cooldown de 20 minutes + Aktiviert - 20 Minuten Abklingzeit + Activado - 20 minutos de espera + Вкл - 20 минут перерыв + Attivato - 20 minuti di attesa + 开启 - 20分钟冷却 + 開啟 - 20 分鐘冷卻 + Açık - 20 dakika bekleme süresi + Ativado - Espera de 20 minutos + 활성화 - 대기시간 20분 + Zapnuto - 20 minut cooldown + + + Enabled - 30 minutes cooldown + Activé - Cooldown de 30 minutes + Aktiviert - 30 Minuten Abklingzeut + Activado - 30 minutos de espera + Вкл - 30 минут перерыв + Attivato - 30 minuti di attesa + 开启 - 30分钟冷却 + 開啟 - 30 分鐘冷卻 + Açık - 30 dakika bekleme süresi + Ativado - Espera de 30 minutos + 활성화 - 대기시간 30분 + Zapnuto - 30 minut cooldown + + + Can't perform HALO jump, you are on cooldown for %1 more minute(s). + Impossible d'effectuer un suat HALO, vous êtes en cooldown pour encore %1 minute(s). + HALO Sprung noch nicht möglich. Verbleibende Abklingzeit von %1 Minuten. + No puedes saltar en HALO, te quedan %1 minuto(s) de espera. + HALO прыжок недоступен, подождите %1 минут + Non puoi paracadutarti, hai un attesa di %1 minuti. + 无法进行伞降,剩余冷却时间为%1分钟。 + 無法進行跳傘,還需要 %1 分鐘的冷卻時間。 + HALO jump yapılamıyor, %1 dakika daha beklemelisiniz. + Não é possível executar o salto em queda livre, o tempo de espera é de %1 minuto(s). + 지금은 공수 낙하를 할 수 없습니다. %1 분 후 가능합니다. + Nemůžete použít HALO skok, musíte počkat %1 minut + + + -- HALO JUMP + -- SAUT HALO + -- HALO-SPRUNG + -- SALTO HALO + -- HALO ПРЫЖОК + -- PARACADUTARSI + -- 伞降 + -- 跳傘 + -- HALO ATLAYIŞI YAP + -- Salto em queda livre + -- 공수 낙하 + -- HALO SKOK + + + HALO JUMP + SAUT HALO + HALO-SPRUNG + SALTO HALO + HALO ПРЫЖОК + PARACADUTARSI + 伞降 + 跳傘 + HALO ATLAYIŞI + Salto em queda livre + 공수 낙하 + HALO SKOK + + + Clear spawned vehicle cargo + Inventar gespawnter Fahrzeuge leeren + Remover carga de vehículo creado + Очищать инвентарь созданного транспорта + Cancella il carico del veicolo creato + Remover carga do veículo requisitado + Varolan araçları temizle + 移除載具上的物品 + 장비 배치(생산)시 화물칸 비우기. + Vymazat náklad vyvolaného vozidla + + + Maximum sector deactivation delay (starts increasing after 5th activation minute) + Maximale Verzögerung zur Sektor Deaktivierung (Beginnt nach 5 Minuten seit Aktivierung) + Máximo atraso de desactivación de sector (empieza a incrementar después del 5to minuto de activación) + Максимальное время деактивации сектора (начинает увелич. после 5-ти минут активации) + Sektör kapanma üst limiti (Sektörün açılmasından 5 dakika sonra artmaya başlar) + Maximální zpoždění deaktivace sektoru (začíná se zvyšovat po 5. aktivační minutě) + + + Limited Zeus interface + Eingeschränkte Zeus Funktionen + Interface de Zeus limitada + Ограниченный интерфейс Zeus + 제한된 제우스 인터페이스 + Sınırlı Zeus Arayüzü + Omezené rozhraní Zeus + + + Zeus for Commander + Zeus für Kommandant + + + Chance that enemies will stay in immobile/damaged vehicles + Chance, dass Feinde in fahrunfähigen/beschädigten Fahrzeugen verbleiben + Probabilidad de que los enemigos se quedarán dentro de un vehículo inmovilziado/dañado + Шанс того, что враги будут оставаться в неподвижных/поврежденных автомобилях + Düşmanların hasarlı araçların içinde kalma şansı + Šance, že nepřátelé zůstanou v nepohyblivých / poškozených vozidlech + + + Deployment in progress... + 고공침투 중... + Déploiement en cours... + Verlegung im Gange + Despliegue en curso... + Развертывание в процессе... + In attesa del lancio ... + 正在部署中... + 正在佈署中... + Atlama süreci devam ediyor... + Mobilização em andamento... + Probíhá výsadek... + + + Use the commander whitelist + Utiliser la whitelist pour le commandant + Nutze die Whitelist für den Kommandanten + Utilizar la lista blanca para Comandantes + Использовать белый список командиров + Usa la whitelist del comandante + 使用指挥官白名单 + 使用指揮官白名單 + Kumandan beyaz listesini kullan + Use a lista de permissões de comandantes + 지휘관 허용 목록을 사용합니다. + Použít whitelist pro komandéra + + + Enabled - Only use if you have modified your whitelist.sqf! + Aktiviert - Nur benutzen, wenn du deine whitelist.sqf verändert hast! + Activé - A n'utiliser que si vous avez modifié votre whitelist.sqf ! + Activado - ¡Sólo utilizar si has modificado tu whitelist.sqf + Вкл - Используйте только если вы изменили файл whitelist.sqf! + Attiva - Solo se hai modificato la tua whitelist.sqf! + 开启 - 只有在设立了whitelist.sqf时才能用这个选项! + 開啟 - 只有在設立了whitelist.sqf時才能使用這個選項! + Aktif - Yalnıza whitelist.sqf dosyasını değiştirdiyseniz kullanın! + Ativado - Apenas use se tiver modificado o arquivo whitelist.sqf! + 활성화 - whitelist.sqf 에 등록되어 있어야 합니다. + Povoleno - Použijte pouze pokud jste upravily whitelist.sqf! + + + Cannot build: hostile forces nearby. + Impossible de construire: forces hostiles à proximité. + Kann nicht gebaut werden: Feindkräfte in der Nähe + No se puede construir: fuerzas hostiles cercanas + Постройка невозможна: враги рядом. + Impossibile costruire: forze ostili nelle vicinanze + 无法建造:附近有敌军部队。 + 目前無法建造:附近有敵軍部隊。 + İnşaat edilemiyor: Yakında düşmanlar var. + Não é possível construir: Forças hostis na proximidade. + 근처에 방해물이 있어 건설(설치)할 수 없습니다. + Nemůžeš stavět: nepřátelské jednotky poblíž. + + + Cleanup abandoned vehicles outside FOBs + Nettoyer les véhicules abandonnés loin d'une FOB + Räumt verlassene Fahrzeuge auserhalb von FOBs weg + Limpieza de vehículos abandonados fuera de FOBs + Удаление брошенной техники вне FOB + Eliminazione di veicoli abbandonati fuori le FOB + 清理前哨外的废弃载具 + 清理前線基地外的廢棄載具 + FOB dışında bırakılan araçları temizle + Remover veículos abandonados fora das FOBs + 전초기지 외부의 유기된 장비 정리 + Čištění zapomenutých vozidel mimo FOB + + + Enabled - 1 hour delay + Activé - 1 heure de délai + Aktiv - 1 Stunde Verzögerung + Activado- abandonados durante 1 hora + Вкл - Задержка 1 час + Attivato - eliminazione ogni ora + 开启 - 1小时延迟 + 開啟 - 延遲 1 小時 + Açık - 1 saatde bir + Ativado - 1 hora para remoção + 활성화 - 1시간후 사라짐 + Zapnuto - Jednou za hodinu + + + Enabled - 2 hours delay + Activé - 2 heures de délai + Aktiv - 2 Stunde Verzögerung + Activado - abandonados durante 2 horas + Вкл - Задержка 2 часа + Attivato - eliminazione ogni 2 ore + 开启 - 2小时延迟 + 開啟 - 延遲 2 小時 + Açık - 2 saatde bir + Ativado - 2 horas para remoção + 활성화 - 2시간후 사라짐 + Zapnuto - Jednou za dvě hodiny + + + Enabled - 4 hours delay + Activé - 4 heures de délai + Aktiv - 4 Stunden Verzögerung + Activado - abandonados durante 4 horas + Вкл - Задержка 4 часа + Attivato - eliminazione ogni 4 ore + 开启 - 4小时延迟 + 開啟 - 延遲 4 小時 + Açık - 4 saatde bir + Ativado - 4 horas para remoção + 활성화 - 4시간후 사라짐 + Zapnuto - Jednou za čtyři hodiny + + + Sorry! + Désolé ! + Entschuldigung! + Lo siento! + Извини! + Scusa! + 抱歉! + 抱歉! + Özür dilerim! + Desculpe! + 미안합니다.! + Pardon! + + + You are not authorized to use the commander slot on this server. + Vous n'êtes pas authorizé à utiliser la place de commandant sur ce serveur. + Du bist auf diesem Server nicht als Kommandant autorisiert. + No estás autorizado para usar el slot de comandante en este servidor. + Вы не имеете права использовать слот командира на этом сервере. + Non sei autorizzato ad usare lo slot comandante in questo server. + 你没有使用这个服务器指挥官栏位的权限。 + 你並沒有使用這個伺服器指揮官欄位的權限。 + Bu sunucuda kumandan slotunu kullanmak için izniniz yok. + Você não está autorizado a usar o slot de comandante neste servidor. + 사령관 슬롯을 사용할 권한이 없습니다. + Nemáš oprávnění používat pozici Komandéra na tomto serveru. + + + Save respawn loadout + Equipement de respawn + Setze Respawnausrüstung + Guardar el equipamiento para respawn + Сохранить снаряжение + Salva Equipaggiamento + 保存重生装备 + 設定為重生裝備 + Respawn ekipmanını kaydet + Salvar equipamento para respawn. + 재생시 기본 장비로 설정 + Uložit výzbroj pro oživení + + + Your current loadout will be restored on every respawn. + Votre equipement actuel sera restauré à chaque respawn. + Deine Ausrüstung wird bei jedem Respwan wiederhergestellt. + Tu actual equipamiento seá mantenido en cada respawn. + Ваше текущее снаряжение будет загружаться после каждого возрождения. + Il tuo equipaggiamneto sarà ricaricato ad ogni respawn + 你的装备将在重生时恢复到现有状态。 + 重生後,你的裝備將恢復到現有狀態。 + Şuanki ekipmanınız her doğduğunuzda yeniden verilecek + Seu equipamento atual será restaurado em cada respawn. + 현재 설정한 장비로 재생됨. + Tvoje aktuální výzbroj bude použita při každém oživení. + + + Load from player + Charger depuis joueur + Von Spieler laden + Cargar desde jugador + Загр. из игрока + Carica da giocatore + 读取其他玩家装备 + 複製其他玩家裝備 + Başka bir oyuncudan al + Copiar do jogador + 다른 플레이어 장비 가져오기 + Načíst od hráče + + + Successful loadout transfer from %1. + Transfer d'équipement réussi depuis %1. + Erfolgreich Ausrüstung von %1 übertragen. + Transferencia de equipamiento de %1 terminada. + Успешная загрузка снаряжения игрока %1. + Equipaggiamento traferito correttamente da %1 + 成功从%1读取了装备 + 成功複製了 %1 的裝備 + %1 oyuncusundan ekipman alındı. + Transferência de loadout de %1 realizada. + %1 의 장비, 이전 성공. + Úspěšně načteno od %1. + + + Loadout: + Equipement : + Ausrüstung: + Equipamiento: + Снаряжение: + Equipaggiamento: + 装备: + 裝備 + Ekipman: + Equipamento: + 장비: + Výzbroj: + + + Deployment location: + Lieu de déploiement : + Einsatzposition: + Lugar para el despliegue: + Место развертывания: + Luogo di Schieramento: + 部署地点: + 佈署地點: + Doğma noktası: + Local para mobilização: + 재투입 위치: + Lokace pro výsadek: + + + OPFOR aggressivity + Aggressivité de l'OPFOR + OPFOR Aggressivität + Agresividad del OPFOR + Уровень обеспокоенности OPFOR + Aggressività OPFOR + 敌军进攻性 + 敵軍侵略度 + OPFOR agresifliği + Agressividade inimiga + 아군에 대한 적군의 공격 의지 + Agresivita OPFOR + + + Anemic + Anémique + Mutlos + Anémica + Вяло + Anemico + 可悲 + 可悲 + Kansız + Anêmica + 거의 없음 + Chudá + + + Weak + Faible + Schwach + Floja + Слабо + Debole + 弱小 + 弱小 + Zayıf + Fraca + 약함 + Slabá + + + Normal + Normale + Normal + Normal + Нормально + Normale + 正常 + 正常 + Normal + Normal + 보통 + Normální + + + Strong + Forte + Stark + Fuerte + Сильно + Forte + 强大 + 強大 + Güçlü + Forte + 강함 + Silná + + + Extreme + Extreme + Extrem + Extrema + Экстремально + Estremo + 噩梦 + 惡夢 + Uçta + Extrema + 매우강함 + Extrémní + + + Weather + Meteo + Wetter + Clima + Погода + Meteo + 天气 + 天氣 + Hava + Clima + 날씨 + Počasí + + + Always sunny + Soleil permanent + Immer sonnig + Siempre soleado + Всегда солнечно + Semopre Soleggiato + 永远晴天 + 永遠晴天 + Hep güneşli + Sempre ensolarado + 맑은 날씨 지속 + Stále slunečno + + + Random without rain + Aléatoire sans pluie + Zufällig ohne Regen + Aleatorio sin lluvia + Случайно, без дождя + Casuale senza pioggia + 随机但无雨 + 隨機但無雨 + Rastgele (yağmursuz) + Aleatório sem chuva + 무작위로 비가 내림 + Náhodně bez deště + + + Random + Aléatoire + Zufällig + Aleatorio + Случайно + Casuale + 随机 + 完全隨機 + Rastgele + Aleatório + 모든 기상현상이 무작위로 나타남 + Náhodně + + + Shorter nights + Nuits plus courtes + Kürzere Nächte + Noches más cortas + Короткие ночи + Notte Breve + 短暂夜晚 + 短暫夜晚 + Kısa geceler + Noites curtas + 짧은 밤 + Kratší noci + + + Repairing + Réparation + Repariert + Reparando + Ремонт + Riparazione + 修理中 + 修理中 + Tamir ediliyor + Reparando + 수리중 + Opravování + + + Rearming in %1s + Réarmement dans %1s + Aufmunitioniert in %1s + Rearmando en %1s + Перезарядка через %1с + Riarmando 1% + %1后开始补充弹药 + %1 秒後開始補充彈藥 + %1 saniyeye yeniden dolmuş olucak + Remuniciando em %1s + 탄약보급중입니다. %1 초 남음. + Přezbrojení za %1s + + + Refueling + Ravitaillement + Auftanken + Repostando + Заправка + Rifornendo + 加油中 + 加油中 + Yakıt dolduruluyor + Reabastecendo + 재급유중 + Doplňování paliva + + + -- TAKE INTEL + -- PRENDRE INTEL + -- GEHEIMDIENSTINFORMATIONEN AUFNEHMEN + -- COGER INTELIGENCIA + -- ВЗЯТЬ РАЗВЕДДАННЫЕ + -- PREDI INTEL + -- 拿取情报 + -- 拿取情報 + -- İSTİHBARAT AL + -- PEGAR INTELIGÊNCIA + -- 정보 입수 + -- VZÍT INFORMACE + + + -- SECONDARY OBJECTIVES + -- OBJECTIFS SECONDAIRES + -- SEKUNDÄRE ZIELE + -- OBJETIVOS SECUNDARIOS + -- ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ + -- OBIETTIVI SECONDARI + -- 次要目标 + -- 次要目標 + -- İKİNCİL GÖREVLER + -- OBJETIVOS SECUNDÁRIOS + -- 부차적인 작전목표 + -- VEDLEJŠÍ ÚKOLY + + + SECONDARY OBJECTIVES + OBJECTIFS SECONDAIRES + SEKUNDÄRE ZIELE + OBJETIVOS SECUNDARIOS + ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ + OBIETTIVI SECONDARI + 次要目标 + 次要目標 + İKİNCİL GÖREVLER + OBJETIVOS SECUNDÁRIOS + 부차적인 작전목표 + VEDLEJŠÍ ÚKOLY + + + Start + Commencer + Beginnen + Empezar + Старт + Inizia + 开始 + 開始 + Başla + Iniciar + 시작 + Začít + + + Current intel: %1 + Intel actuelle : %1 + Aktuelle Geheimdienstinformationen: %1 + Inteligencia actual: %1 + Разведданные: %1 + Intel Attuale: %1 + 当前情报:%1 + 目前情報:%1 + Şuanki istihbarat: %1 + Inteligência atual: %1 + 현재 정보: %1 + Zpravodajské body: %1 + + + Insufficient intel points + Points d'intel insuffisants + Zu wenige Geheimdienstinformationen + Puntos de inteligencia insuficientes + Недостаточно разведданных + Punti intel insufficenti + 情报点不足 + 情報點不足 + Yetersiz istihbarat puanı + Pontos de inteligencia insuficientes + 정보 포인트가 부족합니다. + Nedostatek zpravodajských bodů + + + Secondary mission already in progress + Mission secondaire déjà en cours + Sekundäre Mission läuft bereits + Misión secundaria ya en curso + Дополнительная задача уже запущена + Missione secondaria attualmente in progresso + 次要任务正在进行中 + 次要目標正在進行中 + Şuan zaten ikincil bir görev var. + A missão secundária já está em andamento + 이미 진행중인 부차적인 작전목표가 있습니다. + Vedlejší mise již probíhá + + + Hostile forces are heading towards %1. + Les forces hostiles se dirigent vers %1. + Feindliche Streitkräfte bewegen sich auf %1 zu. + Fuerzas hostiles acercándose a %1. + Вражеские силы приближаются к %1. + Forze ostili sono in avvicinamento su %1. + 敌军部队正在前往%1 + 敵軍正在前往 %1 + Düşmanlar %1 sektörüne doğru gidiyor. + Forças hostis estão a caminho de %1. + 적군이 %1 로 향하고 있습니다. + Nepřátelské jednotky míří k %1. + + + OPFOR Convoy + Convoi OPFOR + OPFOR Konvoi + Convoy OPFOR + Конвой OPFOR + Convoglio OPFOR + 敌军车队 + 敵方車隊 + OPFOR Konvoyu + Comboio inimigo + 적군차량행렬 + OPFOR Konvoj + + + Waypoint + Point de passage + Wegpunkt + Punto de ruta + Путевая точка + Punto di Passaggio + 路径点 + 路徑點 + Varış noktası + Waypoint + 이동지점 + Průjezdní bod + + + OPFOR Convoy neutralized. + Convoi OPFOR neutralisé. + OPFOR Konvoi neutralisiert. + Convoy OPFOR neutralizado + Конвой OPFOR нейтрализован. + Convoglio OPFOR neutralizzato. + 敌军车队已被消灭 + 敵方車隊已被殲滅 + OPFOR Konvoyu etkisizleştirildi. + Comboio inimigo neutralizado. + 적군차량부대 무력화. + OPFOR Konvoj zneškodněn. + + + OPFOR Convoy near %1. + Convoi OPFOR près de %1. + OPFOR Konvoi nahe %1. + Convoy OPFOR cerca de 1% + Конвой OPFOR рядом с %1. + Convoglio OPFOR vicino %1. + 敌军车队接近%1 + 敵方車隊接近 %1 + %1 civarında OPFOR Konvoyu. + Comboio inimigo nas proximidades de %1. + %1 근처에 적군차량행렬! + OPFOR Konvoj poblíž %1. + + + Got it! + J'ai pigé! + Verstanden! + Lo tengo! + Вас понял! + Ricevuto! + 明白了! + 收到! + Anlaşıldı! + Entendido! + 알았다! + Mám to! + + + -- TUTORIAL + -- TUTORIAL + -- TUTORIAL + -- TUTORIAL + -- TUTORIAL + -- РУКОВОДСТВО + -- 教程 + -- 教學 + -- EĞİTİM + -- TUTORIAL + -- 이용 안내 + -- NÁVOD + + + TUTORIAL + TUTORIAL + TUTORIAL + TUTORIAL + TUTORIAL + РУКОВОДСТВО + 教程 + 教學 + EĞİTİM + TUTORIAL + 이용 안내 + NÁVOD + + + FOB Hunting + Chasse à la FOB + FOB Jagd + Caza de FOB + Охота на FOB + Caccia alla FOB + 狩猎前哨 + 獵殺前線基地 + FOB Avlama + Caça à FOB + 병참기지 기습 + Hon na FOB + + + <t size='1.3' color='#ffa000'>FOB HUNTING</t><br/><br/><t size='1'>OPFOR forces use an array of small logistic bases situated behind the front lines. Destroying those assets would greatly disrupt the OPFOR supply lines and impair their capacity to react to our actions.</t><br/><br/><t size='1'>Your mission is to destroy all supply assets (trucks, containers) at the objective by any means at your disposal. Unfortunately our intelligence is not able to provide you with a precise position for the base, you will have to locate the objective in the red zone on your map.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Reward: OPFOR alert level reduced by 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>CHASSE A LA FOB</t><br/><br/><t size='1'>Les forces de l'OPFOR utilisent des bases logistiques situées derrière la ligne de front. Détruire ces objectifs pertubera les lignes d'approvisionnement de l'OPFOR et les empêchera de réagir efficacement à nos actions.</t><br/><br/><t size='1'>Votre mission est de détruire tous les équipements logistiques (camions, containers) présents sur l'objectif. Malheureusement nos renseignements ne permettent pas de vous donner la position précise de la base, vous devrez la chercher dans la zone rouge visible sur votre carte.</t><br/><br/><t size='1.15' color='#00a0ff'>Coût: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Récompense: niveau d'alerte de l'OPFOR réduit de 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>FOB JAGD</t><br/><br/><t size='1'>Die OPFOR Streitkräfte benutzen ein Netzwerk von kleineren Nachschubbasen hinter den Frontlinien. Diese zu zerstören würden die OPFOR Nachschublinien und ihre Reaktionsmöglichkeiten stark einschränken.</t><br/><br/><t size='1'>Ihr Auftrag ist es alle Nachschubkapazitäten (Container und Trucks) zu zerstören. Leider ist unser Geheimdienst nicht in der Lage, Ihnen die genaue Position des Ortes mitzuteilen. Sie werden das Ziel innerhalb der makierten roten Zone auf der Karte suchen müssen.</t><br/><br/><t size='1.15' color='#00a0ff'>Kosten: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Belohnung: OPFOR Alarmstatus wird um 40% reduziert</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>CAZA DE FOB</t><br/><br/><t size='1'>Las fuerzas del OPFOR utilizan una red de bases logísticas situadas tras las líneas enemigas. Destruir estos recursos interrunpira las líneas de abastecimiento del enemigo y entorpecerán su capacidad para responder a tus acciones.</t><br/><br/><t size='1'>Tu misión consiste en destruir todos los recursos (camiones, containers) en el objetivo por cualquier medio que esté en tus manos. Desafortunadamente nuestra inteligencia no permite obtener una localización precisa de la base, deberás encontrarla dentro de la zona marcada en rojo en el mapa.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: nivel de alerta del OPFOR reducido en un 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>ОХОТА НА FOB</t><br/><br/><t size='1'>Силы OPFOR используют небольшие базы снабжения, расположенные за линией фронта. Уничтожение материальных средств этих баз значительно нарушит связи снабжения OPFOR и ухудшит их способность реагировать на ваши действия.</t><br/> <t size='1'>Ваша миссия состоит в том, чтобы уничтожить на базах все средства снабжения (грузовики, контейнеры) любыми средствами, находящимися в вашем распоряжении. К сожалению, наша разведка не в состоянии предоставить вам точное положение этих баз, вам придется найти их самостоятельно. Ищите базы снабжения в районе красной зоны, отмеченной на вашей карте.</t><br/><br/><t size='1.15' color='#00a0ff'>Стоимость: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Награда: уровень обеспокоенности OPFOR уменьшится на 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>CACCIA ALLA FOB</t><br/><br/><t size='1'>Le forze OPFOR utilizzano una serie di piccole basi logistiche situate dietro il fronte. Distruggere tali basi serve ad interrompere le linee di alimentazione OPFOR e mettere in pericolo la loro capacità di reagire alle nostre azioni.</t><br/><br/><t size='1'>La vostra missione è di distruggere tutte le attività di approvvigionamento (camion, contenitori) presso l 'obiettivo con ogni mezzo a vostra disposizione. Purtroppo la nostra intelligence non è in grado di fornire una posizione precisa della base, si dovrà individuare l'obiettivo all'interno della zona rossa sulla mappa.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Ricompensa: livello di allerta OPFOR ridotto del 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>狩猎前哨</t><br/><br/><t size='1'>敌军部队在阵地后方建有一组小型后勤基地。摧毁这些设施将会极大的打击敌军的补给线,并拖慢他们的反应速度。</t><br/><br/><t size='1'>你的任务是不惜一切代价摧毁目标区域所有补给物资(卡车、集装箱)。遗憾的是我们的情报部门无法为你提供这些基地的准确位置,你必须在地图的红色区域中自行搜索目标。</t><br/><br/><t size='1.15' color='#00a0ff'>花费:15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>奖励:敌军警戒等级降低40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>獵殺前線基地</t><br/><br/><t size='1'>敵方在陣地後建立了一組小型前線基地作為後勤用,一旦成功摧毀他們將能給予敵軍補給線致命性的打擊、並使他們對我們的進攻感到措手不及。</t><br/><br/><t size='1'>遺憾的是我們的情報單位並沒有辦法掌握確切位置,你的任務是在地圖上的紅色區域中尋找到敵方前線基地並摧毀所有基地內的補給物資(卡車、貨櫃)。</t><br/><br/><t size='1.15' color='#00a0ff'>花費:15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>獎勵:敵方警戒度降低 40 %</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>FOB AVLAMA</t><br/><br/><t size='1'>OPFOR kuvvetlerinin cephenin gerisinde birkaç küçük lojistik üsleri var. Bu üsleri yok etmek erzak tedariklerini zorlaştırıp, bizim hareketlerimize cevap verme kapasitelerini azaltıcaktır.</t><br/><br/><t size='1'>Göreviniz, elinizdeki imkanlarla bu üslerdeki bütün erzak sandıklarını ve araçları yok etmek. Ne yazıkki elimizdeki istihbarat bu üslerin tam konumlarını saptamaya yetmiyor, üssü haritanızdaki kırmızı bölgede sizin bulmanız lazım.</t><br/><br/><t size='1.15' color='#00a0ff'>Maliyet: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Ödül: OPFOR uyarı seviyesi %40 a düşecek.</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>CAÇA À FOB</t><br/><br/><t size='1'>As forças de oposição (FOROP) utilizam um conjunto de pequenas bases de logística situadas além do fronte de batalha. Destruindo tais recursos desestabilizaria consideravelmente suas linhas de suprimento e afetaria sua capacidade de reagir às nossas ações.</t><br/><br/><t size='1'>Sua missão é destruir todas as fontes de recurso (caminhões, contêineres) que estão no objetivo, a qualquer custo. Infelizmente, nossa inteligência não foi capaz de fornecer dados da localização precisa da base. Dessa forma, você deverá localizar o objetivo dentro da zona vermelha identificada em seu mapa.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: Alerta das forças de oposição reduzidos em 40%.</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>병참기지 기습</t><br/><br/><t size='1'>현재 적군은 후방지역에 병참 기지를 운영하고 있습니다. 이 병참 기지를 파괴하면 전방 적군의 작전 수행능력을 저하시켜 아군의 작전 행동에 대응할 수 있는 역량이 약해질 것입니다.</t><br/><br/><t size='1'>아군의 작전 목표는 모든 군수물자을 파괴하는 것입니다.(트럭, 컨테이너 등) 아쉽게도 아군 정찰팀이 해당지역을 정찰하였으나 찾지 못하여 정확한 위치를 제공할 수 없기 때문에 당신의 지도에 표기된 빨간 영역 안에 위치한 적군 병참 기지를 찾아야 합니다.</t><br/><br/><t size='1.15' color='#00a0ff'>소모되는 정보 점수: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>보상: 경고 수준이 40% 감소합니다.</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>HON NA FOB</t><br/><br/><t size='1'>Jednotky OPFOR používají řadu menších logistických základen za hlavní linii. Zničení těchto prostředků výrazně naruší zásobováni OPFOR jednotek a naruší jejich schopnost reagovat na naše akce.</t><br/><br/><t size='1'>Cílem mise je zničit všechny zásobovací prostředky (náklaďáky, kontejnery) libovolnými prostředky. Bohužel naše rozvědka není schopna vám poskytnout přesnou polohou pro základny, budete ji muset najít v červené zóně na mapě.</t><br/><br/><t size='1.15' color='#00a0ff'>Cena: 15<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Odměna: Snížení bojové pohotovosti OPFOR o 40%</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + + + Convoy Hijack + Interception de convoi + Konvoi Hinterhalt + Interceptar el Convoy + Перехват конвоя + Intercetta il Convoglio + 劫掠车队 + 攔截車隊 + Konvoy Kaçırma + Interceptação de comboio + 수송부대 무력화 + Přepadení Konvoje + + + <t size='1.3' color='#ffa000'>CONVOY HIJACK</t><br/><br/><t size='1'>OPFOR forces use road convoys to resupply their defensive positions. Intercepting one of these convoys would effectively disrupt their supply lines, and we could use the occasion to retrieve an hefty amount of ammunition.</t><br/><br/><t size='1'>Your mission is to stop the OPFOR convoy by any means necessary. You can destroy it, or hijack it to retrieve all the ammunition you can grab. The target will be spotted on your map.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Reward: OPFOR alert level reduced by 15%</t><br/><t size='1.15' color='#ffa000'>Side reward: All the ammunition you can retrieve.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>INTERCEPTION DE CONVOI</t><br/><br/><t size='1'>Les forces de l'OPFOR utilisent des convois routiers pour réaprovisionner leurs positions. Intercepter un de ces convois pertuberait leurs lignes d'approvisionnement, et nous pourrions utiliser l'occasion pour récupérer une grande quantité de munitions.</t><br/><br/><t size='1'>Votre mission est de stopper le convoi de l'OPFOR par tous les moyens nécessaires. Vous pouvez le détruire, ou le stopper pour récupérer un maximum de munitions. La cible sera marquée sur votre carte.</t><br/><br/><t size='1.15' color='#00a0ff'>Coût: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Récompense: niveau d'alerte de l'OPFOR réduit de 15%</t><br/><t size='1.15' color='#ffa000'>Récompense secondaire: toutes les munitions que vous pourrez récupérer.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>KONVOI HINTERHALT</t><br/><br/><t size='1'>Die OPFOR Streitkräfte benutzen Straßenkonvois um ihre Verteidigungspositionen zu versorgen. Diese Konvois abzufangen würden ihre Nachschublinien effektiv unterbrechen und außerdem könnten wir die Möglichkeit nutzen, um selbst eine große Menge an Munition zu erbeuten.</t><br/><br/><t size='1'>Ihr Auftrag ist es, den OPFOR Konvoi auf jede erdenkliche Weise zu stoppen. Sie können ihn zerstören oder übernehmen, um soviel Munition wie möglich zu erbeuten. Das Ziel wird auf Ihrer Karte aufgeklärt.</t><br/><br/><t size='1.15' color='#00a0ff'>Kosten: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Belohnung: OPFOR Alarmstatus wird um 15% reduziert</t><br/><t size='1.15' color='#ffa000'>Weitere Belohnung: Soviel Munition wie Sie erbeuten können.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>INTERCEPTAR EL CONVOY</t><br/><br/><t size='1'>Las fuerzas OPFOR utilizan convoys de carretera para reabastecer sus posiciones defensivas. Interceptar uno de estos convoy rompería de forma efectiva sus líneas de suministro, y podríamos aprovechar la ocasión para obtener una buena cantidad de munición.</t><br/><br/><t size='1'>Tu misión consiste en parar ese convoy por cualquier medio. Puedes destruirlo o capturarlo para capturar toda la munición que sea posible. El objetivo aparecerá marcado en el mapa.</t><br/><br/><t size='1.15' color='#00a0ff'>Coste: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: Nivel de alerta OPFOR reducido 15%</t><br/><t size='1.15' color='#ffa000'>Recompensa secundaria: Toda la munición que puedas traer.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>ПЕРЕХВАТ КОНВОЯ</t><br/><br/><t size='1'>Силы OPFOR используют автоколонны для снабжения своих оборонительных позиций. Перехват одного из этих конвоев эффективно нарушил бы их связи снабжения, и мы могли бы использовать эту возможность для получения большого количество вооружения.</t><br/><br/><t size='1'>Ваша задача состоит в том, чтобы остановить конвой OPFOR любой ценой. Вы можете уничтожить его, или захватить его для получения ресурса вооружения. Цель будет отмечена на вашей карте.</t><br/><br/><t size='1.15' color='#00a0ff'>Стоимость: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Награда: уровень обеспокоенности OPFOR уменьшится на 15%</t><br/><t size='1.15' color='#ffa000'>Дополнительная награда: Всё вооружение, которое можно получить за утилизацию груза конвоя.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>INTERCETTA IL CONVOGLIO</t><br/><br/><t size='1'>Le forze OPFOR utilizzano convogli stradali per rifornire le loro posizioni difensive. Intercettare uno di questi convogli potrebbe effettivamente distruggere le loro linee di rifornimento, e potete sfruttare l'occasione per recuperare una notevole quantità di munizioni.</t><br/><br/><t size='1'>La tua missione è quella di fermare il convoglio OPFOR con ogni mezzo necessario. Si può distruggerlo, o dirottarlo e recuperare tutte le munizioni. L'obiettivo sarà evidenziato sulla mappa.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Ricompensa: livello di allerta OPFOR ridotto del 15%</t><br/><t size='1.15' color='#ffa000'>Seconda ricompensa: è possibile recuperare tutte le munizioni.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>劫掠车队</t><br/><br/><t size='1'>敌军部队的防御位置通过地面车队进行补给。拦截这种车队可以有效打击他们的补给线,而这也是让我们截获弹药的大好机会。</t><br/><br/><t size='1'>你的任务是不惜一切代价拦截敌军车队。由你决定是摧毁还是截获所有的弹药。目标将会标示在你的地图上。</t><br/><br/><t size='1.15' color='#00a0ff'>花费:10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>奖励:敌军警戒等级降低15%</t><br/><t size='1.15' color='#ffa000'>次要奖励:你能截获的所有弹药。</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>攔截車隊</t><br/><br/><t size='1'>敵方正透過補給車隊來為他們的防禦陣線進行補給,攔截車隊將能有效打擊他們的補給線,而這也是我們從敵軍繳獲彈藥資源的大好機會。</t><br/><br/><t size='1'>你的任務是攔截車隊,你可以自行決定要摧毀或是掠奪車隊上的所有彈藥,情報單位將會協助標示目標位置與目標可能前往的路徑點在你的地圖上。</t><br/><br/><t size='1.15' color='#00a0ff'>花費:10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>獎勵:敵軍警戒度降低 15 %</t><br/><t size='1.15' color='#ffa000'>次要獎勵:所有你能從車隊上所繳獲的彈藥資源。</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>KONVOY KAÇIRMA</t><br/><br/><t size='1'>OPFOR kuvvetleri savundukları bölgelere konvoylar ile mühimmat sağlıyor. Bu konvoyları durdurmak, hem o bölgelere olan desteği azaltır, hemde kendinize mühimmat sağlamanıza yardımcı olur.</t><br/><br/><t size='1'>Göreviniz, elinizdeki imkanlarla OPFOR konvoyunu durdumak. Konvoyun hepsini yok edebilirsizin. Eğer mühimmat ele geçirmek isterseniz ise araçları kaçırabilirsiniz. Hedef haritanızda işaretlenecektir.</t><br/><br/><t size='1.15' color='#00a0ff'>Maliyet: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Ödül: OPFOR uyarı seviyesi %15 azalıcaktır.</t><br/><t size='1.15' color='#ffa000'>Yan ödül: Kurtardığınız mühimmatlar.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>INTERCEPTAÇÃO DE COMBOIO</t><br/><br/><t size='1'>As forças de oposição (FOROP) utilizam comboios terrestres para reabastecer suas posições defensivas. Interceptando um desses comboios afetaria efetivamente suas linhas de suprimento, e poderíamos usar a ocasião para recuperar uma grande quantidade de munições.</t><br/><br/><t size='1'>Sua missão é deter o comboio das forças de oposição utilizando qualquer meio possível. Você pode destruí-lo ou sequestrá-lo para recuperar toda a munição que conseguir transportar. O alvo será identificado em coordenadas específicas no seu mapa.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: Nível de alerta das forças de oposição reduzido em 15%.</t><br/><t size='1.15' color='#ffa000'>Recompensa aliada: Toda a munição que conseguir.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>수송부대 무력화</t><br/><br/><t size='1'>현재 적군은 수송부대를 동원하여 그들의 방어 거점에 군수물자를 수송하고 있습니다. 수송부대 중 하나를 공격하여 그들의 보급선을 끊고, 많은 양의 군수물자를 노획하십시요.</t><br/><br/><t size='1'>아군의 임무는 수단과 방법을 가리지 않고 적 수송부대를 멈추게 하는 것입니다. 군수물자를 파괴할 것인지, 노획하여 아군의 군수물자로 확보할 것인지는 당신의 선택입니다. 당신의 지도에 위치가 표시될 것입니다.</t><br/><br/><t size='1.15' color='#00a0ff'>소모되는 정보 점수: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>보상: 경고 수준이 15% 감소합니다.</t><br/><t size='1.15' color='#ffa000'>추가 보상: 수송부대에서 노획할 수 있는 모든 군수물자.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>PŘEPADENÍ KONVOJE</t><br/><br/><t size='1'>Jednotky OPFOR používají konvoje k zásobení obraných pozic. Přerušením jediného konvoje můžete efektivně narušit zásobování, a také můžeme využít teto příležitosti k získání značného množství munice.</t><br/><br/><t size='1'>Cílem mise je zastavit konvoj libovolnými prostředky. Můžete je zničit nebo zajmout a získat tak munici. Pozice konvoje bude zaznačena do mapy.</t><br/><br/><t size='1.15' color='#00a0ff'>Cena: 10<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Odměna: Bojová pohotovost OPFOR snížena o 15%</t><br/><t size='1.15' color='#ffa000'>Vedlejší odměna: Veškerá munice kterou zvládnete odnést.</t><br/><br/><t size='10'><img image='res\secondary\convoy_obj.jpg'/></t> + + + + + BLUFOR defenders in owned sectors + Défenseurs BLUFOR dans les secteurs capturés + BLUFOR Verteidiger in besetzten Sektoren + Defensores BLUFOR en los sectores controlados + Солдаты BLUFOR в захваченных секторах + Trupppe BLUFOR nei settori controllati + 我军部队防御己方战区 + 我軍部隊協防我方戰區 + Sektörlerdeki BLUFOR savunmacıları + Defensores aliados nos setores controlados + 적군 공격시 방어군 생성 + BLUFOR obránci v obsazených sektorech + + + Auto-danger behavior on BLUFOR forces + Comportement 'danger' automatique sur les forces BLUFOR + Automatisches Verhalten "Gefahr" bei BLUFOR Kräften + Comportamiento de Auto-Alerta en las fuerzas BLUFOR + Авто-опасность для сил BLUFOR + Comportamento Auto-Allerta per forze BLUFOR + 我军部队自动警戒行为 + 我軍部隊自動警戒行為 + BLUFOR için Oto-tehlike davranışı + Comportamento automático de alerta nas forças aliadas + 아군 부대의 자동 경계 행위 + Chování při automatickém nebezpečí BLUFOR jednotek + + + Maximum number of FOBs allowed + Nombre maximal de FOBs autorisé + Maximale Anzahl an erlaubten FOBs + Максимальное количество FOB + Número máximo de FOBs permitidas + Numero massimo di FOB consentite + 最大前哨数量 + 最大前線基地數量 + Maksimum FOB sayısı + Número máximo de FOBs permitidas + 전초기지 건설 가능 수 + Maximum postavených FOB + + + You are not allowed to deploy more than %1 FOBs at the same time. + Vous n'êtes pas autorisé à déployer plus de %1 FOBs en même temps. + Sie haben nicht die Erlaubnis, mehr als %1 FOBs zur selben Zeit zu errichten. + No se permite desplegar más de %1 FOBs al mismo tiempo + Вам не разрешено развертывать более %1 FOB одновременно. + Non sei autorizzato a costruire piè di %1 FOB allo stesso tempo + 你不能同时部署超过%1个前哨。 + 你不能佈署超過 %1 個前線基地。 + Buraya %1 den fazla FOB koyamazsınız. + Você não está autorizado a instalar mais de %1 FOB(s) ao mesmo tempo. + %1 보다 더 많은 전진기지를 건설할 수 없습니다. + Nemůžete postavit víc jak %1 FOB + + + %1 loadout successfully loaded. + Equipement %1 chargé avec succès. + Ausrüstungsset %1 erfolgreich geladen. + Equipamiento %1 cargado correctamente + Снаряжение %1 успешно загружено. + %1 equipaggiamento correttamente caricato + 成功读取%1装备。 + 成功讀取 %1 裝備。 + %1 ekipmanı başarıyla alındı. + Equipamento %1 carregado com sucesso + %1 장비를 성공적으로 불러왔습니다. + %1 výzbroj načtena. + + + Search and Rescue + Recherche et Sauvetage + Helikopterbergung + Búsqueda y rescate + Найти и Спасти + Cerca e Soccorri + 搜索与营救 + 搜索與營救 + Ara ve kurtar + Busca e Resgate + 수색 및 구출 + Záchranná mise + + + <t size='1.3' color='#ffa000'>SEARCH AND RESCUE</t><br/><br/><t size='1'>We have lost contact with a recon helicopter on mission behind the enemy lines. We believe the chopper was shot down by hostile forces.</t><br/><br/><t size='1'>The helicopter may have crashlanded anywhere in a large zone around its last known position. Your mission is to retrieve the chopper crew and their precious intel. Hostile forces may have found them first, so you must be quick, careful, and ready to engage.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Reward: 20 intel points (10 for each crew alive).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>RECHERCHE ET SAUVETAGE</t><br/><br/><t size='1'>Nous avons perdu le contact avec un helicoptère de reconnaissance en mission derrière les lignes ennemies. Il a probablement été abattu par les forces hostiles.</t><br/><br/><t size='1'>L'hélicopter a pu finir sa course dans une large zone autour de sa dernière position connue. Votre mission est de retrouver l'équipage et sa précieuse intel. Les forces hostiles les auront peut-être déjà retrouvés, votre action doit donc être rapide et décisive.</t><br/><br/><t size='1.15' color='#00a0ff'>Cout: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Récompense: 20 points d'intel (10 pour chaque équipage vivant).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>SUCHEN UND ZERSTÖREN</t><br/><br/><t size='1'>Wir haben den Kontakt mit einem Aufklärungshelikopter, der auf einer Mission hinter feindlichen Linien war, verloren. Wir vermuten, dass der Helikotper von feindlichen Kräften abgeschossen wurde.</t><br/><br/><t size='1'>Der Helikopter muss irgendwo in einem größeren Bereich um seine letzte bekannte Position notgelandet sein. Ihr Auftrag ist es, die Besatzung zu finden und deren Aufklärungsbericht zu beschaffen. Feindliche Kräfte könnten sie bereits gefunden haben, also müssen sie schnell, vorsichtig und auf alles vorbereitet sein.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Reward: 20 intel points (10 for each crew alive).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>BÚSQUEDA Y RESCATE</t><br/><br/><t size='1'>Hemos perdido contacto con un helicóptero de reconocimiento durante una misión tras las líneas enemigas. Creemos que el helicóptero ha sido derribado por las fuerzas hostiles.</t><br/><br/><t size='1'>El helicóptero habría aterrizado forzosamente en alguna parte alrededor de su última posición conocida. Tu misión consiste en traer de vuelta a su tripulación y a la preciada información de interligencia que allí se encuentra. Las fuerzas hostiles pueden haberlos encontrado antes, así que hay que ser rápidos, cuidadosos y estar preparados para enfrentarse.</t><br/><br/><t size='1.15' color='#00a0ff'>Coste: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: 20 puntos de intel (10 por cada tripulante).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>НАЙТИ И СПАСТИ</t><br/><br/><t size='1'>Мы потеряли связь с вертолетом спецотряда, на задании в тылу врага. Мы считаем, что вертолет был сбит вражескими силами.</t><br/><br/><t size='1'>Вертолет, возможно, упал где-то в большой зоне вокруг последнего известного положения. Ваша миссия состоит в том, чтобы спасти экипаж вертолета и их драгоценные разведданные. Враги, возможно, нашли их первыми, поэтому вы должны быть быстрым, внимательным, и готовы к битве.</t><br/><br/><t size='1.15' color='#00a0ff'>Стоимость: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Награда: 20 разведданных (10 за каждого живого экипажа вертолета)</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>CERCA E SOCCORRI</t><br/><br/><t size='1'>Abbiamo perso il contatto con un elicottero da ricognizione in missione dietro le linee nemiche. Riteniamo che l'elicottero sia stato abbattuto da forze ostili.</t><br/><br/><t size='1'>L'elicottero può essersi schiantato ovunque in una vasta zona attorno alla sua ultima posizione nota. La vostra missione è quella di recuperare l'equipaggio e la loro preziosa Intel. Forze ostili possono averli trovati prima di voi, quindi è necessario essere rapidi, attenti e pronto a tutto.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>20 Punti Intel (10 per ogni membro in vita).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>搜索与营救</t><br/><br/><t size='1'>我军一架侦察直升机在敌后执行任务时失联了。我们有理由相信是敌军打下了它。</t><br/><br/><t size='1'>直升机有可能坠落在其最后已知位置的一大片地区中。你的任务是营救机组成员和他们宝贵的情报。敌军部队很有可能已经抓捕了他们,因此你必须尽快、谨慎的行动,并做好交战的准备。</t><br/><br/><t size='1.15' color='#00a0ff'>花费:8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>奖励:20情报点(每名幸存组员价值10点)。</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>搜索與營救</t><br/><br/><t size='1'>我們的一架直升機在敵後進行任務時失去了聯繫,我们有理由相信是敵軍打下了它。</t><br/><br/><t size='1'>戰情單位已經協助標示出直升機的最後已知地区,你的任務是前往進行搜索並營救出直升機機組員們與他們任務中取得的寶貴情報。敵軍部隊很有可能已經派出部隊前往搜捕他們,所有你們亦須盡快而謹慎的行動,時刻做好交戰的準備。</t><br/><br/><t size='1.15' color='#00a0ff'>花費:8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>獎勵:20 點情報點(每位倖存的機組員價值 10 點情報點)。</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>ARA VE KURTAR</t><br/><br/><t size='1'>Dost bir keşif helikopterini düşman sahasında kaybettik. Helikopterin düşman kuvvetleri tarafından vurulduğuna inanıyoruz.</t><br/><br/><t size='1'>Helikopter son görülen yerde düştüğünü biliyoruz. Göreviniz helikopter personelini bulup ve taşıdığı önemli istihbaratı getirmenizdir. Düşman kuvvetler onu önceden bulabilirler dikkatli olun ve saldırıya açık olun.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Ödül: 20 istihbarat puanı (Her yaşayan kişi için 10).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>BUSCA E RESGATE</t><br/><br/><t size='1'>Perdemos contato com um helicóptero de reconhecimento presente em uma missão atrás das linhas inimigas. Acreditamos que o helicóptero foi abatido por forças hostis.</t><br/><br/><t size='1'>O helicóptero pode ter feito um pouso forçado em local próximo de sua última posição conhecida. Sua missão é recuperar a tripulação do helicóptero e sua preciosa inteligência. Forças hostis podem tê-los localizado primeiro, portanto seja rápido, cuidadoso e esteja pronto para engajar o inimigo.</t><br/><br/><t size='1.15' color='#00a0ff'>Cost: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Recompensa: 20 pontos de inteligência (10 para cada membro vivo da tripulação).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>수색 및 구출</t><br/><br/><t size='1'>적군 후방지역에서 정찰임무를 수행하던 아군 정찰기와 교신이 끊어졌습니다. 현 상황으로 판단할때 적군에게 격추당한 것 같습니다.</t><br/><br/><t size='1'>아군의 임무는 마지막 교신 위치를 중심으로 아군 정찰기의 흔적을 찾는 것입니다. 적군이 먼저 발견하기전에 아군 정찰기의 흔적을 찾아 승무원 구출 및 다른 정보들을 획득, 복귀해야 합니다. 교전이 벌어질 수 있습니다.</t><br/><br/><t size='1.15' color='#00a0ff'>소요되는 정보 점수: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>보상: 정보 점수가 20점 추가됩니다. 또한 구출한 인원 1명당 정보 점수가 10점 추가됩니다.</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + <t size='1.3' color='#ffa000'>ZÁCHRANNÁ MISE</t><br/><br/><t size='1'>Ztratili jsme kontakt s průzkumným vrtulníkem za nepřátelskými liniemi. Věříme že ji sestřelily nepřátelské jednotky.</t><br/><br/><t size='1'>Vrtulník mohl havarovat kdekoliv ve velké vzdálenosti od místa kde jsme s ní ztratily kontakt. Cílem mise je najít a zachránit přeživší posádku. Nepřátelské jednotky tam mohou být jako první, proto musíme jednat rychle, opatrně a být připraveni k boji.</t><br/><br/><t size='1.15' color='#00a0ff'>Cena: 8<img image='\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa'/></t><br/><t size='1.15' color='#ffa000'>Odměna: 20 zpravodajských bodů (10 za každého člena posádky).</t><br/><br/><t size='10'><img image='res\secondary\fob_obj.jpg'/></t> + + + + + AI recruitment limit per squad + Limite de recrutement d'IA par escouade + KI Rekrutierungslimit per Squad + Límite de reclutamiento IA por escuadra + Ограничение найма ИИ в отряд + Limite di reclutamento AI per squadra + 每班AI招募限制 + 每班AI招募限制 + Tim içindeki maksimum AI limiti + Limite de recrutamento de IA por grupo + 아군 분대당 AI병사 모집 한도 + Limit verbování AI jednotek na družstvo. + + + Crashed helicopter near %1. + Helicopter crashé près de %1. + Helikopterabsturz in der Nähe von %1 + Helicóptero derribado cerca de %1 + Вертолет разбился около %1. + L'elicottero si è schiantato nei pressi di %1. + 直升机坠毁在%1附近 + 直升機墜落在 %1 附近 + Düşmüş helikopter %1 yakınlarında. + Helicóptero abatido nas proximidades de %1. + %1 근처에 정찰기가 추락했습니다. + Havárie vrtulníku poblíž %1 + + + SAR mission failed, both crew are KIA. + Mission SAR échouée, les deux équipages sont morts. + SAR Mission fehlgeschlagen. Beide Crewmitglieder gefallen. + Misión de Búsqueda y Rescate fallida, ambos tripulantes están muertos + Миссия спасения не удалась, экипаж погиб. + Missione Cerca e Soccorri FALLITA,l'equipaggio è stato ucciso + 营救任务失败,两名组员均已阵亡。 + 營救任務失敗,直升機機組員全員陣亡。 + Arama kurtarma görevi başarısız. Ekip çatışmada öldü. + A missão de busca e resgate falhou, ambos os tripulantes morreram em combate. + 구조작전 실패, 승무원 전원 사망. + Záchranná mise selhala, všichni jsou mrtví. + + + SAR mission succeeded. + Mission SAR réussie. + SAR Mission erfolgreich + Misión de Búsqueda y Rescate completada satisfactoriamente + Миссия спасения выполнена. + Missione Cerca e Soccorri completata con successo + 营救任务成功。 + 營救任務成功。 + Arama kurtarma başarılı. + Missão de busca e resgate concluída com sucesso. + 구출작전 성공! + Záchranná mise byla úspěšná + + + Player mapmarkers activation through extended options + Kartenmarkierungen von Spielern über Erweiterte Optionen aktivierbar + Activación de marcas de mapa de jugador a través de opciones extendidas + Активация картмаркеров игроков с помощью расширенных опций + i mapmarker si attivano dal menu opzioni avanzate + 通过扩展选项激活玩家地图标记 + 通過擴增選項來開啟玩家地圖標記。 + Oyuncu harita işaretleri diğer ayarlardan açılabilir + Ativação de identificação dos jogadores no mapa, através de opções avançadas + 플레이어 지도 표시기능 활성화 + Aktivování hráčských značek skrz rozšířené menu + + + Mobile Respawn + Mobiler Respawn + Respawn Móvil + Мобильный респаун + Respawn Mobile + 机动复活点 + 機動重生點 + Mobil respawn + Respawn móvel + 재투입차량 + Mobilní respawn + + + Mobile Arsenal + Mobiles Arsenal + Arsenal Móvil + Мобильный арсенал + Arsenale Mobile + 机动军火库 + 機動軍火庫 + Mobil ekipman + Arsenal móvel + 재투입차량에 '무기고' 설치 + Mobilní arzenál + + + Respawn on attacked sectors + Respawn bei unter Angriff stehenden Sektoren + + + + + Killah Potatoes flag + Killah Potatoes Flagge + Bandera de Killah Potatoes + Флаг Killah Potatoes + Bandiera dei Killah Potatoes + Killah Potatoes旗 + Killah Potatoes旗 + Killah Potatoes bayrağı + Bandeira da Killah Potatoes + Killah Potatoes 깃발 + Killah Potatoes vlajka + + + Small storage area + Kleiner Lagerbereich + Almacén pequeño + Маленький склад + Area deposito piccola + 小型货物仓储区 + 小型貨物倉儲區 + Küçük depo + Depósito pequeno + 소형 저장 창고 + Malá skladovací plocha + + + Large storage area + Großer Lagerbereich + Almacén grande + Большой склад + Area deposito grande + 大型货物仓储区 + 大型貨物倉儲區 + Büyük depo + Depósito grande + 대형 저장 창고 + Velká skladovací plocha + + + Salvage Depot + Demontageeinrichtung + Depósito de reciclaje + Утилизационный аппарат + Edificio smaltimento rifiuti + 回收站 + 回收站 + Dönüşüm deposu + Centro de desmanche de veículos + 재활용공장 + Opravárenské Depo + + + Flight Control + Flugkontrolle + Torre de Control Aéreo + Авиационная вышка (КДП) + Torre di controllo Aerea + 空管塔台 + 空管塔台 + Uçuş Kontrol + Controle de tráfego aéreo + 비행 관제소 + Letecká kontrola + + + Helipad + Helikopterlandeplatz + Helipuerto + Вертолетная площадка + Eliporto + 停机坪 + 停機坪 + Heliped + Heliporto + 헬기착륙장 + Helipad + + + Tent Hangar + Zelthangar + Hangar de aviones + Ангар + Hangar Aereo + 机库 + 機庫 + Çadırdan hangar + Hangar para aeronaves + 항공기 격납고 + Stanový Hangár + + + There is no free storage area nearby. + Keine freie Lagerfläche in der Nähe. + No hay sitio de almacenamiento cercano + Рядом с вами нет свободного места на складе. + Non c'è un area deposito nelle vicinanze + 这附近没有空闲的仓储区 + 這附近沒有具備足夠空間的倉儲區 + Yakınlarda boş depo yok + Não há depósito disponível nas proximidades. + 근처에 남은 저장공간이 없습니다. + V blízkosti není volná skladovací plocha. + + + -- STORE CRATE + -- KISTE EINLAGERN + -- CAJA DE ALMACENAJE + -- ЗАГРУЗИТЬ НА СКЛАД + -- DEPOSITA CASSA + -- 仓储货箱 + -- 倉儲貨物 + -- KUTUYU DEPOLA + -- ARMAZENAR CAIXA NO DEPÓSITO + -- 저장창고에 쌓기 + -- ULOŽIT BEDNU + + + -- UNLOAD SUPPLY CRATE + -- NACHSCHUB ABLADEN + -- DESCARGA CAJA DE SUMINISTRO + -- ВЫГРУЗИТЬ ЯЩИК ПРИПАСОВ + -- SCARICA CASSA RIFORNIMENTI + -- 卸载补给箱 + -- 卸載補給箱 + -- İKMAL KUTUSUNU ÇIKAR + -- DESCARREGAR CAIXA DE SUPRIMENTOS + -- 보급품(S) 내리기 + -- VYLOŽIT BEDNU SE ZÁSOBAMI + + + -- UNLOAD AMMO CRATE + -- MUNITION ABLADEN + -- DESCARGA CAJA DE MUNICIÓN + -- ВЫГРУЗИТЬ ЯЩИК БОЕПРИПАСОВ + -- SCARICA CASSA MUNIZIONI + -- 卸载弹药箱 + -- 卸載彈藥箱 + -- MERMİ KUTUSUNU ÇIKAR + -- DESCARREGAR CAIXA DE MUNIÇÃO + -- 탄약(A) 내리기 + -- VYLOŽIT BEDNU S MUNICÍ + + + -- UNLOAD FUEL CRATE + -- KRAFTSTOFF ABLADEN + -- DESCARGA CAJA DE COMBUSTIBLE + -- ВЫГРУЗИТЬ ЯЩИК ТОПЛИВА + -- SCARICA CASSA CARBURANTE + -- 卸载燃料箱 + -- 卸載油料箱 + -- BENZIN KUTUSUNU ÇIKAR + -- DESCARREGAR BARRIS DE COMBUSTÍVEL + -- 연료(F) 내리기 + -- VYLOŽIT BEDNU S PALIVEM + + + -- CHECK CONTENT + -- INHALT PRÜFEN + -- COMPROBAR CONTENIDO + -- ПРОВЕРИТЬ СОДЕРЖИМОЕ + -- CONTROLLA CARICO + -- 检查存货 + -- 檢查存貨 + -- İÇİNDEKİLER KONTROL ET + -- CHECAR CONTEÚDO + -- 내용물 확인 + -- ZKONTROLOVAT OBSAH + + + Crate contains %1 resources + Kiste beinhaltet %1 Ressourcen + La caja contiene %1 recursos + Ящик содержит %1 ресурсов + La cassa continene %1 risorse + 该货箱装有%1资源 + 該貨箱裝有 %1 資源 + Kutuda %1 kaynak var + Caixa contém %1 recursos + 이 박스에는 %1 자원이 있습니다. + Bedna obsahuje 1% + + + -- Change alignment + -- Ausrichtung ändern + -- Cambiar alineación + -- Изменить выравнивание + -- Cambia allineamento + -- 更改对齐方案 + -- 變更對齊方式 + -- Hizaları değiştir + -- Mudar alinhamento + -- 땅에 맞춰 정렬 + -- Změnit zarovnání + + + Not enough free storage space + Nicht genug Lagerkapazität + No hay suficiente espacio disponible + Недостаточно свободного места на складе + Non c'è abbastanza spazio disponibile + 没有足够的仓储空间 + 沒有足夠的倉儲空間 + Yeteri kadar boş alan yok + Não há espaço de armazenamento suficiente + 저장 공간이 부족합니다. + -- Málo úložného prostoru + + + You can't recycle preplaced objects + Vorplatzierte Objekte können nicht recycelt werden + No puedes reciclar objetos pre-posicionados + Вы не можете утилизировать предварительно размещенные объекты + Non puoi riciclare oggetti statici + 你不能回收预置物体 + 你不能回收預置物件 + Koyulmayan objeleri geri dönüştüremezsiniz + Você não pode reciclar objetos pré inseridos + 사전에 배치된 객체들은 재활용 할 수 없습니다. + Nelze rozebrat představené objekty + + + Can't recycle:\nNo Salvage Depot in FOB area + Wiederverwerten nicht möglich:\nKeine Demontageeinrichtung im Bereich der FOB + Imposible reciclar:\nNo hay Centro de Reciclaje en el área del FOB + Невозможно выполнить переработку:\nНет утилизационного склада в области FOB + Nessun edificio per il riciclaggio presente nell'area + 无法回收:\n前哨区域内没有回收站 + 無法回收:\n前線基地區域內沒有回收站 + Geri dönüşemez:\nYakınlarda Dönüşüm Deposu yok + Não é possível reciclar:\nNão há centro de desmanche de veículos na área da FOB + 전초기지 영역안에 재활용공장이 없어 재활용 할 수 없습니다. + Nelze rozebrat:\nV dosahu není žádný Opravárenské depo + + + -- REASSIGN ZEUS + -- ZEUS NEU ZUWEISEN + -- REASIGNAR ZEUS + -- ПЕРЕНАЗНАЧИТЬ ZEUS + -- RIASSEGNA ZEUS + -- 重新分配ZEUS + -- 重新分配宙斯 + -- ZEUSU SEÇ + -- REDESIGNAR ZEUS + -- 제우스 재배치 + -- PŘIDĚLIT ZEUS + + + GLOBAL + GESAMT + GLOBAL + ГЛОБАЛЬНЫЙ + GLOBALE + 总览 + 總覽 + KÜRESEL + GLOBAL + 전체군수물자수량 + GLOBÁLNÍ + + + -- Switch resource display + -- Ressourcenanzeige wechseln + -- Alternar pantalla de recursos + -- Переключить отображение ресурсов + -- Cambia visualizzazione risorse + -- 切换资源显示 + -- 切換資源顯示 + -- Kaynak bölgesini değiştir + -- Alterar painel de recursos + -- 군수물자현황 조회 + -- Změnit zobrazení surovin + + + Following items are not allowed:\n%1 + Folgende Gegenstände sind nicht erlaubt:\n%1 + Los siguientes items no son permitidos:\n%1 + Следующие предметы не разрешены:\n%1 + Questi elementi non sono ammessi:\n%1 + 以下物品已被禁用:\n%1 + 以下品已被禁用:\n%1 + Şu eşyalar yasaklı:\n%1 + Os seguintes itens não são permitidos:\n%1 + 허용 금지 항목 :\n%1 + Následující věci nejsou dovoleny:\n%1 + + + -- Production Settings + -- Produktionseinstellungen + -- Configuración de producción + -- Настройки Производства + -- Impostazioni produzione + -- 产出设定 + -- 生產設定 + -- Üretim ayarları + -- Definições de Produção + -- 생산 설정 + -- Nastavení produkce + + + Production Settings + Produktionseinstellungen + Configuración de producción + Настройки Производства + Impostazioni Produzione + 产出设定 + 生產設定 + Üretim ayarları + Definições de Produção + 생산 설정 + Nastavení produkce + + + Sector Type: + Sektortyp: + Tipo de sector: + Тип сектора: + Tipo Settore: + 战区类型: + 戰區類型: + Sektör türü + Classe do setor: + 거점 유형 : + Typ sektoru: + + + City + Stadt + Ciudad + Город + Città + 城市 + 城市 + Şehir + Cidade + 도시 + Město + + + Factory + Fabrik + Fábrica + Завод + Fabbrica + 工厂 + 工廠 + Fabrika + Fábrica + 공장 + Továrna + + + Producing: + Produziert: + Produciendo: + Производит: + Prodotto: + 正在生产: + 正在生產: + Üretiyor + Produzindo: + 생산: + Produkce: + + + Nothing + Nichts + Náda + Ничего + Niente + + + Hiçbirşey + Nada + 없음. + Nic + + + Storage: + Lagerbereich: + Almacenamiento: + Склад: + Area Stoccaggio: + 仓储: + 倉儲: + Depo: + Depósito: + 보관: + Sklad: + + + Not present + Nicht vorhanden + Inexistente + Отсутствует + Inesistente + 仓储: + 沒有倉儲物品 + Depolama yok + Inexistente + 물품 없음 + Není + + + Time left: + Verbl. Zeit: + Tiempo restante: + Осталось: + Tempo rimasto: + 剩余时间: + 剩餘時間: + Kalan süre: + Tempo restante: + 남은 시간: + Zbývající čas: + + + No production + Keine Produktion + Sin producción + Нет производства + Nessuna produzione: + 无产出 + 沒有產出 + Üretim yok + Sem produção + 생산 없음 + Žádná produkce + + + %1 minutes + %1 Minuten + %1 minuto + %1 Минут(-ы) + %1 Minuti + %1分钟 + %1 分鐘 + %1 dakika + %1 minutos + %1 분 + %1 minuty + + + Facilities available + Verfügbare Einrichtungen + Instalaciones disponibles + Доступные заводы + Strutture Disponibili + 可用工厂 + 可用工廠 + Bölgeler hazır + Instalações disponíveis + 가용 공장 + Dostupné továrny + + + Stock Overview + Übersicht Lagerbestände + Resumen de Stock + Обзор склада + Scorte + 仓储总览 + 倉儲總覽 + Stok Listesi + Visão geral do armazém + 보관내역 + Stav skladů + + + %1 Crate + %1 Kiste + $1 Caja + %1 Ящик + %1 Cassa + %1箱 + %1 箱 + %1 Kutu + %1 Caixa + %1 상자 + %1 Bedna + + + %1 Crates + %1 Kisten + %1 Cajas + %1 Ящиков + %1 Casse + %1箱 + %1 箱 + %1 Kutular + %1 caixas + %1 상자 + %1 Bedny + + + Choose Production + Produktionswahl + Selecciona la producción + Выбрать продукцию + Seleziona Produzione + 选择产出 + 選擇產出 + Üretimi seç + Selecione a produção + 생산품 선택 + Vyberte produkci + + + Sector setting saved. + Sektoreinstellung gespeichert. + Configuración de sector guardada. + Настройки сектора сохранены. + Settaggi settore salvati. + 战区设置已保存。 + 戰區設定已保存。 + Sektör ayarı kaydedildi. + Definição do setor salva + 설정 저장 + Nastavení sektoru uloženo + + + -- Build storage -- + -- Lagerfläche bauen -- + -- Construir almacén -- + -- Построить склад -- + -- Crea area di stoccaggio -- + -- 建造仓储库 -- + -- 建造倉儲空間 -- + -- Depolama aç -- + -- Construir depósito -- + -- 저장창고 건설 -- + -- Postavit skladiště -- + + + -- Build supply facility -- + -- Nachschubeinrichtung bauen -- + -- Construir instalación de suministros -- + -- Построить завод припасов -- + -- Crea impianto approvvigionamento -- + -- 建造补给工厂 -- + -- 建造補給工廠 -- + -- İkmal kutusu üretimi kur -- + -- Construir fábrica de suprimentos -- + -- 보급품(S) 생산공장 건설 + -- Postavit továrnu na zásoby -- + + + -- Build ammo facility -- + -- Munitionseinrichtung bauen -- + -- Construir instalación de munición -- + -- Построить завод боеприпасов -- + -- Crea impianto munizioni -- + -- 建造弹药工厂 -- + -- 建造彈藥工廠 -- + -- Mermi kutusu üretimi kur -- + -- Construir fábrica de munição -- + -- 탄약(A) 생산공장 건설 + -- Postavit továrnu na munici -- + + + -- Build fuel facility -- + -- Kraftstoffeinrichtung bauen -- + -- Construir instalación de combustible -- + -- Построить завод топлива -- + -- Crea impianto carburante -- + -- 建造燃料工厂 -- + -- 建造油料工廠 -- + -- Benzin kutusu üretimi kur -- + -- Construir refinaria de combustível -- + -- 연료(F) 생산공장 건설 + -- Postavit továrnu na palivo -- + + + Needed facility not built in sector. + Benötigte Einrichtung nicht vorhanden. + La instalación necesaria no se ha construido en el sector. + Необходимый завод не построен в секторе. + Impianto necessario non costruito nel settore. + 该战区内没有所需的工厂。 + 該戰區內沒有所需的工廠。 + İstenilen üretim sektörde kurulu değil. + É necessária uma fábrica não construída neste setor + 이 지역에는 생산에 필요한 공장이 없습니다. + Továrna nemůže být postavena v sektoru. + + + Not enough resources.\n\nYou need:\n%1 Supplies\n%2 Ammo\n%3 Fuel + Nicht genug Ressourcen.\n\nDu benötigst:\n%1 Nachschub\n%2 Munition\n%3 Kraftstoff + No tienes suficientes recursos.\n\nNecesitas:\n%1 Suministros\n%2 Munición\n%3 Combustible + Недостаточно ресурсов.\n\nВам нужно:\n%1 Припасы\n%2 Боеприпасы\n%3 Топливо + Risorse insufficenti.\n\nHai bisogno di:\n%1 approvvigionamenti\n%2 Munizioni\n%3 Carburante + 资源不足。\n\n你需要\n%1补给\n%2弹药\n%3燃料 + 資源不足。\n\n你需要\n%1補給\n%2彈藥\n%3油料 + Yetersiz kaynak.\n\nLazım olan: \n%1 İkmal \n%2 Mermi\n%3 Benzin + Sem recursos suficientes.\n\nVocê precisa de:\n%1 Suprimentos\n%2 Munição\n%3 Combustível + 공장을 지을러면 이 지역의 저장창고에 군수물자가 필요합니다.\n\n필요항목:\n%1 보급품\n%2 탄약\n%3 연료 + Nedostatek surovin.\n\nPotřebujete:\n%1 Zásoby\n%2 Munice\n%3 Palivo + + + Facility established. + Einrichtung etabliert. + Instalación establecida. + Завод построен. + Struttura creata. + 工厂已建立。 + 工廠已建立。 + Üretim kuruldu. + Estrutura criada. + 이미 세워진 공장 + Továrna postavena + + + AI Logistics Module + AI Logistik Modul + Módulo de logística de IA + Модуль логистики AI + AI Logistica + AI后勤模块 + AI 後勤模塊 + AI Lojistiği + Módulo Logístico automatizado + 군수물자수송 AI 물류시스템 + Modul AI logistiky + + + -- Logistic Overview + -- Logistikübersicht + -- Resumen de logística -- + -- Обзор логистики + -- Vedi Logistica + -- 后勤总览 + -- 後勤總覽 + -- Lojistik + -- Visão Geral da Logística + -- 물류 개요 + -- Logistický přehled + + + Logistic Overview + Logistikübersicht + Resumen de logística + Обзор логистики + Vedi Logistica + 后勤总览 + 後勤總覽 + Lojistikler + Visão Geral da Logística + 물류 개요 + Logistický přehled + + + Add + Hinzfg + Agregar + Добавить + Aggiungi + 添加 + 添加 + Ekle + Adicionar + AI수송팀 편성 + Přidat + + + Del + Entf + Eliminar + Удалить + Elimina + 删除 + 刪除 + Sil + Deletar + AI수송팀 해체 + Odebrat + + + Status: + Status: + Status: + Статус: + Stato: + 状态: + 狀態: + Durum: + Status: + 상태: + Stav: + + + Standby + Bereitschaft + Espera un momento + Ожидание + In Attesa + 等待中 + 等待中 + Beklemede + Aguardando ordens + 대기중 + Nečinný + + + Loading + Verladen + Cargando + Погрузка + Caricamento + 装载中 + 裝載中 + Yükleniyor + Carregando + 군수물자 상하차 중 + Nakládá + + + On the way + Unterwegs + En camino + В пути + In movimento + 运输中 + 運輸中 + Yolda + A caminho + 목적지로 이동중 + Na cestě + + + Aborting mission + Auftragsabbruch + Abortando misión + Прерывание миссии + Termina missione + 放弃任务中 + 放棄任務中 + İptal ediliyor + Abortando missão + 수송 중단 + Rušení mise + + + No resources + Keine Ressourcen + Sin recursos + Нет ресурсов + Risorse non avviabili + 资源不足 + 資源不足 + Kaynak yok + Sem recursos + 군수물자 없음 + Nejsou suroviny + + + No storagespace + Kein Lagerplatz + Sin espacio de almacenamiento + Нет места на складе + Spazio non avviabile + 仓储空间不足 + 倉儲空間不足 + Depolama yeri yok + Sem espaço no depósito + 보관 여유 없음 + Není úložné místo + + + Next destination: + Nächster Zielort: + Siguiente destino: + След. пункт: + Prossima destinazione: + 下个目的地: + 下個目的地: + Diğer istikamet: + Próximo destino: + 다음 목적지: + Další cíl: + + + Current convoy cargo + Aktuelle Konvoiladung + Cargamento de convoy actual + Текущий состав конвоя + Carico convoglio attuale + 当前车队货物 + 目前車隊貨物 + Şuanki konvoy kargosu + Comboio de carga atual + 운반중인 군수물자 + Aktuální náklad konvoje + + + Assigned Trucks + Zugeteilte LKWs + Camiones asignados + Грузовики + Camion Assegnati + 已指派的卡车 + 已指派的卡車 + Seçili kamyonlar + Veículos em uso + 보유 트럭 + Nákladní auta + + + Assign Truck + LKW zuteilen + Asignar camión + Назначить грузовик + Assegna camion + 指派卡车 + 指派卡車 + Kamyon seç + Designar Transporte + 트럭 추가 + Koupit náklaďák + + + Unassign Truck + LKW abziehen + Remover camión + Убрать грузовик + Rimuovi camion + 取消指派卡车 + 取消指派卡車 + Seçimi iptal et + Dispensar Transporte + 트럭 해제 + Prodat náklaďák + + + Costs: 100 supplies and 100 fuel. + Kosten: 100 Nachschub und 100 Kraftstoff. + Costo: 100 suministros y 100 combustible + Стоимость: 100 припасов и 100 единиц топлива. + Costo: 100 approvvigionamenti e 100 carburante. + 花费:100补给和100燃料。 + 花費:100 補給和 100 油料。 + Maliyeti : 100 ikmal ve 100 benzin + Custa: 100 de suprimento e 100 de combustível. + 비용: 100보급품(S), 100연료(F) + Cena: 100 zásob a 100 paliva + + + Gives: 50 supplies and 50 fuel. + Erstattet: 50 Nachschub und 50 Kraftstoff. + Otorga: 50 suministros y 50 combustible + Дает: 50 припасов и 50 единиц топлива. + Rimborso: 50 approvvigionamenti e 50 carburante. + 回收:50补给和50燃料。 + 回收:50 補給和 50 燃料。 + Veriyor: 50 ikmal ve 50 benzin. + Fornece: 50 de suprimento e 50 de combustível. + 회수: 50보급품(S), 50연료(F) + Cena: 50 zásob a 50 paliva + + + Confirm Mission + Auftrag bestätigen + Confirmar misión + Подтвердить миссию + Conferma missione + 执行任务 + 執行任務 + Onayla + Confirmar Missão + 수송 시작 + Potvrdit misi + + + Abort Mission + Auftrag abbrechen + Abortar misión + Отменить миссию + Termina missione + 放弃任务 + 放棄任務 + İptal et + Abortar Missão + 수송 취소 + Zrušit misi + + + Not enough resources + Nicht genug Ressourcen + No hay recursos suficientes + Недостаточно ресурсов + Risorse insufficenti + 资源不足 + 資源不足 + Yetersiz kaynak + Sem recursos suficientes + 군수물자가 충분하지 않습니다. + Nedostatek surovin + + + Mission planning + Auftragsplanung + Planeación de misión + Планирование миссии + Pianificazione degli ordini + 任务计划 + 任務計畫 + Planlama + Planejamento de missão + 수송 계획 + Plánování mise + + + Destination A + Ziel A + Destino A + Пункт назначения A + Destinazione A + 地点 A + 地點 A + A istikameti + Destino A + 출발지역-A- + Cíl A + + + Destination B + Ziel B + Destino B + Пункт назначения В + Destinazione B + 地点 B + 地點 B + B istikameti + Destino B + 도착지역-B- + Cíl B + + + Supplies value from here to the other destination. (only whole numbers) + Nachschubmenge von hier zum anderen Ziel. (nur ganzzahlig) + Valor de sumistro desde aquí hasta el siguiente destino. (solo números enteros) + Припасы отсюда до другого места назначения. (Целые числа) + Valore approvvigionamenti da qui all'altra destinazione. (solo numeri interi) + 从这里运往另一地点的补给数量。(请用整数) + 從這裡運往另一地點的補給數量。(請用整數) + Burdan diğer istikamete gidecek ikmaller. (sadece sayılar) + Valores de suprimento daqui para o outro destino. (apenas valores inteiros) + 출발지에서 도착지로 운반되는 보급품(S) 수량(정수만 입력) + Hodnota zásob odtud do cílového místa. (pouze celá čísla) + + + Ammo value from here to the other destination. (only whole numbers) + Munitionsmenge von hier zum anderen Ziel. (nur ganzzahlig) + Valor de munición desde aquí hasta el siguiente destino. (solo números enteros) + Боеприпасы отсюда до другого места назначения. (Целые числа) + Valore munizioni da qui all'altra destinazione. (solo numeri interi) + 从这里运往另一地点的弹药数量。(请用整数) + 從這裡運往另一地點的彈藥數量。(請用整數) + Burdan diğer istikamete gidecek mermiler. (sadece sayılar) + Valores de munição daqui para o outro destino. (apenas valores inteiros) + 출발지에서 도착지로 운반되는 탄약(A) 수량(정수만 입력) + Hodnota munice odtud do cílového místa. (pouze celá čísla) + + + Fuel value from here to the other destination. (only whole numbers) + Kraftstoffmenge von hier zum anderen Ziel. (nur ganzzahlig) + Valor de combustible desde aqui hasta el siguiente destino. (solo números enteros) + Топливо отсюда до другого места назначения. (Целые числа) + Valore carburante da qui all'altra destinazione. (solo numeri interi) + 从这里运往另一地点的燃料数量。(请用整数) + 從這裡運往另一地點的油料數量。(請用整數) + Burdan diğer istikamete gidecek benzinler. (sadece sayılar) + Valores de combustível daqui para o outro destino. (apenas valores inteiros) + 출발지에서 도착지로 운반되는 연료(F) 수량(정수만 입력) + Hodnota paliva odtud do cílového místa. (pouze celá čísla) + + + Your mission is not possible. + Auftrag nicht möglich. + Tu misión no es posible. + Ваша миссия невозможна. + La tua missione non è possibile. + 无法执行你的任务。 + 無法執行你的任務。 + Bu istikamet imkansız. + Não é possível executar a missão designada. + 이 수송임무는 현재 불가능합니다. + Vaše trasa není možná. + + + You can't abort this mission at the moment. + Du kannst diesen Auftrag momentan nicht abbrechen. + No puedes confirmar la misión en este momento. + На данный момент вы не можете прервать эту миссию. + Non puoi terminare la missione in questo momento. + 目前你不能放弃此任务。 + 目前你不能放棄此任務。 + Bu görevi şuan iptal edemezsiniz. + Não é possível abortar esta missão neste momento. + 이 수송임무를 당장 중단 할 수 없습니다. + Trasu nelze v tuto chvíli zrušit. + + + + + Liberate the region from the enemy oppression! Strategy will be key! Good luck soldiers. + Avec le pouvoir de la Liberté et de la Démocratie votre mission est de libérer Altis de l'oppression de l'OPFOR. + Befreie das Gebiet von der feindlichen Unterdrückung mit der Kraft von Freiheit und Demokratie + Con el poder de la Libertad y la Democracia, debes liberar Altis de la opresión del OPFOR + С помощью сил "свободы" и "демократии" вы должны освободить регион от угнетения OPFOR. + Libera la regione dall'oppressione nemica! La strategia è la chiave! Buona fortuna soldati. + 从敌人手中解放这个地区!战略是制胜关键!士兵们祝你们好运。 + 從敵人手中解放此區域!戰略是致勝關鍵!士兵們,祝好運! + Bu bölgeyi düşman etkisinden kurtar! Strateji anahtardır! Bol şanslar askerler. + Libere a região da opressão inimiga! Estratégia será essencial! Boa sorte infantaria. + 적의 수중에서 이 지역을 탈환하자! 전략이 승리의 관건이다! 병사들이여, 행운을 빈다. + Osvoboďte oblast od nepřátelského útisku. Strategie je klíčová! Hodně štěstí vojáci. + + + 1. Introduction + 1. Introduction + 1. Einführung + 1. Introducción + 1. Введение + 1. Introduzione + 1. 介绍 + 1. 介紹 + 1. Giriş + 1. Introdução + 1. 소개 + 1. Instrukce + + + <br/><br/>Hello gentlemen and welcome to the region, enemy forces have surprised us with a brutal and overwhelming offensive. They now have complete control of the region but with your efforts, that won't last long.<br/> <br/>Our primary objective is simple: liberate the region from enemy control!<br/> <br/>The road to victory will be long and dangerous. You will have to retake many sectors and acquire the necessary resources to improve the quantity and quality of friendly forces engaged in this campaign.<br/> <br/>Moreover, enemy forces will most certainly react to our advance. You will have to engage in secondary operations to weaken a foe that fights with higher numbers and better equipment than you do.<br/> <br/>In your efforts you will need the support of the local population, so always double-check what you're firing at!<br/> <br/>Questions? HQ out.<br/> <br/> + <br/><br/>Hallo die Herren und Willkommen im Kampfgebiet, der Feind hat uns mit einer brutalen und überwältigenden Offensive überrascht. Er hat jetzt die totale Kontrolle, aber Dank Ihres Einsatzes wird das nicht von Dauer sein.<br/> <br/>Unser Primärziel ist einfach: Befreie das Gebiet von der Feindkontrolle!<br/> <br/>Die Straße zum Sieg wird lang und gefährlich sein. Sie werden viele Sektoren zurück erobern müssen und sich die nötigen Ressourcen beschaffen, um Quantität und Qualität unserer Truppen zu verbessern.<br/> <br/>Außerdem werden die Feindkräfte zeitnah auf unsere Fortschritte reagieren. Sie werden Sekundärziele bestreiten müssen, um den Feind zu schwächen, der uns in Truppenstärke und in Qualität der Ausrüstung überlegen ist.<br/> <br/>In Ihren Anstrengungen wird es nötig sein die lokale Bevölkerung zu unterstützen. Achten Sie also stets darauf auf wen Sie schießen!<br/> <br/>Fragen? HQ Ende. + <br/><br/>Buen día caballeros y bienvenidos a la región, las fuerzas enemigas nos han sorprendido con una ofensiva brutalmente abrumadora. Ahora tienen el control absoluto de la zona, pero con su esfuerzo, eso no duarará por mucho..<br/> <br/>Nuestro objetivo principal es simple: liberar la región del control del enemigo!<br/> <br/>El camino a la victoria será largo y peligroso. Tendrán que retomar el control de varios sectores y adquirir los recursos necesarios para mejorar la calidad y cantidad de las fuerzas amigas involucradas en esta campaña.<br/> <br/>Sin embargo, seguramente el enemigo reaccionará a nuestros avances. Tendrás que responder a operaciones secundarias para debilitar al enemigo que lucha con mayor cantidad de soldados y mejor equipo que ustedes.<br/> <br/>En sus esfuerzos tendrán que apoyar a la población local, así que siempre revisen bien a donde disparan!<br/> <br/>Preguntas? HQ termia.<br/> <br/> + <br/><br/>Gentili signori e benvenuti nella regione, le forze nemiche ci hanno sorpreso con un'offensiva brutale e schiacciante. Ora hanno il controllo completo ma con i tuoi sforzi, non durerà a lungo.<br/> <br/>Il nostro obiettivo primario è semplice: liberare la regione dal controllo nemico!<br/> <br/>La strada per la vittoria sarà lunga e pericolosa. Dovrai riprendere molti settori e acquisire le risorse necessarie per migliorare la quantità e la qualità delle forze amiche impegnate in questa campagna.<br/> <br/>Inoltre, le forze nemiche risponderanno certamente alla nostra offensiva. Dovrai impegnarti in operazioni secondarie per indebolire un nemico che combatte con numeri più elevati e attrezzature migliori di te.<br/> <br/>Avrai bisogno del sostegno della popolazione locale, quindi controlla sempre quello a cui stai sparando!<br/> <br/>Ci sono domande? HQ chiudo.<br/> <br/> + <br/><br/>Приветствую Воины и добро пожаловать на фронт, вражеские силы удивили нас сильным и ожесточенным наступлением. Теперь вся территория под их контролем, но с вашими усилиями это не на долго.<br/> <br/>Наша главная задача проста: освободить регион от вражеского контроля!<br/> <br/>Путь к победе будет долгим и опасным. Вам нужно будет вернуть многие сектора и получить необходимые ресурсы для улучшения количества и качества дружественных сил, участвующих в этой кампании.<br/> <br/>Более того, вражеские силы наверняка отреагируют на наше продвижение. Вам придется заняться второстепенными операциями, чтобы ослабить врага, которых становится все больше и с лучшим снаряжением, чем у вас..<br/> <br/>В ваших интересах поддержка местного населения, поэтому всегда перепроверяйте то, куда вы стреляете!<br/> <br/>Вопросы?<br/> <br/> + <br/><br/>同志们辛苦了,欢迎来到这个地区,敌军以迅雷之势对我们造成了严重的打击。他们现已取得了本地的控制权,但相信在你的努力下,一切很快将会有所改善。<br/> <br/>我们的主要任务很简单:从敌人手中夺回这个地区!<br/> <br/>通往胜利的漫漫长路将会极其艰难。你们需要重夺大量战区,并为增强奋战中的友军质量与数量而获取的必要资源。<br/> <br/>在此之上,敌人对我们的进攻绝不会视而不见。你们将必须通过次要行动去削弱有着比你更多更强装备的敌军。<br/> <br/>你们行动的成败离不开当地人口的支持,因此开火前一定要再三确认目标!<br/> <br/>还有问题么?指挥部通话完毕。<br/> <br/> + <br/><br/>歡迎各位來到這裡,敵軍已經已迅雷之姿對我們造成了嚴重的打擊,並奪下了本地的控制權。但相信在你的加入與努力之下,一切都很將有首改善。<br/> <br/>我們的任務非常簡單:從敵人手中奪回這塊地方!<br/> <br/>這條路會非常艱辛,你們需要奪回大量的戰區,並為了重建而需獲取必要的資源。<br/> <br/>在此同時,敵人絕對不會對我們的進攻視而不見,只要我們對他們越具威脅,他們將越派出強力的部隊來嘗試殲滅我們,所以我們必須透過完成次要目標來降低威脅度。<br/> <br/>最終,這次行動的成敗離不開當地民心的支持,所以開火前一定要再三確認!<br/> <br/>還有任何問題嗎?指揮部通話完畢!<br/> <br/> + <br/><br/>Beyler ve bayanlar buraya hoşgeldiniz, düşman kuvvetleri bizi yıkıcı ve üstün güç ile karşıladılar. Şimdi bütün alanı hakimiyet altına aldılar ve siz geldiniz ki uzun süre böyle devam etmeyecektir.<br/> <br/>İlk görevimiz basit; Bu bölgeyi düşman kontrolü altından kurtar!<br/> <br/>Kazanmanın yolu uzun ve tehlikeli. Almanız gereken bir sürü sektor ve kaynaklar var. Bu kaynakları kullanarak bu adayı almaya çalışan dost birliklerimize destek çıkacaksınız.<br/> <br/>Ve dahası düşman bizim gelişmemize takiben onlarda gelişecektir. İkincil görevlere giderek düşmanların gelişmesini önleyecek ve yeni mühimmatlar elde edeceksiniz.<br/> <br/>Yerli halka da bir o kadar dikkat edin! Sıkmadan önce 2 kere kontrol edin!<br/> <br/>Sorusu olan? Bağlantı kapandı. <br/> <br/> + <br/><br/>Olá senhores, sejam bem-vindos à região. Forças inimigas nos surpreenderam com uma ofensiva brutal e absurda. Eles possuem agora controle completo sobre a região, porém com seus esforços, tal controle não irá durar por muito tempo.<br/> <br/>Nosso objetivo primário é simples: Liberar a região do controle inimigo!<br/> <br/>O caminho para vitória será longo e perigoso. Você terá que retomar dezenas de setores e adquirir os recursos necessários para desenvolver a quantidade e qualidade das forças aliadas engajadas nesta campanha.<br/> <br/>Além disso, as forças inimigas certamente irão reagir aos nossos avanços. Você deverá engajar em operações secundárias para enfraquecer um inimigo que combate em maior número e com melhores equipamentos que você.<br/> <br/>Em sua campanha, você precisará do apoio da população local, portanto, sempre confirme no que está disparando e em quem!<br/> <br/>Perguntas? Quartel General, câmbio. QRT.<br/> <br/> + <br/><br/>제군들! 이 작전지역에 배치받은 것을 환영한다!. 현재 적군은 잔인하고 압도적인 공격으로 우리를 놀라게하였고, 이제 이 지역에 대한 완전한 통제권을 가지고 있다.<br/> <br/>하지만 아군의 노력으로 인해 오래가지 못할 것이다. 우리의 목표는 단 하나! 이 지역을 다시 탈환하는 것이다!<br/> <br/>승리의 길은 멀고도 험하다. 많은 희생을 필요로 한다. 또한 아군의 질과 양을 향상시키기 위해 필요한 자원을 생산, 확보하여 전초기지(FOB)로 수송해야 한다.<br/> <br/>적군은 우리의 진격에 가장 효과적인 방법으로 반격을 할 것이다. 따라서 우리는 적군을 약화시키기위해 부차적인 작전에도 참여해야만 한다.<br/> <br/>또한 지역 주민들의 지지를 받기위해 필요한 조치을 해야 할 것이며, 이를 항상 확인해야 할 것이다.<br/> <br/>질문? HQ out.<br/> <br/> + <br/><br/>Dobrý den, dámy a pánové, vitejte v oblasti. Jednotky OPFOR nás překvapily brutálním a ohromujícím útokem. Nyní mají vládu nad celým ostrovem, ale díky vaší snaze, ne na dlouho.<br/> <br/>Náš cíl je jednoduchý, osvobodit oblast od nepřátelského útisku.<br/> <br/>Cesta za vítězstvím bude dlouhá a nebezpečná. Musíme dobýt mnoho území a získat důležité zdroje k vylepšení a posílení BLUFOR jednotek operujících v tomto tažení.<br/> <br/>Navíc, jednotky OPFOR budou s největší pravděpodobností reagovat na váš postup. Budete muset splnit mnoho vedlejších úkolu k oslabení nepřátelské přesily s lepším vybavením.<br/> <br/>Ve svém úsilí budete potřebovat podporu místního obyvatelstva, takže se vždy ujistěte, po čem střílíte.<br/> <br/>Otázky? HQ konči.<br/> <br/> + + + 2. Starting the campaign! + 2. Débuter la campagne + 2. Starten der Kampagne + 2. Comenzando la campaña + 2. С чего начать + 2 .Inizio della Campagna + 2. 开始战役! + 1. 開始戰役! + 2. Göreve başlamak + 2. Iniciando a campanha! + 2. 전투시작 + 2. Začátek kampaně + + + <br/><br/>You begin the campaign either onboard the USS Freedom, or at Chimera base, safe zones the enemy won't dare to attack. Your first choice is to choose where you want to deploy. At first you can only deploy at your starting position but as you progress, more options will become available such as Forward Operating Bases (FOB) and mobile respawns.<br/> <br/>At your starting position you can choose your equipment from a complete Arsenal. You will also find your first FOB packaged inside a container, the Spartan-01 helicopter and a few other small transport helicopters.<br/> <br/>You will have to ferry that container with the Spartan-01 (or choose to start with the first FOB already built). You can deploy this first FOB wherever you want (as long as you're 1km from the starting position and 300m from any sector), so it's up to you to choose the right place to start your campaign offensive.<br/> <br/> + <br/><br/>Sie beginnen die Kampagne entweder an Bord der USS Freedom oder in der Chimera Basis, wobei es sich jeweils um eine sichere Zone handelt, die der Feind nicht wagen würde anzugreifen. Ihre erste Entscheidung ist es, zu wählen, wo sie eingesetzt werden wollen. Zuerst können sie nur an Ihrer Startposition einsetzen, aber je weiter Sie voran schreiten, umso mehr Möglichkeiten, wie Forward Operating Bases (FOB) und mobile Respawns, werden Ihnen offen stehen.<br/> <br/>An Ihrer Startposition können Sie Ihre Ausrüstung aus einem kompletten Arsenal wählen. Außerdem finden Sie hier auch Ihre erste FOB verpackt in einem Container, den Spartan-01 Helikopter und ein paar kleine Transport-Helikopter<br/> <br/>Sie werden diesen Container mit dem Spartan-01 verlegen müssen (oder Sie entscheiden sich, mit einer ersten, bereits gebauten FOB zu starten). Sie können diese erste FOB aufstellen, wo Sie wollen (solange sie 1km von der Startposition und 300m von einem Sektor entfernt ist), also liegt es an Ihnen, den richtigen Platz für den Start Ihrer Offensive zu finden.<br/> <br/> + <br/><br/>Empezarás la camapaña abordo del USS Freedom o en la base Chimera, las cuales son zonas seguras que el enemigo no se atreverá a atacar. La primera decisión que debes tomar es donde quieres desplegarte. Al principio solo puedes desplegarte en tu posición inicial, pero conforme progresas, tendrás más opciones disponibles como un Forward Operating Base (FOB) y mobile respawns.<br/> <br/>En tu posición inicial puedes escoger tu equipo desde el Arsenal completo. También encontrarás tu primer FOB empacado dentro de un contenedor, el helicóptero Spartan-01 y otros cuantos pequeños helicópteros de transporte.<br/> <br/>Tendrás que llevar ese contenedor con el Sparta-01 (o escoger iniciar con el primer FOB construido). Puedes construir tu primer FOB en cualquier lugar que quieras (siempre y cuando te encuentres a 1km de la posición inicial y 300m de cualquier sector), así que depende de ti escoger el mejor lugar para empezar tu campaña ofensiva.<br/> <br/> + <br/><br/>La campagna partirà dalla USS Freedom, o dalla base Chimera, sono zone sicure che il nemico non oserà attaccare. Prima di tutto bisogna scegliere dove schierarsi. All'inizio ci si può solo schierare nelle posizioni citate prima, ma mentre si progredisce, saranno disponibili ulteriori opzioni quali FOB e respawn mobili.<br/> <br/>Nella posizione iniziale puoi scegliere la tua attrezzatura da un completo Arsenale. Troverete anche la prima FOB imballata all'interno di un container, l'elicottero Spartan-01 e qualche altro piccolo elicottero da trasporto.<br/> <br/>Dovrete trasportare quel container con lo Spartan-01 (o scegliere di iniziare con la prima FOB già costruita). Puoi costruire la FOB dove vuoi (finché sei a 1 km dalla posizione iniziale e 300 metri da qualsiasi settore), quindi stà a voi scegliere il posto giusto per iniziare l'offensiva della vostra campagna.<br/> <br/> + <br/><br/>Вы начинаете кампанию либо на борту Авионосца, либо на базе Химеры, в безопасных зонах, которые враг не посмеет атаковать. Ваш первый выбор - выбрать, где вы хотите развернуться. Сначала вы можете развертывать только в начальной позиции, но по мере продвижения вперед будут доступны дополнительные опции, такие как Forward Operating Bases (FOB) и мобильные КШМ.<br/> <br/>На стартовой позиции вы можете выбрать свое снаряжение из полного арсенала. Вы также найдете свой первый FOB, упакованный в контейнер, вертолет Spartan-01 и несколько других небольших транспортных вертолетов.<br/> <br/>Вам придется переправить этот контейнер с помощью Spartan-01 (или начать с первого уже построенного FOB). Вы можете развернуть этот первый FOB везде, где хотите (пока вы в 1 км от стартовой позиции и 300 м от любого сектора), поэтому вам решать, какое место выбрать для начала наступления в вашей кампании.<br/> <br/> + <br/><br/>自由号航母或奇美拉基地——敌人绝不敢招惹的安全地带,将作为你作战的出发点。你的首个选择就是部署地点。一开始你仅能在出发点部署,但随着进度的深入,前进基地(前哨)和机动复活点等选项将会开启。<br/> <br/>你可以在开始地点从军火库中选择你的装备。你也会在这里找到自己被打包在部署柜里的首个前哨、斯巴达1号直升机以及一些其它小型运输直升机。<br/> <br/>你必须通过斯巴达1号来吊运前哨部署柜(或在游戏开始设置中开启部署起始前哨)。你可以将第一个前哨部署在任何想放置的地方(只要你在距离出发点1公里和战区300米之外的地方),因此,发起进攻的地点完全取决于你的选择。<br/> <br/> + <br/><br/>起始的作戰基地,這裡是敵人絕對不敢招惹的安全地帶,也會是我們這次反攻號角的第一個音符。這裡會是你的作戰出發點,而你首先要進行的就是佈署地點。一開始你僅能在起始作戰基地佈署,但隨著戰線的深入,前線基地和機動復活點將會被啟用。<br/> <br/>你可以在開始地點從軍火庫中自訂你的裝備,你也會在這裡找到已經被打包好的前線基地貨櫃、代號「斯巴達一號」的大型運輸直升機與其他空中載具。<br/> <br/>你必須透過斯巴達一號來吊掛你的前線基地貨櫃進行佈署(或是在遊戲設定中選擇佈署起始前線基地)。你可以將第一個前線基地放置在任何你想放置的位置(只要距離起始作戰基地一公里、戰區三百公尺之外),因此,何時、何地發起進攻,將會全權由你掌握。<br/> <br/> + Görevinize USS Freedom'da başlayacaksınız veya Chimera Bölgesinde yani düşmanların saldıramayacağı güvenli bölgelerde. İlk işiniz nereye atlayacağınız olacaktır, siz bölgeleri aldıkça yeni FOB'ler ve mobil spawn merkezleri de açacaksınız.<br/> <br/>Başladığınızda Arsenal (Cephanelik) den istediğiniz ekipmanı seçebilirsiniz. Bir FOB Konteynırı, SPARTAN-01 helikopteri ve birkaç taşıma helikopterine de ayrıca sahipsiniz.<br/> <br/>SPARTAN-01 ile FOB Konteynırını istediğiniz yere götürüp bir FOB Bölgesi (başlangıç noktasından 1km diğer sektörlerden 300mt uzakta olmanız gerekli) açabilirsiniz ve saldırmaya o FOB'den devam edebilirsiniz.<br/> <br/> + <br/><br/>Você iniciará a campanha abordo do porta-aviões USS Fredom ou na base operacional Chimera, instalações que o inimigo não se atreverá a atacar. Sua primeira escolha será definir onde irá mobilizar. Primeiramente somente poderá mobilizar na sua posição inicial, entretanto, conforme progredir, mais alternativas se tornarão disponíveis, como a Base de Operações Avançadas (FOB) e os respawns móveis.<br/> <br/>Em sua posição inicial, você poderá escolher seu equipamento através de um arsenal completo. Você terá à sua disposição sua primeira FOB transportável, dentro de um contêiner. Também estará disponível o transporte aéreo de callsign Spartan-01 e mais alguns helicópteros de transporte.<br/> <br/>Você deverá mover o mencionado contêiner utilizando a Spartan-01 (ou escolha começar com a primeira FOB já construída). Você poderá mobilizar esta FOB para onde desejar (desde que esteja a 1km do ponto inicial e a 300 metros de qualquer setor). Assim, depende apenas de você escolher o local ideal para iniciar sua campanha ofensiva.<br/> <br/> + <br/><br/>최초의 작전 기지는 적이 절대로 건드리지 못할 안전지대로, 아군의 반격 나팔 소리의 첫 음표이기도 하며, 이번 반격 작전의 출발점이 될 것이다. 처음에는 작전 기지만 배치할 수 있었으나, 반격작전이 진행됨에 따라 FOB(전초기지) 또는 재투입차량에도 배치될 것이다.<br/> <br/>또한 최초의 작전 기지에서 '무기고'를 이용하여 무장을 갖출수 있고, 이미 건설된 건초기지가 있거나 또는 전초기지(FOB)차량을 1대 찾을 수 있을 것이다. 또한 운이 좋다면 재투입차량 또는 트럭이나 공중 탑재 장비등도 찾을 수 있을 것이다.<br/> <br/>당신이 처음으로 해야할 일은 무장을 갖추고, 이미 건설된 건초기지가 있다면 거기에서부터, 만약 전초기지(FOB)차량이 있다면 그 것을 찾아 FOB(전초기지)를 적당한 곳(최초의 작전기지로부터 1km, 도시로부터 300m 떨어진 곳)에 설치해야 한다. 이 지점이 바로 첫번째 반격이 시작되는 곳으로 반격을 시작하는 지점은 전적으로 당신의 선택에 달려 있다.<br/> <br/>만약 당신이 반격작전이 진행중인 상황에서 투입된다면, 먼저 지도를 살펴보라. 현재 아군이 어디서 전투중인지 알 것이다. 아군에게 무전으로 물어보거나 채팅으로 물어보면서 전투에 참여하라. 행운을 빈다.<br/> <br/> + <br/><br/>Zahájíte kampaň buď na palubě USS Freedom, nebo na základně Chimera, v bezpečných zónách, které se nepřítel neodváží zaútočit. První volbou je vybrat, kam chcete nasadit. Zpočátku se můžete nasadit pouze na vaší výchozí pozici, ale jak postupujete, budou k dispozici další možnosti, jako jsou Forward Operating Bases (FOB) a mobilní respawns.<br/> <br/>Na své počáteční pozici si můžete vybrat vybavení z kompletního Arsenalu. Také najdete svůj první FOB zabalený v kontejneru, vrtulník Spartan-01 a několik dalších malých transportních vrtulníků.<br/> <br/>Budete se muset přepravit s pomocí Spartan-01 (nebo se rozhodnete začít s první postavenou FOB již postavenou). Tento první FOB můžete nasadit kamkoli budete chtít (pokud jste 1 km od výchozí pozice a 300 m od jakéhokoli sektoru), takže je na vás, abyste vybrali správné místo pro zahájení ofenzivy.<br/> <br/> + + + 3. Objective + 3. Objectif + 3. Ziele + 3. Objetivo + 3. Цели и задачи + 3. Obiettivi + 3. 目标 + 3. 目標 + 3. Objektifler + 3. Objetivo + 3. 작전 목표 + 3. Cíle + + + <br/><br/>The primary objective of this campaign is to remove enemy forces from the region entirely. To achieve this, you will have to liberate ALL major cities within the region! This is the only victory condition for the campaign but those cities are tough nuts to crack with only limited resources at your disposal and a well established enemy force. <br/> <br/>To succeed, you will have to capture large number of different sectors, each with their own use.<br/> <br/> + <br/><br/>Das Primärziel dieser Kampagne ist es, die Feindkräfte in dieser Region vollständig zu entfernen. Um dies zu erreichen, werden Sie ALLE Großstädte innerhalb dieser Region befreien müssen! Dies ist die einzige Bedingung zum Sieg, aber diese Städte sind schwer zu knacken, in Anbetracht unserer wenigen Ressourcen und einer gut aufgestellten Feindmacht.<br/> <br/>Um das zu erreichen, werden Sie eine große Anzahl von verschiedensten Sektoren einnehmen, jeder mit seinen spezifischen Eigenschaften.<br/> <br/> + <br/><br/>El objetivo primordial de esta campaña es remover las fuerzas enemigas de la región completamente. Para lograrlo, tendrás que liberar TODOS los pueblos mayores en la región! Esta es la única condición para la victoria de la campaña, Pero esas ciudades son nueces duras de romper con solo recursos limitados y una fuerza enemiga tan bien establecida. <br/> <br/>Para tener éxito, tendrás que capturar un grán número de diferentes sectores, cada uno con sus propios usos.<br/> <br/> + <br/><br/>L'obiettivo primario di questa campagna è di eliminare interamente le forze nemiche dalla regione. Per raggiungere questo obiettivo, dovrai liberare TUTTE le grandi città della regione! Questa è l'unica condizione di vittoria per la campagna, ma quste città sono difficili da liberare in quanto dovrete aver a disposizione numerose risorse e fronteggiare una forza nemica consolidata. <br/> <br/>Per vincere, dovrai catturare un gran numero di settori diversi, ognuno con il proprio uso.<br/> <br/> + <br/><br/>Основная цель этой кампании - полностью устранить силы противника из этого региона. Чтобы добиться этого, вам нужно будет освободить ВСЕ крупные города в регионе! Но эти города будут для вас крепкими орешками, их получится раскусить только ограничив поступление в них подкреплений, вражеские силы в них очень хорошо организованы. <br/> <br/>Чтобы добиться успеха, вам нужно будет захватить большое количество различных секторов, каждый со своим собственным использованием.<br/> <br/> + <br/><br/>本战役的主要目标是彻底将敌军赶出这个地区。要达成这点,你必须解放本地区的所有主要城市!这虽是战役唯一的胜利条件,但在有限的进攻资源下这些城市极其棘手,并驻扎着大量敌军。<br/> <br/>要想成功,你必须占领足够多不同的战区,而这些战区各有功效。<br/> <br/> + <br/><br/>作戰的最終目標是徹底將敵軍趕出這個地區,要達到這個目的,你必須解放本地區的所有主要城市!雖然這是作戰的唯一勝利條件,但在資源有限的情況下進攻這些防禦良好、又駐紮大量守軍的城市根本是天方夜譚。<br/> <br/>想要成功,你必須佔領各式各樣不同功效的戰區。<br/> <br/> + <br/><br/>O objetivo primário desta campanha é remover completamente as forças inimigas da região. Para alçancar tal objetivo, você deverá liberar TODAS as principais cidades dentro da região! Esta é a única condição de vitória para a campanha, porém essas cidades serão difíceis de pacificar com recursos limitados à sua disposição. Além disso, as forças inimigas estão muito bem instaladas no território. <br/> <br/>Para lograr êxito, você deverá capturar uma extensa quantidade de setores, cada um com sua própria base de recursos.<br/> <br/> + <br/><br/>이 반격 작전의 최종 목표는 모든 적을 이 지역에서 완전히 몰아내는 것이다. 하지만 대도시에는 많은 적군들이 있고, 이 적군들은 잘 정비되어 있으며 충분한 장비를 보유하고 있다.<br/> <br/>이러한 대도시를 점령하기 위해선 많은 군수물자를 필요로 한다.<br/> <br/>많은 군수물자를 확보하기 위해서는 다수의 다른 거점들을 점령해야 한다. 거점 종류는 총 5가지이며 각각 특별한 기능을 가지고 있다. 이것을 잘 활용하여 아군의 질과 양을 항상시켜 최종 목표를 달성해야 한다.<br/> <br/>주의!!! 민간인을 학살하거나 재산을 약탈하지 마라!!! 적군 민병대가 출현할 것이다!!!<br/> <br/> + <br/><br/>Hlavním úkolem je vyhnat jednotky OPFOR z oblasti. K dosažení, budete muset obsadit všechna hlavní města v oblasti. Toto je jediná podmínka vítězství kampaně.<br/> <br/>Ale tyto města budou oříšek, máte k dispozici jen omezené zdroje a města jsou obsazená po zuby ozbrojenými jednotkami OPFOR. <br/> <br/>Aby jste uspěly, budete muset obsadit mnoho jiných sektorů, každý za jiným účelem.<br/> <br/> + + + 4. Sectors + 4. Secteurs + 4. Sektoren + 4. Sectores + 4. Секторы + 4. Settori + 4. 战区 + 4. 戰區 + 4. Sektörler + 4. Setores + 4. 거점 + 4. Sektory + + + <br/><br/>Sectors are split into 5 different types:<br/> <br/>- Points of Interest (PoI): Generally small to medium sized villages/towns. While strategically unimportant, these places are where the citizens of the region live and as such are key in obtaining their trust and sympathy.<br/> <br/>- Factories: Across the region you will find civilian factories under enemy control. These factories are specialized at creating one of the three resources (Supplies, Ammo, and Fuel), but can later be upgraded to produce all 3. As such they are a very strategic first target!<br/> <br/>- Military Bases: Home to large amounts of highly equipped enemy forces, these installations are heavily defended and will require large and well co-ordinated assaults if you have any hope in capturing them! Capturing these bases will enable us to deploy stronger assets in the region and are critical to your success.<br/> <br/>- Radio Towers (RT): When under enemy control, RTs will be used to call in reinforcements when a nearby sector is attacked by our own forces. The reaction time of the reinforcements will depend on the distance between the tower and the sector. When under friendly control, the towers will give useful map intel on hostile troop movements in the vicinity by intercepting their radio communications.<br/> <br/>- Major Cities: There are several major cities in the region. When all are under friendly control, we will most certainly have beaten back the enemy to a point where they cannot re-establish control. This is your primary objective.<br/> <br/> + <br/><br/>Sektoren sind in 5 unterschiedliche Typen eingeteilt:<br/> <br/>- Point of Interest (PoI): Für gewöhnlich kleine- bis mittelgroße Dörfer/Städte. Jeder PoI, den Sie kontrollieren kann aufgewertet werden (nach Bau einer Lagerfläche), um uns mit den drei Arten von Ressourcen zu versorgen, die gebraucht werden, um militärische Ausrüstung zu produzieren.<br/> <br/>- Fabriken: Verteilt über das Gebiet, sind zivile Fabriken unter der Kontrolle des Feindes. Nehmen Sie diese ein, da sie nur eine Lagerfläche brauchen, um dann jede der drei Arten von Ressourcen zu produzieren, ohne sie aufwerten zu müssen. Als solches sind Fabriken ein wertvolles, strategisches, erstes Ziel!<br/> <br/>- Militär Basen: Diese beherbergen eine große Anzahl von bestens ausgestatteten Feindkräften. Sie werden stark verteidigt und erfordern einen großen und gut koordinierten Angriff, falls sie überhaupt irgendwelche Hoffnungen haben, diese einnehmen zu können.<br/> <br/>- Funktürme (FT): Unter Feindkontrolle werden FT genutzt, um Verstärkungen anzufordern, wenn ein Sektor in der Nähe von unseren Kräften angegriffen wird. Die Zeit, bis die Verstärkung eintrifft, hängt von der Entfernung zwischen Turm und Sektor ab. Unter unserer Kontrolle geben FT Aufschluß über Feindbewegung in der Nähe, indem sie ihre Funksprüche abfangen.<br/> <br/>- Großstädte: Es gibt mehrere große Städte in dem Gebiet. Wenn alle unter unserer Kontrolle sind, haben wir den Feind soweit zu einem Punkt zurückgeschlagen, von dem aus er sich nicht wieder neu formieren und die Kontrolle zurückerlangen kann. Dies ist Ihr Hauptziel.<br/> <br/> + <br/><br/>Los sectores se dividen en 5 tipos diferentes:<br/> <br/>- Puntos de Interes (PoI): Generalmente pequeñas a medianas aldeas/pueblos. Aunque estratégicamente poco importantes, estos lugares son donde viven los civiles de la región y son como tal, son calve para obtener su confianza y simpatía.<br/> <br/>- Industrias: A través de la región encontrarás industrias civiles bajo control enemigo. Éstas industrias se especializan en la creación de uno de tres recursos (Suministros, Municiones, Combustible), pero más adelante pueden ser mejoradas para producir los 3. Como tal, son un muy importante punto estratégico para empezar!<br/> <br/>- Bases Militares: Hogar de gran cantidad de enemigos altamente armados, éstas instalaciones se encuentran altamente defendidas y requerirán grandes y bien coordinados asaltos si tienes esperanza en capturarlos! Capturando estas bases nos permitirá desplegar elementos más fuertes en la región y por lo tanto son críticas para el éxito.<br/> <br/>- Torres de Radio (RT): Cuando se encuentran bajo control del enemigo, las RT serán usadas para llamar refuerzos ante el ataque de nuestras fuerzas a un sector cercano. El tiempo de reacción de los refuerzos dependerá de la distancia entre la torre y el sector. Cuando se encuentran bajo control amigo, las torres nos darán información valiosa en el mapa sobre el movimiento de tropas hostiles en las cercanías de la torre a través de interceptar sus comunicaciones por radio.<br/> <br/>- Ciudades Principales: Existe una gran cantidad de ciudades principales en la región. Cuando todas se encuentren bajo nuestor control, seguramente habremos vencido al enemigo hasta el punto donde no puedan re-establecer control. Ese es tu objetivo principal.<br/> <br/> + <br/><br/>I settori sono divisi in 5 tipi diversi:<br/> <br/>- Punti di interesse (PDI): generalmente piccoli e medi villaggi, ogni PDI che controlli può essere aggiornato (dopo la costruzione di una zona di stoccaggio) per fornire uno dei tre tipi di risorse necessari per continuare a produrre forze militari e armamenti.<br/> <br/>- Fabbriche: In tutta la regione troverete le fabbriche civili sotto il controllo nemico. Catturatele, in quanto hanno solo bisogno di una zona di archiviazione e possono quindi produrre una delle tre risorse, senza aggiornamento. In quanto Fabbriche sono un primo obiettivo strategico!<br/> <br/>- Basi Militari: Sono piene di grandi quantità di forze armate altamente equipaggiate, queste installazioni sono fortemente difese e richiedono assalti grandi e ben coordinati per avere qualche speranza di catturarle!<br/> <br/>- Torri Radio (TR): Quando sotto controllo nemico, le TR saranno utilizzate per chiamare i rinforzi quando un settore vicino viene attaccato dalle vostre forze. Il tempo di reazione dipenderà dalla distanza tra la torre e il settore. Se conquistate, le torri offriranno utili mappature su movimenti di truppe ostili nelle vicinanze intercettando le loro comunicazioni radio.<br/> <br/>- Città Principali: Ci sono diverse città principali nella regione. Quando sarannno tutte sotto controllo, certamente avremo battuto il nemico in maniera per la quale non riuscirà ristabilire il controllo. Questo è il tuo obiettivo primario.<br/> <br/> + <br/><br/>Секторы разбиты на 5 различных типов:<br/> <br/>- Точки интереса (PoI): В основном, являются от маленьких до средних по размеру деревни\города. Хотя эти места стратегически не важны, они являются местом проживания граждан региона и имеют ключевое значение для завоевания их доверия.<br/> <br/>- Заводы: Во всем регионе вы найдете гражданские заводы под контролем противника. Данные заводы специализированы на производстве одного из трех ресурсов (Припасы, Боеприпасы и Топливо), но могут быть улучшены для производства всех трех видов ресурсов. Поэтому они являются первой стратегической целью!<br/> <br/>- Военные базы: Базы являются домом для большого количество хорошо экипированных вражеских войск. Данные сооружения очень сильно защищены и потребуют больших и хорошо скоординированных усилий, если вы хотите захватить их. Захват данных баз даст нам возможность мобилизовать более сильные войска в регионе, поэтому они важны для вашего успеха.<br/> <br/>- Радиовышки (RT): Когда под контролем противника, RT будет использоваться для вызова подкреплений, когда соседний сектор атакуют наши собственные силы. Время реакции будет зависеть от расстояния между башней и сектором. Когда под дружественным контролем, башни дадут разведданные о передвижениях войск в окрестностях, перехватив их радиосвязь.<br/> <br/>- Крупные города: В регионе есть несколько крупных городов. Когда все находятся под дружественным контролем, мы, наверняка, отбили врага до такой степени, что он не сможет восстановить контроль. Это ваша основная цель.<br/> <br/> + <br/><br/>战区分为5种不同类型:<br/> <br/>- 兴趣点(PoI):一般都是小、中型村庄/小镇,你可以升级处于己方控制下的每个PoI(在建造完仓储区后),并从三种用于生产军需品和部队的资源类型中选择一项来生产<br/> <br/>- 工厂:敌军控制中的民用工厂散布在地区的各处。由于只需为这些工厂设立仓储区,即可从三种资源中任选其一进行生产, 由此带来战略地位令它们成为了必争之地!<br/> <br/>- 军事基地:有着大量高度武装的敌军力量驻扎地,这类设施防守严密,只有投入同样强大且配合良好的进攻才有可能攻陷它们!<br/> <br/>- 无线电塔(RT):敌军控制下的RT将会为附近受到我军部队攻击的战区呼叫增援。敌军增援反应时间取决于无线电塔与战区间的距离。友军控制下的无线电塔能够通过通讯监听获取附近敌军部队的动向。<br/> <br/>- 主要城市:地区内有多个主要城市。当所有城市均处于友军控制下时,我们便可以确信敌军已被彻底击溃。这就是你的主要目标。<br/> <br/> + <br/><br/>戰區可以被分為五種不同的類型:<br/> <br/>- 興趣點(PoI):一般都是小、中型村莊/小鎮,你可以升級楚瑜己方控制下的每個PoI(在建造完倉儲區後),並從三種用來生產軍需品和部隊的資源類型中選擇一種來生產。<br/> <br/>- 工場:敵軍控制的民用工廠散布在各個地方,由於只要為這些工廠設立倉儲區,就能從三種資源任選一種進行生產,這使得他們的戰略價值不言而喻,也使他們成為了兵家必爭之地!<br/> <br/>- 軍事基地:有著大量強大武裝的敵軍駐紮地,這類設施防守嚴謹,只有在投入毫不遜色的武力與良好的戰術決策才有可能攻陷它們!<br/> <br/>- 無線電塔(RT):敵軍控制下的無線電塔將為附近受我軍部隊攻擊的戰區呼叫增援,增援的反應時間取決於無線電塔與戰區的距離。友軍所控制的無線電塔則能被用來監聽周遭設施並藉以取得敵軍部隊的最新動向。<br/> <br/>- 主要城市:地區內有多個主要城市,當所有城市都被我軍攻略時,才是真正解放這個地區的時候,而這也是就是你的主要目標!<br/> <br/> + <br/><br/>Os setores estão divididos em 5 tipos distintos:<br/> <br/>- Pontos de interesse: Geralmente vilarejos/cidades de proporção pequena para média. Enquanto não tão importantes estratégicamente, esses locais são onde os cidadãos desta região vivem e dessa forma, é a chave para obter sua confiança e simpatia.<br/> <br/>- Fábricas: Em toda a região, você encontrará fábricas civis sob controle inimigo. Estas fábricas são especializadas no desenvolvimento de um dos três tipos de recursos (Suprimentos, Munição e Combustível), no entanto podem ser aprimorada para produzir todas as três classes de recursos, dessa forma, são alvos estratégicos e devem ser prioridade em seus esforços!<br/> <br/>- Bases Militares: Lar de uma vasta quantidade de forças inimigas bem equipadas, essas instalações são fortemente protegidas e requerem uma grande e bem coordenada força de assalto para de capturá-la. Ao capturar essas bases, será possível disponibilizar maiores recursos na região, que serão críticos para o seu sucesso.<br/> <br/>- Torres de Rádio: Quando sob domínio inimigo, as torres de rádio serão utilizadas para solicitar reforços quando um setor próximo estiver sendo atacado pela Coalizão. O tempo de reação dependerá da distância entre a torre e o setor. Quando estiver sob controle aliado, as torres fornecerão inteligência sobre a movimentação das tropas inimigas na proximidade. Isto será possível pois as torres interceptarão as frequências inimigas.<br/> <br/>- Grandes Cidades: Existem dezenas de grandes cidades na região. Quando estiverem sob controle da Coalizão, certamente não será possível ao inimigo retomar seu controle. Este é seu objetivo primário.<br/> <br/> + <br/><br/>- 거점의 종류는 전부 5가지이다. 첫번째로 대도시는 큰 네모안에 세모가 그려져 있다. 대도시에는 잘 정비된 적군이 방어중이다. 이 곳을 점령하기 위해선 많은 병력이 필요하다. 참고로 모든 대도시를 점령하면 적군은 이 지역에서 후퇴할 것이다.<br/> <br/>- 두번째는 적군 군사기지로 마름모에 아래쪽에 선이 그려져 있으며 적군 기갑부대가 주둔하고 있다. 지속적으로 기계화부대를 동반한 수색정찰병을 내보고 있으며 근처 적군 도시를 공격하면 지원병을 보내기도 한다.<br/> <br/>- 세번째는 네모안에 통신탑이 그려져 있는 곳으로 '라디오타워'라고 한다. 이 곳을 점령하면 주변지역의 적 거점을 공격할때 적군들이 지원부대을 못부르거나 오더라도 적은 숫자만 오게 된다.<br/> <br/>- 네번째는 네모인데 가운데에 검은 점이 찍혀있는 것으로 '도시'이라고 한다. 이 곳을 점령하면 이용가능한 AI의 숫자가 증가(최대100명)한다.<br/> <br/>- 마지막으로 주유기 표시로 된 '공장'이다. 이 지역의 경우 도시 이름 옆에 (S),(A),(F)가 표기되어 있는데 이는 생산 가능한 보급품의 종류를 나타낸다. 즉 보급품은 (S), 탄약은 (A), 연료는 (F)이다.<br/> <br/>이 지역은 아군이 점령하게 되면 왼쪽 상단 메뉴안에 --저장창고 건설-- 이라는 메뉴가 생성된다. 마을내 적당한 곳에 저장창고를 건설하면 이 곳에 이 도시에서 생산되는 군수물자가 저장된다.<br/> <br/>이 군수물자를 AI 수송부대를 이용하여 전초기지로 운반하면 장비를 생산하는데 필요한 군수물자로 사용할 수 있게 된다.<br/> <br/> + <br/><br/>Sektory jsou rozděleny na 5 různých typů:<br/> <br/>- Body zajmu: obvykle malá a střední města, strategicky nedůležitá místa, kde žijí místní civilisté v klidu a harmonii.<br/> <br/>- Vojenské základny: plné jednotek OPFOR, tyhle základny jsou dobře bráněny a vyžadují silný a koordinovaný útok. Zajmutí těchto základen nám dovolí nasadit do boje novou techniku, která je kritická k našemu vítězství.<br/> <br/>- Továrny: Napříč celou oblastí mužete najít civilní továrny pod nepřátelskou kontrolou. Tyto továrny se specializují na výrobu jedné ze tří surovin (Zásoby, Munice, Palivo), ale později je lze vylepšit aby produkovaly všechny tři suroviny najednou. Jako takové jsou strategicky našim první cílem.<br/> <br/>- Rádiové věže: pod kontrolou OPFOR jednotek, slouží k přivolání posil do blízkých sektorů pod útokem. Rychlost reakce posil je dána vzdáleností radiové věže od sektoru. Ale pod kontrolou NATO jednotek, poskytují věže informace o pohybu nepřátelských jednotek v okolí za pomoci rádiové komunikace.<br/> <br/>- Hlavní města: V oblasti je několik Hlavních Měst. Pokud jsou všechna pod kontrolou NATO, vyhráváte.<br/> <br/> + + + 5. Resources + 5. Ressources + 5. Ressourcen + 5. Recursos + 5. Ресурсы + 5. Risorse + 5. 资源 + 5. 资源 + 5. Kaynaklar + 5. Recursos + 5. 군수물자 + 5. Zdroje + + + <br/><br/>In this campaign you have to manage, store and protect three types of resources:<br/><br/><t color='#00ff00'>SUPPLIES:</t> These are the most essential. Without supplies, you will be unable to deploy additional soldiers or requisition any military hardware. As such, HQ recommends prioritising these first!<br/> <br/><t color='#ff0000'>AMMUNITION:</t> Used to stock armed vehicles such as APCs and MBTs as well as elite (and heavily armed) soldiers.<br/> <br/><t color = '#ffff00'>FUEL:</t> Every vehicle needs fuel, some being more thirsty than others.<br/> <br/>You may come across all three resources in any sector but for a considerable and constant supply, you must capture Factory sectors! Once captured, factories require a storage area (scroll menu action) and then they can immediately begin producing their intended resource. If you can afford it, any factory can be upgraded to produce the other two resources as well. <br/> <br/> + <br/><br/>In dieser Kampagne müssen Sie drei Arten von Ressourcen verwalten, einlagern und beschützen:<br/> <br/><t color='#00ff00'>NACHSCHUB:</t> Diese sind von essenzieller Bedeutung. Ohne Nachschu können Sie weder Soldaten rekrutieren, noch militärisches Gerät anfordern. Daher empfiehlt HQ diese zu bevorzugen!<br/> <br/><t color='#ff0000'>MUNITION:</t> Werden für bewaffnete Fahrzeuge wie Spz und Kpz, sowie für Elite (schwerbewaffnete) Soldaten benötigt.<br/> <br/><t color='#ffff00'>KRAFTSTOFF:</t> Jedes Fahrzeug benötigt Kraftstoff. Einige sind durstiger, als andere.<br/> <br/>In den Sektoren können Sie durchaus alle drei Arten von Ressourcen finden, aber für einen signifikanten und konstanten Nachschub, müssen Sie PoI und Fabriken einnehmen. Nach Übernahme benötigen beide Lagerflächen (Scroll-Menü) und der PoI benötigt zusätzlich noch ein Fabrikgebäude (wieder Scroll-Menü). Alle drei Arten von Fabriken können in ein und dem selben PoI gebaut werden, jedoch müssen Sie eine erste und einzige Abgabe dafür bereitstellen! Das sind 50 von der Ressource, die nachher von der Fabrik produziert werden soll und je 100 der anderen beiden Ressourcen.<br/><br/> + <br/><br/>En esta campaña tendrás que administrar, almacenar y proteger tres tipos de recursos:<br/> <br/><t color='#00ff00'>SUMINISTROS:</t> Estos son los más escenciales. Sin suministros, no podrás desplegar soldados adiciones ni solicitar mejoras militares. Como tal, HQ recomienda priorizar dichos recursos!<br/> <br/><t color='#ff0000'>MUNICION:</t> Se usa para reabastecer vehículos como APCs y Tanques, así como soldados de élite (altamente armados).<br/> <br/><t color='#ffff00'>COMBUSTIBLE:</t> Cada vehículo necesita combustible, algunos requieren más que otros.<br/> <br/>Quizá te cruces con los 3 tipos de recursos en un sector pero, para tener un fuente considerable y constante de suministros, deberás capturar sectores industriales! Una vez capturadas, las industrias requieren una zona de almacenamiento (acción en el menú escroleable) y después, ellos pueden empezar a productir los recursos deseados inmediatamente. Si puedes costearlo, cualquier industria puede ser mejorada para porducir los otros dos recursos también.<br/> <br/> + <br/><br/>In questa campagna è necessario gestire, memorizzare e proteggere tre tipi di risorse:<br/> <br/><t color='#00ff00'>APPROVVIGIONAMENTI:</t> Questi sono i più essenziali. Senza approvvigionamenti, non sarete in grado di distribuire soldati o richiedere qualsiasi hardware militare. In quanto tale, HQ raccomanda di dare priorità a queste risorse per prime!<br/> <br/><t color='#ff0000'>MUNIZIONI:</t> Utilizzate per lo stoccaggio di veicoli armati come APC e MBT, nonché soldati di élite (e pesantemente armati).<br/> <br/><t color='#ffff00'>CARBURANTE:</t> Ogni veicolo ha bisogno di carburante, alcuni hanno più sete di altri.<br/> <br/>Puoi incontrare tutte e tre le risorse in qualsiasi settore, ma per una fornitura considerevole e costante, devi catturare i PDI e le Fabbriche! Una volta catturati, entrambi richiedono un'area di stoccaggio (menu rotellina) e poi un PDI richiederà anche la costruzione di strutture (nuovamente, menu rotellina). Tutte e tre le strutture possono essere costruite in qualsiasi PDI ma dovete fornire un costo iniziale per impostare queste strutture! Costo 50 della risorsa specifica e 100 delle altre due.<br/> <br/> + <br/><br/>В этой кампании вы должны управлять, хранить и защищать три типа ресурсов:<br/> <br/><t color='#00ff00'>ПРИПАСЫ:</t> Это самое важное. Без припасов вы не сможете развернуть дополнительных солдат или реквизировать любую военную технику. Таким образом, HQ рекомендует расставить приоритеты первым!<br/> <br/><t color='#ff0000'>БОЕПРИПАСЫ:</t> Используется для оснащения вооруженных автомобилей, а также элитных (и хорошо вооруженных) солдат.<br/> <br/><t color='#ffff00'>ТОПЛИВО:</t> Каждому транспортному средству нужно топливо,некоторым требуется больше, чем другим.<br/> <br/>Вы можете встретить все три ресурса в любом секторе, но для значительного и постоянного снабжения вы должны захватывать Заводы! После захвата, заводы требуют склада (действие меню прокрутки) и тогда они смогут приступить к производству ресурсов. Вы также можете улучшить заводы для производства двух остальных ресурсов.<br/> <br/> + <br/><br/>这个战役中你必须管理、囤积并保护三种资源:<br/> <br/><t color='#00ff00'>补给:</t>最关键的物资。没有补给,你将无法部署更多步兵或军事资源。因此,指挥部建议优先谋取此类资源!<br/> <br/><t color='#ff0000'>弹药:</t>用于采购步战车(APC)和主战坦克(MBT)等装甲载具,亦用于武装精英(且重装)士兵。<br/> <br/><t color='#ffff00'>燃料:</t>载具离不了燃料,更不用说胃口极大的那些。<br/> <br/>你能在任意战区中找到以上三种资源,但想要稳定而高效的补给就需要你去占领PoI和工厂战区了!两者在占领后都需要一个仓储区(用滚轮动作菜单建立),而PoI还需要建立额外资源生产设施(依旧是滚轮动作菜单)。一个PoI能够同时容纳全部三种设施,但你必须先行投资才能将这些设施建立起来!建造设施需要消耗50点指定资源以及100点另外两种资源。<br/> <br/> + <br/><br/>在這次作戰中你必須管理、囤積與保護三種資源:<br/> <br/><t color='#00ff00'>補給:</t>最關鍵的物資。一旦沒有補給,你將無法佈署更多士兵或其餘軍事資源,因此,指揮部建議優先謀取這項資源!<br/> <br/><t color='#ff0000'>彈藥:</t>用來採購步兵戰車(APC)和主戰坦克(MBT)等裝甲載具,同時也被用於招募武裝菁英的重裝士兵。<br/> <br/><t color='#ffff00'>油料:</t>載具的必需品,任何載具都需要油料,尤其是那些「大胃王」的大型載具們。<br/> <br/>在作戰過程中你或許能在任意戰區內搜刮到以上三種資源,但是為了解放這個區域,你勢必需要更穩定而有效的補給線,這時候你就需要去佔領興趣點(PoI)和工廠了!兩者都能在占領後建立一個倉儲區(用滾輪動作選單來建立),而興趣點還需要額外建立資源生產設施(依舊是滾輪動作選單)。一個PoI能夠同時建立三種生產設施,但你必須先投資才能全數建立起來!建造設施需要 50 點對應的資源與其餘兩個資源各 100 點。<br/> <br/> + <br/><br/>Nesta campanha você deverá gerir, estocar e proteger três tipos de recursos.:<br/> <br/><t color='#00ff00'>SUPRIMENTOS:</t> Este é o recurso essencial. Sem suprimentos, será impossível mobilizar infantaria adicional ou requisitar equipamentos militares. Desse modo, o QG recomenda priorizar estes recursos!<br/> <br/><t color='#ff0000'>MUNIÇÃO:</t> Utilizada para abastecer veículos blindados armados, bem como soldados de elite de equipamento bélico pesado.<br/> <br/><t color='#ffff00'>COMBUSTÍVEL:</t> Todo veículo precisa de combustível, alguns consomem mais que outros.<br/> <br/>Você cruzará com todos os três tipos de recursos dispersos pelos setores, porém para adquirir uma quantidade considerável e abastecimento constante, você deverá capturar setores com fábricas/refinarias. Uma vez capturadas, as fábricas precisarão de um depósito (use o scroll do mouse) e então poderão imediatamente iniciar a produção do recurso pretendido. Se puder arcar com os custos, as fábricas poderão ser aprimoradas para produzir os demais recursos. <br/> <br/> + <br/><br/>군수물자는 총 3가지 종류가 있다.<br/> <br/><t color='#00ff00'>보급품:</t> 보급품(S)은 가장 중요한 군수물자로, 보급품이 없으면 AI 보병을 비롯하여 모든 장비를 배치(생산)할 수 없다.<br/> <br/>또한 장비를 배치(생산)할 때 가장 많이 소비되는 보급품이다.<br/> <br/><t color='#ff0000'>탄약:</t> 탄약(A)은 무장한 장비를 배치(생산)할 때 필요하다.<br/> <br/><t color='#ffff00'>연료:</t> 연료(F)는 장비을 움직이기 위해서 꼭 필요한 보급품이며, 대형 장비는 더 많은 연료를 소비한다.<br/> <br/>각 군수물자는 지도에서 주유기 표시로 된 '공장 '에서 생산된다. 이 지역의 경우 도시 이름 옆에 (S),(A),(F)가 표기되어 있는데 이는 생산 가능한 보급품의 종류를 나타낸다. 즉 보급품은 (S), 탄약은 (A), 연료는 (F)이다.<br/> <br/>이 지역을 아군이 점령하게 되면 왼쪽 상단 메뉴안에 --저장창고건설-- 이라는 메뉴가 생성된다. 도시내 적당한 곳에 저장창고를 건설하면 이 곳에 이 마을에서 생산된 군수물자가 저장된다. 이 군수물자를 AI수송부대를 이용하여 전초기지로 운반하면 장비를 생산하는데 사용할 수 있게 된다.<br/> <br/>만약 이 '생산공장'에서 생산중인 물품을 변경하고자 한다면, 도시내에 설치한 저장창고로 공장건설에 필요한 군수물자(생산하고자 하는 군수물자 50, 나머지 두가지 군수물자 100)을 운반한 후 변경하고자 하는 군수물자의 생산공장을 건설하면 된다.<br/> <br/>생산품은 '생산 설정' 에서 변경할 수 있고, AI 수송부대는 물류 개요' 에서 편성할 수 있다.<br/> <br/>아군 AI 수송부대의 트럭은 1회에 1대당 최대 200개의 군수물자를 운반할 수 있다.<br/> <br/> + <br/><br/>V této kampani musíte spravovat, ukládat a chránit tři typy zdrojů:<br/> <br/><t color ='#00ff00'>SUROVINY:</t> Toto jsou nejdůležitější. Bez spotřebního materiálu nebudete moci nasadit další vojáky ani zabavit vojenskou techniku. Velitelství jako takové doporučuje prioritu těchto prvních!<br/> <br/><t color ='#ff0000' >MUNICE:</t>Používá se k zásobě ozbrojených vozidel, jako jsou APC a MBT, stejně jako elity (a těžce vyzbrojení) vojáci.<br/> <br/><t color = '#ffff00'>PALIVO:</t>Každé vozidlo potřebuje palivo, některé jsou více žíznivé než ostatní.<br/> <br/>Možná narazíte na všechny tři zdroje v jakémkoli sektoru, ale pro značnou a stálou dodávku musíte zachytit tovární sektory! Jakmile jsou továrny zachyceny, vyžadují úložný prostor (akce nabídky posouvání) a poté mohou okamžitě začít vyrábět zamýšlený zdroj. Pokud si to můžete dovolit, může být každá továrna upgradována tak, aby vytvořila další dva zdroje. <br/> <br/> + + + 6. Alert Level + 6. Niveau d'alerte + 6. Alarmstatus + 6. Nivel de alerta + 6. Уровень обеспокоенности + 6. Livello di Allerta + 6. 警戒等级 + 6. 威脅度 + 6. Uyarı Seviyesi + 6. Nível de Alerta + 6. 경고수준 + 6. Úroveň pohotovosti + + + <br/><br/>The enemy won't let you liberate all of its brand new territory without a reaction. When you begin the campaign, hostile forces will only be composed of the garrisons inside military bases. However as you become more threatening by liberating more and more sectors, they will start calling in more reinforcements and equipment to counter you.<br/> <br/>To limit the enemies operational capabilities, you will have to fulfill secondary objectives that will consist of destroying their logistical bases and raiding their convoys. This is not required to win the campaign but if you ignore the alert level for too long, you're in for quite a lot of resistance.<br/> <br/> + <br/><br/>Der Feind wird nicht untätig dabei zusehen, wie wir alles in seinem brandneuen Territorium nach und nach befreien. Zu Beginn der Kampagne setzen sich die Feindkräfte lediglich aus den Garnisonen innerhalb der Militär Basen zusammen. Wie auch immer, sobald wir für den Feind mehr und mehr zu einer Bedrohnung werden, während wir mehr und mehr Sektoren einnehmen, wird er anfangen, Unterstützung und Ausrüstung anzufordern, um uns zu bekämpfen.<br/> <br/>Um den Feind in seinem militärischen Handlungsspielraum einzuschränken, müssen Sie Sekundärziele erfüllen, die aus Suchen und Zerstören von Logistic Basen, Konvoiüberfällen und Suchen und Retten von Kriegsgefangenen bestehen. Dies ist zwar keine Bedingung für den Erfolg der Kampagne, aber wenn Sie das Bedrohungsniveau zu lange ignorieren, stoßen Sie bald auf recht viel Widerstand.<br/> <br/> + <br/><br/>El enemigo no te dejará liberar todos sus territorios recién capturados sin una reacción. Cuando comiences la campaña, las fuerzas hostiles estarán conformadas solamente por tropas dentro de bases militares. Sin embargo, conforme te vuelves una amenaza mayor liberando más y más sectores, los enemigos comenzarán a llamar refuerzos y equipo para contraatacar.<br/> <br/>Para limitar la habilidad operacional de los enemigos, tendrás cumplir misiones secundarias que consisten en destruir sus bases logísticas y atacar sus convoys. Esto no es necesario para ganar la campaña pero si ignoras la alerta por mucho tiempo, espera una resistencia enemiga difícil de erradicar.<br/> <br/> + <br/><br/>Il nemico non ti permetterà di liberare tutto il suo nuovo territorio senza una reazione. Quando inizierai la campagna, le forze ostili saranno composte solo dalle guarnigioni all'interno delle basi militari. Tuttavia, quando diventerete più minacciosi , inizieranno a chiamare più rinforzi e attrezzature per contrastarvi.<br/> <br/>Per limitare la capacità offensiva dei nemici, dovrete compiere missioni secondarie che consistono nel distruggere le basi logistiche e raidare i loro convogli. Questo non è richiesto per vincere la campagna, ma se ignorate troppo il livello di allarta, sarate pronti a contrastare la risposta?.<br/> <br/> + <br/><br/>OPFOR не будут сидеть сложа руки, пока вы будете освобождать все сектора, они будут реагировать на ваши действия. Когда вы начнёте кампанию, враждебные силы будут состоять только из гарнизонов внутри военных баз. Однако, как только вы начнёте овобождать больше и больше зон, OPFOR начнёт вызывать больше подкреплений, отряды и технику для борьбы с вами.<br/> <br/>Чтобы ограничить оперативные возможности OPFOR, вы должны будете выполнять дополнительные задачи, которые будут состоять в уничтожении баз снабжения врага. Это не обязательно, для того, чтобы выиграть кампанию, но если вы будете игнорировать уровень тревоги слишком долго, у вас могут быть большие неприятности.<br/> <br/> + <br/><br/>敌人不可能拱手让出刚刚获得的新领地。战役刚开始时,敌军部队仅由本地军事基地驻扎部队构成,但战区解放的增多你产生的威胁也将逐渐加大,因此他们会开始增派更多、更好的增援和装备来对付你。<br/> <br/>要想遏制住敌人的作战能力,你必须完成摧毁对方后勤基地和劫掠对方补给车队的次要任务。这并非战役的胜利条件,但忽视警戒等级的提高将会大大增加敌人抵抗的强度。<br/> <br/> + <br/><br/>敵人不可能任你為所欲為。作戰剛開始時,敵軍部隊僅由本地軍事基地的駐紮部隊構成,但解放的戰區越多將使你對他們的威脅度也越來越高,而這也將促他們派出更多、更好與更強的部隊與人手來對付你。<br/> <br/>想要遏制住敵人的作戰能力,你必須透過摧毀敵方前線基地、掠奪對方補給車隊等次要任務來破壞他們對你的威脅度評估。次要任務並非這次作戰的必要項目,但坐視警戒度的提升將大大地提升敵人的抵抗強度!<br/> <br/> + <br/><br/>O inimigo não irá permitir a conquista de seu território sem uma reação. Quando iniciar sua campanha, forças hostis serão apenas compostas por guarnições dentro de bases militares. No entanto, ao liberar mais setores, as forças inimigas chamarão mais reforços e equipamentos para tentar te combater.<br/> <br/>Para limitar a capacidade operacional das forças de oposição, você deverá cumprir objetivos secundários que consistem na destruição de bases logísticas e no assalto aos comboios inimigos. Isto não é obrigatório para lograr êxito na campanha, todavia se o nível de alerta for ignorado por muito tempo, você enfrentará uma forte resistência inimiga.<br/> <br/> + <br/><br/>처음 반격 작전을 시작할 때에 적군들은 우리를 우습게 여길 것이다! 하지만 작전이 진행될 수록 적군들은 우리를 위험하게 느끼게 될 것이고 점점 더 많은 적군부대와 부딛치게 될 것이다.<br/> <br/>적군의 작전 능력을 억제하려면, 부차적인 임무수행을 통해 적의 후방보급기지를 파괴하거나, 보급차량을 습격, 전방으로 향하는 군수물자를 파괴하여야 한다.<br/> <br/>만약에 강력한 적군과 부딛치는 것을 두려워하지 않는다면, 부차적인 임무는 무시하고 오로지 적진을 향해 돌격하라!!!<br/> <br/> + <br/><br/>Jednotky OPFOR vás nenechají obsazovat nové sektory bez jakékoliv reakce. Na začátku kampaně jsou nepřátelé schováni pouze v nepřátelských základnách. Nebezpečí však vzrůstá s každým obsazeným sektorem, jednotky OPFOR si častěji přivolají posily, vozidla a jiné vybavení proti vám.<br/> <br/>Ke snížení nebezpečí musíte plnit vedlejší mise, například zničení logistické základny. Tohle není nutné k vyhrání kampaně a však pokud budete ignorovat vzrůstající nebezpečí, mohou přijít velké problémy.<br/> <br/> + + + 7. Construction + 7. Construction + 7. Konstruktion + 7. Construcción + 7. Строительство + 7. Construzioni + 7. 建造 + 7. 建造 + 7. İnşa etmek + 7. Construção + 7. 건설(배치) + 7. Stavění + + + <br/><br/>To help you succeed in your endeavors, you have a construction capability at every FOB that allows you to deploy infantry, vehicles, defenses, fortifications and so on to your specific location.<br/> <br/>Although infantry, vehicles and defenses will cost resources, fortifications such as structures, sandbags and walls will not.<br/> <br/>The construction system will be available when you are within 100 meters of any FOB.<br/> <br/> + <br/><br/>Hilfe zum Erfolg Ihrer Bemühungen bieten die Bauoptionen an den einzelnen FOBs, die es Ihnen ermöglichen, Infantrie, Fahrzeuge, Verteidigungsanlagen, Befestigungsanlagen und so weiter, an der jeweiligen Position zu bauen.<br/> <br/>Obgleich Infantrie, Fahrzeuge und Verteidigungsanlagen Ressourcen benötigen, braucht man zum Bau von Befestigungsanlagen wie Gebäuden, Sandsäcken und Wänden keine.<br/> <br/>Die Bauoptionen werden in einem Bereich vom 100 Metern um eine FOB herum verfügbar.<br/> <br/> + <br/><br/>Para ayudarte a tener éxito en tu misión, tienes la capacidad de construcción en cada FOB el cual te permite desplegar infantería, vehículos, defensas y fortificaciones en ubicaciones específicas.<br/> <br/>Aunque la infantería, vehículos y defensas cuestan recursos, fortificaciones y estructuras, parapetos y muros no.<br/> <br/>El sistema de construcción estará disponible cuando estés dentro de los 100 metros de cualquier FOB.<br/> <br/> + <br/><br/>Per aiutarti a riuscire nella tua missione, ogni FOB ti permette di creare fanteria, veicoli, difese, fortificazioni e così via nella posizione specifica.<br/> <br/>Anche se la fanteria, i veicoli e le difese costano risorse, le fortificazioni come strutture, sandbags e muri non lo faranno.<br/> <br/>Il sistema di costruzione sarà disponibile quando si è a 100 metri da qualsiasi FOB.<br/> <br/> + <br/><br/>Чтобы помочь вам добиться успеха в ваших начинаниях, у вас есть возможность строительства на каждом FOB, что позволяет вам развертывать пехоту, транспортные средства, оборонительные сооружения, укрепления и т.д. В вашем конкретном месте.<br/> <br/>Хотя пехота, транспортные средства и средства защиты будут стоить ресурсов, тогда как укрепления, конструкции, мешки с песком и стены бесплатны.<br/> <br/>Система строительства будет доступна, если вы находитесь не дальше чем 100 метров от любого FOB.<br/> <br/> + <br/><br/>为了帮助你走向成功,每个前哨都拥有能让你在限定范围内部署步兵、载具、防御、工事等军备的建造能力。<br/> <br/>步兵、载具和防御设备需要消耗资源,但建筑、沙袋、墙体等工事是完全免费的。<br/> <br/>你可以在前哨100米半径范围内启用建造系统。<br/> <br/> + <br/><br/>為了協助你成功解放這裡,指揮部允許你在每個前線基地周遭限定的範圍內佈署步兵、載具、防禦工事等軍備設施與建造工事。<br/> <br/>步兵、載具和防禦設備(如固定式武器)需要消耗資源,但建築、沙包、掩體等工事是完全免費的。<br/> <br/>你可以在前線基地半徑 100 公尺內使用建造系統。<br/> <br/> + <br/><br/>Para auxiliar no sucesso de sua iniciativa, você terá a capacidade de construir em todas suas bases avançadas, que o permitirá mobilizar infantaria, veículos, defesas, fortificações e etc para sua localidade.<br/> <br/>Embora infantaria, veículos e defesas exijam recursos para seu desenvolvimento, fortificações como estruturas, sacos de areia e muros não terão custo.<br/> <br/>O sistema de construção estará disponível quando você estiver a 100 metros de qualquer FOB.<br/> <br/> + <br/><br/>전초기지나 장비 또는 AI 보병을 건설(배치)하기 위해선 우선 관리자로부터 권한을 획득해야 한다. 권한을 획득한 후 제한된 갯수의 전초기지를 건설 할 수 있고, 전초기지를 건설한 후 125m거리 이내에서 장비를 생산(배치) 할 수 있다.<br/> <br/>전초기지를 건설하게 되면 제일 먼저 소형 또는 대형 저장 창고부터 건설해야 한다. 이 창고로 AI 수송부대를 이용하여 각 거점에서 생산된 군수물자를 운반, 필요한 장비를 건설(배치)해야 한다. 각 전초기지에 보관중인 보급품은 공유할 수 없다.<br/> <br/>따라서 전선이 이동하게 되면, 후방의 전초기지에 저장중인 군수물자를 새로이 건설한 전방의 전초기지로 AI 수송부대를 이용하여 운반해야 한다.<br/> <br/>아군 AI 수송부대의 트럭은 1회에 1대당 최대 200개의 군수물자를 운반할 수 있다.<br/> <br/>주의! 지역 민간인들의 지지가 없다면 적 민병대가 출현하여 아군 AI 수송부대를 습격, 군수물자를 파괴하거나 도난 당할 수 있으니 작전시 민간인을 학살하거나 재산을 약탈하지 않는다.<br/> <br/> + <br/><br/>Abyste uspěly ve své snaze, máte možnost stavět jednotky, vozidla a opevnění. Samozřejmě v závislosti na zdrojích.<br/> <br/>Ačkoli pěchota, vozidla a obrana budou stát zdroje, opevnění, jako jsou budovy, pytle s pískem a zdi, nikoliv.<br/> <br/>Systém stavění je dostupný do 100 metrů od FOB. Tehdy se vám objeví možnost stavět v kontextové nabídce.<br/> <br/> + + + 8. Deploying another FOB + 8. Déployer une autre FOB + 8. Errichtung einer weiteren FOB + 8. Desplegar otra FOB + 8. Развёртывание новой FOB + 8. Costruire un'altra FOB + 8. 部署更多前哨 + 8. 部署更多前線基地 + 8. Başka bir FOB kurmak + 8. Instalando outra FOB + 8. 전초기지(FOB) + 8. Zřízení FOB + + + <br/><br/>To build a brand new FOB, go to the construction menu and then the logistics tab and build a FOB container or a FOB truck (the same thing, only with wheels). Then you can position the FOB container/truck where you want to deploy your shiny new FOB. However, be aware that you can't build a FOB within 1km of your starting position, within 300m of any sector, or within 2km of any other FOB.<br/> <br/>That would simply be redundant!<br/> <br/> + <br/><br/>Um eine brandneue FOB zu bauen, öffnen Sie das Baumenü und unter dem Reiter Logistik bauen Sie einen FOB Container oder einen FOB Lastwagen (dasselbe, bloß mit Rädern). Dann können Sie den FOB Container/Lastwagen an die Position Ihrer Wahl bringen und Ihre niegelnagelneue FOB aufbauen. Beachten Sie, das Sie keine FOB innerhalb von 1km von der Startposition, von 300m von einem Sektor und von 2km von einer anderen FOB aufbauen können.<br/> <br/>Das wäre einfach unnötig!<br/> <br/> + <br/><br/>Para construir un nuevo FOB, ve al menú de construcción y luego a la sección de logísitica, finalmente a "Construir FOB", "Contenedor de FOB" o "Camión de FOB" (lo mismo pero con ruedas). Despupes puedes posicionar el contenedor/camión de FOB en la posición donde quieras desplegar tu flamante FOB nuevo. Sin embargo, considera que no puedes construir un FOB dentro de 1km de tu posición inicial, ni dentro de 300m alrededor de cualquier sector o 2km alrededor de cualquier otro FOB.<br/> <br/>Eso sería simplemente redundante!<br/> <br/> + <br/><br/>Per costruire una nuova FOB, vai nel menu di costruzione e poi alla scheda logistica e costruisci un contenitore FOB o un camion FOB (la stessa cosa, solo con ruote). Quindi è possibile posizionare il contenitore / camion FOB. Tuttavia, tenere presente che non è possibile costruire un FOB entro 1 km dalla posizione iniziale, ed entro 300 metri da qualsiasi settore, o entro 2 km da qualsiasi altra FOB.<br/> <br/>Sarebbe semplicemente ridondante!<br/> <br/> + <br/><br/>Чтобы построить совершенно новый FOB, перейдите в меню постройки, а затем вкладку логистики и постройте контейнер FOB или грузовик FOB (то же самое, только с колесами). Затем вы можете разместить контейнер / грузовик FOB, где вы хотите развернуть свой новый новый FOB. Однако имейте в виду, что вы не можете построить FOB в пределах 1 км от начальной позиции, в пределах 300 м от любого сектора или в пределах 2 км от любого другого FOB.<br/> <br/>Это было бы просто излишним!<br/> <br/> + <br/><br/>要建立一个新前哨,打开建造菜单的后勤面板并建造一个前哨部署柜或前哨部署车(一样的东西,只是多了轮子罢了)。然后你就可以将前哨部署柜/车安置到想部署的地方了。注意,你不能在距离出发点1公里内、战区300米内和其它前哨2公里内部署前哨。<br/> <br/>因为搞那么多前哨实在太多余了!<br/> <br/> + <br/><br/>要建立一个新的前線基地,打開建造選單的後勤面板,並建立一個前線基地貨櫃或前線基地載具(一樣的東西,只是多個輪子)。然後你就能帶著前線基地貨櫃或前線基地車到任何你想佈署的位置進行佈署了。注意,你不能在起始作戰基地 1 公里內、戰區 300 公尺内,或是其它前線基地 2 公里内部署前線基地。<br/> <br/>因為這麼多前線基地實在是太多餘了!<br/> <br/> + <br/><br/>Para construir uma nova FOB, acesse o menu de construção, selecione a aba de logística e então construir FOB no conteiner ou uma FOB transportável (é a mesma coisa, mas com rodas). Em seguida, poderá posicionar sua linda e nova FOB (transportável ou no conteiner) onde desejar. No entanto, esteja ciente de que não poderá construir a FOB dentro de 1km da sua posição inicial, dentro de 300 metros de qualquer setor ou dentro de 2km de outra FOB.<br/> <br/>Seria simplesmente redundante!<br/> <br/> + <br/><br/>최초 작전 기지 또는 이미 건설된 전초기지의 건설(배치)메뉴에서 FOB container 또는 FOB truck을 찾을 수 있을 것이다. FOB truck을 선택하여 생산한 후 배치하고 싶은 지역으로 이동하여 건설(설치)하면 된다.<br/> <br/>단, 최초 작전기지로 부터 1Km, 거점으로부터 300m, 다른 전초기지로부터 2Km 이내에는 설치를 할 수 없다.<br/> <br/>7항 건설(배치)에서 설명하였듯이 전초기지를 건설하게 되면 제일 먼저 소형 또는 대형 저장 창고부터 건설해야 한다. 이 후 AI 수송부대를 이용하여 각 거점 또는 후방의 전초기지에 보관중인 군수물자를 운반, 필요한 장비를 건설(배치) 하면 된다.<br/> <br/>주의! 지역 민간인들의 지지가 없다면 적 민병대가 출현하여 아군 AI 수송부대를 습격, 군수물자를 파괴하거나 도난 당할 수 있으니 작전시 민간인을 학살하거나 재산을 약탈하지 않는다.<br/> <br/> + <br/><br/>K postavení nového FOB, jděte do stavebního menu a pote do logistické záložky, poté postavte FOB kontejner nebo FOB náklaďák (to je to samé ale na kolech).<br/> <br/>Poté přesuňte kontejner na místo kde rozložíte z brusu nové FOB. Mějte se však na pozoru, FOB nelze postavit uvnitř obsazeného sektoru nebo ve vzdálenosti 2km od jiného FOB a 1km od startovní základny.<br/> <br/>To by bylo prostě zbytečné!<br/> <br/> + + + 9. Secondary Objectives + 9. Missions secondaires + 9. Sekundäre Ziele + 9. Objetivos secundarios + 9. Дополнительные задания + 9. Obiettivi Secondari + 9. 次要目标 + 9. 次要目標 + 9. İkincil Objektifler + 9. Objetivos Secundários + 9. 부차적인 임무 + 9. Vedlejší úkoly + + + <br/><br/>When you capture sectors, sometimes the few hostiles forces remaining will surrender. You can then capture those prisoners and take them back to a nearby FOB to be interrogated.<br/> <br/>That interrogation, executed in the utmost respect of the Geneva Convention, will allow you to obtain information which can be used to reveal the rough position of an enemy logistics base, enemy convoy or friendly search and rescue.<br/> <br/>After going there you will need to find the exact position of your target, then use any means at your disposal to complete your objective. Succeeding at this task will be rewarded, reducing the alert level consequently and with it the efficiency of all hostile forces.<br/> <br/> + <br/><br/>Nach Befreiung eines Sektors, werden sich manchmal ein paar der verbliebenen Feindkräfte ergeben. Sie können sie gefangen nehmen und zu einer nahegelegenen FOB bringen, um sie zu verhören.<br/> <br/>Dieses Verhör wird unter höchster Rücksichtnahme auf die Genfer Konventionen durchgeführt und bringt Ihnen präzise Informationen, die dazu genutzt werden können, um die ungefähre Lage einer feindlichen Logistik Basis zu bestimmen, feindliche Konvois aufzuspühren oder auch die ungefähre Position von Kriegsgefangenen zu ermitteln.<br/> <br/>Wenn sie dort angekommen sind, müssen Sie die exakte Position Ihres Ziels herausfinden, dann setzen Sie alle Ihnen zur Verfügung stehenden Mittel ein, um das Einsatzziel zu erreichen. Ein erfolgreicher Einsatz wird mit Verringerung des Bedrohungsniveaus und damit der Effektivität der feindlichen Streitkräfte belohnt.<br/> <br/> + <br/><br/>Cuando capturas sectores, a veces las pocas fuerzas enemigas terminarán por rendirse. Entonces puedes capturar a dichos prisioneros y traerlos de vuelta al FOB más cercano para ser interrogados.<br/> <br/>Esa interrogación, ejecutada al pie de la Convención de Ginebra, te otorgará información que puede ser usada para revelar la posición aproximada de bases logísticas enemigas, convos enemigos o misiones de búsqueda y rescate.<br/> <br/>Luego de ir a la ubicación, deberás encontrar la posición exacta de tu objetivo y hacer uso de cualquier medio a tu disposición para cumplirlo. Si tienes éxito en la tarea la recompenza será la reducción del nivel de alerta en la región, consecuentemente la reducción de la eficiencia de las tropas enemigas.<br/> <br/> + <br/><br/>Quando catturi i settori, talvolta le forze ostili che restano si arrenderanno. Quindi puoi catturare quei prigionieri e riportarli in una FOB vicina per interrogarli.<br/> <br/>Questa interrogazione, eseguita nel più grande rispetto della Convenzione di Ginevra, ti permetterà di ottenere informazioni precise che possano essere utilizzate per rivelare la posizione rudimentale di una base logistica nemica, di un convoglio nemico o di un salvataggio.<br/> <br/>Dopo essere andato lì dovrai trovare la posizione esatta del tuo bersaglio, quindi utilizzare qualsiasi mezzo a tua disposizione per completare il tuo obiettivo. Eseguire questo compito sarà premiato, riducendo così il livello di allarme e con essa l'efficienza di tutte le forze ostili.<br/> <br/> + <br/><br/>Когда вы захватываете сектора, иногда несколько оставшихся сил противника будут сдаваться. Затем вы можете захватить этих пленных и отвезти их в соседний FOB для допроса.<br/> <br/>Этот допрос, выполненный в полном уважении Женевской конвенции, позволит вам получить точную информацию, которая может быть использована для выявления грубой позиции базы материально-технического обеспечения противника, конвоя противника или дружественного поиска и спасения.<br/> <br/>Побывав там, вам нужно будет найти точное положение вашей цели, а затем использовать любые имеющиеся в вашем распоряжении средства для достижения своей цели. Достижение этой цели будет вознаграждено, следовательно, будет уменьшаться уровень оповещения, а вместе с ним и эффективность всех враждебных сил.<br/> <br/> + <br/><br/>有时候当你占领战区时,一些敌军残部会选择投降。你可以将他们抓到就近的前哨去审问。<br/> <br/>这种在完全遵照日内瓦公约的情况下进行的审问,能为你提供用于揭示敌军后勤基地大致位置、补给车队或友军搜索与营救任务的准确情报。<br/> <br/>之后你就需要找到目标的准确位置,并不惜一切代价完成目标。任务的成功带来的奖励将导致警戒等级下降,并进而削弱所有敌军部队的战斗力。<br/> <br/> + <br/><br/>有时候當你占領戰區時,一些敵軍殘兵會選擇投降。你可以將他們抓到任何一個前線基地(不包含起始作戰基地)進行審問。<br/> <br/>審問後獲得的情資將能用來定位出敵方前線基地或補給車隊的大致位置、或是換取搜索與營救友軍的準確情報。<br/> <br/>之後你必須找到這些目標的精確位置並不惜代價完成任務。任務成功的獎勵將降低敵方的警界度,並進而削弱所有敵軍的戰鬥能力。<br/> <br/> + <br/><br/>Quando você capturar setores, em algumas situações as forças hostis remanescentes se renderão. Você poderá capturar os prisioneiros e levá-los para a FOB mais próxima para serem interrogados.<br/> <br/>O interrogatório, executado em observância à Convenção de Genebra, o permitirá a obtenção de informações que podem ser empregadas para revelar a posição aproximada da base de logística inimiga, comboio inimigo ou operações de busca e resgate de forças aliadas.<br/> <br/>Após chegar na área de operações, você precisará identificar a localização exata do seu alvo, e então fazer uso dos meios necessários à sua disposição para concluir seu objetivo. Ao lograr êxito em sua tarefa, serão recompensados, reduzindo o nível de alerta reducing the alert level inimigo e consequentemente a eficiência de todas as forças hostis.<br/> <br/> + <br/><br/>적군의 거점들을 점령하다보면 간혹 포로를 잡을 수 있다. 이 포로를 아군 전초기지로 호송하여 심문하게 되면 정보점수가 올라간다.<br/> <br/>이 정보 점수를 사용하여 부차적인 임무 3가지를 반복해서 진행할 수 있는데, 임무를 성공하면, 적군의 작전 능력을 떨어트리거나, 더 많은 정보 점수, 또는 군수물자를 보상으로 받게 된다.<br/> <br/> + <br/><br/>Když obsadíte sektor, někdy se stane že některé nepřátelské jednotky zůstanou a vzdají se. Ty můžete zajmout a převést do nejbližší FOB kde budou vyslechnuti.<br/> <br/>Z výslechu, z úcty k Ženevským konvencím, můžete zjistit vice nebo méně přesné informace o nepřátelských logistických základnách, nepřátelských konvojích nebo o spojeneckých zajatcích.<br/> <br/>Poté, co tam půjdete, budete muset najít přesnou polohu vašeho cíle, a pak pomocí jakýchkoli prostředků, které máte k dispozici, dokončete svůj úkol. Úspěch v tomto úkolu bude odměněn, čímž se sníží úroveň pohotovosti a tím i účinnost všech nepřátelských sil.<br/> <br/> + + + 10. Commanding + 10. Commandement + 10. Oberkommando + 10. Comandancia + 10. Командование + 10. Comando + 10. 指挥 + 10. 指挥 + 10. Komuta etmek + 10. Comandando + 10. 지휘 및 기타정보 + 10. Velení + + + <br/><br/>When a player uses the Commander role, they get access to the Zeus interface by pressing the corresponding key (Y by default). This interface allows the commanding of friendly forces in 3D or map view.<br/> <br/>Moreover the commander gets additional build options that will allow them to obtain crewed vehicles or entire pre-made squads.<br/> <br/>This role is now mandatory, as it provides direct access to the management of production sectors and AI logistics. Given that you are positioned by a FOB, you will see the options "Production Settings" and "Logistic Overview".<br/> <br/> The first enables the ability to decide which Factory produces which specific resources, as well as a detailed current overview.<br/> <br/> The latter allows you to command an AI logitical convoy, where you may "Add" logistical groups, purchase any amount of trucks per group and command them to move specific amounts of resources across the region for you.<br/> <br/> + <br/><br/>Wenn ein Spieler die Rolle des Commanders übernimmt, bekommt er spezifischen Zugang zum Zeus-Interface, wenn er die entsprechende Taste dafür drückt (default Z). Dieses Interface erlaubt das Kommandieren befreundeter Einheiten in der 3D- und Kartenansicht.<br/> <br/>Darüber hinaus hat der Commander erweiterte Bauoptionen, die es ihm ermöglichen, Fahrzeuge mit Besatzung oder auch komplette vorgefertigte Squads zu bauen.<br/> <br/>Die Rolle des Commanders ist nun zwingend erforderlich, da sie direkten Zugang zum Management von Produktionssektoren und KI-Logistik bietet. Dafür hat man an einer FOB die Optionen "Produktionseinstellungen" und "Logistikübersicht".<br/> <br/> Ersteres gewährt sowohl die Möglichkeit zu entscheiden, welcher PoI oder welche Fabrik welche Ressourcen produzieren soll, als auch einen detaillierten aktuellen Überblick.<br/> <br/> Letzteres erlaubt es, einen KI-Logistik-Konvoi zu befehligen, wobei man Logistik-Gruppen hinzufügen, eine beliebige Anzahl an Lkw pro Gruppe kaufen und diese dann befehligen kann, eine bestimmte Anzahl an Ressourcen quer über die Gesammte Region zu verfahren.<br/> <br/> + <br/><br/>Cuando un jugador usa el rol de Comandante, obtienen acceso a la interface de Zeus presionando la tecla correspondiente (Y por defecto). Esta interface permite el control de tropas amigas en un entorno 3D o por medio del mapa.<br/> <br/>Además, el comandante obtiene opciones de construccion adicionales, las cuales le permiten obtener vehículos tripulados o escuadrones pre-fabricados.<br/> <br/>Este rol es mandatorio, ya que provee acceso directo al manejo de la producción en los secotres y lógistica de AI. Dado que estarás posicionado por un FOB, podrás ver opciones de "Opciones de producción" y "Resumen de logística".<br/> <br/> La primera opción permite que decidas que Indsutria produce que recurso(s), así como el detalle actual de la Industria.<br/> <br/> La segunda opción te permite comandar un convoy logísitico de AI, donde puedes "Agregar" grupos logísticos, comprar camiones por grupo y comandarlos a mover específicos recursos a través de la región.<br/> <br/> + <br/><br/>Quando un giocatore usa il ruolo del comandante, ottierrà l'accesso all'interfaccia di Zeus premendo il tasto corrispondente (Y per impostazione predefinita). Questa interfaccia consente il comando di forze amiche in visualizzazione 3D o mappa.<br/> <br/>Inoltre il comandante ottiene ulteriori opzioni di costruzione che consentiranno loro di ottenere veicoli con equipaggio o intere squadre pre-fatte.<br/> <br/>Questo ruolo è ora obbligatorio in quanto fornisce accesso diretto alla gestione dei settori produttivi e alla logistica AI. Dato che sei posizionato da una FOB, vedrai le opzioni "Impostazioni di produzione" e "Panoramica logistica".<br/> <br/> Il primo consente di decidere quali PDI o Fabbriche producono risorse specifiche, così come una panoramica corrente dettagliata.<br/> <br/> Quest'ultimo ti permette di comandare un convoglio logistico di AI, dove puoi "aggiungere" gruppi logistici, acquistare qualsiasi quantità di camion per gruppo e mandarli a spostare determinate risorse in tutta la regione per te.<br/> <br/> + <br/><br/>Когда игрок использует роль Commander, он получает специальный доступ к интерфейсу Zeus, нажав соответствующую клавишу (по умолчанию Y). Этот интерфейс позволяет управлять дружественными силами в трехмерном режиме или в режиме карты. <br/> <br/>Кроме того, командир получает дополнительные варианты сборки, которые позволят ему создавать технику с экипажем или готовые отряды. <br/> <br/>Эта роль в настоящее время является обязательной, поскольку она обеспечивает прямой доступ к управлению производственными секторами и логистикой ИИ. Учитывая, что вы позиционируетесь по FOB, вы увидите варианты «Настройки производства» и «Обзор логистики». <br/> <br/> Первое позволяет определить, какой PoI или Завод создает конкретные ресурсы, а также подробный текущий обзор.<br/> <br/> Последний позволяет вам управлять логическим конвоем AI, в котором вы можете «Добавить» логистические группы, приобрести любое количество грузовиков на группу и приказать им перемещать определенные объемы ресурсов в регионе для вас. <br/> <br/> + <br/><br/>当一名玩家扮演指挥官角色时,他将会得到按指定按键(默认为Y)打开宙斯(Zeus)界面的权限。该界面让玩家可以在3D或地图视角中指挥友军部队。<br/> <br/>除此以外,指挥官还有额外的建造选项,让他可以招募有乘员的载具或一整个预设的AI班组。<br/> <br/>现阶段由于该角色有着战区产出管理和AI后勤的直接权限,因此必须有玩家进行操作。当处于前哨范围内时,你将会看到“产出设置”和“后勤总览”两个选项。<br/> <br/>前者有着指定PoI和工厂资源产出类型,以及查看总览细目的功能。<br/> <br/>后者则让你能够指挥AI后勤车队,其中你可以“添加”后勤组、为后勤组购买任意数量的卡车,以及指挥他们在这个地区中往来运输指定资源。<br/> <br/> + <br/><br/>當一名玩家扮演指揮官角色時,他將會得到使用宙斯功能的權限,該介面讓玩家可以在 3D 或地圖視角中指揮友軍部隊。<br/> <br/>除此之外,指揮官還有額外的建築選項,讓他可以招募載有友軍單位的載具或一整個預設的 AI 班級。<br/> <br/>現階段由於該角色有著戰區產出管理與AI後勤管理的直接權限,因此必須有玩家進行操作。當處於前線基地的範圍內時,你將會看到「產出設定」和「後勤總覽」兩個選項。<br/> <br/>前者有著指定PoI和工廠資源產出類型,以及察看總覽細項的功能。<br/> <br/>後者則讓你能夠指揮 AI 車隊,其中你可以「添增」後勤單位、為後勤單位購買任意數量的卡車,並指揮他們在指定區域之間來往進行運輸物資。<br/> <br/> + <br/><br/>Quando um jogador assume a função de comandante, ele recebem acesso à interface Zeus ao pressionar a tecla correspondente (a tecla padrão é 'Y'). Essa interface permite o comando de forças aliadas na plataforma 3D ou através do mapa.<br/> <br/>Ademais, o comandante recebe opções adicionais de construção que o permitirão obter veículos tripulados ou grupos predeterminados.<br/> <br/>Tal função é agora obrigatória, pois possibilita acesso direto à gestão dos setores de produção e logísticas automatizadas. Quando estiver posicionado numa FOB, você poderá observar as opções "Configuração de Produção" e "Visão Geral de Logística".<br/> <br/> A primeira habilita a capacidade de decidir que fabrica/refinaria irá produzir qual recurso específico, bem como uma visão geral detalhada sobre o serviço.<br/> <br/> O último permite a você comandar o sistema automatizado de comboio logístico, onde você poderá "adicionar" grupos logísticos, adquirir quantos transportes desejar e os comandar para transportar quantidades específicas de recursos através do território.<br/> <br/> + <br/><br/>- 지휘 :<br/> <br/>지휘권한은 관리자가 허가한 자만이 획득할 수 있다. 지휘자는 각 거점에서 생산되고 있는 군수물자를 지정하거나 내역을 살펴 볼 수 있고, 각 군수물자를 AI수송부대를 이용하여 운반할 수 있다. 또한 제우스 기능을 사용할 수 있다.<br/> <br/>- 기타 정보 :<br/> <br/>항공기를 사용하기 위해서는 반드시 '비행 관제소'를 먼저 만들어야만 한다. 이후 '항공기 격납고'를 만들고 항공기를 배치한다. 항공기 격납고 수에 따라 운행할 수 있는 항공기 숫자가 결정된다.<br/> <br/>비행장은 평지라 할지라도 습기가 많은 지역은 항공기 이착률이 힘들기 때문에 적군 비행장을 점령하여 사용하기를 권한다.<br/> <br/>고급 장비는 특정한 군사기지를 점령해야만 전초기지에서 생산(배치)할 수 있다. 지도에 보면 군사기지 이름 옆에 원이 그려져 있고 체크가 된 곳이 있는데 이 곳을 점령하게되면 체크 옆에 표기되어 있는 장비를 생산(배치)할 수 있게 된다.<br/> <br/>전투에 사용한 장비는 반드시 전초기지로 가지고 귀환해야 한다. 전초기지범위 밖에 있으면 사라지기 때문이다. 노획장비 또한 없어지지 않기 때문에 반드시 전초기지로 귀환해서 접속종료를 하기 바란다.<br/> <br/>AI은 1플레이어가 최대 12명까지 뽑아서 사용할 수있으나, 지휘하기엔 의무병과 공병을 포함하여 3~5명정도를 추천한다.<br/> <br/>함부로 민간인을 학살하거나 재산(특히 집)을 파괴하거나 약탈(차량같은 것)하지 말라. 민병대 출현하게 되면 머리 아프다.<br/> <br/>민간인들에게 환영받기 위해서는 부상당한 민간인(간혹 지도에 보라색이 생김)들을 도와줘라.<br/> <br/>끝으로 재미있는 게임 시간이 되길 바란다!<br/> <br/> + <br/><br/>Když hráč použije roli Velitele, získá přístup k rozhraní Zeus stisknutím odpovídající klávesy (ve výchozím nastavení Y). Toto rozhraní umožňuje velení přátelských sil v zobrazení 3D nebo mapy.<br/> <br/>Navíc komandér získá přístup postavit vozidla s posádkou nebo celé předvytvořené družstva.<br/> <br/>Tato role je důležitá, a jako taková dává přímý přístup k spravování produkce v sektorech a logistice AI. Pokud budete stát na FOB, dostanete možnosti "Nastavení produkce" a "Logistický přehled".<br/> <br/> První vám dá možnost nastavit která továrna bude produkovat kterou surovinu, jako také detailní přehled.<br/> <br/> Písmena vám dovolí rozkazovat AI logistickým konvojům, kde můžete "Přidat" logistické skupiny, koupit jakékoliv množství náklaďáků na skupinu a přikázat jim převážet specifické množství surovin napříč celou oblastí pro vás.<br/> <br/> + + + Arsenal mode + Arsenalmodus + Modo Arsenal + Режим арсенала + Modalità Arsenale + 军火库模式 + 軍火庫模式 + Ekipman(Arsenal) modu + Modo do Arsenal + 무기고 모델 + Nastavení Zbrojnice + + + No restrictions + Keine Einschränkungen + Sin restricciones + Без ограничений + Senza Restrizioni + 无限制 + 無限制 + Kısıtlama yok + Sem restrições + 제한 없음 + Bez Omezení + + + Use preset from config + Benutze Preset aus Konfiguration + Usar pre-definición desde configuracion + Использовать предустановки из конфигурации + Usa il file config.sqf + 使用配置文件中的预设内容 + 使用設定文件中的預設內容 + config.sqf kullan + Usar predefinição de config.sqf + 사용자 설정(기본임무설정) + Použít nastavení z configu + + + -- PUSH CRATE + -- KISTE SCHIEBEN + -- EMPUJAR CAJA + -- ТОЛКНУТЬ ЯЩИК + -- SPINGI CASSA + -- 推货箱 + -- 推貨物 + -- KUTUYU İTTİR + -- EMPURRAR CAIXA -- + -- 군수물품 밀기 + -- TLAČIT KRABICI + + + -- STACK AND SORT + -- STAPELN UND SORTIEREN + -- APILAR Y ORDENAR + -- СОБРАТЬ И ОТСОРТИРОВАТЬ + -- IMPILA E ORDINA + -- 排列并分类 + -- 排列並分類 + -- SIRALA VE DÜZENLE + -- ORDENAR E CLASSIFICAR -- + -- 군수물품 재배치/분류 + -- SESKUPIT A ROZTŘÍDIT + + + + BI Support Module System access + BI Support Module System Zugriff + Acceso a módulo de Soporte de BI + Accesso Modulo Di Supporto BI + BI支援模块系统权限 + BI支援模塊系統權限 + Acesso ao Módulo de Suporte da Bohemia Interactive + BI 지원 단위 시스템 권한 + BI Modul podpory Přístup do systému + + + Commander only + Nur Kommandant + Solo comandante + Только командир + Solo per il Comandante + 仅指挥官 + 僅指揮官 + Sadece komutan + Apenas comandante + 지휘관 + Pouze Komandér + + + Whitelisted only + Nur Whitelist + Solo permitidos en la lista de permisos + Только из Whitelist + Con Whitelist + 仅白名单 + 僅白名單 + Sadece beyaz listedekiler + Apenas quem está na lista de permissão + 등록된 사용자 + Pouze whitelist + + + Everyone + Jeder + Todos + Все + Tutti + 所有人 + 所有人 + Herkes + Todos + 모든 사용자 + Kdokoliv + + + -- Extended Options -- + -- Erweiterte Optionen -- + -- Opciones extendidas -- + -- Расширенные Опции -- + -- Opzioni Avanzate -- + -- 扩展选项 -- + -- 擴增選項 -- + -- Gelişmiş Ayarlar -- + -- Opções Avançadas -- + -- 확장 옵션 -- + -- Rozšířené Možnosti -- + + + Extended Options + Erweiterte Optionen + Opciones Extendidas + Расширенные Опции + Opzioni Avanzate + 扩展选项 + 擴增選項 + Gelişmiş Ayarlar + Opções Avançadas + 추가 설정 + Rozšířené Možnosti + + + - disabled - + - deaktiviert - + - desabilitado - + - выключен - + - disabilitato - + - 已禁用 - + - 已禁用 - + - kapalı - + - desativado - + - 비활성화 - + - vypnuto - + + + Squad Management + Truppmanagement + Manejo de escuadras + Управление Отрядами + Gestione Squadra + 班组管理 + 班級管理 + Tim Yönetimi + Gestão de equipe + 분대 관리 + Správa Družstva + + + Join + Beitreten + Unirse + Войти + Unisciti + 加入 + 加入 + Katıl + Se juntar + 참가 + Přidat se + + + Create + Erstellen + Crear + Создать + Crea + 创建 + 建立 + Yarat + Criar + 만들기 + Vytvořit + + + Rename + Umbenennen + Renombrar + Переим. + Rinomina + 重命名 + 重新命名 + Yeniden Adlandır + Renomear + 이름변경 + Přejmenovat + + + Leader + Anführer + Lider + Лидер + Capo Squadra + 班长 + 班長 + Lider + Líder + 분대장위임 + Velitel + + + Cancel + Abbrechen + Cancelar + Отмена + Cancella + 取消 + 取消 + İptal + Cancelar + 취소 + Zrušit + + + Choose + Wählen + Elegir + Выбрать + Scegli + 选择 + 選擇 + Seç + Selecionar + 선택 + Vybrat + + + Platoon and Squad Awareness + Sichthilfen und Kartenmarkierungen + Mostrar ubicación de Pelotón y Escuadra en el mapa + Информирование о Взводах и Группах + Indicatori di Mappa + 班排警戒 + 班排警戒 + Platon ve Tim Farkındalığı + Indicador de grupo no mapa + 분대 추가 기능 설정 + Ostražitost Týmů a Družstev + + + Show platoon overlay: + Platoon Overlay: + Indicador de pelotón + Показ. оверлей взводов: + Indicatore Plotone: + 显示排界面: + 顯示排介面: + Platonu ekranda göster: + Mostrar indicador de pelotão: + 아군 분대명 보이기 설정: + Zobrazit přehled družstev: + + + active + aktiv + activo + активно + attivo + 启用 + 啟用 + aktif + Ativo + 활성화 + aktivní + + + Show player nametags: + Spielernamen: + Mostrar nombres de jugadores + Показ. имена игроков: + Indicatore Nomi: + 显示玩家铭牌: + 顯示玩家名牌: + Oyuncu isimlerini göster: + Mostrar nome dos jogadores + 아군 플레이어 이름 보이기 설정: + Zobrazit hráčské jmenovky: + + + Yes + Ja + + Да + Si + + + Evet + Sim + + Ano + + + No + Nein + No + Нет + No + + + Evet + Não + 아니요 + Ne + + + Adjust View Distance + Sichtweite ändern + Ajustar distancia de visión + Настройка Дистанции Прорисовки + Aggiusta Distanza Visiva + 调整视距 + 調整視距 + Görüş Mesafesi + Ajustar distância de visão + 가시거리 설정 + Přizpůsobit Dohled + + + View Distance + Sichtweite + Distancia de Visión + Дистанции Прорисовки + Distanza Visuale + 视野距离 + 視野距離 + Görüş Mesafesi + Distância de visão + 가시거리 + Dohled + + + Infantry + Infanterie + Infantería + Пехота + Fanteria + 步兵 + 步兵 + Kara Askeri + Infantaria + 보병 + Pěchota + + + Vehicles + Fahrzeuge + Vehículos + Транспорт + Veicoli + 载具 + 載具 + Araçlar + Veículos + 차량 + Vozidlo + + + Objects + Objekte + Objetos + Объекты + Oggetti + 物体 + 物件 + Objeler + Objetos + 사물 + Objekty + + + Adjust view distance to keep FPS above + Automatische Sichtweite für FPS über + Ajustar distancia de visión para mantener FPS arriba de + Настроить дист. прорисовки для FPS более + Aggiusta distanza in base agli FPS + 动态调整视距令FPS高于 + 自動調整視距並確保 FPS 高於 + Görüş mesafesini ayarlarak FPS'i yüksek tutun + Ajustar distância de visão para manter FPS acima de + 설정한 프레임에 맞게 시야거리 조절 + Přizpůsobit dohled k zachování FPS nad + + + Adjust Terrain Details + Landschaftdetails + Ajustar detalle de terreno + Настройка Детализации Земли + Aggiusta Dettagli Terreno + 调整地形细节 + 調整地形細節 + Yer Detayı Ayarı + Ajustar detalhes do terreno + 지형 그래픽 설정 + Přizpůsobit detaily terénu + + + Very Low + Sehr niedrig + Muy bajo + Очень низко + Molto Basso + 极低 + 極低 + Çok Düşük + Muito baixo + 매우 낮음 + Velmi nízké + + + Low + Niedrig + Bajo + Низко + Basso + + + Düşük + Baixo + 낮음 + Nízké + + + Normal + Normal + Normal + Нормально + Normale + 正常 + 正常 + Normal + Normal + 보통 + Normální + + + High + Hoch + Alto + Высоко + Alto + + + Yüksek + Alto + 높음 + Vysoké + + + Show teammates on map: + Truppmitglieder auf Karte: + Mostrar compañeros en el mapa: + Отобр. напарников на карте: + Mostra compagni in mappa: + 在地图上显示友军: + 在地圖上顯示友軍單位: + Dostları haritada göster: + Mostrar membros da equipe no mapa: + 지도에 아군 플레이어 표시 설정: + Zobrazit spoluhráče na mapě: + + + In-Vehicle Sound Volume + Fahrzeug Innenlautstärke + Volumen del sonido dentro del vehículo + Громкость звука в транспорте + Suono veicolo a bordo + 载具内音量 + 載具內音量 + Araç-içi Ses + Volume do som dentro do veículo + 차량 탑승시 소리크기 설정 + Hlasitost ve vozidle + + + Test + Test + Prueba + Тест + Test + 测试 + 測試 + Test + Teste + 실험 + Test + + + Respawn + Respawn + Reaparecer + Возродиться + Riapparizione + 重生 + 重生 + Yeniden Doğ + Respawn + 재생 + Respawn + + + Replace nearest AI + Ersetze nächste KI + Reemplazar IA más cercano + Заменить ближайшие ИИ + Rimpiazza AI + 就近附身AI + 就近附身 AI + En yakındaki AI ile değiş + Substituir IA mais próxima + 가장 가까운 AI + Nahradit nejbližší AI + + + A civilian named %1 was killed! + Ein Zivilist mit Namen %1 wurde getötet! + Un civil llamado %1 fue asesinado! + Гражданский %1 был убит! + Un civile di nome %1 è stato ucciso! + 一个名叫%1的平民被击杀了! + 一個名叫 %1 的平民被擊殺了! + %1 ismindeki sivil öldürüldü! + Um civil de nome %1 foi morto! + 민간인 %가 사망하였다! + Civilista jménem %1 byl zabit jednotkami BLUFOR! + + + A civilian's vehicle was seized! + Ein Zivilfahrzeug wurde beschlagnahmt! + Un vehículo civil fue tomado! + Транспорт гражданского был захвачен! + Un veicolo civile è stato confiscato! + 一辆平民载具被强征了! + 一輛平民載具備強徵了! + Bir sivil aracı ele geçirildi! + Um veículo de civil foi tomado! + 민간인의 차량이 탈취되었다! + Civilní vozidlo bylo zajato jednotkami BLUFOR! + + + Civilians are complaining about %1 lost buildings. + Die Zivilisten beklagen sich über %1 verlorene Gebäude. + Los civiles se quejan por %1 edificios destruidos. + Гражданские жалуются из-за %1 разрушенных зданий. + Civili si lamentano della perdita di %1 edifici. + 平民们对%1建筑的损坏有所怨言。 + 平民們對 %1 的建築物戰損有所怨言。 + Siviller %1 kadar yıkılan binaları hakkında konuşuyorlar. + Civis estão reclamando sobre %1 construções destruídas + 민간인들이 %1 건물이 파괴된 것에 대해 불평하고 있다. + Civilisté si stěžují na %1 zničené budovy. + + + Civilian named %1 is thankful for your help. + Der Zivilist %1 ist dankbar für die Hilfe. + El civil %1 se siente agradecido por tu ayuda. + Гражданский %1 благодарен за вашу помощь. + Il civile di nome %1 ti ringrazia per l'aiuto. + Um civil chamado %1 agradeceu sua ajuda. + 平民 %1 感謝你的幫助。 + 시민 %1 가 도와줘서 고맙다고 인사한다. + Civilista jménem %1 ti děkuje za pomoc. + + + Civil Reputation penalty for buildings if building is + Ziviles Ansehen sinkt, wenn Gebäude + Consecuencia en reputación con civiles por destruir edificios si el edificio es + Штраф к Репутации Гражданских, если постройка + Penalità nella reputazione coi civili , se l'edeficio è + 当建筑_____时,民间声望会降低 + 當建築物__時,民間聲望會降低。 + Şu türdeki binalara ceza verilince, ceza uygulanır + Penalidade na reputação civil se a construção estiver + 평판에 영향을 주는 민간 건물 파괴 정도 + Penalizace reputace u civilistů pokud je budova + + + damaged + beschädigt + dañado + повреждена + danneggiato + 受损 + 受損 + zarar görmüş + Danificada + 손상시 + poškozená + + + fully destroyed + komplett zerstört + completamente destruido + полностью уничтожена + completamente distrutto + 完全损毁 + 完全損毀 + tamamen yokedilmiş + Totalmente destruída + 완전 파손시 + kompletně zničena + + + SERVER RESTART NOTIFICATION + SERVER RESTART HINWEIS + NOTIFICACION DE REINICIO DE SERVIDOR + НАПОМИНАНИЕ О ПЕРЕЗАПУСКЕ СЕРВЕРА + NOTIFICA RESTART SERVER + SERVER YENİDEN BAŞLATMA BİLDİRİMİ + 服务器重启提醒 + 伺服器重啟提醒 + NOTIFICAÇÃO DE REINÍCIO DO SERVIDOR + 서버 재시작 알림! + OZNÁMENÍ O RESTARTU SERVERU + + + The server will restart in less than 60 seconds! + Server Restart in weniger als 60 Sekunden! + El servidor se reiniciará en 60 segundos! + Сервер перезапустится меньше чем через 60 секунд! + Il server si riavvierà tra meno di 60 secodni! + SERVER 60 SANİYE İÇİNDE YENİDEN BAŞLATILACAK! + 服务器将在60秒内重启! + 伺服器將在 60 秒內重啟! + O servidor irá reiniciar em menos de 60 segundos! + 서버가 60초후 재시작 됩니다! + Server se restartuje za méně jak 60 vteřin! + + + The server will restart in less than 5 minutes! + Server Restart in weniger als 5 Minuten! + El servidor se reiniciará en 5 minutos! + Сервер перезапустится меньше чем через 5 минут! + Il server si riavvierà tra meno di 5 minuti! + SERVER 5 DAKIKA İÇİNDE TEKRAR BAŞLATILACAK! + 服务器将在5分钟内重启! + 伺服器將在 5 分鐘內重啟! + O servidor irá reiniciar em menos de 5 minutos! + 서버가 5분후 재시작 됩니다. + Server se restartuje za méně jak 5 minut! + + + The server will restart in less than 15 minutes! + Server Restart in weniger als 15 Minuten! + El servidor se reiniciará en 15 minutos! + Сервер перезапустится меньше чем через 15 минут! + Il server si riavvierà tra meno di 15 minuti! + SERVER 15 DAKIKA İÇİNDE TEKRAR BAŞLATILACAK! + 服务器将在15分钟内重启! + 伺服器將在 15 分鐘內重啟! + O servidor irá reiniciar em menos de 15 minutos! + 서버가 15분후 재시작 됩니다. + Server se restartuje za méně jak 15 minut! + + + The server will restart in less than 30 minutes! + Server Restart in weniger als 30 Minuten! + El servidor se reiniciará en menos de 30 minutos! + Сервер перезапустится меньше чем через 30 минут! + Il server si riavvierà tra meno di 30 minuti! + SERVER 30 DAKIKA İÇİNDE TEKRAR BAŞLATILACAK! + 服务器将在30分钟内重启! + 伺服器將在 30 分鐘內重啟! + O servidor irá reiniciar em menos de 30 minutos! + 서버가 30분후 재시작 됩니다. + Server se restartuje za méně jak 30 minut! + + + Automatic Server Restart after (hours) + Automatischer Server Restart nach (Stunden) + Reinicio del servidor automáticamente despues de (horas) + Автоматический перезапуск сервера после (часов) + Restart Automatico del Server ogni (ore) + Otomatik server yeniden başlat (saat) + 自动重启服务器时间(小时) + 自動重啟伺服器時間(小時) + Reinício automático do servidor após (horas) + 자동 서버 재시작(시간) + Automatický restart serveru za (hodiny) + + + == DEBUG MESSAGES == + == DEBUG NACHRICHTEN == + == MNESJAES DE DEBUG == + == ОТЛАДОЧНЫЕ СООБЩЕНИЯ == + == MESSAGGI DI DEBUG == + == DEBUG MESAJLARI == + == 除错信息 == + == 除錯訊息 == + == MENSAGENS DE DEBUG == + == 정보 수집 메세지 == + == DEBUGOVACÍ ZPRÁVY == + + + Civil Informant + Ziviler Informant + Informante Civil + Informatore Civile + Sivil Bilgisi + 民间线人 + 民間線人 + Informante Civil + 민간인 정보원 + Civilní Informace + + + Civil Reputation + Ziviles Ansehen + Reputación Civil + Reputazione Civili + Sivil Repütasyonu + 民间声望 + 民間聲望 + Reputação Civil + 민간인 평판 + Civilní Reputace + + + A civilian from %1 says he has some information for us. + Ein Zivilist aus %1 sagt, er hätte Informationen für uns. + Un civil de %1 dice que tiene información para nosotros. + Гражданский из %1 говорит, что у него есть информация для нас. + Un civile a %1 dice di avere informazioni per noi. + %1 adında ki bir sivil bize vereceği bir bilgisi olduğunu söylüyor. + 来自%1的一位平民说他有情报要交给我们。 + 來自 %1 的一位平民說他有情報要交給我們。 + Um civil de %1 disse que possui algumas informações para nos apresentar. + %1 이름의 민간인이 우리에게 정보가 있다고 접근중이다. + Civilista z %1, říká že má pro nás nějakou informaci. + + + The civilian gave us some important information. + Der Zivilist gab uns wichtige Informationen. + Un civil nos ha dado información importante. + Гражданский передал нам важную информацию. + Il civile ha fornito informazioni importatnti. + Sivil bize çok önemli bilgiler verdi. + 平民给了我们一些重要情报。 + 平民給了我們一些重要情報。 + Um civil nos concedeu algumas informações importantes. + 민간인들이 우리에게 중요한 정보를 몇가지 알려 주었다. + Civilista nám dal nějaké důležité informace. + + + The civilian has disappeared. + Der Zivilist ist wieder untergetaucht. + El civil ha desaparecido. + Гражданский пропал. + Il civile è scomparso. + Sivil ortadan kayboldu. + 平民消失了。 + 平民消失了。 + Um civil desapareceu. + 민간인이 행방불명되었다. + Civilista odešel. + + + The civilian died. + Der Zivilist wurde getötet. + El civil ha muerto. + Гражданский умер. + Il civile è morto. + Sivil öldü. + 平民死亡了。 + 平民死亡了。 + Um civil morreu. + 민간인이 사망하였다. + Civilista umřel. + + + Asymmetric Threat + Asymmetrische Bedrohung + Amenaza Asimétrica + Minaccia Asimmetrica + Asimetrik Tehdit + 非对称威胁 + 非對稱威脅 + Ameaça Assimétrica + 비대칭 위협 + Asymmetric Threat + + + Logistic + Logistik + Logística + Логистика + Logistica + Lojistik + 后勤 + 後勤 + Logística + 물류 + Logistika + + + Logistic Convoy Ambush + Logistikkonvoi Überfall + Envoscada de Convoy de Logística + Засада на конвой + Convoglio Sotto Attacco + Lojistik Konvoyu Baskını + 后勤车队受袭 + 後勤車隊遭到襲擊 + Emboscada no Comboio Logístico + 아군 AI수송부대가 습격을 당했다. + Přepadení Logistického konvoje + + + Guerilla forces attacking our convoy near %1. + Guerillakräfte greifen unseren Konvoi nahe %1 an. + Fuerzas de geurrilla atacando nuestro convoy cerca de %1. + Партизанские войска атакуют наш конвой около %1. + Guerriglieri attaccano il nostro convoglio vicino %1 + Gerilla kuvvetleri bizim konvoyumuza saldırıyor, %1 yakınında. + 游击队正在%1附近攻击我们的车队 + 游擊隊正在 %1 附近攻擊我們的車隊 + Forças de guerrilha estão atacando nosso comboio nas proximidades de %1. + 적군 민병대가 1% 부근에서 아군 AI수송부대를 공격하고 있다! + Odboj přepadl náš konvoj poblíž %1. + + + The ambush was successfully repelled. + Der Hinterhalt konnte erfolgreich zurückgeschlagen werden. + La envoscada ha sido repelida satisfactoriamente. + Засада успешно отражена. + L'attacco è stato neutralizzato. + Baskın başarıyla püskürtüldü. + 成功击退了来犯者。 + 成功擊退了游擊隊。 + A emboscada foi frustrada com sucesso. + 아군 AI수송부대에 대한 적 민병대의 공격을 성공적으로 막아내었다. + Přepadení bylo úspěšně odraženo + + + The guerilla forces escaped with the convoy resources. + Die Guerillakräfte konnten mit den Konvoiressourcen verschwinden. + Las fuerzas de guerrilla han escapado con los recursos del convoy. + Партизанские войска сбежали с ресурсами конвоя. + I Guerriglieri scappano con le risorse del nostro convoglio. + Gerilla kuvvetleri malzemelerimizle beraber kaçtılar. + 游击队抢走了车队物资。 + 游擊隊搶走了車隊物資。 + As forças de guerrilha escaparam com os recursos do comboio. + 적군 민병대가 아군 AI수송부대가 운반중이던 군수물자를 탈취하였다. + Odboj uprchl se surovinami z konvoje. + + + Sectorspawn + Sektorspawn + Spawn de sector + Spawn Settori + 战区刷新 + 戰區刷新 + Spawn do setor + 거점재생 + Sectorspawn + + + Killed units + Getötete Einheiten + Unidades eliminadas + Unità Uccise + 击杀的单位 + 擊殺單位 + Unidades mortas + 적군 사살 + Zabité jednotky + + + Treat the civilian (field dressing) + Zivilisten versorgen (einfache Bandage) + Asistir al civil (curar) + Перевязать гражданского (полевая перевязка) + Soccorso Civili + 治疗平民(战地绷带) + 治療平民(基礎繃帶) + Preste socorro ao civil (curativo) + 민간인 치료 + Ošetřit civilistu(pomocí bandáže) + + + You need a field dressing. + Du brauchst eine einfache Bandage. + Necesitas vendas. + Вам необходима полевая перевязка. + Hai bisogno di un bendaggio semplice. + 你需要一个战地绷带。 + 你需要一個基礎繃帶。 + Você precisa de curativo. + 붕대가 필요하다. + Potřebuješ ošetřit. + + + There is a high ranked officer near %1. + Ein hochrangiger Offizier befindet sich in der Nähe von %1. + Hay un oficial de alto mando cerca de %1. + Высокопоставленный офицер находится около %1. + C'è un ufficiale di altro grado vicino %1. + %1附近有一名高级军官。 + %1 附近有一名高級軍官。 + Há um oficial de alta patente nas proximidades de %1. + %1 근처에 적군의 고급 장교가 있는 것으로 파악되었다. + Důstojník s vysokou hodností poblíž %1. + + + The officer was successfully killed. + Der Offizier konnte erfolgreich getötet werden. + El oficial fue eliminado. + Офицер успешно убит. + L'ufficiale è stato ucciso. + 成功刺杀了军官。 + 成功刺殺了軍官。 + O oficial foi morto. Missão cumprida. + 적군 장교를 암살하는데 성공하였다. + Důstojník úspěšně zabit. + + + The officer has moved on. + Der Offizier ist weitergezogen. + El oficial se ha ido. + Офицер ушел. + L'ufficiale è scappato. + 军官逃离了。 + 軍官逃離了。 + O oficial escapou. + 적군 장교가 이동중이다. + Důstojník utekl. + + + Mobile Respawn Cooldown (minutes) + Mobiler Respawn Cooldown (Minuten) + Tiempo de espera de Respawn Móvil (minutos) + Задержка дислокации на КШМ (минуты) + Attesa Respawn Mobile (Minuti) + 机动复活点冷却时间(分钟) + 機動重生點每次重生所需冷卻時間(分鐘) + Tempo de espera do respawn móvel (minutos) + 재투입차량에서 재생시 필요한 대기 시간(분) + Mobilní respawn cooldown (minuty) + + + %1 minutes mobile respawn cooldown left. + %1 Minuten Mobiler Respawn Cooldown übrig. + %1 (minutos) tiempo de espera para uso del respawn móvil. + Осталось %1 минут(-ы) задержки дислокации на КШМ. + Mancano ancora %1 minuti al respawn. + 机动复活点还需要%1分钟冷却。 + 機動重生點還需要 %1 分鐘冷卻。 + Falta(m) %1 minuto(s) de tempo de espera do respawn móvel. + %1 분 남음(재투입차량에서 재생대기시간) + Zbývá %1 minut na mobilní respawn. + + + An allied resistance fighter named %1 was killed! + Ein verbündeter Widerstandskämpfer mit Namen %1 wurde getötet! + Un aliado de la resistencia llamado %1 ha sido asesinado! + Союзный боец сопротивления %1 был убит! + Un'alleato della resistenza di nome %1 è stato ucciso! + 一位名叫%1的友军抵抗军战士阵亡了! + 一名叫做 %1 的友軍抵抗軍戰士陣亡了! + Um aliado das forças de resistência de nome %1 foi morto! + % 라고 하는 아군에 협조한 민병대가 전사하였다. + Spojenecký bojovník domobrany %1 byl zabit! + + + Gamedata saving + Savegame Speicherung + Guardando datos del juego + Salvataggio Dati di Gioco + 储存游戏数据中 + 儲存數據中 + Salvando dados do jogo + 게임 저장 + Ukládání hry + + + Production + Produktion + Producción + Produzione + 生产 + 生產 + Produção + 생산 + Produkce + + + + Load/Save Parameters + Laden/Speichern der Parameter + Cargar/Guardar parámetros + Сохранить/Загрузить параметры + Carica/Salva Parametri + 매개변수설정 저장/불러오기 + Uložit/načíst parametry + + + SAVE selected parameters + SPEICHERN der momentanen Parameter + GUARDAR parámetros seleccionados + Сохранить выбранные параметры + SALVA i parametri + 매개변수설정 저장 + Uložit vybrané parametry + + + LOAD parameters or use selected if no saved value found + LADEN der gespeicherten Parameter oder momentane nutzen, wenn keine gespeicherten vorhanden sind + CARGAR parámetros o usar seleccionados si no hay parámetros guardados + Загрузить параметры или использовать выбранные, если не найдено сохраненного значения + CARICA parametri o utilizza selezionati se non è stato trovato alcun valore salvato + 매개변수설정 불러오기/ 저장된 설정이 없는 경우 현재 선택된 설정 사용 + Načíst parametry nebo použít vybrané pokud nebyly nalezeny žádné uložené. + + + Use selected parameters without saving + Momentane Parametereinstellung ohne Speicherung + Usar parámetros seleccionados sin guardar + Использовать выбранные параметры без сохранения + Usa i parametri selezionati senza salvare + 현재 설정을 저장하지 않고 선택한 설정을 사용 + Použít vybrané parametry bez ukládání + + + -- Raise + -- Höher + -- Levantar + -- Поднять + -- Aumenta + -- 높이 올리기 + -- Zvýšit + + + -- Lower + -- Niedriger + -- Bajar + -- Опустить + -- Abbassa + -- 높이 내리기 + -- Snížit + + + Guerilla forces on the way. + Widerstandskämpfer sind unterwegs. + Fuerzas de guerrilla en camino. + Партизанские силы в пути. + Guerriglieri in arrivo. + 도로에 적군 민병대 세력 발견! + Partyzánské síly na cestě. + + + Guerilla forces are incoming to %1 from the %2. + Widerstandskämpfer nähern sich %1 aus %2. + Fuerzas de guerrilla se aproximan a %1 desde el %2 + Партизанские силы идут из %2 в %1. + Guerriglieri in arrivo su %1 da %2. + 적군 민병대가 %2 에서 %1 로 이동중입니다. + Partyzáni přicházejí do %1 z %2. + + + == REVIVE OPTIONS (Disregarded, if you play with ACE Medical) == + == WIEDERBELEBUNGSEINSTELLUNGEN (Nicht berücksichtigt, wenn mit ACE Medical gespielt wird) == + == OPCIONES DE REVIVE (Activar sólo si NO se usa ACE) + == ОПЦИИ ВОЗРОЖДЕНИЯ (Игнорируются, если вы играете с ACE Medical) == + == OPZIONI RIANIMAZIONE == + == 复活选项 == + == 昏迷甦醒選項 == + == CANLANDIRMA AYARLARI == + == OPÇÕES DE RESSUCITAÇÃO == + == 의료시스템 (ACE모드 사용시 무시할 것) == + == REVIVE OPTIONS (bez ohledu na to, pokud hrajete s ACE Medical) == + + + Arsenal + Arsenal + Arsenal + Арсенал + Arsenale + 무기고 + Arzenál + + + BI arsenal + BI Arsenal + Arsenal BI + Арсенал BI + BI Arsenale + BI 무기고 + BI arzenál + + + ACE arsenal + ACE Arsenal + Arsenal ACE + Арсенал ACE + ACE Arsenale + ACE 무기고 + Arzenál ACE + + + Victory Condition + Siegesbedingung + Condición de Victoria + Условие для победы + 승리 조건 + Vítězství + + + All capitals + Alle Hauptstädte + Todas las capitales + Все столицы + 모든 대도시 + Všechna hlavní města + + + All capitals and military bases + Alle Hauptstädte und Militärbasen + Todas las capitales y bases militares + Все столицы и военные базы + 모든 대도시 및 군사기지 + Všechna hlavní města a vojenské základny + + + All capitals and 60% of the sectors + Alle Hauptstädte und 60% der Sektoren + Todas las capitales y 60% de los sectores + Все столицы и 60% секторов + 모든 대도시 및 60%의 거점 + Všechna hlavní města a 60% sektoru + + + All capitals and 80% of the sectors + Alle Hauptstädte und 80% der Sektoren + TOdas las capitales y 80% de los sectores + Все столицы и 80% секторов + 모든 대도시 및 80%의 거점 + Všechna hlavní města a 80% sektoru + + + All sectors + Alle Sektoren + Todos los sectores + Все секторы + 모든 거점 + Všechny sektory + + + CAMPAIGN COMPLETED + KAMPAGNE ABGESCHLOSSEN + CAMPAÑA COMPLETA + КАМПАНИЯ ВЫПОЛНЕНА + 군사작전 완료 + CAMPAIGN KOMPLET + + + You have liberated the area from the enemy oppression. + Du hast das Gebiet von der feindlichen Unterdrückung befreit. + Haz liberado el área de la oposión enemiga. + Вы освободили территорию от угнетения врага. + 당신은 적의 억압으로부터 이 지역을 해방시켰다. + Osvobodili jste oblast od nepřátelského útlaku. + + + Playtime: %1 days, %2 hours, %3 minutes and %4 seconds + Spielzeit: %1 Tage, %2 Stunden, %3 Minuten und %4 Sekunden + Tiempo de juego: %1 días, %2 horas, %3 minutos y %4 segundos + Игровое время: %1 дней, %2 часов, %3 минут и %4 секунд + 걸린 시간: %1 일, %2 시간, %3 분 and %4 초 + Doba hraní: % 1 dny, % 2 hodiny, % 3 minuty a % 4 sekund + + + OPFOR infantry killed: %1 + Infanterie OPFOR tuée: %1 + OPFOR Infanterie getötet: %1 + Infantería OPFOR eliminada: %1 + Пехоты OPFOR убито: %1 + Fanteria OPFOR ha ucciso: %1 + 被击杀的敌军步兵: %1 + 被擊殺的敵方步兵: %1 + Öldürülen OPFOR: %1 + Baixas inimigas em combate: %1 + 적군 사망자 : %1 + Pěchota OPFOR zabila: %1 + + + OPFOR infantry killed by players: %1 + Infanterie OPFOR tuée par les joueurs: %1 + OPFOR Infanterie von Spielern getötet: %1 + Infantería OPFOR eliminada por jugadores: %1 + Пехоты OPFOR убито игроками: %1 + Fanteria OPFOR uccisa da: %1 + 被玩家击杀的敌军步兵: %1 + 被玩家擊殺的敵方步兵: %1 + Oyuncular tarafından öldürülen OPFOR sayısı: %1 + Infantaria inimiga eliminada por jogadores: %1 + 플레이어에 의한 적군 사망자 : %1 + Pěchota OPFOR zabitá hráči: %1 + + + OPFOR vehicles destroyed: %1 + Vehicules OPFOR détruits: %1 + OPFOR Fahrzeuge zerstört: %1 + Vehículos OPFOR destruídos: %1 + Техники OPFOR уничтожено: %1 + Veicolo OPFOR distrutto: %1 + 敌军被摧毁的载具: %1 + 敵軍被摧毀的載具: %1 + OPFOR yokedilen araçları: %1 + Veículos inimigos destruídos: %1 + 파괴된 적군 차량 : %1 + Vozidla OPFOR byla zničena: %1 + + + OPFOR vehicles destroyed by players: %1 + Vehicules OPFOR détruits par les joueurs: %1 + OPFOR Fahrzeuge von Spielern zerstört: %1 + Vehículos OPFOR destruídos por jugadores: %1 + Техники OPFOR уничтожено игроками: %1 + Veicolo OPFOR distrutto da: %1 + 被玩家摧毁的敌军载具: %1 + 被玩家摧毀的敵軍載具: %1 + OPFOR yokedilen araçları (oyuncular tarafından): %1 + Veículos inimigos destruídos por jogadores: %1 + 플레이어에 의해 파괴된 적군 차량 : %1 + Vozidla OPFOR zničená hráči: %1 + + + BLUFOR soldiers recruited: %1 + Soldats BLUFOR recrutés: %1 + BLUFOR Soldaten rekrutiert: %1 + Soldados BLUFOR reclutados: %1 + Солдат BLUFOR призвано: %1 + Soldato BLUFOR reclutato: %1 + 我军招募的士兵: %1 + 我軍招募的士兵: %1 + Çağrılan BLUFOR askerleri: %1 + Soldados aliados recrutados: %1 + AI 병사 소집 : %1 + Nábor vojáků BLUFOR: %1 + + + BLUFOR infantry killed: %1 + Infanterie BLUFOR tuée: %1 + BLUFOR Infanterie getötet: %1 + Infantería BLUFOR eliminada: %1 + Пехоты BLUFOR убито: %1 + Fanteria BLUFOR ha ucciso: %1 + 被击杀的我军步兵: %1 + 被擊殺的我方步兵: %1 + BLUFOR kayıpları: %1 + Baixas aliadas em combate: %1 + 아군 사망자 : %1 + BLUFOR zabila: %1 + + + BLUFOR vehicles built: %1 + Vehicules BLUFOR construits: %1 + BLUFOR Fahrzeuge gebaut: %1 + Vehículos BLUFOR construidos: %1 + Техники BLUFOR построено: %1 + Veicolo BLUFOR creato: %1 + 我军建造的载具: %1 + 我軍建造的載具: %1 + BLUFOR yaratılan araçları: %1 + Veículos aliados construídos: %1 + 생산된 아군 차량 : %1 + Postavena vozidla BLUFOR: %1 + + + BLUFOR vehicles destroyed: %1 + Vehicules BLUFOR détruits: %1 + BLUFOR Fahrzeuge zerstört: %1 + Vehículos BLUFOR destruídos: %1 + Техники BLUFOR уничтожено: %1 + Veicolo BLUFOR distrutto: %1 + 被摧毁的我军载具: %1 + 被摧毀的我方載具: %1 + BLUFOR yokedilen araçları: %1 + Veículos aliados destruídos: %1 + 파괴된 아군 차량 : %1 + Vozidla BLUFOR zničena: %1 + + + Player deaths: %1 + Joueurs morts: %1 + Spielertode: %1 + Muertes del jugador: %1 + Смертей игроков: %1 + Giocatori Deceduti: %1 + 玩家死亡数: %1 + 玩家死亡數: %1 + Ölen oyuncular: %1 + Morte de jogadores: %1 + 플레이어 사망 : %1 + Úmrtí hráčů: %1 + + + BLUFOR friendly fire incidents: %1 + Tirs fratricides BLUFOR: %1 + BLUFOR Eigenbeschuss: %1 + Incidentes de fuego amigo en BLUFOR: %1 + Случаев дружественного огоня у BLUFOR: %1 + Fuoco amico tra i BLUFOR: %1 + 我军友军误击事件: %1 + 友軍誤擊事件: %1 + BLUFOR dost ateşi: %1 + Incidentes de fogo amigo: %1 + 아군간 오인사격에 의한 피해 : %1 + Incidenty přátelské BLUFOR: %1 + + + Resistance fighters killed: %1 + Widerstandskämpfer getötet: %1 + Combatientes de la resistencia eliminados: %1 + Убито бойцов сопротивления: %1 + 적군 전투기 격추 : %1 + Spojenci zabili: %1 + + + Allied resistance fighters killed: %1 + Verbündete Widerstandskämpfer getötet: %1 + Combatientes de la resistencia aliada eliminados: %1 + Убито союзнических бойцов сопротивления: %1 + 아군 전투기 격추 : %1 + Spojenci zabití: %1 + + + Allied resistance fighters killed by players: %1 + Verbündete Widerstandskämpfer von Spielern getötet: %1 + Combatientes de la resistencia aliada eliminados por jugadores: %1 + Убито союзнических бойцов сопротивления игроками: %1 + 플레이어에 의해 격추된 전투기 : %1 + Spojenci zabití hráči: %1 + + + Civilians killed: %1 + Civils tués: %1 + Zivilisten getötet: %1 + Civiles asesinados: %1 + Гражданских убито: %1 + Civile ha ucciso: %1 + 被击杀的平民: %1 + 被擊殺的平民: %1 + Öldürülen siviller: %1 + Civis mortos: %1 + 민간인 사망자 : %1 + Civilisté zabili: %1 + + + Civilians killed by players: %1 + Civils tués par les joueurs: %1 + Zivilisten von Spielern getötet: %1 + Civiles asesinados por jugadores: %1 + Гражданских убито игроками: %1 + Civile ucciso da: %1 + 被玩家击杀的平民: %1 + 被玩家擊殺的平民: %1 + Öldürülen siviller (oyuncular tarafından): %1 + Civis mortos por jogadores: %1 + 플레이어에 의한 민간인 사망자 : %1 + Civilisté zabití hráči: %1 + + + Civilians healed: %1 + Zivilisten versorgt: %1 + Civiles curados: %1 + Гражданских вылечено: %1 + 민간인 치료 : %1 + Uzdravení civilisté: %1 + + + Civilian vehicles destroyed: %1 + Zivile Fahrzeuge zerstört: %1 + Vehículos civiles destruidos: %1 + Транспорта гражданских уничтожено: %1 + 파괴된 민간인 차량 : %1 + Civilní vozidla byla zničena: %1 + + + Civilian vehicles destroyed by players: %1 + Zivile Fahrzeuge von Spielern zerstört: %1 + Vehículos civiles destruidos por jugadores: %1 + Транспорта гражданских уничтожено игроками: %1 + 플레이어에 의해 파괴된 민간인 차량 : %1 + Civilní vozidla zničená hráči: %1 + + + Civilian vehicles seized: %1 + Zivile Fahrzeuge beschlagnahmt: %1 + Vehículos civiles capturados: %1 + Транспорта гражданских захвачено: %1 + 민간인 차량 탈취 : %1 + Krádež civilních vozidel: %1 + + + Civilian buildings destroyed: %1 + Zivile Gebäude zerstört: %1 + Edificios civiles destruidos: %1 + Построек гражданских уничтожено: %1 + 파괴된 민간 건물 : %1 + Zničeno civilních budov: %1 + + + Vehicles recycled: %1 + Vehicules recyclés: %1 + Fahrzeuge wiederverwertet: %1 + Vehículos reciclados: %1 + Техники утилизировано: %1 + Veicolo riciclato: %1 + 回收的载具: %1 + 回收的載具: %1 + Geri dönüşüm olan araçlar: %1 + Veículos reciclados: %1 + 재활용된 차량 : %1 + Recyklovaná vozidla: %1 + + + Ammunition produced: %1 + Munition hergestellt: %1 + Municiones producidas: %1 + Произведено боеприпасов: %1 + 생산된 탄약 : %1 + Výroba munice: %1 + + + Ammunition spent: %1 + Munition verbraucht: %1 + Municiones gastadas: %1 + Боеприпасов потрачено: %1 + 사용된 탄약 : %1 + Spotřeba munice: %1 + + + Fuel produced: %1 + Kraftstoff hergestellt: %1 + Combustible producido: %1 + Произведено топлива: %1 + 생산된 기름 : %1 + Výroba paliva: %1 + + + Fuel spent: %1 + Kraftstoff verbraucht: %1 + Combustible gastado: %1 + Топлива потрачено: %1 + 사용된 기름 : %1 + Spotřeba paliva: %1 + + + Supplies produced: %1 + Nachschub hergestellt: %1 + Suministros producidos: %1 + Произведено припасов: %1 + 생산된 보급품 : %1 + Výroba surovin: %1 + + + Supplies spent: %1 + Nachschub verbraucht: %1 + Suministros gastados: %1 + Припасов потрачено: %1 + 사용된 보급품 : %1 + Spotřeba surovin: %1 + + + Sectors liberated: %1 + Secteurs libérés, delivrés: %1 + Sektoren befreit: %1 + Sectores liberados: %1 + Секторов освобождено: %1 + Settore liberato: %1 + 解放的战区: %1 + 解放的戰區: %1 + Ele geçirilen sektörler: %1 + Setores liberados: %1 + 해방된 거점 : %1 + Sektory se osvobodily: %1 + + + Sectors lost: %1 + Secteurs perdus: %1 + Sektoren verloren: %1 + Sectores perdidos: %1 + Секторов потеряно: %1 + Settore perso: %1 + 丢失的战区: %1 + 失去的戰區: %1 + Kaybedilen sektörler: %1 + Setores perdidos: %1 + 상실한 거점 : %1 + Sektory prohráli: %1 + + + FOBs built: %1 + FOBs construites: %1 + FOBs gebaut: %1 + FOBs construídas: %1 + FOB построено: %1 + FOB costruita: %1 + 建造的前哨: %1 + 建造的前線基地: %1 + Kurulan FOB'ler: %1 + FOBs construídas: %1 + 설치된 전추기지 : %1 + Postaveny FOB: %1 + + + FOBs lost: %1 + FOBs perdues: %1 + FOBs verloren: %1 + FOB perdidas: %1 + FOB потеряно: %1 + FOB persa: %1 + 损失的前哨: %1 + 損失的前線基地: %1 + Kaybedilen FOB'ler: %1 + FOBs perdidas: %1 + 상실한 전초기지 : %1 + FOB ztratil: %1 + + + Secondary objectives accomplished: %1 + Objectifs secondaires accomplis: %1 + Sekundärziele erreicht: %1 + Objetivos secundarios conseguidos: %1 + Дополнительных заданий выполнено: %1 + Obiettivo secondario completato: %1 + 完成的次要目标: %1 + 完成的次要目標: %1 + Bitirilen ikinci görevler: %1 + Objetivos secundários alcançados: %1 + 부차적인 임무 달성 : %1 + Dosažené sekundární cíle: %1 + + + Prisoners captured: %1 + Prisonniers capturés: %1 + Gefangene gefasst: %1 + Prisioneros capturados: %1 + Заключенных захвачено: %1 + Prigionieri catturati: %1 + 俘虏的战俘: %1 + 俘虜的戰俘: %1 + Ele geçirilen esirler: %1 + Prisioneiros capturados: %1 + 포로 획득 : %1 + Vězni zajati: %1 + + + Hostile battlegroups called: %1 + Battlegroups hostiles appelés: %1 + Feindliche Kampfgruppen ausgerückt: %1 + Grupos hostiles de combate llamados: %1 + Вражеских боевых групп вызвано: %1 + Battaglione ostile contattato: %1 + 敌军战斗组增援次数: %1 + 敵方戰鬥群增援次數: %1 + Düşman savaş grupları: %1 + Grupos de combate hostis chamados: %1 + 전투에 참여한 적 전투단 : %1 + Nepřátelské bojové skupiny nazvané: %1 + + + Hostile reinforcements called: %1 + Renforts hostiles appelés: %1 + Feindliche Verstärkungen ausgerückt: %1 + Refuerzos hostiles llamados: %1 + Враждебных подкреплений вызвано %1: + Chiamati rinforzi ostili: %1 + 敌军增援次数: %1 + 敵方增援次數: %1 + Düşman takviye kuvvetleri: %1 + Reforços hostis requisitados: %1 + 전투에 참여한 적 지원병력 : %1 + Nepřátelské posily nazývané: %1 + + + Total combat readiness raised: %1 + Augmentation totale du niveau d'alerte: %1 + Gesamterhöhung der gegnerischen Kampfbereitschaft: %1 + Disposición de combate total recaudada: %1 + Всего войск поднято по тревоге: %1 + Disposizione al combattimento recuperata: %1 + 总备战比例: %1 + 威脅度比例: %1 + Hazırda olan asker sayısı: %1 + Disposição total de combatentes em alerta: %1 + 전체 위협도 상승값 : %1 + Bojová připravenost: %1 + + + IEDs detonated: %1 + Explosions d'IED: %1 + IEDs ausgelöst: %1 + IEDs detonados: %1 + СВУ взорвано: %1 + IED detonato: %1 + 被引爆的IED: %1 + 被引爆的IED: %1 + Patlatılan mayınlar: %1 + IEDs detonadas: %1 + 폭파된 폭발물 : %1 + Výbuch miny: %1 + + + Number of Potato 01 losses: %1 + Pertes de Potato 01: %1 + Verluste von Potato 01: %1 + Número de pérdidas de Potato 01: %1 + Количество потерянных Potato 01: %1 + Numero di Potato 01 persi: %1 + 损失的斯巴达01号: %1 + Potato 01 kayıpları: %1 + Número de baixas de Potato 01: %1 + 파괴된 재투입차량 : %1 + Počet ztracených Potato 01: %1 + + + Rabbits killed: %1 + Lapins tués: %1 + Hasen getötet: %1 + Conejos asesinados: %1 + Кроликов убито: %1 + Conigli uccisi: %1 + 兔子屠杀数: %1 + 兔子屠殺數: %1 + Öldürülen tavşanlar: %1 + Coelhos mortos: %1 + 대량 학살 : %1 + Zabití králíci: %1 + + + Many thanks for playing KP LIBERATION! + Merci beaucoup d'avoir joué à KP LIBERATION! + Vielen Dank fürs Spielen von KP LIBERATION! + ¡Muchas gracias por jugar KP LIBERATION! + Большое спасибо за то что играли в KP LIBERATION! + Mille Grazie per aver giocato KP LIBERATION!: + 感谢您游玩 KP LIBERATION! + 感謝您遊玩 KP LIBERATION! + KP LIBERATION oynadığınız için çok teşekkürler! + Muito obrigado por jogar KP LIBERATION! + 지금까지 KP LIBERATION에 참여해 주신 분들께 감사드립니다! + Děkujeme za hraní KP LIBERATION! + + + We hope you enjoyed playing it, as much as we enjoyed making it. + Nous espérons que vous avez pris autant de plaisir à y jouer, que nous à la créer. + Wir hoffen, du hattest so viel Spaß am Spielen, wie wir dabei, es zu entwickeln. + Esperamos que hayas disfrutado tanto jugándola, como nosotros creándola. + Мы надеемся, что вы насладились игрой в эту миссию так же, как и мы, когда создавали её. + Speriamo che ti sia divertito giocare, qunato noi a creare questa missione: + 一如我们如此热爱制作这个任务,也希望您能喜欢它。 + 就像我們如此熱愛於製作這個任務,我們也希望你能喜歡它。 + Umarım oynarken eğlenmişsinizdir, biz yaparken eğlendiğimiz kadar. + Esperamos que tenham gostado de jogar, da mesma forma que gostamos de desenvolver esta missão. + 개발자가 재미있게 만들고자 한 만큼 여러분도 재미있었기를 바랍니다. + Doufáme, že jste si tuto misi užili stejně, jako když jsme ji vytvořili. + + + (Press ESC to exit) + (Appuyez sur Echap pour quitter) + (Drücke ESC zum Beenden) + (Pulsa ESC para salir) + (Нажмите клавишу ESC, чтобы выйти) + (Premi ESC per uscire) + (按ESC退出) + (按 ESC 退出) + (ESC'ye basıp çıkabilirsiniz.) + (Aperte ESC para sair) + (ESC 키를 누르면 나갈 수 있습니다.) + (Stisknutím klávesy ESC ukončete program) + + + -- Clear FOB area + -- Limpiar área de FOB + -- Очистить зону FOB + -- FOB Gebiet räumen + -- 전초기지 주변 정리 + -- Vymazat zónu FOB + + + FOB repackaged.\nPossibly created clearance will be reverted upon server restart. + FOB eingepackt.\nEventuelle Gebietsräumung wird zum Serverneustart rückgängig gemacht. + FOB empacado. \nProbablemente el permiso de creación será revertido después de reiniciar el servidor. + FOB свернуто.\nЕсли вы очищали место для FOB, оно будет восстановлено после перезапуска сервера. + FOB가 재포장됩니다. 이 상태로 서버 재시작시 이 부근의 건물이나 장비들은 사라집니다. + FOB je zabalen.\Po restartování serveru bude pravděpodobně vytvořené oprávnění zrušeno. + + + Dynamic fog (A3 Vanilla) + Dynamischer Nebel (A3 Vanilla) + Niebla dinámica (A3 Default) + Динамический туман (A3 Vanilla) + 동적인 안개 (A3 Vanilla) + Dynamická mlha (A3 Vanilla) + + + Start FOB provided as + Start-FOB bereitgestellt als + Empezar con FOB proveído como + Создать FOB в виде + 시작시 전초기지는 다음과 같이 제공됩니다. + První FOB poskyzován jako + + + FOB Container + FOB Container + Contenedor FOB + FOB Контейнер + 전초기지 설치박스 + FOB Kontejner + + + FOB Truck + FOB LKW + Camión FOB + FOB Грузовик + 전초기지 설치트럭 + FOB Nákladní auto + + + Client options variant + Spielermenü Variante + Variantes de opciones de cliente + Vybrat možnost klienta + + + GREUH Extended Options + GREUH Erweiterte Optionen + GREHU Opciones Extendidas + GREUH Rozšířené možnosti + + + KP Player Menu (requires CBA) + KP Spielermenü (benötigt CBA) + Menú de jugador KP (requiere CBA) + KP Player Menu (vyžaduje CBA) + + + Are you sure? + Bist du sicher? + ¿Estás seguro? + jsi si tím jistý? + + + This will permanently remove a total of %1 terrain objects (houses, trees, fences, lamps, etc.) within a radius of %2m around %3. + Dies wird insgesamt %1 Kartenobjekte (Häuser, Bäume, Zäune, Lampen, etc.) im Umkreis von %2m um %3 herum permanent entfernen. + Esta acción removera permanentemente un total de %1 objetos de terreno (casas, árboles, bardas, lamparas, etc.) dentro de un radio de %2m alrededor de %3. + Tím se trvale odstraní celkem %1 terénních objektů (domy, stromy, ploty, lampy atd.) V okruhu %2m kolem %3. + + + Add enemies to Zeus editable objects + Feindliche Einheiten für Zeus editierbar + Agregar enemigos como objetos editables de Zeus + Přidejte nepřátele k upravitelným objektům Zeus + + + Arma 3 High Command for Commander + Arma 3 Oberbefehl für Kommandanten + Arma 3 High Command para comandantes + Arma 3 Vrchní velení velitele + + + Arma 3 High Command + Arma 3 Oberbefehl + Arma 3 High Command + Arma 3 Vrchní velení velitele + + + BI Support System access + Zugriff auf BI Support System + BI Podpora přístupu do systému + + + Commander and Whitelist + Kommandant und Whitelist + Velitel a whitelist + + + Everyone + Jeder + Každý + + + Weapon sway + Waffenschwanken (Weapon sway) + Zbraň houpat + + + Ingame Tutorial + Tutorial im Spiel + Výukový program Ingame + + + Crate + Kiste + Bedna + + + Surrendering Soldier + Kapitulierender Soldat + Vzdávající se voják + + + Wounded Civilian + Verwundeter Zivilist + Zraněný civilista + + + KP Liberation Tutorial + KP Liberation Tutorial + KP Liberation Tutorial + + + Do you want to enable the interactive tutorial?<br/>It'll guide you through the aspects of the mission. Check your tasks area on the map for further information on each task.<br/><br/>(This popup can be disabled in the mission parameters) + Möchtest du das interaktive Tutorial aktivieren?<br/>Es wird dich durch einzelnen Missionsaspekte führen. Prüfe die Aufgaben im Kartenbildschirm für weitere Informationen zu den einzelnen Aufgaben.<br/><br/>(Dieses Pop-Up kann in den Missionsparametern deaktiviert werden) + Chcete povolit interaktivní výukový program?<br/>Provede vás aspekty mise. Další informace o jednotlivých úkolech naleznete v oblasti úkolů na mapě.<br/><br/>(Toto okno lze v parametrech mise deaktivovat) + + + You've completed all currently available/implemented tutorials.<br/>Have a lot of fun with playing this mission.<br/><br/>Should you've questions or want to learn the more deeper mechanics, make sure you visit the <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki">KP Liberation Wiki</a>.<br/>We've also a <a href="https://discord.gg/Qk35Sw8">Discord Server</a> where hundreds of KP Libertion players are around. + Du hast alle derzeit verfügbaren/implementierten Tutorials abgeschlossen.<br/>Wir wünschen dir sehr viel Spaß mit dem Spielen der Mission.<br/><br/>Solltest du Fragen haben oder die etwas über die tiefergehenden Mechaniken erfahren wollen, dann schaue als erstes in das <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki">KP Liberation Wiki</a>.<br/>Außerdem gibt es unseren <a href="https://discord.gg/Qk35Sw8">Discord Server</a>, wo hunderte von KP Liberation Spielern zu finden sind. + Dokončili jste všechny aktuálně dostupné/implementované výukové programy.<br/> Užij si spoustu zábavy při hraní této mise.<br/><br/> Pokud máte dotazy nebo se chcete dozvědět hlubší mechaniku, ujistěte se, že navštívíte stránku <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki"> KP Osvobození Wiki</a>. <br/> Také jsme a <a href="https://discord.gg/Qk35Sw8">Discord Server</a> kde jsou kolem stovky hráčů KP Libertion. + + + KP Liberation Tutorial Tasks + KP Liberation Tutorial Aufgaben + KP osvobození Výuky + + + Tasks of the KP Liberation Tutorial.<br/>It'll create new tasks when the correct circumstances are reached and there are still tutorials available. + Aufgaben des KP Liberation Tutorials.<br/>Es werden automatisch neue Aufgaben erstellt, sobald die entsprechenden Umstände eintreten und noch weitere Tutorials verfügbar sind. + Úkoly KP Osvobození Tutorial.<br/>To bude vytvářet nové úkoly, když jsou dosaženy správné okolnosti a stále jsou k dispozici výukové programy. + + + First FOB deployment + Erste FOB errichten + První nasazení FOB + + + This tasks will guide you through the deployment of your first FOB and gathering the start resources. + Diese Aufgaben werden dich durch die Bereitstellung deiner ersten FOB und dem Sammeln der Startressourcen führen. + Tyto úkoly vás provedou nasazením prvního fob a shromažďováním počátečních prostředků. + + + Transport FOB Container + FOB Container transportieren + Přepravní FOB kontejner + + + This is your first FOB container, which allows you to deploy a FOB.<br/>You need to slingload it via the transport helicopter to a position at least 1km away from the operation base in order to deploy it. We recommend to build it in the vicinity of a factory.<br/>After you've transported the container to the desired position, head near to it and you'll get an scroll wheel action to place the FOB.<br/>We'll continue after you've deployed your first FOB. + Dies ist dein erster FOB Container mit dem du eine FOB bereitstellen kannst.<br/>Diesen musst du als Außenlast mit dem Transporthelikopter zu einer Position mit mindestens 1km Abstand zur Operationsbasis bringen, um die FOB aufzubauen. Wir empfehlen die erste FOB in der Nähe eines Fabrik-Sektors zu errichten.<br/>Nachdem du den Container zur gewünschten Position gebracht hast, nähere dich ihm und du wirst eine Mausrad-Aktion erhalten, um die FOB aufzustellen.<br/>Wir fahren fort nachdem du deine erste FOB errichtet hast. + Jedná se o váš první FOB kontejner, který vám umožní nasadit FOB.<br/> Musíte ho naložit transportním vrtulníkem na pozici, která je vzdálena alespoň 1 km od operační základny, abyste ji mohli nasadit. Doporučujeme jej postavit v blízkosti továrny.<br/> Po přepravě kontejneru do požadovaného místa zamiřte k němu a získáte akci rolovacího kolečka, která umístí FOB.<br/> Budeme pokračovat, až to provedete. + + + Drive FOB Truck + FOB Truck fahren + Nákladní auto FOB + + + This is your first FOB truck, which allows you to deploy a FOB.<br/>You need to drive it to a position at least 1km away from the operation base in order to deploy it. We recommend to build it in the vicinity of a factory.<br/>After you've driven the truck to the desired position, head near to it and you'll get an scroll wheel action to place the FOB.<br/>We'll continue after you've deployed your first FOB. + Dies ist dein erster FOB LKW mit dem du eine FOB bereitstellen kannst.<br/>Diesen musst du zu einer Position mit mindestens 1km Abstand zur Operationsbasis fahren, um die FOB aufzubauen. Wir empfehlen die erste FOB in der Nähe eines Fabrik-Sektors zu errichten.<br/>Nachdem du den LKW zur gewünschten Position gebracht hast, nähere dich ihm und du wirst eine Mausrad-Aktion erhalten, um die FOB aufzustellen.<br/>Wir fahren fort nachdem du deine erste FOB errichtet hast. + Jedná se o váš první FOB truck, který vám umožní nasadit FOB.<br/> Musíte ho dojet na pozici alespoň 1 km od operační základny, abyste ji mohli nasadit. Doporučujeme ji postavit v blízkosti továrny.<br/> Poté, co jste řídili vůz do požadovaného místa, zamiřte blízko k němu a dostanete akci rolovacího kolečka pro umístění FOB.<br/> Budeme pokračovat, až rozmístíte svůj první FOB. + + + Build a storage area + Baue einen Lagerbereich + Vytvoření úložného prostoru + + + Now you've access to the build menu via the scroll wheel actions.<br/>Use this action to place a storage area. You can find it in the support tab of the build menu.<br/>This is needed to store the resource crates we'll send to you after this task. + Nun hast du Zugriff zum Baumenü über die Mausrad-Aktionen.<br/>Benutze diese Aktion, um einen Lagerbereich zu errichten. Die Lagerbereich sind im Unterstützungs-Reiter des Baumenüs.<br/>Dieser ist notwendig, um die Startressourcen, die wir dir im Anschluss an diese Aufgabe zukommen lassen, einzulagern. + Nyní máte přístup k nabídce sestavení prostřednictvím akcí rolovacího kolečka.<br/> Tato akce slouží k umístění skladovacího prostoru. Najdete ji na kartě budovy v nabídce stavení.<br/> To je nutné k uložení beden prostředků, které vám pošleme po tomto úkolu. + + + Collect start resources + Sammle Startressourcen + Shromáždit počáteční zdroje + + + We've send you some start resource crates via paradrop. Collect them and store them in your storage area to add them to the FOB resource pool.<br/>Resources have always to be stored in such areas to use them for building. It's not enough to have them near the FOB. If you go near a crate you'll have a store and a push scroll wheel action, which will help you. + Wir haben dir ein paar Kisten mit Startressourcen per Fallschirmabwurf zukommen lassen. Sammel sie ein und lagere sie in deinen Lagerbereich ein, um sie den verfügbaren Ressourcen der FOB hinzuzufügen.<br/>Ressourcen müssen übrigens immer in solche Bereiche eingelagert werden, damit sie zum bauen verwendet werden können. Es reicht nicht aus, die Kisten einfach in der Nähe der FOB zu haben. Bist du in der Nähe einer Kiste, hast du unter anderem eine "Einlagern" und "Schieben" Mausrad-Aktion, welche dir helfen werden. + Poslali jsme vám přes paradrop nějaké bedny se startem. Shromážděte je a uložte je do úložiště a přidejte je do fondu zdrojů FOB.<br/> Zdroje musí být vždy uloženy v těchto oblastech, aby je mohly používat pro stavbu. Nestačí je mít blízko FOB. Pokud se přiblížíte k bedně, budete mít možnost a akci push rolovacího kolečka, která vám pomůže. + + + Capture your first factory + Erobere deine erste Fabrik + Zachyťte svou první továrnu + + + This tasks will guide you through the process of capturing a factory sector, take possible POWs, help possible wounded civilians and start the resource production. + Diese Aufgaben werden dich durch die Eroberung eines Fabrik-Sektors, das Festnehmen möglicher Gefangener, der Betreuung möglicher verwundeter Zivilisten und den Start der Ressourcenproduktion führen. + Tyto úkoly vás provedou procesem zachycení výrobního sektoru, vezmou možné válečné zajatce, pomohou zraněným civilistům a zahájí výrobu zdrojů. + + + Approach a factory + Nähere dich einer Fabrik + Přistupte k továrně + + + It's always a good decision to start your campaign with capturing a factory. That way you'll be able to produce more resources, which you'll need in order to build more vehicles and later air assets.<br/>We've marked up to three near factory sectors on the map for you. Decide by yourself, which one you want to approach.<br/>We'll continue, if you're near one of the marked factories.<br/><br/>More information about the different sector types can be found in our <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors">Wiki</a>. + Es ist immer eine gute Entscheidung die Kampagne mit der Eroberung einer Fabrik zu beginnen. Dadurch wirst du in der Lage sein weitere Ressourcen zu produzieren, um weitere Bodenfahrzeuge und später auch Luftfahrzeuge zu bauen.<br/>Wir haben bis zu drei nahe Fabriken für dich auf der Karte markiert. Entscheide selbst, welche du angehen möchtest.<br/>Wir fahren fort, wenn du in der Nähe einer der markierten Fabriken bist.<br/><br/>Mehr Informationen über die verschiedenen Sektortypen findest du in unserem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors">Wiki</a>. + Je vždy dobré začít kampaň se zachycením továrny. Tímto způsobem budete moci produkovat více zdrojů, které budete potřebovat, abyste mohli postavit více vozidel a později letecké prostředky.<br/> Označili jsme na mapě až tři blízké výrobní sektory. Rozhodněte se sami, který z nich chcete přistupovat.<br/> Budeme pokračovat, pokud jste poblíž jedné z označených továren.<br/><br/> Více informací o různých typech odvětví naleznete v našem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors"> Wiki</a>. + + + Conquer the factory + Erobere die Fabrik + Dobýt továrnu + + + The factory is now activated and will spawn enemy defenders. A full sector activation might take up to 20 seconds, depending on the amount of player side units near the sector. The more troops, the faster it'll spawn. This is to avoid random spawning by e.g. helicopter or jet fly-bys.<br/><br/>Now you've to defeat the enemy garrison until they surrender. + Die Fabrik ist nun aktiv und wird feindliche Verteidigungstruppen erzeugen. Eine vollständige Sektoraktivierung kann bis zu 20 Sekunden dauern, abhängig von der Menge an freundlichen Einheiten in der Nähe eine Sektors. Umso mehr Einheiten, umso schneller. Dies verhindert, dass zufällige Sektoren durch lediglich vorbeifliegende Helikopter oder Jets aktiviert werden.<br/><br/>Nun musst du die feindliche Garnison, bis zur Aufgabe, bekämpfen. + Továrna je nyní aktivována a bude plodit nepřátelské obránce. Úplná aktivace sektoru může trvat až 20 sekund, v závislosti na množství jednotek na straně hráče v blízkosti sektoru. Čím více vojáků, tím rychleji se vynoří. To má zabránit náhodnému tření např. vrtulník nebo tryskové přelety .<br/><br/> Nyní musíte porazit nepřátelskou posádku, dokud se nevzdají. + + + Capture and care + Gefangennahme und Versorgung + Zachyťte a pečujte + + + After capturing a sector there is a chance that enemies surrendered or wounded civilians are in need of medical aid.<br/>We've marked these for you this time. Normally you need to search the buildings for surrendering enemies and have a look on the map for small violet circles which gives a hint for wounded civilians.<br/><br/>Approach all of the markers to capture the enemies and provide medical assistance for the civilians. + Nachdem ein Sektor erobert wurde, besteht die Chance, dass Feinde sich ergeben und verwundete Zivilisten medizinische Hilfe benötigen.<br/>Dieses mal haben wir diese für dich markiert. Normalerweise musst du die Gebäude nach sich ergebenen Feinden durchsuchen und auf der Karte nach kleinen violetten Markierungen schauen, welche dir einen Anhaltspunkt für verwundete Zivilisten gibt.<br/><br/>Nähere dich allen Markierungen, um Feinde gefangen zu nehmen und den Zivilisten zu helfen. + Po obsazení sektoru je šance, že nepřátelé, kteří se vzdali nebo budou zraněni civilisté, potřebují lékařskou pomoc.<br/> Tentokrát jsme je označili. Za normálních okolností je třeba hledat budovy pro odevzdání nepřátel a podívat se na mapě pro malé fialové kruhy, které dává náznak pro zraněné civilisty.<br/><br/> Přistupte ke všem značkám, abyste zachytili nepřátele a poskytli lékařskou pomoc civilistům. + + + Build a storage area + Baue einen Lagerbereich + Vybudujte skladovací prostor + + + You need to place down a storage area for each factory you conquer. Otherwise the factory won't be able to produce resources due to a lack of storage space.<br/>Use the scroll wheel action to place a storage area at the factory sector. + Für jede eroberte Fabrik muss ein Lagerbereich errichtet werden. Andernfalls wird die Fabrik, aufgrund fehlendem Lagerplatz, keine Ressourcen produzieren können.<br/>Benutze die entsprechende Mausrad-Aktion, um einen Lagerbereich bei der Fabrik zu errichten. + musíte umístit úložný prostor pro každou továrnu, kterou dobýváte. V opačném případě nebude továrna schopna vyrábět zdroje z důvodu nedostatku úložného prostoru.<br/> Pomocí akce rolovacího kolečka umístěte úložný prostor do výrobního sektoru. + + + Start the production + Starte die Produktion + Zahajte výrobu + + + Now the factory is ready to start produce resources. Use the scroll-wheel action to open the production interface and start the production in the just conquered factory.<br/>More detailed information about the interface can be found in our <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. + Nun ist die Fabrik dafür bereit, um Ressourcen zu produzieren. Benutze die Mausrad-Aktion, um das Produktionsinterface zu öffnen und die Produktion in der eroberten Fabrik zu starten.<br/>Detailliertere Informationen über das Produktionsinterface findest du in unserem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. + Nyní je továrna připravena začít vyrábět zdroje. Pomocí akce rolovacího kolečka otevřete výrobní rozhraní a začněte vyrábět v právě dobyté továrně.<br/> Podrobnější informace o rozhraní naleznete v našem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. + + + Direct arsenal access without KPLIB Loadout Dialog + Direkter Arsenalzugang ohne KPLIB Loadout Dialog + + + UNDER ATTACK + WIRD ANGEGRIFFEN + + + + + + -- KP Player Menu -- + -- KP 玩家選單 -- + -- Menú de Jugador KP -- + -- KP Spielermenü -- + -- KP Menu do Jogador -- + -- KP Player Nabídka -- + + + KP Player Menu + KP 玩家選單 + Menú de Jugador KP + KP Spielermenü + KP Menu do Jogador + KP Player Nabídka + + + Player Information + 玩家資訊 + Información de Jugador + Spielerinformationen + Informação do Jogador + Informace o hráči + + + Rank: + 階級 + Rango: + Dienstgrad: + Rank: + Hodnost: + + + Score: + 得分 + Puntaje: + Punkte: + Pontuação: + Skóre: + + + Playtime: + 遊戲時間 + Tiempo de juego: + Spielzeit: + Tempo de jogo: + Čas hraní: + + + KP Ranks mod not loaded + KP Ranks 模組未裝載 + KP Ranks mod no ha sido cargado + KP Ranks Mod nicht geladen + O mod KP Ranks não está carregado + KP Ranks mod nebyl načten + + + Group Management + 團隊管理 + Administración de grupo + Gruppenverwaltung + Gerenciar Grupo + Správa skupiny + + + Create + Erstellen + Crear + Criar + Vytvořit + + + Join + 加入 + Unirse + Beitreten + Juntar-se + Připojit se + + + Rename + 重新命名 + Renombrar + Umbenennen + Renomear + Přejmenovat + + + View Distance Settings + 視距設定 + Configuración de distancia de visión + Sichtweiteneinstellungen + Distância de Visão + Nastavení vzdálenosti + + + m on foot + m 步兵視野 + m a pie + m zu Fuß + m A pé + Pěšák + + + m in ground vehicles + m 地面載具視野 + m en vehículos de tierra + m in Bodenfahrzeugen + m em veículos terrestres + Vozidla + + + m in air vehicles + m 空中載具視野 + m en vehículos de aire + m in Luftfahrzeugen + m em veículos aéreos + Letectvo + + + Misc Settings + 細項設定 + Configuración miscelanea + Sonstige Einstellungen + Outras Configurações + Různé nastavení + + + Terrain detail: + 地形細節 + Detalle de terreno: + Terraindetail: + Detalhe do terreno: + Detail terénu: + + + Low + + Bajo + Niedrig + Baixo + Nízký + + + Standard + 標準 + Estandard + Standard + Padrão + Normální + + + High + + Alto + Hoch + Alto + Vysoký + + + Very High + 非常高 + Muy alto + Sehr Hoch + Muito Alto + Velmi vysoký + + + Ultra + 極高 + Ultra + Ultra + Ultra + Ultra + + + Auto 3rd person view: + 自動第三人稱視角 + Cámara auto 3era persona: + Auto 3rd-Person-Sicht: + Câmera auto em 3º pessoa: + Pohled z třetí osoby: + + + Disabled + 關閉 + Desabilitar + Deaktiviert + Desativado + Zakázáno + + + Air vehicles + 空中載具 + Vehículos de aire + Luftfahrzeuge + Veículos aéreos + Letectvo + + + Ground vehicles + 地面載具 + Vehículos de tierra + Bodenfahrzeuge + Veículos terrestres + Pozemní vozidla + + + All vehicles + 所有載具 + Todos los vehículos + Alle Fahrzeuge + Todos os veículos + Všechna vozidla + + + Disable radio chatter: + 關閉文字聊天: + Deshabilitar conversaciones de radio: + KI Funk deaktivieren: + Desativar comm's de rádio: + Zakázat rádiový chat: + + + No + + No + Nein + Não + Ne + + + Voice + 只有語音通訊 + Voz + Stimme + Voz + hlas + + + Voice + Chat + 語音+文字通訊 + Voz + Chat + Stimme + Chat + Voz + Chat + Hlas + chat + + + In vehicle volume: + 載具內音量: + Volumen en vehículo: + Lautstärke im Fahrzeug: + Volume dentro do veículo: + Hlasitost ve vozidle: + + + Apply + 使用 + Aplicar + Anwenden + Aplicar + Potvrdit + + + The sound adjustment is overwritten by ACE, if you should use it. + 如果你有使用ACE模組,聲音設定將會被ACE的覆蓋 + Los ajustes de sonido han sido sobreescritos por ACE, si debieras usarlos. + Die Lautstärkeanpassung wird durch ACE überschrieben, wenn du es nutzen solltest. + O ajuste de som é sobrescrito pelo ACE se você usar ele. + Úprava zvuku je přepsána ACE, pokud ji použijete. + + + You're not the leader of this group. + 你不是這個團隊的隊長 + No eres el líder en el grupo. + Du bist nicht der Anführer dieser Gruppe. + Você não é o lider desse grupo. + Nejste vůdce této skupiny. + + + Leveling system disabled + 陞階系統關閉 + Sistema de niveles desactivado + Levelsystem deaktiviert + Sistema de níveis desativado + Vyrovnávací systém zakázán + + + KP Player Menu v1.0.2\nby Wyqer + KP Spielermenü v1.0.2\nvon Wyqer + Menú de Jugador KP v1.0.2\npor Wyqer + KP Player Menu v1.0.2\nby Wyqer + + + diff --git a/kp_liberation.brf_sumava/ui/defines.hpp b/kp_liberation.brf_sumava/ui/defines.hpp new file mode 100644 index 0000000..27be848 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/defines.hpp @@ -0,0 +1,112 @@ +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUT_BUTTON 16 // Arma 2 - textured button + +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_List_N_Box 102 // Arma 2 - N columns list box + + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define CT_MAP_MAIN 101 +#define ST_PICTURE 48 + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + +#define FontM "puristaMedium" + +#define COLOR_BROWN { 0.30, 0.25, 0.2, 0.75 } +#define COLOR_GREEN { 0.2, 0.23, 0.18, 0.75 } +#define COLOR_GREEN_ALPHA { 0.2, 0.23, 0.18, 0.4 } +#define COLOR_GREEN_NOALPHA { 0.2, 0.23, 0.18, 1 } +#define COLOR_LIGHTGREEN { 0.4, 0.55, 0.36, 0.4 } +#define COLOR_LIGHTGRAY { 0.6, 0.6, 0.6, 0.8 } +#define COLOR_LIGHTGRAY_ALPHA { 0.6, 0.6, 0.6, 0.55 } +#define COLOR_WHITE { 1, 1, 1, 1 } +#define COLOR_NOALPHA { 0, 0, 0, 0 } +#define COLOR_BLUFOR { 0, 0.3, 1, 1 } +#define COLOR_OPFOR { 1, 0, 0, 1 } +#define COLOR_GUER { 0.5, 0.5, 0.5, 0.5 } +#define COLOR_WHITE_TRANSP { 1, 1, 1, 0.5 } +#define COLOR_BLACK { 0, 0, 0, 1 } +#define COLOR_BLACK_ALPHA { 0, 0, 0, 0.85 } +#define COLOR_BLUFOR_NOALPHA { 0, 0, 1, 1 } +#define COLOR_OPFOR_NOALPHA { 1, 0, 0, 1 } +#define COLOR_RED_DISABLED { 1,0,0,0.4 } +#define COLOR_BLEEDOUT { 0.66,0,0,0.8 } +#define COLOR_BRIGHTGREEN { 0.2,1,0.2,1 } +#define COLOR_BLUE {0.2,0.2,1,1} + +#define SHADOW_X 0.0008 +#define SHADOW_Y 0.0011 +#define ICONE_SPACY 0.025 + +#define BORDERSIZE 0.01 + +#define MAP_IDC 10023 diff --git a/kp_liberation.brf_sumava/ui/liberation_arsenal.hpp b/kp_liberation.brf_sumava/ui/liberation_arsenal.hpp new file mode 100644 index 0000000..9f148da --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_arsenal.hpp @@ -0,0 +1,110 @@ +class liberation_arsenal { + idd = 5251; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = {"OuterBG", "RecycleBG","OuterBG_F", "InnerBG", "InnerBG_F", "Header","LoadoutList","EditButton","LoadButton", "RespawnButton", "TransferButton", "PlayersCombo", "ButtonClose"}; + + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.17 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.1 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.16 * safezoneW) + (4 * BORDERSIZE); + h = (0.75 * safezoneH) + (6 * BORDERSIZE); + }; + + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.17 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.1 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.16 * safezoneW) + (4 * BORDERSIZE); + h = (0.75 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.17 * safezoneW + safezoneX) - ( BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.16 * safezoneW) + (2 * BORDERSIZE); + h = (0.7 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader{ + x = 0.17 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.09 * safezoneH + safezoneY; + w = 0.16 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_ARSENAL_TITLE; + }; + class LoadoutList: StdListBox { + idc = 201; + x = 0.17 * safezoneW + safezoneX; + w = 0.16 * safezoneW; + y = 0.15 * safezoneH + safezoneY; + h = (0.45 * safezoneH) - (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class LoadButton: StdButton { + idc = 202; + x = (0.18 * safezoneW + safezoneX); + y = (0.6 * safezoneH + safezoneY); + w = (0.14 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.03 * safezoneH; + text = $STR_LOAD_LOADOUT; + action = "load_loadout = 1;"; + }; + class EditButton: StdButton { + idc = -1; + x = (0.18 * safezoneW + safezoneX); + y = (0.65 * safezoneH + safezoneY); + w = (0.14 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.03 * safezoneH; + text = $STR_EDIT_LOADOUT; + action = "edit_loadout = 1;"; + }; + class RespawnButton: StdButton { + idc = -1; + x = (0.18 * safezoneW + safezoneX); + y = (0.7 * safezoneH + safezoneY); + w = (0.14 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.024 * safezoneH; + text = $STR_MAKE_RESPAWN_LOADOUT; + action = "respawn_loadout = 1;"; + }; + class PlayersCombo: StdCombo { + idc = 203; + x = (0.18 * safezoneW + safezoneX); + w = 0.14 * safezoneW; + y = 0.75 * safezoneH + safezoneY; + h = 0.04 * safezoneH; + sizeEx = 0.02 * safezoneH; + }; + class TransferButton: StdButton { + idc = 204; + x = (0.18 * safezoneW + safezoneX); + y = (0.8 * safezoneH + safezoneY); + w = (0.14 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.024 * safezoneH; + text = $STR_LOAD_PLAYER_LOADOUT; + action = "load_from_player = lbCurSel 203;"; + }; + class ButtonClose: StdButton { + idc = 101; + x = 0.315 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.095 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_build.hpp b/kp_liberation.brf_sumava/ui/liberation_build.hpp new file mode 100644 index 0000000..91bd858 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_build.hpp @@ -0,0 +1,314 @@ +class liberation_build { + idd = 5501; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = {"OuterBG", "RecycleBG", "OuterBG_F", "InnerBG", "InnerBG_F", "Header", + "ButtonClose","BuildInfantryButton","BuildTransportVehicleButton", + "BuildCombatVehicleButton","BuildAerialButton","BuildDefenceButton", + "BuildSupportButton","BuildSquadButton","BuildBuildingButton","BuildInfantryImage", + "BuildTransportVehicleImage","BuildCombatVehicleImage","BuildAerialImage","ManpowerImageShadow","AmmoImageShadow","FuelImageShadow", + "BuildDefenceImage","BuildSupportImage","BuildSquadImage","BuildBuildingImage","ListBG","ManpowerImage","AmmoImage","FuelImage", + "BuildList","BuildButton","LabelManpower","LabelAmmo","LabelFuel","LabelCap","BuildMannedButton","PageLabel", "LinkedSector" + + }; + + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.35 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.25 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.3 * safezoneW) + (2 * BORDERSIZE); + h = 0.55 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.35 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.19 * safezoneH + safezoneY; + w = 0.3 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_BUILD_TITLE; + }; + class ButtonClose: StdButton { + idc = 101; + x = 0.635 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.195 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class BuildTypeImage { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {0, 0, 0, 1}; + colorBackground[] = {0, 0, 0, 1}; + font = FontM; + sizeEx = 0.023; + y = (0.2525 * safezoneH + safezoneY); + w = (0.02 * safezoneW); + h = (0.035 * safezoneH); + moving = false; + }; + class BuildTypeButton: StdButton { + colorBackgroundActive[] = { 0,1,0,0.5 }; + colorFocused[] = { 0, 1, 0, 0.5 }; + y = (0.25 * safezoneH + safezoneY); + w = (0.023 * safezoneW); + h = (0.04 * safezoneH); + text = ""; + }; + class BuildInfantryImage: BuildTypeImage { + idc = 1025; + x = (0.402 * safezoneW + safezoneX); + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeUnits_ca.paa"; + }; + class BuildInfantryButton: BuildTypeButton { + idc = 102; + text = ""; + action = "buildtype=1"; + x = (0.4 * safezoneW + safezoneX); + }; + class BuildTransportVehicleImage: BuildTypeImage { + idc = 1035; + x = (0.427 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa"; + }; + class BuildTransportVehicleButton: BuildTypeButton{ + idc = 103; + text = ""; + action = "buildtype=2"; + x = (0.425 * safezoneW + safezoneX); + }; + class BuildCombatVehicleImage: BuildTypeImage { + idc = 1045; + x = (0.452 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\vehicleicons\iconTank_ca.paa"; + }; + class BuildCombatVehicleButton: BuildTypeButton{ + idc = 104; + text = ""; + action = "buildtype=3"; + x = (0.45 * safezoneW + safezoneX); + }; + class BuildAerialImage: BuildTypeImage { + idc = 1055; + x = (0.477 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\vehicleicons\iconHelicopter_ca.paa"; + }; + class BuildAerialButton: BuildTypeButton { + idc = 105; + text = ""; + action = "buildtype=4"; + x = (0.475 * safezoneW + safezoneX); + }; + class BuildDefenceImage: BuildTypeImage { + idc = 11065; + x = (0.502 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\vehicleicons\iconStaticCannon_ca.paa"; + }; + class BuildDefenceButton: BuildTypeButton{ + idc = 1106; + text = ""; + action = "buildtype=5"; + x = (0.5 * safezoneW + safezoneX); + }; + class BuildBuildingImage: BuildTypeImage { + idc = 1095; + x = (0.527 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\mapcontrol\Bunker_CA.paa"; + }; + class BuildBuildingButton: BuildTypeButton { + idc = 109; + text = ""; + action = "buildtype=6"; + x = (0.525 * safezoneW + safezoneX); + }; + class BuildSupportImage: BuildTypeImage { + idc = 1075; + x = (0.552 * safezoneW + safezoneX); + text = "\A3\ui_f\data\map\vehicleicons\iconCrateAmmo_ca.paa"; + }; + class BuildSupportButton: BuildTypeButton { + idc = 107; + text = ""; + action = "buildtype=7"; + x = (0.55 * safezoneW + safezoneX); + }; + class BuildSquadImage: BuildTypeImage { + idc = 1085; + x = (0.577 * safezoneW + safezoneX); + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; + }; + class BuildSquadButton: BuildTypeButton { + idc = 108; + text = ""; + action = "buildtype=8"; + x = (0.575 * safezoneW + safezoneX); + }; + + class IconImage { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 1}; + font = FontM; + sizeEx = 0.023; + y = (0.32 * safezoneH + safezoneY); + w = (0.015 * safezoneW); + h = (0.025 * safezoneH); + moving = false; + }; + class ManpowerImage: IconImage { + x = (0.5475 * safezoneW + safezoneX); + text = "res\ui_manpo.paa"; + }; + class AmmoImage: IconImage { + x = (0.5775 * safezoneW + safezoneX); + text = "res\ui_ammo.paa"; + }; + class FuelImage: IconImage { + x = (0.6075 * safezoneW + safezoneX); + text = "res\ui_fuel.paa"; + }; + class ManpowerImageShadow: IconImage { + x = (0.5475 * safezoneW + safezoneX) + 0.003; + text = "res\ui_manpo.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.32 * safezoneH + safezoneY) + 0.005; + }; + class AmmoImageShadow: IconImage { + x = (0.5775 * safezoneW + safezoneX) + 0.003; + text = "res\ui_ammo.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.32 * safezoneH + safezoneY) + 0.005; + }; + class FuelImageShadow: IconImage { + x = (0.6075 * safezoneW + safezoneX) + 0.003; + text = "res\ui_fuel.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.32 * safezoneH + safezoneY) + 0.005; + }; + + class BuildList: StdListNBox { + idc = 110; + x = 0.35 * safezoneW + safezoneX; + w = 0.3 * safezoneW; + y = 0.35 * safezoneH + safezoneY; + h = (0.35 * safezoneH) - (2 * BORDERSIZE); + columns[] = { + 0, + 0.65, + 0.75, + 0.85 + }; + onLBSelChanged=""; + shadow = 2; + rowHeight = 1.25 * 0.018 * safezoneH; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {0,1,0,1}; + colorPictureDisabled[] = {0.4,0.4,0.4,1}; + }; + class ListBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = 0.35 * safezoneW + safezoneX; + w = 0.3 * safezoneW; + y = 0.35 * safezoneH + safezoneY; + h = (0.35 * safezoneH) - (2 * BORDERSIZE); + }; + class LabelResource: StdText { + x = (0.35 * safezoneW + safezoneX); + w = (0.15 * safezoneW); + h = (0.03 * safezoneH); + }; + class LabelManpower: LabelResource { + idc = 131; + y = (0.7 * safezoneH + safezoneY); + colorText[] = {0, 0.75, 0, 1}; + }; + class LabelAmmo: LabelResource { + idc = 132; + y = (0.72 * safezoneH + safezoneY); + colorText[] = {0.75, 0, 0, 1}; + }; + class LabelFuel: LabelResource { + idc = 133; + y = (0.74 * safezoneH + safezoneY); + colorText[] = {0.75, 0.75, 0, 1}; + }; + class LabelCap: LabelResource { + idc = 134; + type = CT_STRUCTURED_TEXT; + y = (0.78 * safezoneH + safezoneY); + size = 0.02 * safezoneH; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PageLabel: StdText { + idc = 151; + x = (0.35 * safezoneW + safezoneX); + y = (0.3 * safezoneH + safezoneY); + w = (0.2 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.03 * safezoneH; + }; + + class BuildButton: StdButton { + idc = 120; + x = (0.55 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.045 * safezoneH); + sizeEx = 0.03 * safezoneH; + text = $STR_BUILD_BUTTON; + action = "dobuild = 1;"; + }; + class BuildMannedButton: StdButton { + idc = 121; + x = (0.55 * safezoneW + safezoneX); + y = (0.7 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.045 * safezoneH); + sizeEx = 0.02 * safezoneH; + text = $STR_BUILD_CREW; + action = "dobuild = 1; manned = true;"; + }; + class LinkedSector { + idc = 161; + type = CT_STRUCTURED_TEXT; + colorBackground[] = COLOR_NOALPHA; + style = ST_LEFT; + x = 0.45 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = 0.725 * safezoneH + safezoneY; + h = 0.05 * safezoneH; + text= ""; + size = 0.02 * safezoneH; + sizeEx = 0.02 * safezoneH; + shadow = 2; + font = FontM; + color = "#e0e000"; + align = "right"; + valign = "top"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_deathscreen.hpp b/kp_liberation.brf_sumava/ui/liberation_deathscreen.hpp new file mode 100644 index 0000000..9905f55 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_deathscreen.hpp @@ -0,0 +1,46 @@ +class blackscreen { + idd = 5651; + movingEnable = false; + controls[]= { + "OuterBackground", "Skull", "GREUH_WoundedLabel" + }; + class OuterBackground { + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + colorText[] = COLOR_BLACK; + colorBackground[] = COLOR_BLACK; + font = FontM; + sizeEx = 0.023; + x = -3; y = -3; + w = 9; h = 9; + text = ""; + }; + class Skull { + idc = 666; + type = CT_STATIC ; + style = ST_PICTURE; + colorText[] = { 1,1,1,0.15 }; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.1 * safezoneH; + x = 0.3 * safezoneW + safezoneX; + w = 0.4 * safezoneW; + y = 0.2 * safezoneH + safezoneY; + h = 0.6 * safezoneH; + text = "res\skull.paa"; + }; + class GREUH_WoundedLabel { + idc = 4867; + type = CT_STATIC; + style = ST_CENTER; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.07 * safezoneH; + shadow = 1; + x = 0.3 * safezoneW + safezoneX; y= 0.25 * safezoneH + safezoneY; + w = 0.4 * safezoneW; h = 0.07 * safezoneH; + text = $STR_REVIVE_LABEL; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_deploy.hpp b/kp_liberation.brf_sumava/ui/liberation_deploy.hpp new file mode 100644 index 0000000..754d5d5 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_deploy.hpp @@ -0,0 +1,105 @@ +class liberation_deploy { + idd = 5201; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = {"OuterBG", "RecycleBG","OuterBG_F", "InnerBG", "InnerBG_F", "Header","DeployList","DeployButton","DeployMap", "LoadoutsCombo", "LabelDeploy", "LabelLoadout", "MapButton"}; + + objects[] = {}; + + class RecycleBG: BgPicture { + idc = 198; + x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.12 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.15 * safezoneW) + (4 * BORDERSIZE); + h = (0.75 * safezoneH) + (6 * BORDERSIZE); + }; + class DeployMap: kndr_MapControl { + idc = 251; + x = (0.15 * safezoneW + safezoneX); + y = (0.57 * safezoneH + safezoneY); + w = (0.15 * safezoneW); + h = (0.25 * safezoneH) - ( 1.5 * BORDERSIZE); + }; + + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.12 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.15 * safezoneW) + (4 * BORDERSIZE); + h = (0.75 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.15 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.17 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.15 * safezoneW) + (2 * BORDERSIZE); + h = 0.7 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.15 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.11 * safezoneH + safezoneY; + w = 0.15 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_DEPLOY_TITLE; + }; + class LabelDeploy: StdText { + x = (0.15 * safezoneW + safezoneX); + w = (0.15 * safezoneW); + h = (0.03 * safezoneH); + y = 0.23 * safezoneH + safezoneY; + sizeEx = 0.018 * safezoneH; + text = $STR_SPAWN_POINT; + }; + class DeployList: StdListBox { + idc = 201; + x = 0.15 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = 0.26 * safezoneH + safezoneY; + h = (0.31 * safezoneH) - (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class LabelLoadout: StdText { + x = (0.15 * safezoneW + safezoneX); + w = (0.15 * safezoneW); + h = (0.03 * safezoneH); + y = 0.16 * safezoneH + safezoneY; + sizeEx = 0.018 * safezoneH; + text = $STR_LOADOUT; + }; + class LoadoutsCombo: StdCombo { + idc = 203; + x = (0.15 * safezoneW + safezoneX); + w = 0.15 * safezoneW; + y = 0.19 * safezoneH + safezoneY; + h = 0.03 * safezoneH; + sizeEx = 0.018 * safezoneH; + }; + class DeployButton: StdButton { + idc = 202; + x = (0.15 * safezoneW + safezoneX); + y = (0.82 * safezoneH + safezoneY); + w = (0.15 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.05 * safezoneH; + text = $STR_DEPLOY_BUTTON; + action = "deploy = 1"; + }; + class MapButton: StdButton { + idc = 202; + x = (0.285 * safezoneW + safezoneX); + y = (0.56 * safezoneH + safezoneY); + w = (0.015 * safezoneW); + h = (0.025 * safezoneH); + sizeEx = 0.018 * safezoneH; + text = "<>"; + action = "fullmap = fullmap + 1;"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_endscreen.hpp b/kp_liberation.brf_sumava/ui/liberation_endscreen.hpp new file mode 100644 index 0000000..28383e7 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_endscreen.hpp @@ -0,0 +1,65 @@ +class liberation_endscreen { + idd = 5651; + movingEnable = false; + controls[] = { "Title", "SubTitle", "SubSubTitle", "Line1", "Line2", "Line3", "Line4", "Line5", "Line6" }; + objects[] = {}; + + class EndText: StdText { + shadow = 2; + sizeEx = 0.03 * safezoneH; + style = ST_LEFT; + x = (0.15 * safezoneW + safezoneX); + w = (0.8 * safezoneW); + h = (0.05 * safezoneH); + }; + class Title: EndText { + style = ST_CENTER; + sizeEx = 0.1 * safezoneH; + x = (0.2 * safezoneW + safezoneX); + y = (0.17 * safezoneH + safezoneY); + w = (0.6 * safezoneW); + h = (0.1 * safezoneH); + text = $STR_VICTORY_TITLE; + }; + class SubTitle: Title { + sizeEx = 0.04 * safezoneH; + y = (0.24 * safezoneH + safezoneY); + text = $STR_VICTORY_TEXT; + }; + class SubSubTitle: Title { + idc = 690; + sizeEx = 0.035 * safezoneH; + y = (0.28 * safezoneH + safezoneY); + text = ""; + }; + class Line1: EndText { + idc = 691; + y = (0.45 * safezoneH + safezoneY); + text = ""; + }; + class Line2: EndText { + idc = 692; + y = (0.48 * safezoneH + safezoneY); + text = ""; + }; + class Line3: EndText { + idc = 693; + y = (0.51 * safezoneH + safezoneY); + text = ""; + }; + class Line4: EndText { + idc = 694; + y = (0.54 * safezoneH + safezoneY); + text = ""; + }; + class Line5: EndText { + idc = 695; + y = (0.57 * safezoneH + safezoneY); + text = ""; + }; + class Line6: EndText { + idc = 696; + y = (0.6 * safezoneH + safezoneY); + text = ""; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_halo.hpp b/kp_liberation.brf_sumava/ui/liberation_halo.hpp new file mode 100644 index 0000000..62f4ad0 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_halo.hpp @@ -0,0 +1,70 @@ +class liberation_halo { + idd = 5203; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = {"OuterBG", "RecycleBG","OuterBG_F", "InnerBG", "InnerBG_F", "Header","JumpButton","CancelButton","DeployMap"}; + + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.2 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.7 * safezoneH) + (6 * BORDERSIZE); + }; + class DeployMap: kndr_MapControl { + idc = 251; + x = (0.2 * safezoneW + safezoneX); + y = (0.2 * safezoneH + safezoneY); + w = (0.6 * safezoneW); + h = (0.6 * safezoneH) - ( 1.5 * BORDERSIZE); + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.7 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.2 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.6 * safezoneW) + (2 * BORDERSIZE); + h = 0.65 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.14 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_HALO_TITLE; + }; + class JumpButton: StdButton { + idc = 202; + x = (0.39 * safezoneW + safezoneX); + y = (0.8 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_HALO_PARAM; + action = "dojump = 1;"; + }; + class CancelButton: StdButton { + idc = 202; + x = (0.51 * safezoneW + safezoneX); + y = (0.8 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "closeDialog 0;"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_interface.hpp b/kp_liberation.brf_sumava/ui/liberation_interface.hpp new file mode 100644 index 0000000..5c5b2c4 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_interface.hpp @@ -0,0 +1,18 @@ +#include "defines.hpp" +#include "standard_controls.hpp" +#include "liberation_titles.hpp" +#include "liberation_recycle.hpp" +#include "liberation_build.hpp" +#include "liberation_deploy.hpp" +#include "liberation_menu.hpp" +#include "liberation_tutorial.hpp" +#include "liberation_endscreen.hpp" +#include "liberation_deathscreen.hpp" +#include "liberation_squad.hpp" +#include "liberation_permissions.hpp" +#include "liberation_arsenal.hpp" +#include "liberation_repackage_fob.hpp" +#include "liberation_halo.hpp" +#include "liberation_secondary.hpp" +#include "liberation_production.hpp" +#include "liberation_logistic.hpp" \ No newline at end of file diff --git a/kp_liberation.brf_sumava/ui/liberation_logistic.hpp b/kp_liberation.brf_sumava/ui/liberation_logistic.hpp new file mode 100644 index 0000000..4bbe69d --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_logistic.hpp @@ -0,0 +1,402 @@ +class liberation_logistic { + idd = 75802; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = { + "OuterBG1", "OuterBG_F1", "InnerBG1", "InnerBG_F1", "InnerBG2", "InnerBG_F2", "InnerBG3", "InnerBG_F3", + "Header", "ButtonClose", "LogisticList", "ButtonCreateLogisticGroup", "ButtonDeleteLogisticGroup", + "LogisticName", "StatusLabel", "Status", "TimeLabel", "Time", "DestinationLabel", "Destination", + "LoadedTitle", "TruckCountLabel", "TruckCount", "LoadedSupplyLabel", "LoadedSupply", "LoadedAmmoLabel", "LoadedAmmo", "LoadedFuelLabel", "LoadedFuel", "ButtonBuyTruck", "ButtonSellTruck", + "ATitle", "ACombo", "ASupp", "AAmmo", "AFuel", + "BTitle", "BCombo", "BSupp", "BAmmo", "BFuel", + "ALabel", "BLabel", + "ButtonSaveLogistic", "ButtonAbortLogistic", + "LogisticMap", "ButtonClose2" + }; + + objects[] = {}; + + class OuterBG1: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.65 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F1: OuterBG1 { + style = ST_FRAME; + }; + class InnerBG1: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.12 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F1: InnerBG1 { + style = ST_FRAME; + }; + class InnerBG2: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.338 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.153 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F2: InnerBG2 { + style = ST_FRAME; + }; + class InnerBG3: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.51 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.29 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F3: InnerBG3 { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.14 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_LOGISTIC_HEADER; + }; + class ButtonClose: StdButton { + idc = 75801; + x = 0.785 * safezoneW + safezoneX; + y = 0.145 * safezoneH + safezoneY; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + text = "X"; + action = "closeDialog 0"; + }; + class LogisticList: StdListBox { + idc = 75802; + x = (0.2 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.12 * safezoneW) + BORDERSIZE; + h = (0.50 * safezoneH) + (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class ButtonCreateLogisticGroup: StdButton { + idc = 75803; + sizeEx = 0.026 * safezoneH; + x = (0.2 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.7128 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.055 * safezoneW) + BORDERSIZE; + h = (0.045 * safezoneH); + text = $STR_ADD; + action = "addLogiGroup = 1"; + }; + class ButtonDeleteLogisticGroup: StdButton { + idc = 75804; + sizeEx = 0.026 * safezoneH; + x = (0.265 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.7128 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.055 * safezoneW) + BORDERSIZE; + h = (0.045 * safezoneH); + text = $STR_DEL; + action = "deleteLogiGroup = 1"; + }; + class LogisticName: StdText { + idc = 75805; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = ""; + }; + class StatusLabel: StdText { + idc = 75806; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.23 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_STATUS; + }; + class Status: StatusLabel { + idc = 75807; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class TimeLabel: StdText { + idc = 75808; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.26 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_TIMER; + }; + class Time: TimeLabel { + idc = 75809; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class DestinationLabel: StdText { + idc = 758010; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.29 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_DESTINATION; + }; + class Destination: DestinationLabel { + idc = 758011; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class LoadedTitle: StdText { + idc = 758012; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.34 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_LOADEDDETAIL; + }; + class TruckCountLabel: StdText { + idc = 758013; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.37 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_TRUCKCOUNT; + }; + class TruckCount: TruckCountLabel { + idc = 758014; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class LoadedSupplyLabel: StdText { + idc = 758015; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_MANPOWER; + }; + class LoadedSupply: LoadedSupplyLabel { + idc = 758016; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class LoadedAmmoLabel: StdText { + idc = 758017; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.43 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_AMMO; + }; + class LoadedAmmo: LoadedAmmoLabel { + idc = 758018; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class LoadedFuelLabel: StdText { + idc = 758019; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.46 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_FUEL; + }; + class LoadedFuel: LoadedFuelLabel { + idc = 758020; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class ButtonBuyTruck: StdButton { + idc = 758021; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.49 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.0725 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_LOGSTIC_BUYTRUCK; + tooltip = $STR_LOGISTIC_TT_BUYTRUCK; + action = "buyLogiTruck = 1"; + }; + class ButtonSellTRuck: StdButton { + idc = 758022; + x = (0.4185 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.49 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.0725 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_LOGSTIC_SELLTRUCK; + tooltip = $STR_LOGISTIC_TT_SELLTRUCK; + action = "sellLogiTruck = 1"; + }; + class ATitle: StdText { + idc = 758023; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.54 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_LABELA; + }; + class ACombo: StdCombo { + idc = 758024; + sizeEx = 0.018 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.57 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + }; + class ASupp: StdEdit { + idc = 758025; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.6 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_SUPPLY; + action = ""; + autocomplete = ""; + }; + class AAmmo: StdEdit { + idc = 758026; + x = (0.392 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.6 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_AMMO; + action = ""; + autocomplete = ""; + }; + class AFuel: StdEdit { + idc = 758027; + x = (0.446 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.6 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_FUEL; + action = ""; + autocomplete = ""; + }; + class BTitle: StdText { + idc = 758028; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.63 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_LOGISTIC_LABELB; + }; + class BCombo: StdCombo { + idc = 758029; + sizeEx = 0.018 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.66 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + }; + class BSupp: StdEdit { + idc = 758030; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.69 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_SUPPLY; + action = ""; + autocomplete = ""; + }; + class BAmmo: StdEdit { + idc = 758031; + x = (0.392 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.69 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_AMMO; + action = ""; + autocomplete = ""; + }; + class BFuel: StdEdit { + idc = 758032; + x = (0.446 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.69 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = 0.05 * safezoneW; + text = ""; + tooltip = $STR_LOGISTIC_TT_FUEL; + action = ""; + autocomplete = ""; + }; + class ALabel: StdText { + idc = 758033; + style = ST_CENTER; + sizeEx = 0.018 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.57 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = ""; + }; + class BLabel: StdText { + idc = 758034; + style = ST_CENTER; + sizeEx = 0.018 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.66 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = ""; + }; + class ButtonSaveLogistic: StdButton { + idc = 758080; + sizeEx = 0.02 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.7128 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.021 * safezoneH); + text = $STR_LOGISTIC_CONFIRM; + action = "saveConvoySettings = 1"; + }; + class ButtonAbortLogistic: StdButton { + idc = 758081; + sizeEx = 0.02 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.7368 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.021 * safezoneH); + text = $STR_LOGISTIC_CANCEL; + action = "convoyStandby = 1"; + }; + class LogisticMap: kndr_MapControl { + idc = 758098; + x = (0.51 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.29 * safezoneW) + BORDERSIZE; + h = (0.55 * safezoneH) + (1.5 * BORDERSIZE); + }; + class ButtonClose2: StdButton { + idc = 758099; + x = 0.455 * safezoneW + safezoneX; + y = 0.77 * safezoneH + safezoneY; + w = 0.09 * safezoneW; + h = 0.035 * safezoneH; + text = $STR_CLOSE; + action = "closeDialog 0"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_menu.hpp b/kp_liberation.brf_sumava/ui/liberation_menu.hpp new file mode 100644 index 0000000..239efba --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_menu.hpp @@ -0,0 +1,86 @@ +class liberation_menu { + idd = 5651; + movingEnable = false; + controls[] = { "Splash", "Start", "Help" }; + objects[] = {}; + + class Splash { + idc = -1; + type = CT_STATIC ; + style = ST_PICTURE; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.1 * safezoneH; + x = 0.08 * safezoneW + safezoneX; + w = 0.25 * safezoneW; + y = 0.15 * safezoneH + safezoneY; + h = 0.43 * safezoneH; + text = "res\splash_libe2.paa"; + }; + class Start { + idc = 321; + type = CT_SHORTCUT_BUTTON; + style = ST_CENTER; + x = (0.137 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.53 * safezoneH + safezoneY); + w = (0.15 * safezoneW) - (BORDERSIZE); + h = (0.07 * safezoneH); + sizeEx = 0.025 * safezoneH; + size = 0.025 * safezoneH; + text = ""; + action = "dostartgame=1;"; + textureNoShortcut = "res\btn_join_spl_idl3.paa"; + animTextureNormal = "res\btn_join_spl_idl3.paa"; + animTextureDisabled = "res\btn_join_spl_idl3.paa"; + animTextureOver = "res\btn_join_spl_hov3.paa"; + animTextureFocused = "res\btn_join_spl_idl3.paa"; + animTexturePressed = "res\btn_join_spl_hov3.paa"; + animTextureDefault = "res\btn_join_spl_idl3.paa"; + color[] = COLOR_WHITE; + color2[] = COLOR_WHITE; + colorActiveBackground[] = COLOR_WHITE; + colorBackground[] = COLOR_WHITE; + colorBackgroundFocused[] = COLOR_WHITE; + colorBackground2[] = COLOR_WHITE; + colorDisabled[] = COLOR_WHITE; + colorFocused[] = COLOR_WHITE; + font = FontM; + soundEnter[] = { "", 0, 1 }; // no sound + soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1}; + soundClick[] = { "", 0, 1 }; // no sound + soundEscape[] = { "", 0, 1 }; // no sound + class HitZone { + Left = 0; + Right = 0; + Top = 0; + Bottom = 0; + }; + class ShortcutPos { + Left = 0; + Top = 0; + w = 0; + h = 0; + }; + class TextPos { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; + }; + class Help: Start { + idc = 322; + y = (0.62 * safezoneH + safezoneY); + animTextureNormal = "res\btn_htp_spl_idl3.paa"; + animTextureDisabled = "res\btn_htp_spl_idl3.paa"; + animTextureOver = "res\btn_htp_spl_hov3.paa"; + animTextureFocused = "res\btn_htp_spl_idl3.paa"; + animTexturePressed = "res\btn_htp_spl_hov3.paa"; + animTextureDefault = "res\btn_htp_spl_idl3.paa"; + tooltipColorShade[] = COLOR_BROWN; + tooltipColorText[] = COLOR_WHITE; + tooltipColorBox[] = COLOR_GREEN; + action = "howtoplay=1;"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_notifications.hpp b/kp_liberation.brf_sumava/ui/liberation_notifications.hpp new file mode 100644 index 0000000..54991b7 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_notifications.hpp @@ -0,0 +1,194 @@ +class CfgNotifications { + class lib_default_notification { + duration = 10; + soundClose = "defaultNotificationClose"; + colorIconPicture[] = { 1, 1, 1, 1 }; + colorIconText[] = { 1, 1, 1, 1 }; + priority = 5; + }; + class lib_sector_captured: lib_default_notification { + title = $STR_NOTIFICATION_SECTORCAPTURED_TITLE; + description = $STR_NOTIFICATION_SECTORCAPTURED_TEXT; + iconPicture = "res\notif\ui_notif_sec_cap.paa"; + color[] = { 0, 1, 0, 1 }; + sound = "taskSucceeded"; + }; + class lib_sector_attacked: lib_default_notification { + title = $STR_NOTIFICATION_SECTORATTACKED_TITLE; + description = $STR_NOTIFICATION_SECTORATTACKED_TEXT; + iconPicture = "res\notif\ui_notif_sec_una.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_sector_lost: lib_default_notification { + title = $STR_NOTIFICATION_SECTORLOST_TITLE; + description = $STR_NOTIFICATION_SECTORLOST_TEXT; + iconPicture = "res\notif\ui_notif_sec_los.paa"; + color[] = { 1, 0, 0, 1 }; + sound = "taskFailed"; + }; + class lib_sector_safe: lib_default_notification { + title = $STR_NOTIFICATION_SECTORSAFE_TITLE; + description = $STR_NOTIFICATION_SECTORSAFE_TEXT; + iconPicture = "res\notif\ui_notif_sec_saf.paa"; + color[] = { 0, 0.35, 1, 1 }; + sound = "taskUpdated"; + priority = 3; + }; + class lib_fob_built: lib_default_notification { + title = $STR_NOTIFICATION_FOBBUILT_TITLE; + description = $STR_NOTIFICATION_FOBBUILT_TEXT; + iconPicture = "res\notif\ui_notif_fob_new.paa"; + color[] = { 0, 0.35, 1, 1 }; + sound = "taskUpdated"; + }; + class lib_fob_safe: lib_default_notification { + title = $STR_NOTIFICATION_FOBSAFE_TITLE; + description = $STR_NOTIFICATION_FOBSAFE_TEXT; + iconPicture = "res\notif\ui_notif_fob_sec.paa"; + color[] = { 0, 0.35, 1, 1 }; + sound = "taskUpdated"; + priority = 3; + }; + class lib_fob_attacked: lib_default_notification { + title = $STR_NOTIFICATION_FOBATTACKED_TITLE; + description = $STR_NOTIFICATION_FOBATTACKED_TEXT; + iconPicture = "res\notif\ui_notif_fob_und.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_fob_lost: lib_default_notification { + title = $STR_NOTIFICATION_FOBLOST_TITLE; + description = $STR_NOTIFICATION_FOBLOST_TEXT; + iconPicture = "res\notif\ui_notif_fob_los.paa"; + color[] = { 1, 0, 0, 1 }; + sound = "taskFailed"; + }; + class lib_battlegroup: lib_default_notification { + title = $STR_NOTIFICATION_BATTLEGROUP_TITLE; + description = $STR_NOTIFICATION_BATTLEGROUP_TEXT; + iconPicture = "res\notif\ui_notif_bgp.paa"; + color[] = { 1, 0, 0, 1 }; + sound = "taskFailed"; + }; + class lib_incoming: lib_battlegroup { + description = $STR_NOTIFICATION_INCOMING_TEXT; + }; + class lib_intel: lib_default_notification { + title = $STR_NOTIFICATION_INTEL_TITLE; + iconPicture = "res\notif\ui_notif_int.paa"; + color[] = { 0, 0.35, 1, 1 }; + sound = "taskUpdated"; + }; + class lib_intel_prisoner: lib_intel { + description = $STR_NOTIFICATION_PRISONER_TEXT; + }; + class lib_intel_document: lib_intel { + description = $STR_NOTIFICATION_DOCUMENT_TEXT; + }; + class lib_intel_fob: lib_intel { + description = $STR_NOTIFICATION_FOB_TEXT; + }; + class lib_intel_convoy: lib_intel { + description = $STR_NOTIFICATION_CONVOY_SPOTTED_TEXT; + }; + class lib_secondary_fob_destroyed: lib_default_notification { + title = $STR_NOTIFICATION_SECONDARY_TITLE; + description = $STR_NOTIFICATION_SECONDARY_TEXT; + iconPicture = "res\notif\ui_notif_sob.paa"; + color[] = { 0, 1, 0, 1 }; + sound = "taskSucceeded"; + }; + class lib_secondary_convoy_destroyed: lib_secondary_fob_destroyed { + description = $STR_NOTIFICATION_CONVOY_DESTROYED_TEXT; + }; + class lib_reinforcements: lib_default_notification { + title = $STR_NOTIFICATION_REINFORCEMENTS_TITLE; + description = $STR_NOTIFICATION_REINFORCEMENTS_TEXT; + iconPicture = "res\notif\ui_notif_ref.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_intel_sar: lib_intel { + description = $STR_NOTIFICATION_SAR_STARTED; + }; + class lib_intel_sar_failed: lib_secondary_fob_destroyed { + description = $STR_NOTIFICATION_SAR_FAILED; + color[] = { 1, 0, 0, 1 }; + sound = "taskFailed"; + }; + class lib_intel_sar_succeeded: lib_secondary_fob_destroyed { + description = $STR_NOTIFICATION_SAR_SUCCESS; + }; + class lib_restart_60_s: lib_default_notification { + title = $STR_NOTIFICATION_RESTART_TITLE; + description = $STR_NOTIFICATION_RESTART_SECOND; + iconPicture = "res\notif\ui_notif_restart.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_restart_5_min: lib_default_notification { + title = $STR_NOTIFICATION_RESTART_TITLE; + description = $STR_NOTIFICATION_RESTART_FIVE; + iconPicture = "res\notif\ui_notif_restart.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_restart_15_min: lib_default_notification { + title = $STR_NOTIFICATION_RESTART_TITLE; + description = $STR_NOTIFICATION_RESTART_FIFTEEN; + iconPicture = "res\notif\ui_notif_restart.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_restart_30_min: lib_default_notification { + title = $STR_NOTIFICATION_RESTART_TITLE; + description = $STR_NOTIFICATION_RESTART_THIRTY; + iconPicture = "res\notif\ui_notif_restart.paa"; + color[] = { 1, 1, 0, 1 }; + sound = "taskCanceled"; + }; + class lib_civ_informant_start: lib_intel { + description = $STR_NOTIFICATION_CIV_INFORMANT_START; + }; + class lib_civ_informant_success: lib_intel { + description = $STR_NOTIFICATION_CIV_INFORMANT_SUCCESS; + }; + class lib_civ_informant_fail: lib_intel { + description = $STR_NOTIFICATION_CIV_INFORMANT_FAIL; + }; + class lib_civ_informant_death: lib_intel { + description = $STR_NOTIFICATION_CIV_INFORMANT_DEATH; + }; + class lib_civ_hvt_start: lib_intel { + description = $STR_NOTIFICATION_CIV_HVT_START; + }; + class lib_civ_hvt_success: lib_intel { + description = $STR_NOTIFICATION_CIV_HVT_SUCCESS; + }; + class lib_civ_hvt_fail: lib_intel { + description = $STR_NOTIFICATION_CIV_HVT_FAIL; + }; + class lib_asymm_convoy_ambush: lib_default_notification { + title = $STR_NOTIFICATION_ASYMMCONVOYAMBUSH_TITLE; + description = $STR_NOTIFICATION_ASYMMCONVOYAMBUSH_TEXT; + iconPicture = "res\notif\ui_notif_camb.paa"; + color[] = {1, 0, 0, 1}; + sound = "taskCreated"; + }; + class lib_asymm_convoy_ambush_success: lib_asymm_convoy_ambush { + description = $STR_NOTIFICATION_ASYMMCONVOYAMBUSH_SUCCESS; + sound = "taskSucceeded"; + }; + class lib_asymm_convoy_ambush_fail: lib_asymm_convoy_ambush { + description = $STR_NOTIFICATION_ASYMMCONVOYAMBUSH_FAIL; + color[] = {1, 0, 0, 1}; + sound = "taskFailed"; + }; + class lib_asymm_guerilla_incoming: lib_reinforcements { + title = $STR_NOTIFICATION_GUER_INC_TITLE; + description = $STR_NOTIFICATION_GUER_INC; + color[] = {0, 0.5, 0, 1}; + sound = "taskUpdated"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_permissions.hpp b/kp_liberation.brf_sumava/ui/liberation_permissions.hpp new file mode 100644 index 0000000..4acc163 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_permissions.hpp @@ -0,0 +1,95 @@ +class liberation_permissions { + idd = 5118; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = { "OuterBG1", "OuterBG_F1", "InnerBG1", "InnerBG_F1", "Header", "ButtonClose", "PermissionsControlGroup", "ButtonSave", "ButtonCancel" }; + + objects[] = {}; + + class OuterBG1: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.65 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F1: OuterBG1 { + style = ST_FRAME; + }; + class InnerBG1: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.2 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.6 * safezoneW) + (2 * BORDERSIZE); + h = 0.55 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F1: InnerBG1 { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.14 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_PERMISSIONS_TITLE; + }; + class ButtonClose: StdButton { + idc = 750; + x = 0.785 * safezoneW + safezoneX; + y = 0.145 * safezoneH + safezoneY; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + text = "X"; + action = "closeDialog 0"; + }; + class PermissionsControlGroup { + type = 15; + idc = 9969; + style = 0; + x = (0.2 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.2 * safezoneH + safezoneY; + w = (0.6 * safezoneW) + (BORDERSIZE); + h = 0.55 * safezoneH ; + colorScrollbar[] = COLOR_WHITE; + class VScrollbar { + color[] = COLOR_WHITE; + width = 0.01 * safezoneW; + autoScrollSpeed = 5; + autoScrollDelay = 25; + autoScrollRewind = 0; + }; + class HScrollbar { + color[] = COLOR_WHITE; + height = 0.012 * safezoneH; + }; + class ScrollBar { + color[] = COLOR_WHITE; + colorActive[] = COLOR_WHITE; + colorDisabled[] = COLOR_WHITE; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + class Controls {}; + }; + class ButtonSave: StdButton { + idc = 751; + x = 0.4 * safezoneW + safezoneX; + y = 0.77 * safezoneH + safezoneY; + w = 0.09 * safezoneW; + h = 0.035 * safezoneH; + text = $STR_SAVE_CHANGES; + action = "save_changes = 1"; + }; + class ButtonCancel: StdButton { + idc = 752; + x = 0.5 * safezoneW + safezoneX; + y = 0.77 * safezoneH + safezoneY; + w = 0.09 * safezoneW; + h = 0.035 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "closeDialog 0"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_production.hpp b/kp_liberation.brf_sumava/ui/liberation_production.hpp new file mode 100644 index 0000000..59f80de --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_production.hpp @@ -0,0 +1,306 @@ +class liberation_production { + idd = 75801; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = { + "OuterBG1", "OuterBG_F1", "InnerBG1", "InnerBG_F1", "InnerBG2", "InnerBG_F2", "InnerBG3", "InnerBG_F3", + "Header", "ButtonClose", "ProductionList", + "SectorName", "SectorTypeLabel", "SectorType", "SectorProdLabel", "SectorProd", "SectorStorageLabel", "SectorStorage", "SectorTimerLabel", "SectorTimer", + "FacilitiesTitle", "FacilitiesSupply", "FacilitiesAmmo", "FacilitiesFuel", + "StorageTitle", "StorageSupplyLabel", "StorageSupply", "StorageAmmoLabel", "StorageAmmo", "StorageFuelLabel", "StorageFuel", + "ProduceTitle", "ProduceToolBox", "ButtonSaveSector", + "SectorMap", "ButtonClose2" + }; + + objects[] = {}; + + class OuterBG1: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.15 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.65 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F1: OuterBG1 { + style = ST_FRAME; + }; + class InnerBG1: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.12 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F1: InnerBG1 { + style = ST_FRAME; + }; + class InnerBG2: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.338 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.153 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F2: InnerBG2 { + style = ST_FRAME; + }; + class InnerBG3: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.51 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.29 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F3: InnerBG3 { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.14 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_PRODUCTION_HEADER; + }; + class ButtonClose: StdButton { + idc = 75801; + x = 0.785 * safezoneW + safezoneX; + y = 0.145 * safezoneH + safezoneY; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + text = "X"; + action = "closeDialog 0"; + }; + class ProductionList: StdListBox { + idc = 75802; + colorSelect[] = COLOR_BLUE; + colorSelect2[] = COLOR_BLUE; + x = (0.2 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.12 * safezoneW) + BORDERSIZE; + h = (0.55 * safezoneH) + (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class SectorName: StdText { + idc = 75803; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = ""; + }; + class SectorTypeLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.23 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_TYPE; + }; + class SectorType: SectorTypeLabel { + idc = 75804; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class SectorProdLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.26 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_PRODUCING; + }; + class SectorProd: SectorProdLabel { + idc = 75805; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class SectorStorageLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.29 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_STORAGE; + }; + class SectorStorage: SectorStorageLabel { + idc = 75806; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class SectorTimerLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.32 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_TIMER; + }; + class SectorTimer: SectorTimerLabel { + idc = 75807; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class FacilitiesTitle: StdText { + idc = -1; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.37 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_FACILITIES; + }; + class FacilitiesSupply: StdText { + idc = 75808; + style = ST_CENTER; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_MANPOWER; + }; + class FacilitiesAmmo: StdText { + idc = 75809; + style = ST_CENTER; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.43 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_AMMO; + }; + class FacilitiesFuel: StdText { + idc = 758010; + style = ST_CENTER; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.46 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_FUEL; + }; + class StorageTitle: StdText { + idc = -1; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.51 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_STORAGEDETAIL; + }; + class StorageSupplyLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.54 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_MANPOWER; + }; + class StorageSupply: StorageSupplyLabel { + idc = 758011; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class StorageAmmoLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.57 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_AMMO; + }; + class StorageAmmo: StorageAmmoLabel { + idc = 758012; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class StorageFuelLabel: StdText { + idc = -1; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.6 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.07 * safezoneW); + h = (0.02 * safezoneH); + text = $STR_FUEL; + }; + class StorageFuel: StorageFuelLabel { + idc = 758013; + style = ST_RIGHT; + x = (0.4145 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + w = (0.08 * safezoneW); + text = ""; + }; + class ProduceTitle: StdText { + idc = -1; + style = ST_CENTER; + colorBackground[] = COLOR_BLACK_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.65 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.02 * safezoneH); + text = $STR_PRODUCTION_PRODUCE; + }; + class ProduceToolBox { + idc = 758014; + type = CT_TOOLBOX; + style = ST_CENTER; + font = FontM; + sizeEx = 0.02 * safezoneH; + color[] = {0, 0, 0, 1}; + colorText[] = COLOR_WHITE; + colorTextSelect[] = {0, 0.9, 0, 1}; + colorSelect[] = {0, 0, 1, 1}; + colorTextDisable[] = {0, 1, 0, 1}; + colorDisable[] = {1, 0, 0, 1}; + colorSelectedBg[] = COLOR_LIGHTGRAY_ALPHA; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.68 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.03 * safezoneH); + rows = 1; + columns = 3; + strings[] = {$STR_MANPOWER,$STR_AMMO,$STR_FUEL}; + values[] = {0,1,2}; + onToolBoxSelChanged = "new_production = (_this select 1)"; + }; + class ButtonSaveSector: StdButton { + idc = 758015; + sizeEx = 0.026 * safezoneH; + x = (0.338 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.7128 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.153 * safezoneW) + BORDERSIZE; + h = (0.045 * safezoneH); + text = $STR_CONFIRM; + action = "saveSectorSetting = 1"; + }; + class SectorMap: kndr_MapControl { + idc = 758016; + x = (0.51 * safezoneW + safezoneX) - (0.5 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (0.75 * BORDERSIZE); + w = (0.29 * safezoneW) + BORDERSIZE; + h = (0.55 * safezoneH) + (1.5 * BORDERSIZE); + }; + class ButtonClose2: StdButton { + idc = 758017; + x = 0.455 * safezoneW + safezoneX; + y = 0.77 * safezoneH + safezoneY; + w = 0.09 * safezoneW; + h = 0.035 * safezoneH; + text = $STR_CLOSE; + action = "closeDialog 0"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_recycle.hpp b/kp_liberation.brf_sumava/ui/liberation_recycle.hpp new file mode 100644 index 0000000..2f003a8 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_recycle.hpp @@ -0,0 +1,155 @@ +class liberation_recycle { + idd = 5751; + movingEnable = false; + controlsBackground[] = { "OuterBG", "RecycleBG", "OuterBG_F", "InnerBG", "InnerBG_F" }; + controls[] = { "Header", "ButtonClose", + "ManpowerImageShadow","AmmoImageShadow","FuelImageShadow", + "ManpowerImage","AmmoImage","FuelImage", + "Infotext","LabelManpower","LabelAmmo","LabelFuel", + "RecycleButton","CancelButton" + }; + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.2 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.2 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.35 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.45 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.3 * safezoneW) + (2 * BORDERSIZE); + h = 0.15 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.35 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.39 * safezoneH + safezoneY; + w = 0.3 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_RECYCLING; + }; + class ButtonClose: StdButton { + idc = 101; + x = 0.632 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.402 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class IconImage { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 1}; + font = FontM; + sizeEx = 0.023; + y = (0.5 * safezoneH + safezoneY); + w = (0.015 * safezoneW); + h = (0.025 * safezoneH); + moving = false; + }; + class ManpowerImage: IconImage { + idc = 1085; + x = (0.42 * safezoneW + safezoneX); + text = "res\ui_manpo.paa"; + }; + class AmmoImage: IconImage { + idc = 1085; + x = (0.48 * safezoneW + safezoneX); + text = "res\ui_ammo.paa"; + }; + class FuelImage: IconImage { + idc = 1085; + x = (0.54 * safezoneW + safezoneX); + text = "res\ui_fuel.paa"; + }; + class ManpowerImageShadow: IconImage { + idc = 1085; + x = (0.42 * safezoneW + safezoneX) + 0.003; + text = "res\ui_manpo.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.5 * safezoneH + safezoneY) + 0.005; + }; + class AmmoImageShadow: IconImage { + idc = 1085; + x = (0.48 * safezoneW + safezoneX) + 0.003; + text = "res\ui_ammo.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.5 * safezoneH + safezoneY) + 0.005; + }; + class FuelImageShadow: IconImage { + idc = 1085; + x = (0.54 * safezoneW + safezoneX) + 0.003; + text = "res\ui_fuel.paa"; + colorText[] = {0, 0, 0, 1}; + y = (0.5 * safezoneH + safezoneY) + 0.005; + }; + class Infotext: StdText { + idc = 134; + style = ST_CENTER; + x = (0.35 * safezoneW + safezoneX); + w = (0.3 * safezoneW); + h = (0.03 * safezoneH); + y = (0.45 * safezoneH + safezoneY); + colorText[] = {0.9, 0.9, 0.9, 1}; + }; + class LabelNumber: StdText { + y = (0.5 * safezoneH + safezoneY) - (0.5 * BORDERSIZE); + w = (0.1 * safezoneW); + h = (0.03 * safezoneH); + sizeEx = 0.03 * safezoneH; + }; + class LabelManpower: LabelNumber { + idc = 131; + x = (0.44 * safezoneW + safezoneX) - BORDERSIZE; + colorText[] = {0, 0.75, 0, 1}; + }; + class LabelAmmo: LabelNumber { + idc = 132; + x = (0.5 * safezoneW + safezoneX) - BORDERSIZE; + colorText[] = {0.75, 0, 0, 1}; + }; + class LabelFuel: LabelNumber { + idc = 133; + x = (0.56 * safezoneW + safezoneX) - BORDERSIZE; + colorText[] = {0.75, 0.75, 0, 1}; + }; + class RecycleButton: StdButton { + idc = 120; + x = (0.4 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.55 * safezoneH + safezoneY); + w = (0.1 * safezoneW) - (BORDERSIZE); + h = (0.045 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RECYCLING_PROCEED; + action = "dorecycle = 1;"; + }; + class CancelButton: StdButton { + idc = 121; + x = (0.5 * safezoneW + safezoneX) + (BORDERSIZE); + y = (0.55 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.045 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "closeDialog 0"; + }; + +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_repackage_fob.hpp b/kp_liberation.brf_sumava/ui/liberation_repackage_fob.hpp new file mode 100644 index 0000000..8c7ca65 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_repackage_fob.hpp @@ -0,0 +1,90 @@ +class liberation_repackage_fob { + idd = 5755; + movingEnable = false; + controlsBackground[] = { "OuterBG", "RecycleBG", "OuterBG_F", "InnerBG", "InnerBG_F" }; + controls[] = { "Header", "ButtonClose", "Infotext","TruckButton","BoxButton","CancelButton"}; + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.2 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.35 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.4 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.3 * safezoneW) + (4 * BORDERSIZE); + h = (0.2 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.35 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.45 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.3 * safezoneW) + (2 * BORDERSIZE); + h = 0.15 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.35 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.39 * safezoneH + safezoneY; + w = 0.3 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_FOB_REPACKAGE_TITLE; + }; + class ButtonClose: StdButton { + idc = 101; + x = 0.632 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.402 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class Infotext: StdText { + idc = -1; + style = ST_CENTER; + x = (0.35 * safezoneW + safezoneX); + w = (0.3 * safezoneW); + h = (0.03 * safezoneH); + y = (0.45 * safezoneH + safezoneY); + colorText[] = {0.9, 0.9, 0.9, 1}; + text = $STR_FOB_REPACKAGE_CONFIRM; + }; + class BoxButton: StdButton { + idc = 120; + x = (0.38 * safezoneW + safezoneX) - (BORDERSIZE); + y = (0.55 * safezoneH + safezoneY); + w = (0.08 * safezoneW) - (BORDERSIZE); + h = (0.045 * safezoneH); + sizeEx = 0.023 * safezoneH; + text = $STR_FOBBOX; + action = "dorepackage = 1;"; + }; + class TruckButton: StdButton { + idc = 120; + x = (0.46 * safezoneW + safezoneX); + y = (0.55 * safezoneH + safezoneY); + w = (0.08 * safezoneW) - (BORDERSIZE); + h = (0.045 * safezoneH); + sizeEx = 0.023 * safezoneH; + text = $STR_FOBTRUCK; + action = "dorepackage = 2;"; + }; + class CancelButton: StdButton { + idc = 121; + x = (0.54 * safezoneW + safezoneX) + (BORDERSIZE); + y = (0.55 * safezoneH + safezoneY); + w = (0.08 * safezoneW); + h = (0.045 * safezoneH); + sizeEx = 0.023 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "closeDialog 0"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_secondary.hpp b/kp_liberation.brf_sumava/ui/liberation_secondary.hpp new file mode 100644 index 0000000..f095476 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_secondary.hpp @@ -0,0 +1,175 @@ +class liberation_secondary { + idd = 6842; + movingEnable = false; + controlsBackground[] = { + "CamoBG", + "OuterBG", + "OuterBG_F", + "InnerBG", + "InnerBG_F", + "MissionBriefingFrame" + }; + + controls[] = { + "Header", + "MissionsList", + "MissionImage", + "ButtonClose", + "MissionBriefing", + "StartButton", + "CancelButton", + "LabelIntel" + }; + + objects[] = {}; + + class CamoBG: BgPicture { + x = (0.2 * safezoneW + safezoneX) - ( 2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.25 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.6 * safezoneW) + (2 * BORDERSIZE); + h = 0.55 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class MissionBriefingFrame: StdBG { + style = ST_FRAME; + colorBackground[] = COLOR_GREEN; + x = (0.35 * safezoneW + safezoneX) + BORDERSIZE; + y = 0.25 * safezoneH + safezoneY; + w = (0.45 * safezoneW) - BORDERSIZE; + h = (0.5 * safezoneH) - BORDERSIZE; + }; + class MissionImage: BgPicture { + idc = 106; + x = (0.2 * safezoneW + safezoneX); + y = (0.25 * safezoneH + safezoneY); + w = (0.15 * safezoneW); + h = (0.2 * safezoneH); + colorText[] = {1.0, 1.0, 1.0, 1.0}; + text = ""; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.19 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_SECONDARY_OBJECTIVES_TITLE; + }; + class MissionsList: StdListBox { + idc = 101; + x = 0.2 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = 0.45 * safezoneH + safezoneY + BORDERSIZE; + h = (0.3 * safezoneH) - BORDERSIZE; + shadow = 2; + onLBSelChanged=""; + }; + class ButtonClose: StdButton { + idc = 105; + x = 0.785 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.197 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class LabelIntel: StdText { + idc = 107; + x = (0.2 * safezoneW + safezoneX); + w = (0.15 * safezoneW); + h = (0.04 * safezoneH); + y = (0.755 * safezoneH + safezoneY); + colorText[] = {0, 0.7, 1.0, 1.0}; + sizeEx = 0.03 * safezoneH; + style = ST_CENTER; + }; + class MissionBriefing { + type = 15; + idc = -1; + style = 0; + x = (0.35 * safezoneW + safezoneX) + BORDERSIZE; + y = 0.25 * safezoneH + safezoneY; + w = (0.45 * safezoneW) - BORDERSIZE; + h = (0.5 * safezoneH) - BORDERSIZE; + colorScrollbar[] = COLOR_WHITE; + class VScrollbar { + color[] = COLOR_WHITE; + width = 0.01 * safezoneW; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + }; + class HScrollbar { + color[] = COLOR_WHITE; + height = 0.012 * safezoneH; + }; + class ScrollBar { + color[] = COLOR_WHITE; + colorActive[] = COLOR_WHITE; + colorDisabled[] = COLOR_WHITE; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + class Controls { + class MissionBriefingText { + idc = 102; + type = CT_STRUCTURED_TEXT; + colorBackground[] = COLOR_NOALPHA; + style = ST_LEFT; + x = 0; + y = 0; + w = (0.45 * safezoneW) - (2 * BORDERSIZE); + h = (0.5 * safezoneH) - BORDERSIZE ; + text= "AAA"; + size = 0.02 * safezoneH; + sizeEx = 0.02 * safezoneH; + shadow = 2; + font = FontM; + color = "#e0e0e0"; + align = "left"; + valign = "top"; + }; + }; + }; + class StartButton: StdButton { + idc = 103; + x = (0.46 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_SECONDARY_OBJECTIVES_START; + action = "dostartsecondary = 1;"; + }; + class CancelButton: StdButton { + idc = 104; + x = (0.565 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY); + w = (0.1 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "closeDialog 0;"; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_squad.hpp b/kp_liberation.brf_sumava/ui/liberation_squad.hpp new file mode 100644 index 0000000..d877744 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_squad.hpp @@ -0,0 +1,191 @@ +class liberation_squad { + idd = 5155; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = {"OuterBG", "RecycleBG","OuterBG_F", "InnerBG", "InnerBG_F", "OuterCenterPanel","Header","SquadList","DeployMap", "ButtonClose", + "NameLabel", "ClassLabel", "HealthLabel", "DistanceLabel", "PrimaryLabel", "PrimaryMagsLabel", "SecondaryLabel", "SecondaryMagsLabel", "VehicleLabel", + "ResupplyButton", "RemoveButton", "ReplaceButton", "ConfirmButton", "CancelButton", "PiPZone"}; + + objects[] = {}; + + class RecycleBG: BgPicture { + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class DeployMap: kndr_MapControl { + idc = 100; + x = (0.32 * safezoneW + safezoneX) + BORDERSIZE; + y = (0.6 * safezoneH + safezoneY); + w = (0.12 * safezoneW); + h = (0.2 * safezoneH); + }; + class OuterBG: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.6 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F: OuterBG { + style = ST_FRAME; + }; + class InnerBG: OuterBG { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - BORDERSIZE; + y = (0.25 * safezoneH + safezoneY) - (1.5 * BORDERSIZE); + w = (0.6 * safezoneW) + (2 * BORDERSIZE); + h = (0.55 * safezoneH) + (3 * BORDERSIZE); + }; + class InnerBG_F: InnerBG { + style = ST_FRAME; + }; + class OuterCenterPanel: StdBG { + colorBackground[] = COLOR_GREEN; + style = ST_FRAME; + x = 0.32 * safezoneW + safezoneX + BORDERSIZE; + w = 0.12 * safezoneW; + y = 0.25 * safezoneH + safezoneY; + h = (0.35 * safezoneH) - (1.5 * BORDERSIZE); + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.19 * safezoneH + safezoneY; + w = 0.6 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_SQUAD_MANAGEMENT; + }; + class SquadList: StdListBox { + idc = 101; + x = 0.2 * safezoneW + safezoneX; + w = 0.12 * safezoneW; + y = 0.25 * safezoneH + safezoneY; + h = (0.35 * safezoneH) - (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class ResupplyButton: StdButton { + idc = 210; + x = (0.2 * safezoneW + safezoneX); + y = (0.6 * safezoneH + safezoneY); + w = (0.12 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RESUPPLY; + tooltip = $STR_RESUPPLY_TOOLTIP; + action = "GRLIB_squadaction = 1"; + }; + class RemoveButton: StdButton { + idc = 211; + x = (0.2 * safezoneW + safezoneX); + y = (0.65 * safezoneH + safezoneY); + w = (0.12 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_REMOVE_MEMBER; + tooltip = $STR_REMOVE_MEMBER_TOOLTIP; + action = "GRLIB_squadaction = 2"; + }; + class ReplaceButton: StdButton { + idc = 212; + x = (0.2 * safezoneW + safezoneX); + y = (0.7 * safezoneH + safezoneY) ; + w = (0.12 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_DEPLOY_ON_MEMBER; + tooltip = $STR_DEPLOY_ON_MEMBER_TOOLTIP; + action = "GRLIB_squadaction = 3"; + }; + class ConfirmButton: StdButton { + idc = 213; + x = (0.2 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY) ; + w = (0.055 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_CONFIRM; + action = "GRLIB_squadconfirm = 1"; + }; + class CancelButton: StdButton { + idc = 214; + x = (0.265 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY) ; + w = (0.055 * safezoneW); + h = (0.04 * safezoneH); + sizeEx = 0.025 * safezoneH; + text = $STR_RECYCLING_CANCEL; + action = "GRLIB_squadconfirm = 0"; + }; + class ButtonClose: StdButton { + x = 0.785 * safezoneW + safezoneX; + w = 0.015 * safezoneW; + h = 0.02 * safezoneH; + y = 0.195 * safezoneH + safezoneY; + text = "X"; + action = "closeDialog 0"; + }; + class StdSquadLabel: StdText { + x = (0.32 * safezoneW + safezoneX) + (BORDERSIZE); + w = (0.12 * safezoneW) - BORDERSIZE; + h = (0.03 * safezoneH); + shadow = 2; + sizeEx = 0.018 * safezoneH; + text = ""; + }; + class NameLabel: StdSquadLabel { + idc = 201; + style = ST_CENTER; + y = 0.25 * safezoneH + safezoneY; + sizeEx = 0.022 * safezoneH; + }; + class ClassLabel: StdSquadLabel { + idc = 202; + y = 0.3 * safezoneH + safezoneY; + }; + class HealthLabel: StdSquadLabel { + idc = 203; + y = 0.325 * safezoneH + safezoneY; + }; + class DistanceLabel: StdSquadLabel { + idc = 204; + y = 0.35 * safezoneH + safezoneY; + }; + class PrimaryLabel: StdSquadLabel { + idc = 205; + y = 0.4 * safezoneH + safezoneY; + }; + class PrimaryMagsLabel: StdSquadLabel { + idc = 206; + y = 0.425 * safezoneH + safezoneY; + }; + class SecondaryLabel: StdSquadLabel { + idc = 207; + y = 0.475 * safezoneH + safezoneY; + }; + class SecondaryMagsLabel: StdSquadLabel { + idc = 208; + y = 0.5 * safezoneH + safezoneY; + }; + class VehicleLabel: StdSquadLabel { + idc = 209; + y = 0.55 * safezoneH + safezoneY; + }; + class PiPZone { + idc = 333; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.023; + x = 0.44 * safezoneW + safezoneX + ( 2 * BORDERSIZE); + y = (0.25 * safezoneH + safezoneY); + w = (0.36 * safezoneW) - ( 2 * BORDERSIZE) ; + h = (0.55 * safezoneH); + text = "#(argb,512,512,1)r2t(rtt,1.333)"; + moving = false; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_titles.hpp b/kp_liberation.brf_sumava/ui/liberation_titles.hpp new file mode 100644 index 0000000..dd30bba --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_titles.hpp @@ -0,0 +1,473 @@ +class CfgSounds { + sounds[] = {}; + class parasound { + name = "parasound"; + sound[] = {"res\c130.ogg", 1.0, 1}; + titles[] = {}; + }; +}; + +class RscTitles { + class intro1 { + name = "intro1"; + duration = 4; + idd = -1; + movingEnable = false; + controls[]= { + GenericLabelShadow, GenericLabel2 + }; + class GenericLabel2 { + idc = -1; + type = CT_STATIC ; + style = ST_CENTER; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.035 * safezoneH; + x = 0.3 * safezoneW + safezoneX; + w = 0.4 * safezoneW; + y = 0.65 * safezoneH + safezoneY; + h = 0.1 * safezoneH; + text = "[GREUH] and the Killah Potatoes present"; + shadow = 1; + }; + class GenericLabelShadow: GenericLabel2 { + shadow = 2; + }; + }; + class intro2 { + name = "intro2"; + duration = 7; + idd = -1; + movingEnable = false; + controls[] = { + VersionLabelShadow, Splash, VersionLabel + }; + class Splash { + idc = -1; + type = CT_STATIC ; + style = ST_PICTURE; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.1 * safezoneH; + x = 0.325 * safezoneW + safezoneX; + w = 0.35 * safezoneW; + y = 0.2 * safezoneH + safezoneY; + h = 0.6 * safezoneH; + text = "res\splash_libe2.paa"; + }; + class VersionLabel { + idc = -1; + type = CT_STATIC ; + style = ST_CENTER; + shadow = 1; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.035 * safezoneH; + x = 0.45 * safezoneW + safezoneX; + w = 0.3 * safezoneW; + y = 0.65 * safezoneH + safezoneY; + h = 0.1 * safezoneH; + text = $STR_MISSION_VERSION; + }; + class VersionLabelShadow: VersionLabel { + shadow = 2; + font = FontM; + }; + }; + class fasttravel { + name = "fasttravel"; + duration = 4; + idd = -1; + movingEnable = true; + controls[] = { + OuterBackground,GenericLabel111 + }; + class OuterBackground { + idc = -1; + type = CT_STATIC ; + style = ST_LEFT; + colorText[] = COLOR_BLACK; + colorBackground[] = COLOR_BLACK; + font = FontM; + sizeEx = 0.023; + x = -3; y = -3; + w = 9; h = 9; + text = ""; + }; + class GenericLabel111 { + idc = -1; + type = CT_STATIC ; + style = ST_CENTER; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.03; + x = 0; y = 0.75; + w = 1.0; h = 0.1; + text = $STR_DEPLOY_IN_PROGRESS; + }; + }; + class KPLIB_overlay { + name = "KPLIB_overlay"; + duration = 999999; + idd = 6666; + movingEnable = true; + onLoad = "uiNamespace setVariable ['KPLIB_overlay', _this select 0];"; + controls[] = { + BGPicture, + PictureFOBShadow, PictureFOB, LabelFOB, + PictureSuppliesShadow, PictureSupplies, LabelSupplies, + PictureAmmoShadow, PictureAmmo, LabelAmmo, + PictureFuelShadow, PictureFuel, LabelFuel, + PictureCapShadow, PictureCap, LabelCap, + PictureHeliShadow, PictureHeli, LabelHeli, + PicturePlaneShadow, PicturePlane, LabelPlane, + PictureCombatReadinessShadow, PictureCombatReadiness, LabelCombatReadiness, + PictureCivRepShadow, PictureCivRep, LabelCivRep, + PictureIntelShadow, PictureIntel, LabelIntel, + BGPictureActiveSectors, BGPictureSector, + CaptureFrame_OPFOR, CaptureFrame_BLUFOR, CaptureFrame, + LabelPoint, CentralShadow, CentralLabel, + ActiveSectors, AlertBGPicture, AlertLabel, AlertTimer + }; + class BGPicture { + idc = 758001; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {0.8,0.8,0.8,0.9}; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.5; + x = 0.95 * safezoneW + safezoneX; + w = 0.075 * safezoneW; + y = 0.395 * safezoneH + safezoneY; + h = 0.255 * safezoneH; + text = "res\gradient.paa"; + }; + class BGPictureSector: BGPicture { + idc = 201; + x = 0.9 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = 0.33 * safezoneH + safezoneY; + h = 0.05 * safezoneH; + }; + class GenericLabel69 { + idc = -1; + type = CT_STATIC; + style = ST_RIGHT; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.022 * safezoneH; + x = 0.905 * safezoneW + safezoneX; + w = 0.08 * safezoneW; + y = 0.5225 * safezoneH + safezoneY; + h = 0.04 * safezoneH; + text = ""; + shadow = 2; + }; + class CentralLabel: GenericLabel69 { + idc = 266; + type = CT_STATIC; + style = ST_CENTER; + colorText[] = {1,1,0,1}; + sizeEx = 0.03 * safezoneH; + x = 0 * safezoneW + safezoneX; + w = 1 * safezoneW; + y = 0.2 * safezoneH + safezoneY; + h = 0.05 * safezoneH; + text = ""; + }; + class CentralShadow: CentralLabel { + idc = 267; + shadow = 1; + }; + class GenericPicture69 { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {0.9,0.9,0.9,1}; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.5; + x = 0.985 * safezoneW + safezoneX; + w = 0.012 * safezoneW; + h = 0.0213333333 * safezoneH; + }; + class PictureFOB: GenericPicture69 { + idc = 758002; + y = (0.4 + ( ICONE_SPACY * 0 ) ) * safezoneH + safezoneY; + text = "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa"; + }; + class PictureFOBShadow: PictureFOB { + idc = 758003; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 0 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelFOB: GenericLabel69 { + idc = 758004; + text = ""; + y = (0.39 + ( ICONE_SPACY * 0 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PictureSupplies: GenericPicture69 { + idc = 758005; + y = (0.4 + ( ICONE_SPACY * 1 ) ) * safezoneH + safezoneY; + text = "res\ui_manpo.paa"; + }; + class PictureSuppliesShadow: PictureSupplies { + idc = 758006; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 1 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelSupplies: GenericLabel69 { + idc = 758007; + text = ""; + y = (0.39 + ( ICONE_SPACY * 1 ) ) * safezoneH + safezoneY; + colorText[] = {0, 0.75, 0, 1}; + }; + class PictureAmmo: GenericPicture69 { + idc = 758008; + y = (0.4 + ( ICONE_SPACY * 2 ) ) * safezoneH + safezoneY; + text = "res\ui_ammo.paa"; + }; + class PictureAmmoShadow: PictureAmmo { + idc = 758009; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 2 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelAmmo: GenericLabel69 { + idc = 758010; + text = ""; + y = (0.39 + ( ICONE_SPACY * 2 ) ) * safezoneH + safezoneY; + colorText[] = {0.75, 0, 0, 1}; + }; + class PictureFuel: GenericPicture69 { + idc = 758011; + y = (0.4 + ( ICONE_SPACY * 3 ) ) * safezoneH + safezoneY; + text = "res\ui_fuel.paa"; + }; + class PictureFuelShadow: PictureFuel { + idc = 758012; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 3 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelFuel: GenericLabel69 { + idc = 758013; + text = ""; + y = (0.39 + ( ICONE_SPACY * 3 ) ) * safezoneH + safezoneY; + colorText[] = {0.75, 0.75, 0, 1}; + }; + class PictureCap: GenericPicture69 { + idc = 758014; + y = (0.4 + ( ICONE_SPACY * 4 ) ) * safezoneH + safezoneY; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; + }; + class PictureCapShadow: PictureCap { + idc = 758015; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 4 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelCap: GenericLabel69 { + idc = 758016; + text = ""; + y = (0.39 + ( ICONE_SPACY * 4 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PictureHeli: GenericPicture69 { + idc = 758017; + y = (0.4 + ( ICONE_SPACY * 5 ) ) * safezoneH + safezoneY; + text = "\A3\air_f_beta\Heli_Transport_01\Data\UI\Map_Heli_Transport_01_base_CA.paa"; + }; + class PictureHeliShadow: PictureHeli { + idc = 758018; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 5 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelHeli: GenericLabel69 { + idc = 758019; + text = ""; + y = (0.39 + ( ICONE_SPACY * 5 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PicturePlane: GenericPicture69 { + idc = 758020; + y = (0.4 + ( ICONE_SPACY * 6 ) ) * safezoneH + safezoneY; + text = "\A3\Air_F_EPC\Plane_CAS_01\Data\UI\Map_Plane_CAS_01_CA.paa"; + }; + class PicturePlaneShadow: PicturePlane { + idc = 758021; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 6 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelPlane: GenericLabel69 { + idc = 758022; + text = ""; + y = (0.39 + ( ICONE_SPACY * 6 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PictureCombatReadiness: GenericPicture69 { + idc = 758023; + y = (0.4 + ( ICONE_SPACY * 7 ) ) * safezoneH + safezoneY; + text = "\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa"; + }; + class PictureCombatReadinessShadow: PictureCombatReadiness { + idc = 758024; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 7 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelCombatReadiness: GenericLabel69 { + idc = 758025; + text = ""; + y = (0.39 + ( ICONE_SPACY * 7 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PictureCivRep: GenericPicture69 { + idc = 758026; + y = (0.4 + ( ICONE_SPACY * 8 ) ) * safezoneH + safezoneY; + text = "\A3\ui_f\data\map\mapcontrol\tourism_CA.paa"; + }; + class PictureCivRepShadow: PictureCivRep { + idc = 758027; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 8 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelCivRep: GenericLabel69 { + idc = 758028; + text = ""; + y = (0.39 + ( ICONE_SPACY * 8 ) ) * safezoneH + safezoneY; + colorText[] = {0.8, 0.8, 0.8, 1}; + }; + class PictureIntel: GenericPicture69 { + idc = 758029; + colorText[] = {0,0.45,0.95,1}; + y = (0.4 + ( ICONE_SPACY * 9 ) ) * safezoneH + safezoneY; + text = "\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa"; + }; + class PictureIntelShadow: PictureIntel { + idc = 758030; + y = (0.4 + SHADOW_Y + ( ICONE_SPACY * 9 ) ) * safezoneH + safezoneY; + x = (0.985 + SHADOW_X) * safezoneW + safezoneX; + colorText[] = {0,0,0,0.7}; + }; + class LabelIntel: GenericLabel69 { + idc = 758031; + text = ""; + y = (0.39 + ( ICONE_SPACY * 9 ) ) * safezoneH + safezoneY; + colorText[] = {0, 0.45, 0.95, 1}; + }; + class CaptureFrameStandard { + idc = -1; + type = CT_STATIC; + font = FontM; + sizeEx = 0.023; + text = ""; + }; + class CaptureFrame: CaptureFrameStandard { + idc = 202; + style = ST_FRAME; + colorText[] = COLOR_BLACK; + colorBackground[] = COLOR_OPFOR_NOALPHA; + x = 0.9125 * safezoneW + safezoneX; + w = 0.085 * safezoneW; + y = 0.358 * safezoneH + safezoneY; + h = 0.012 * safezoneH; + }; + class CaptureFrame_OPFOR: CaptureFrameStandard{ + idc = 203; + style = ST_TYPE; + colorText[] = {0.6, 0, 0, 1}; + colorBackground[] = {0.6, 0, 0, 1}; + x = 0.9125 * safezoneW + safezoneX; + w = 0.084 * safezoneW; + y = 0.358 * safezoneH + safezoneY; + h = 0.011 * safezoneH; + }; + class CaptureFrame_BLUFOR: CaptureFrameStandard{ + idc = 244; + style = ST_TYPE; + colorText[] = {0, 0.2, 0.6, 1}; + colorBackground[] = {0, 0.2, 0.6, 1}; + x = 0.9125 * safezoneW + safezoneX; + w = 0.084 * safezoneW; + y = 0.358 * safezoneH + safezoneY; + h = 0.011 * safezoneH; + }; + class LabelPoint: GenericLabel69 { + idc = 205; + text = ""; + style = ST_RIGHT; + sizeEx = 0.024 * safezoneH; + x = 0.8 * safezoneW + safezoneX; + w = 0.2 * safezoneW; + y = 0.33 * safezoneH + safezoneY; + h = 0.03 * safezoneH; + colorText[] = {0.7, 0, 0, 1}; + }; + class ActiveSectors { + idc = 516; + type = CT_STRUCTURED_TEXT; + colorBackground[] = COLOR_NOALPHA; + style = ST_RIGHT; + x = 0.7 * safezoneW + safezoneX; + w = 0.295 * safezoneW; + y = 0.8 * safezoneH + safezoneY; + h = 0.2 * safezoneH; + text= ""; + size = 0.02 * safezoneH; + sizeEx = 0.02 * safezoneH; + shadow = 2; + font = FontM; + color = "#e0e000"; + align = "right"; + valign = "top"; + }; + class BGPictureActiveSectors: BGPicture { + idc = 517; + x = 0.93 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = 0.8 * safezoneH + safezoneY; + h = 0.2 * safezoneH; + }; + class AlertBGPicture: BGPicture { + idc = 401; + x = 0.9 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = 0.27 * safezoneH + safezoneY; + h = 0.05 * safezoneH; + }; + class AlertLabel: GenericLabel69 { + idc = 402; + text = ""; + style = ST_CENTER; + sizeEx = 0.022 * safezoneH; + x = 0.9 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = 0.2675 * safezoneH + safezoneY; + h = 0.03 * safezoneH; + colorText[] = {0.85, 0, 0, 1}; + }; + class AlertTimer: GenericLabel69 { + idc = 403; + text = ""; + style = ST_CENTER; + sizeEx = 0.026 * safezoneH; + x = 0.9 * safezoneW + safezoneX; + w = 0.1 * safezoneW; + y = 0.29 * safezoneH + safezoneY; + h = 0.03 * safezoneH; + colorText[] = {0.85, 0, 0, 1}; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/liberation_tutorial.hpp b/kp_liberation.brf_sumava/ui/liberation_tutorial.hpp new file mode 100644 index 0000000..f21808c --- /dev/null +++ b/kp_liberation.brf_sumava/ui/liberation_tutorial.hpp @@ -0,0 +1,133 @@ +class liberation_tutorial { + idd = 5353; + movingEnable = false; + controlsBackground[] = {}; + + controls[] = { "OuterBG2", "OuterBG_F2", "OuterBG1", "OuterBG_F1", "InnerBG1", "InnerBG_F1", "InnerBG2", "InnerBG_F2", + "Header","HeaderTuto", "TutorialList", "CloseButton", "TutoControlGroup"}; + + objects[] = {}; + + class OuterBG1: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.2 * safezoneW + safezoneX) - (2 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.15 * safezoneW) + (4 * BORDERSIZE); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F1: OuterBG1 { + style = ST_FRAME; + }; + class OuterBG2: StdBG { + colorBackground[] = COLOR_BROWN; + x = (0.35 * safezoneW + safezoneX) + (3 * BORDERSIZE); + y = (0.2 * safezoneH + safezoneY) - (3 * BORDERSIZE); + w = (0.45 * safezoneW); + h = (0.6 * safezoneH) + (6 * BORDERSIZE); + }; + class OuterBG_F2: OuterBG2 { + style = ST_FRAME; + }; + class InnerBG1: OuterBG1 { + colorBackground[] = COLOR_GREEN; + x = (0.2 * safezoneW + safezoneX) - ( BORDERSIZE); + y = 0.25 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.15 * safezoneW) + (2 * BORDERSIZE); + h = 0.55 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F1: InnerBG1 { + style = ST_FRAME; + }; + class InnerBG2: OuterBG2 { + colorBackground[] = COLOR_GREEN_ALPHA; + x = (0.35 * safezoneW + safezoneX) + (4 * BORDERSIZE); + y = 0.25 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.45 * safezoneW) - (2 * BORDERSIZE ) ; + h = 0.55 * safezoneH + (3 * BORDERSIZE); + }; + class InnerBG_F2: InnerBG2 { + style = ST_FRAME; + }; + class Header: StdHeader { + x = 0.2 * safezoneW + safezoneX - (BORDERSIZE); + y = 0.19 * safezoneH + safezoneY; + w = 0.15 * safezoneW + ( 2 * BORDERSIZE); + h = 0.05 * safezoneH - (BORDERSIZE); + text = $STR_TUTO_TITLE; + }; + class HeaderTuto: Header { + idc = 514; + x = (0.35 * safezoneW + safezoneX) + ( 4 * BORDERSIZE); + w = (0.45 * safezoneW) - (2 * BORDERSIZE); + text = "1. Introduction"; + }; + class TutorialList: StdListBox { + idc = 513; + x = 0.2 * safezoneW + safezoneX; + w = 0.15 * safezoneW; + y = 0.25 * safezoneH + safezoneY; + h = (0.5 * safezoneH) - (1.5 * BORDERSIZE); + shadow = 2; + onLBSelChanged=""; + }; + class CloseButton: StdButton { + idc = 512; + x = (0.2 * safezoneW + safezoneX); + y = (0.75 * safezoneH + safezoneY); + w = (0.15 * safezoneW); + h = (0.05 * safezoneH); + sizeEx = 0.05 * safezoneH; + text = $STR_TUTO_GOTIT; + action = "howtoplay = 0"; + }; + class TutoControlGroup { + type = 15; + idc = -1; + style = 0; + x = (0.35 * safezoneW + safezoneX) + (4 * BORDERSIZE); + y = 0.25 * safezoneH + safezoneY - (1.5 * BORDERSIZE); + w = (0.45 * safezoneW) - (2 * BORDERSIZE ) ; + h = 0.55 * safezoneH + (3 * BORDERSIZE); + colorScrollbar[] = COLOR_WHITE; + class VScrollbar { + color[] = COLOR_WHITE; + width = 0.01 * safezoneW; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + }; + class HScrollbar { + color[] = COLOR_WHITE; + height = 0.012 * safezoneH; + }; + class ScrollBar { + color[] = COLOR_WHITE; + colorActive[] = COLOR_WHITE; + colorDisabled[] = COLOR_WHITE; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + class Controls { + class TutoStructuredText { + idc = 515; + type = CT_STRUCTURED_TEXT; + colorBackground[] = COLOR_NOALPHA; + style = ST_LEFT; + x = 0; + y = 0; + w = (0.45 * safezoneW) - (2 * BORDERSIZE); + h = 0.5 * safezoneH; + text= "AAA"; + size = 0.02 * safezoneH; + sizeEx = 0.02 * safezoneH; + shadow = 2; + font = FontM; + color = "#e0e0e0"; + align = "left"; + valign = "top"; + }; + }; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/mission_params.hpp b/kp_liberation.brf_sumava/ui/mission_params.hpp new file mode 100644 index 0000000..a6170d7 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/mission_params.hpp @@ -0,0 +1,458 @@ +class Params { + class LoadSaveParams { + title = $STR_PARAMS_LOADSAVEPARAMS; + values[] = {0, 1, 2}; + texts[] = {$STR_PARAMS_LOADSAVEPARAMS_SAVE, $STR_PARAMS_LOADSAVEPARAMS_LOAD, $STR_PARAMS_LOADSAVEPARAMS_SELECTED}; + default = 1; // If you want to set mission parameters via server.cfg or this file, then set this value to 2 + }; + class Spacer0 { + title = ""; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class MissionOptions { + title = $STR_PARAMS_MISSIONOPTIONS; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class Unitcap { + title = $STR_PARAMS_UNITCAP; + values[] = {0, 1, 2, 3, 4, 5}; + texts[] = {$STR_PARAMS_UNITCAP1, $STR_PARAMS_UNITCAP2, $STR_PARAMS_UNITCAP3, $STR_PARAMS_UNITCAP4, $STR_PARAMS_UNITCAP5, $STR_PARAMS_UNITCAP6}; + default = 2; + }; + class Difficulty { + title = $STR_PARAMS_DIFFICULTY; + values[] = {0, 1, 2, 3, 4, 5, 6, 7}; + texts[] = {$STR_PARAMS_DIFFICULTY1, $STR_PARAMS_DIFFICULTY2, $STR_PARAMS_DIFFICULTY3, $STR_PARAMS_DIFFICULTY4, $STR_PARAMS_DIFFICULTY5, $STR_PARAMS_DIFFICULTY6, $STR_PARAMS_DIFFICULTY7, $STR_PARAMS_DIFFICULTY8}; + default = 2; + }; + class Aggressivity { + title = $STR_AGGRESSIVITY_PARAM; + values[] = {0, 1, 2, 3, 4}; + texts[] = {$STR_AGGRESSIVITY_PARAM0, $STR_AGGRESSIVITY_PARAM1, $STR_AGGRESSIVITY_PARAM2, $STR_AGGRESSIVITY_PARAM3, $STR_AGGRESSIVITY_PARAM4}; + default = 2; + }; + class AdaptToPlayercount { + title = $STR_PARAM_ADAPT_TO_PLAYERCOUNT; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class Civilians { + title = $STR_PARAMS_CIVILIANS; + values[] = {0, 1, 2, 3}; + texts[] = {$STR_PARAMS_CIVILIANS1, $STR_PARAMS_CIVILIANS2, $STR_PARAMS_CIVILIANS3, $STR_PARAMS_CIVILIANS4}; + default = 2; + }; + class FirstFob { + title = $STR_PARAMS_FIRSTFOB; + values[] = {1, 0}; + texts[] = {$STR_YES, $STR_NO}; + default = 0; + }; + class FirstFobVehicle { + title = $STR_PARAMS_FIRSTFOBVEHICLE; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_FIRSTFOBVEHICLE_CONTAINTER, $STR_PARAMS_FIRSTFOBVEHICLE_TRUCK}; + default = 0; + }; + class MaximumFobs { + title = $STR_PARAM_FOBS_COUNT; + values[] = {3, 5, 7, 10, 15, 20, 26}; + texts[] = {3, 5, 7, 10, 15, 20, 26}; + default = 10; + }; + class MaxSquadSize { + title = $STR_PARAM_SQUAD_SIZE; + values[] = {0, 1, 2, 4, 6, 8, 10, 12, 16, 20, 24, 30, 36}; + texts[] = {0, 1, 2, 4, 6, 8, 10, 12, 16, 20, 24, 30, 36}; + default = 12; + }; + class BluforDefenders { + title = $STR_PARAM_BLUFOR_DEFENDERS; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class Autodanger { + title = $STR_PARAM_AUTODANGER; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class DayDuration { + title = $STR_PARAMS_DAYDURATION; + values[] = {8, 6, 4, 3, 2, 1}; + texts[] = {"3","4","6","8","12","24"}; + default = 4; + }; + class ShorterNights { + title = $STR_SHORTER_NIGHTS_PARAM; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 0; + }; + class Weather { + title = $STR_WEATHER_PARAM; + values[] = {1, 2, 3}; + texts[] = {$STR_WEATHER_PARAM1, $STR_WEATHER_PARAM2, $STR_WEATHER_PARAM3}; + default = 3; + }; + class VanillaFog { + title = $STR_FOG_PARAM; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class ResourcesMultiplier { + title = $STR_PARAMS_RESOURCESMULTIPLIER; + values[] = {0, 1, 2, 3, 4, 5, 6, 7}; + texts[] = {"x0.25", "x0.5", "x0.75", "x1", "x1.25","x1.5","x2","x3"}; + default = 3; + }; + class ArsenalType { + title = $STR_PARAMS_ARSENAL; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_ARSENAL_BI, $STR_PARAMS_ARSENAL_ACE}; + default = 0; + }; + class DirectArsenal { + title = $STR_PARAMS_DIRECTARSENAL; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class PlayerMenu { + title = $STR_PARAMS_PLAYERMENU; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_PLAYERMENU_GREUH, $STR_PARAMS_PLAYERMENU_KP}; + default = 1; + }; + class VictoryCondition { + title = $STR_PARAMS_VICTORYCONDITION; + values[] = {0, 1, 2, 3, 4}; + texts[] = {$STR_PARAMS_VICTORYCONDITION_0, $STR_PARAMS_VICTORYCONDITION_1, $STR_PARAMS_VICTORYCONDITION_2, $STR_PARAMS_VICTORYCONDITION_3, $STR_PARAMS_VICTORYCONDITION_4}; + default = 1; + }; + class Spacer1 { + title = ""; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class ReviveOptions { + title = $STR_PARAMS_REVIVEOPTIONS; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class ReviveMode { + title = $STR_A3_ReviveMode; + values[] = {0, 1}; + texts[] = {$STR_A3_Disabled, $STR_A3_EnabledForAllPlayers}; + default = 1; + }; + class ReviveDuration { + title = $STR_A3_ReviveDuration; + values[] = {6, 8, 10,12, 15, 20, 25, 30}; + texts[] = {6, 8, 10, 12, 15, 20, 25, 30}; + default = 6; + }; + class ReviveRequiredTrait { + title = $STR_A3_RequiredTrait; + values[] = {0, 1}; + texts[] = {$STR_A3_None, $STR_A3_Medic}; + default = 1; + }; + class ReviveMedicSpeedMultiplier { + title = $STR_A3_RequiredTrait_MedicSpeedMultiplier; + values[] = {1, 1.5, 2, 2.5, 3}; + texts[] = {"1x", "1.5x", "2x", "2.5x", "3x"}; + default = 1; + }; + class ReviveRequiredItems { + title = $STR_A3_RequiredItems; + values[] = {0, 1, 2}; + texts[] = {$STR_A3_None, $STR_A3_Medikit, $STR_A3_FirstAidKitOrMedikit}; + default = 1; + }; + class UnconsciousStateMode { + title = $STR_A3_IncapacitationMode; + values[] = {0, 1, 2}; + texts[] = {$STR_A3_Basic, $STR_A3_Advanced, $STR_A3_Realistic}; + default = 0; + }; + class ReviveBleedOutDuration { + title = $STR_A3_BleedOutDuration; + values[] = {10, 15, 20, 30, 45, 60, 90, 180}; + texts[] = {10, 15, 20, 30, 45, 60, 90, 180}; + default = 180; + }; + class ReviveForceRespawnDuration { + title = $STR_A3_ForceRespawnDuration; + values[] = {3, 4, 5, 6, 7, 8, 9, 10}; + texts[] = {3, 4, 5, 6, 7, 8, 9, 10}; + default = 10; + }; + class Spacer2 { + title = ""; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class GameplayOptions { + title = $STR_PARAMS_GAMEPLAYOPTIONS; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class Fatigue { + title = $STR_PARAMS_FATIGUE; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class WeaponSway { + title = $STR_PARAM_WEAPSWAY; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class ArsenalUsePreset { + title = $STR_PARAMS_ARSENALUSEPRESET; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_NORESTRICTIONS, $STR_PARAMS_USEPRESET}; + default = 1; + }; + class MapMarkers { + title = $STR_PARAMS_MAPMARKERS; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class MobileRespawn { + title = $STR_PARAMS_MOBILERESPAWN; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class RespawnCooldown { + title = $STR_PARAM_RESPAWN_COOLDOWN; + values[] = {0, 300, 600, 900, 1200, 1800, 3600}; + texts[] = {$STR_PARAMS_DISABLED, 5, 10, 15, 20, 30, 60}; + default = 600; + }; + class MobileArsenal { + title = $STR_PARAMS_MOBILEARSENAL; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class AttackedSectorRespawn { + title = $STR_PARAMS_ATTACKEDSECTORRESPAWN; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class AiLogistics { + title = $STR_PARAMS_AILOGISTICS; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 1; + }; + class CR_Building { + title = $STR_PARAM_CR_BUILDING; + values[] = {1, 0}; + texts[] = {$STR_PARAM_CR_DAMAGED, $STR_PARAM_CR_DESTROYED}; + default = 0; + }; + class HaloJump { + title = $STR_HALO_PARAM; + values[] = {1, 5, 10, 15, 20, 30, 0}; + texts[] = {$STR_HALO_PARAM1, $STR_HALO_PARAM2, $STR_HALO_PARAM3, $STR_HALO_PARAM4, $STR_HALO_PARAM5, $STR_HALO_PARAM6, $STR_PARAMS_DISABLED}; + default = 5; + }; + class ClearCargo { + title = $STR_PARAM_CLEAR_CARGO; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class AllowEnemiesInImmobile { + title = $STR_PARAM_ALLOW_ENEMIES_IN_IMMOBILE; + values[] = {0, 25, 50, 75, 100}; + text[] = {$STR_PARAMS_DISABLED, "25%", "50%", "75%", "100%"}; + default = 50; + }; + class DelayDespawnMax { + title = $STR_PARAM_DELAY_DESPAWN_MAX; + values[] = {0, 5, 10, 15, 20, 25, 30}; + texts[] = {$STR_PARAMS_DISABLED, "5", "10", "15", "20", "25", "30"}; + default = 5; + }; + class CommanderZeus { + title = $STR_PARAM_COMMANDERZEUS; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class LimitedZeus { + title = $STR_PARAM_LIMITEDZEUS; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class ZeusAddEnemies { + title = $STR_PARAM_ZEUSADDENEMIES; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 0; + }; + class HighCommand { + title = $STR_PARAM_HIGHCOMMAND; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class SuppMod { + title = $STR_PARAM_SUPPMOD; + values[] = {0, 1, 2}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAM_SUPPMOD_CMDRANDWHITELIST, $STR_PARAM_SUPPMOD_EVERYONE}; + default = 1; + }; + class Tutorial { + title = $STR_PARAM_TUTORIAL; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class Spacer3 { + title = ""; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class TechnicalOptions { + title = $STR_PARAMS_TECHNICALOPTIONS; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class Permissions { + title = $STR_PERMISSIONS_PARAM; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class CleanupVehicles { + title = $STR_CLEANUP_PARAM; + values[] = {0, 1, 2, 4}; + texts[] = {$STR_PARAMS_DISABLED, $STR_CLEANUP_PARAM1, $STR_CLEANUP_PARAM2, $STR_CLEANUP_PARAM3}; + default = 2; + }; + class Introduction { + title = $STR_PARAMS_INTRO; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class DeploymentCinematic { + title = $STR_PARAMS_DEPLOYMENTCAMERA; + values[] = {1, 0}; + texts[] = {$STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED}; + default = 1; + }; + class Whitelist { + title = $STR_WHITELIST_PARAM; + values[] = {1, 0}; + texts[] = {$STR_WHITELIST_ENABLED, $STR_PARAMS_DISABLED}; + default = 0; + }; + class ServerRestart { + title = $STR_RESTART_PARAM; + values[] = {0, 1, 2, 3, 4, 5, 6}; + texts[] = {$STR_PARAMS_DISABLED, "1", "2", "3", "4", "5", "6"}; + default = 0; + }; + class WipeSave1 { + title = $STR_WIPE_TITLE; + values[] = {0, 1}; + texts[] = {$STR_WIPE_NO, $STR_WIPE_YES}; + default = 0; + }; + class WipeSave2 { + title = $STR_WIPE_TITLE_2; + values[] = {0, 1}; + texts[] = {$STR_WIPE_NO, $STR_WIPE_YES}; + default = 0; + }; + class Spacer4 { + title = ""; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class DebugOptions { + title = $STR_PARAMS_DEBUGOPTIONS; + values[] = {""}; + texts[] = {""}; + default = ""; + }; + class DebugAsymmetric { + title = $STR_PARAMS_DEBUG_ASYMMETRIC; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugCivInfo { + title = $STR_PARAMS_DEBUG_CIVINFO; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugCivRep { + title = $STR_PARAMS_DEBUG_CIVREP; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugHighCommand { + title = $STR_PARAM_DEBUG_HIGHCOMMAND; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugKill { + title = $STR_PARAMS_DEBUG_KILL; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugLogistic { + title = $STR_PARAMS_DEBUG_LOGISTIC; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugProduction { + title = $STR_PARAMS_DEBUG_PRODUCTION; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugSave { + title = $STR_PARAMS_DEBUG_SAVE; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; + class DebugSectorSpawn { + title = $STR_PARAMS_DEBUG_SECTORSPAWN; + values[] = {0, 1}; + texts[] = {$STR_PARAMS_DISABLED, $STR_PARAMS_ENABLED}; + default = 0; + }; +}; diff --git a/kp_liberation.brf_sumava/ui/standard_controls.hpp b/kp_liberation.brf_sumava/ui/standard_controls.hpp new file mode 100644 index 0000000..8962232 --- /dev/null +++ b/kp_liberation.brf_sumava/ui/standard_controls.hpp @@ -0,0 +1,520 @@ +class kndr_MapControl { + idc = 10023; + type = CT_MAP_MAIN; + style = ST_PICTURE; + x = 0.05; y = 0.05; + w = 0.90; h = 0.90; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {0, 0, 0, 0}; + colorSea[] = {0.1, 0.3, 0.5, 0.25}; + colorForest[] = {0.10, 0.50, 0.10, 0.50}; + colorRocks[] = {0.50, 0.50, 0.50, 1}; + colorCountlines[] = {0.65, 0.45, 0.27, 0.50}; + colorMainCountlines[] = {0.65, 0.45, 0.27, 1.00}; + colorCountlinesWater[] = {0.00, 0.53, 1.00, 0.3}; + colorMainCountlinesWater[] = {0.00, 0.53, 1.00, 0.6}; + colorForestBorder[] = {0.40, 0.80, 0.00, 1.00}; + colorRocksBorder[] = {0.50, 0.50, 0.50, 1.00}; + colorPowerLines[] = {0.00, 0.00, 0.00, 1.00}; + colorNames[] = {0.00, 0.00, 0.00, 1.00}; + colorInactive[] = {1, 0.3, 0.5, 1}; + colorLevels[] = {0.00, 0.00, 0.00, 1.00}; + colorOutside[] = {0.1, 0.3, 0.5, 0.5}; + colorRailWay[] = {1, 0, 0.5, 1}; + colorTracks[] = {0.8, 0.6, 0.6, 1}; + colorTracksFill[] = {0.7, 0.5, 0.5, 1}; + colorRoads[] = {0.8, 0.8, 0.8, 1}; + colorRoadsFill[] = {0.7, 0.7, 0.7, 1}; + colorMainRoads[] = {1, 1, 1, 1}; + colorMainRoadsFill[] = {0.9, 0.9, 0.9, 1}; + colorGrid[] = {0, 0, 0, 0.5}; + colorGridMap[] = {0, 0, 0, 0.5}; + alphaFadeStartScale = 5; + alphaFadeEndScale = 5; + font = FontM; + sizeEx = 0.075; + fontLabel = FontM; + sizeExLabel = 0.075; + fontGrid = FontM; + sizeExGrid = 0.02; + fontUnits = FontM; + sizeExUnits = 0.075; + fontNames = FontM; + sizeExNames = 0.075; + fontInfo = FontM; + sizeExInfo = 0.075; + fontLevel = FontM; + sizeExLevel = 0.02; + stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; + stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; + ptsPerSquareSea = 6; + ptsPerSquareTxt = 8; + ptsPerSquareCLn = 8; + ptsPerSquareExp = 8; + ptsPerSquareCost = 8; + ptsPerSquareFor = "4.0f"; + ptsPerSquareForEdge = "10.0f"; + ptsPerSquareRoad = 2; + ptsPerSquareObj = 10; + maxSatelliteAlpha = 0.9; + text = ""; + showCountourInterval=2; + scaleDefault = 0.1; + onMouseButtonClick = ""; + onMouseButtonDblClick = ""; + scaleMin = 0.05; + scaleMax = 3; + widthRailWay = 1; + class ActiveMarker { + color[] = {0.30, 0.10, 0.90, 1.00}; + size = 50; + }; + class Bunker { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 14; + importance = "1.5 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Bush { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1.00}; + size = 14; + importance = "0.2 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class BusStop { + icon = ""; + color[] = {0.00, 0.00, 1.00, 1.00}; + size = 10; + importance = "1 * 10 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Command { + icon = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {0.00, 0.00, 0.00, 1.00}; + size = 18; + importance = 1.00; + coefMin = 1.00; + coefMax = 1.00; + }; + class Cross { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "0.7 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Chapel { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "1 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class Church { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class CustomMark { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1}; + size = 16; + importance = 0.7 * 16 * 0.05; + coefMin = 0.25; + coefMax = 4; + }; + class Fortress { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Fuelstation { + icon = ""; + color[] = {1.00, 0.35, 0.35, 1.00}; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.75; + coefMax = 4.00; + }; + class Fountain { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 12; + importance = "1 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Hospital { + icon = ""; + color[] = {0.78, 0.00, 0.05, 1.00}; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.50; + coefMax = 4; + }; + class Lighthouse { + icon = ""; + color[] = {0.78, 0.00, 0.05, 1.00}; + size = 20; + importance = "3 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class Quay { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.50; + coefMax = 4.00; + }; + class Rock { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1}; + size = 12; + importance = 0.5 * 12 * 0.05; + coefMin = 0.25; + coefMax = 4; + }; + class Ruin { + icon = ""; + color[] = {0.78, 0, 0.05, 1}; + size = 16; + importance = 1.2 * 16 * 0.05; + coefMin = 1; + coefMax = 4; + }; + class Stack { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class Tree { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1.00}; + size = 12; + importance = "0.9 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class SmallTree { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1.00}; + size = 12; + importance = "0.6 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4.00; + }; + class Task { + icon = ""; + color[] = {0.55, 0.64, 0.43, 1}; + size = 16; + importance = 0.7 * 16 * 0.05; + coefMin = 0.25; + coefMax = 4; + iconCreated = "#(argb,8,8,3)color(1,1,1,1)"; + iconCanceled = "#(argb,8,8,3)color(0,0,1,1)"; + iconDone = "#(argb,8,8,3)color(0,0,0,1)"; + iconFailed = "#(argb,8,8,3)color(1,0,0,1)"; + colorCreated[] = {1,1,1,1}; + colorCanceled[] = {1,1,1,1}; + colorDone[] = {1,1,1,1}; + colorFailed[] = {1,1,1,1}; + }; + class Tourism { + icon = ""; + color[] = {0.78, 0.00, 0.05, 1.00}; + size = 16; importance = "1 * 16 * 0.05"; + coefMin = 0.70; + coefMax = 4.00; + }; + class ShipWreck { + icon = ""; + color[] = {0.78, 0.00, 0.05, 1.00}; + size = 16; importance = "1 * 16 * 0.05"; + coefMin = 0.70; + coefMax = 4.00; + }; + class Transmitter { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class PowerSolar { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class PowerWave { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class LineMarker { + icon = ""; + color[] = {0,0,0,0}; + size = 0; + importance = "2 * 16 * 0.05"; + coefMin = 0; + coefMax = 0; + lineWidthThin = 0; + lineWidthThick = 0; + lineDistanceMin = 0; + lineDistanceMax = 0; + lineLengthMin = 0; + linelengthMax = 0; + }; + class PowerWind { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class ViewTower { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 16; + importance = "2.5 * 16 * 0.05"; + coefMin = 0.50; + coefMax = 4.00; + }; + class Watertower { + icon = ""; + color[] = {0.00, 0.35, 0.70, 1.00}; + size = 32; + importance = "1.2 * 16 * 0.05"; + coefMin = 0.90; + coefMax = 4.00; + }; + class Waypoint { + icon = ""; + color[] = {0.00, 0.00, 0.00, 1.00}; + size = 24; + importance = 1.00; + coefMin = 1.00; + coefMax = 1.00; + }; + class WaypointCompleted { + icon = ""; + color[] = {0.00, 0.00, 0.00, 1.00}; + size = 24; + importance = 1.00; + coefMin = 1.00; + coefMax = 1.00; + }; +}; +class RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + font = "Bitstream"; + sizeEx = 0.04; +}; +class StdText { + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_NOALPHA; + font = FontM; + sizeEx = 0.02 * safezoneH; + shadow = 2; + text = ""; +}; +class StdHeader: StdText { + style = ST_CENTER; + sizeEx = 0.03 * safezoneH; + colorBackground[] = COLOR_LIGHTGRAY; +}; +class StdButton { + idc = -1; + type = CT_BUTTON; + style = ST_CENTER; + default = false; + font = FontM; + sizeEx = 0.018 * safezoneH; + colorText[] = { 0, 0, 0, 1 }; + colorFocused[] = { 1, 1, 1, 1 }; + colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 }; + colorBackground[] = { 0.8, 0.8, 0.8, 0.8 }; + colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 }; + colorBackgroundActive[] = { 1, 1, 1, 1 }; + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + colorShadow[] = { 0, 0, 0, 0.5 }; + colorBorder[] = { 0, 0, 0, 1 }; + borderSize = 0; + soundEnter[] = { "", 0, 1 }; // no sound + soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1}; + soundClick[] = { "", 0, 1 }; // no sound + soundEscape[] = { "", 0, 1 }; // no sound + x = 0.4 * safezoneW + safezoneX; + w = 0.2 * safezoneW; h = 0.03 * safezoneH; + text = ""; + action = ""; + shadow = 1; + }; +class StdBG { + idc = -1; + type = CT_STATIC; + style = ST_SINGLE; + colorText[] = COLOR_BLACK; + font = FontM; + sizeEx = 0.023; + text = ""; +}; +class StdListBox { + idc = -1; + type = 5; + style = 0 + 0x10; + font = FontM; + sizeEx = 0.018 * safezoneH; + rowHeight = 0.018 * safezoneH * 1.25; + color[] = COLOR_LIGHTGRAY; + colorText[] = COLOR_WHITE; + colorScrollbar[] = COLOR_BRIGHTGREEN; + colorSelect[] = COLOR_BRIGHTGREEN; + colorSelect2[] = COLOR_BRIGHTGREEN; + colorSelectBackground[] = COLOR_LIGHTGRAY; + colorSelectBackground2[] = COLOR_LIGHTGRAY; + colorActive[] = COLOR_BRIGHTGREEN; + colorDisabled[] = COLOR_GREEN; + columns[] = {0.1, 0.9}; + period = 0.3; + colorBackground[] = COLOR_GREEN; + maxHistoryDelay = 1.0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + class ListScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; +class StdListNBox: StdListBox { + idc = -1; + type = CT_List_N_Box; + drawSideArrows = 0; + idcLeft = -10; + idcRight = -11; + period = 0.3; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + class Scrollbar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + colorBackground[] = COLOR_GREEN; +}; +class BgPicture { + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorText[] = {0.5, 0.4, 0.25, 0.6}; + colorBackground[] = {0, 0, 0, 1}; + font = FontM; + sizeEx = 0.023; + moving = false; + text = "res\camo03.jpg"; +}; +class StdCombo { + idc = -1; + type = 4; + style = 1; + x = 0; + y = 0; + w = 0.3; + h = 0.035; + colorSelect[] = COLOR_BRIGHTGREEN; + colorText[] = COLOR_WHITE; + colorBackground[] = COLOR_GREEN_NOALPHA; + colorSelectBackground[] = COLOR_LIGHTGRAY; + colorScrollbar[] = COLOR_BRIGHTGREEN; + arrowEmpty ="\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + wholeHeight = 0.45; + color[] = COLOR_LIGHTGRAY; + colorActive[] = COLOR_BRIGHTGREEN; + colorDisabled[] = COLOR_GREEN; + font = FontM; + sizeEx = 0.031; + soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + soundExpand[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + soundCollapse[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1}; + maxHistoryDelay = 1.0; + class ComboScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; +class StdEdit { + idc = -1; + type = CT_EDIT; + style = ST_RIGHT+ST_FRAME; + default = false; + font = FontM; + sizeEx = 0.018 * safezoneH; + colorText[] = COLOR_WHITE; + colorSelection[] = COLOR_LIGHTGRAY; + colorDisabled[] = COLOR_LIGHTGRAY; + colorBackground[] = COLOR_GREEN_NOALPHA; + colorBackgroundDisabled[] = COLOR_GREEN; + colorBackgroundActive[] = COLOR_GREEN_NOALPHA; + x = 0; + y = 0; + w = 0.3; + h = (0.02 * safezoneH); + text = ""; + autocomplete = ""; + shadow = 0; +}; diff --git a/kp_liberation.brf_sumava/whitelist.sqf b/kp_liberation.brf_sumava/whitelist.sqf new file mode 100644 index 0000000..22c3ab8 --- /dev/null +++ b/kp_liberation.brf_sumava/whitelist.sqf @@ -0,0 +1,21 @@ +// Here you can allow people to use the commander slot. It will only be enforced if you activate the related mission option. +// When editing be careful with quotes and commas + +// Allowed team tags, as defined in your team's squad.xml +// This isn't very secure but efficient to whitelist a lot of people at once. +GRLIB_whitelisted_tags = [ + +]; + +// Allowed individual players based on their SteamID64. This is the most secure way to do. +// For example: "76561198016642627" +// To know that information: https://steamid.io/ +GRLIB_whitelisted_steamids = [ + +]; + +// Allowed individual player names. Note that this method is not very secure contrary to SteamIDs. +// For exemple: "Zbug" +GRLIB_whitelisted_names = [ + +];